diff --git a/README.md b/README.md
index 9c1c0fee7211cdfc49fb6f0f1a74d1e928eaaab8..3462442aeb1c41fe8c20fd2b82e2625e4f7aa8f3 100644
--- a/README.md
+++ b/README.md
@@ -44,11 +44,11 @@ iBizPMS是一个刚刚起步的项目,它与其它项目有所不同的是,
## 整体流程
-
+
## 与禅道关系
-
+
## 增强特性
@@ -68,7 +68,7 @@ iBizPMS是一个刚刚起步的项目,它与其它项目有所不同的是,
- 支持接入生产体系(系统)数据,自动完成日常管理数据填充。
- 
+ 
## 开源参与
@@ -79,7 +79,7 @@ iBizPMS是一个刚刚起步的项目,它与其它项目有所不同的是,
- 欢迎加入iBizPMS交流QQ群:1067434627
- 
+ 
## 技术框架
@@ -133,51 +133,51 @@ iBizPMS是一个刚刚起步的项目,它与其它项目有所不同的是,
演示Demo地址:http://pms.ibizlab.cn
-演示账号:guest
+演示账号:gitee
-演示密码:123456
+演示密码:gitee@123
## 系统展示
产品概况
-
+
甘特图
-
+
项目主页
-
+
产品路线图
-
+
产品动态
-
+
产品主页
-
+
需求
-
+
接口列表
-
+
产品接口
-
+
新建产品接口
-
+
## 附录
@@ -187,24 +187,25 @@ iBizPMS是一个刚刚起步的项目,它与其它项目有所不同的是,
| 序号 | 时间 | 事件 | 备注 |
| ---- | ---------- | ------------------------ | ------------------------------------ |
-| 1 | 2020-05-06 | 选型预研。 | 国内外项目管理软件整理很对比。 |
+| 1 | 2020-05-06 | 选型预研。 | 国内外项目管理软件整理和对比。 |
| 2 | 2020-05-11 | 禅道业务分析、技术预研。 | |
| 3 | 2020-05-18 | 项目启动。 | |
| 4 | 2020-05-18 | 禅道模型整理。 | 梳理禅道的业务数据模型以及模型关系。 |
| 5 | 2020-05-18 | 禅道界面、组件整理。 | 梳理禅道界面表现和组件模型。 |
| 6 | 2020-05-25 | 禅道API整理。 | 梳理禅道API,抽象共通性。 |
| 7 | 2020-06-01 | 联通iBizPMS与禅道。 | iBizPMS与禅道API和数据库联通。 |
+| 8 | 2020-06-08 | 功能持续完善。 | 产品、项目、测试功能逐步完善中。 |
### 快速建立issue
在运行系统的任意一个界面上,敲下“Ctrl+F12”或者点击右下角“显示Debug栏”,便会呈现“新建issues”的操作,点击便可以快速建立issue。
-
+
-
+
### 感谢
最后对以下参与的小伙伴发出衷心的感谢。
-@Unidentified、@Yuzuriha_Inori、@crimson777、前端模板团队、后端模板团队、CI/CD团队
\ No newline at end of file
+@Unidentified、@Yuzuriha_Inori、@crimson777、前端模板团队、后端模板团队、CI/CD团队
diff --git a/app_Web/package.json b/app_Web/package.json
index 40030d239e6dbc0cc2119190cd2e078acfc01410..ea302f42dc6e4f36dd3d5bee6d0bd27ec1359341 100644
--- a/app_Web/package.json
+++ b/app_Web/package.json
@@ -25,8 +25,9 @@
"element-ui": "^2.13.0",
"file-saver": "^2.0.2",
"font-awesome": "^4.7.0",
- "ibiz-gantt-elastic": "^1.0.15",
- "ibiz-vue-lib": "^0.1.9",
+ "ibiz-gantt-elastic": "^1.0.16",
+ "ibiz-vue-lib": "^0.1.10",
+ "ibiz-vue-pivottable": "^1.0.6",
"interactjs": "1.9.10",
"moment": "^2.24.0",
"path-to-regexp": "^6.1.0",
diff --git a/app_Web/public/assets/icons/iconfont/demo.css b/app_Web/public/assets/icons/iconfont/demo.css
new file mode 100644
index 0000000000000000000000000000000000000000..a67054a0a030993643b8cbe9f344b34706efa134
--- /dev/null
+++ b/app_Web/public/assets/icons/iconfont/demo.css
@@ -0,0 +1,539 @@
+/* Logo 字体 */
+@font-face {
+ font-family: "iconfont logo";
+ src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
+ src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
+}
+
+.logo {
+ font-family: "iconfont logo";
+ font-size: 160px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* tabs */
+.nav-tabs {
+ position: relative;
+}
+
+.nav-tabs .nav-more {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ height: 42px;
+ line-height: 42px;
+ color: #666;
+}
+
+#tabs {
+ border-bottom: 1px solid #eee;
+}
+
+#tabs li {
+ cursor: pointer;
+ width: 100px;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+ font-size: 16px;
+ border-bottom: 2px solid transparent;
+ position: relative;
+ z-index: 1;
+ margin-bottom: -1px;
+ color: #666;
+}
+
+
+#tabs .active {
+ border-bottom-color: #f00;
+ color: #222;
+}
+
+.tab-container .content {
+ display: none;
+}
+
+/* 页面布局 */
+.main {
+ padding: 30px 100px;
+ width: 960px;
+ margin: 0 auto;
+}
+
+.main .logo {
+ color: #333;
+ text-align: left;
+ margin-bottom: 30px;
+ line-height: 1;
+ height: 110px;
+ margin-top: -50px;
+ overflow: hidden;
+ *zoom: 1;
+}
+
+.main .logo a {
+ font-size: 160px;
+ color: #333;
+}
+
+.helps {
+ margin-top: 40px;
+}
+
+.helps pre {
+ padding: 20px;
+ margin: 10px 0;
+ border: solid 1px #e7e1cd;
+ background-color: #fffdef;
+ overflow: auto;
+}
+
+.icon_lists {
+ width: 100% !important;
+ overflow: hidden;
+ *zoom: 1;
+}
+
+.icon_lists li {
+ width: 100px;
+ margin-bottom: 10px;
+ margin-right: 20px;
+ text-align: center;
+ list-style: none !important;
+ cursor: default;
+}
+
+.icon_lists li .code-name {
+ line-height: 1.2;
+}
+
+.icon_lists .icon {
+ display: block;
+ height: 100px;
+ line-height: 100px;
+ font-size: 42px;
+ margin: 10px auto;
+ color: #333;
+ -webkit-transition: font-size 0.25s linear, width 0.25s linear;
+ -moz-transition: font-size 0.25s linear, width 0.25s linear;
+ transition: font-size 0.25s linear, width 0.25s linear;
+}
+
+.icon_lists .icon:hover {
+ font-size: 100px;
+}
+
+.icon_lists .svg-icon {
+ /* 通过设置 font-size 来改变图标大小 */
+ width: 1em;
+ /* 图标和文字相邻时,垂直对齐 */
+ vertical-align: -0.15em;
+ /* 通过设置 color 来改变 SVG 的颜色/fill */
+ fill: currentColor;
+ /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
+ normalize.css 中也包含这行 */
+ overflow: hidden;
+}
+
+.icon_lists li .name,
+.icon_lists li .code-name {
+ color: #666;
+}
+
+/* markdown 样式 */
+.markdown {
+ color: #666;
+ font-size: 14px;
+ line-height: 1.8;
+}
+
+.highlight {
+ line-height: 1.5;
+}
+
+.markdown img {
+ vertical-align: middle;
+ max-width: 100%;
+}
+
+.markdown h1 {
+ color: #404040;
+ font-weight: 500;
+ line-height: 40px;
+ margin-bottom: 24px;
+}
+
+.markdown h2,
+.markdown h3,
+.markdown h4,
+.markdown h5,
+.markdown h6 {
+ color: #404040;
+ margin: 1.6em 0 0.6em 0;
+ font-weight: 500;
+ clear: both;
+}
+
+.markdown h1 {
+ font-size: 28px;
+}
+
+.markdown h2 {
+ font-size: 22px;
+}
+
+.markdown h3 {
+ font-size: 16px;
+}
+
+.markdown h4 {
+ font-size: 14px;
+}
+
+.markdown h5 {
+ font-size: 12px;
+}
+
+.markdown h6 {
+ font-size: 12px;
+}
+
+.markdown hr {
+ height: 1px;
+ border: 0;
+ background: #e9e9e9;
+ margin: 16px 0;
+ clear: both;
+}
+
+.markdown p {
+ margin: 1em 0;
+}
+
+.markdown>p,
+.markdown>blockquote,
+.markdown>.highlight,
+.markdown>ol,
+.markdown>ul {
+ width: 80%;
+}
+
+.markdown ul>li {
+ list-style: circle;
+}
+
+.markdown>ul li,
+.markdown blockquote ul>li {
+ margin-left: 20px;
+ padding-left: 4px;
+}
+
+.markdown>ul li p,
+.markdown>ol li p {
+ margin: 0.6em 0;
+}
+
+.markdown ol>li {
+ list-style: decimal;
+}
+
+.markdown>ol li,
+.markdown blockquote ol>li {
+ margin-left: 20px;
+ padding-left: 4px;
+}
+
+.markdown code {
+ margin: 0 3px;
+ padding: 0 5px;
+ background: #eee;
+ border-radius: 3px;
+}
+
+.markdown strong,
+.markdown b {
+ font-weight: 600;
+}
+
+.markdown>table {
+ border-collapse: collapse;
+ border-spacing: 0px;
+ empty-cells: show;
+ border: 1px solid #e9e9e9;
+ width: 95%;
+ margin-bottom: 24px;
+}
+
+.markdown>table th {
+ white-space: nowrap;
+ color: #333;
+ font-weight: 600;
+}
+
+.markdown>table th,
+.markdown>table td {
+ border: 1px solid #e9e9e9;
+ padding: 8px 16px;
+ text-align: left;
+}
+
+.markdown>table th {
+ background: #F7F7F7;
+}
+
+.markdown blockquote {
+ font-size: 90%;
+ color: #999;
+ border-left: 4px solid #e9e9e9;
+ padding-left: 0.8em;
+ margin: 1em 0;
+}
+
+.markdown blockquote p {
+ margin: 0;
+}
+
+.markdown .anchor {
+ opacity: 0;
+ transition: opacity 0.3s ease;
+ margin-left: 8px;
+}
+
+.markdown .waiting {
+ color: #ccc;
+}
+
+.markdown h1:hover .anchor,
+.markdown h2:hover .anchor,
+.markdown h3:hover .anchor,
+.markdown h4:hover .anchor,
+.markdown h5:hover .anchor,
+.markdown h6:hover .anchor {
+ opacity: 1;
+ display: inline-block;
+}
+
+.markdown>br,
+.markdown>p>br {
+ clear: both;
+}
+
+
+.hljs {
+ display: block;
+ background: white;
+ padding: 0.5em;
+ color: #333333;
+ overflow-x: auto;
+}
+
+.hljs-comment,
+.hljs-meta {
+ color: #969896;
+}
+
+.hljs-string,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-strong,
+.hljs-emphasis,
+.hljs-quote {
+ color: #df5000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type {
+ color: #a71d5d;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute {
+ color: #0086b3;
+}
+
+.hljs-section,
+.hljs-name {
+ color: #63a35c;
+}
+
+.hljs-tag {
+ color: #333333;
+}
+
+.hljs-title,
+.hljs-attr,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #795da3;
+}
+
+.hljs-addition {
+ color: #55a532;
+ background-color: #eaffea;
+}
+
+.hljs-deletion {
+ color: #bd2c00;
+ background-color: #ffecec;
+}
+
+.hljs-link {
+ text-decoration: underline;
+}
+
+/* 代码高亮 */
+/* PrismJS 1.15.0
+https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+code[class*="language-"],
+pre[class*="language-"] {
+ color: black;
+ background: none;
+ text-shadow: 0 1px white;
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ line-height: 1.5;
+
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection {
+ text-shadow: none;
+ background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection,
+pre[class*="language-"] ::selection,
+code[class*="language-"]::selection,
+code[class*="language-"] ::selection {
+ text-shadow: none;
+ background: #b3d4fc;
+}
+
+@media print {
+
+ code[class*="language-"],
+ pre[class*="language-"] {
+ text-shadow: none;
+ }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+ padding: 1em;
+ margin: .5em 0;
+ overflow: auto;
+}
+
+:not(pre)>code[class*="language-"],
+pre[class*="language-"] {
+ background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre)>code[class*="language-"] {
+ padding: .1em;
+ border-radius: .3em;
+ white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: slategray;
+}
+
+.token.punctuation {
+ color: #999;
+}
+
+.namespace {
+ opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+ color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+ color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+ color: #9a6e3a;
+ background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+ color: #07a;
+}
+
+.token.function,
+.token.class-name {
+ color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+ color: #e90;
+}
+
+.token.important,
+.token.bold {
+ font-weight: bold;
+}
+
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
diff --git a/app_Web/public/assets/icons/iconfont/demo_index.html b/app_Web/public/assets/icons/iconfont/demo_index.html
new file mode 100644
index 0000000000000000000000000000000000000000..808322b80f2276075b83f0f7490f46820fc21e08
--- /dev/null
+++ b/app_Web/public/assets/icons/iconfont/demo_index.html
@@ -0,0 +1,193 @@
+
+
+
+
+ IconFont Demo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - Unicode
+ - Font class
+ - Symbol
+
+
+
查看项目
+
+
+
+
+
+
+ -
+
+
subnets
+ 
+
+
+
+
+
Unicode 引用
+
+
+
Unicode 是字体在网页端最原始的应用方式,特点是:
+
+ - 兼容性最好,支持 IE6+,及所有现代浏览器。
+ - 支持按字体的方式去动态调整图标大小,颜色等等。
+ - 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
+
+
+ 注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用,如果有需求建议使用symbol 的引用方式
+
+
Unicode 使用步骤如下:
+
第一步:拷贝项目下面生成的 @font-face
+
@font-face {
+ font-family: 'iconfont';
+ src: url('iconfont.eot');
+ src: url('iconfont.eot?#iefix') format('embedded-opentype'),
+ url('iconfont.woff2') format('woff2'),
+ url('iconfont.woff') format('woff'),
+ url('iconfont.ttf') format('truetype'),
+ url('iconfont.svg#iconfont') format('svg');
+}
+
+
第二步:定义使用 iconfont 的样式
+
.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+
第三步:挑选相应图标并获取字体编码,应用于页面
+
+<span class="iconfont">3</span>
+
+
+ "iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。
+
+
+
+
+
+
+ -
+
+
+ subnets
+
+ .studio-icon-subnets
+
+
+
+
+
+
font-class 引用
+
+
+
font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。
+
与 Unicode 使用方式相比,具有如下特点:
+
+ - 兼容性良好,支持 IE8+,及所有现代浏览器。
+ - 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
+ - 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
+ - 不过因为本质上还是使用的字体,所以多色图标还是不支持的。
+
+
使用步骤如下:
+
第一步:引入项目下面生成的 fontclass 代码:
+
<link rel="stylesheet" href="./iconfont.css">
+
+
第二步:挑选相应图标并获取类名,应用于页面:
+
<span class="iconfont studio-icon-xxx"></span>
+
+
+ "
+ iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。
+
+
+
+
+
+
+ -
+
+
subnets
+ #studio-icon-subnets
+
+
+
+
+
Symbol 引用
+
+
+
这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章
+ 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:
+
+ - 支持多色图标了,不再受单色限制。
+ - 通过一些技巧,支持像字体那样,通过
font-size
, color
来调整样式。
+ - 兼容性较差,支持 IE9+,及现代浏览器。
+ - 浏览器渲染 SVG 的性能一般,还不如 png。
+
+
使用步骤如下:
+
第一步:引入项目下面生成的 symbol 代码:
+
<script src="./iconfont.js"></script>
+
+
第二步:加入通用 CSS 代码(引入一次就行):
+
<style>
+.icon {
+ width: 1em;
+ height: 1em;
+ vertical-align: -0.15em;
+ fill: currentColor;
+ overflow: hidden;
+}
+</style>
+
+
第三步:挑选相应图标并获取类名,应用于页面:
+
<svg class="icon" aria-hidden="true">
+ <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+
+
+
+
+
+
diff --git a/app_Web/public/assets/icons/iconfont/iconfont.css b/app_Web/public/assets/icons/iconfont/iconfont.css
new file mode 100644
index 0000000000000000000000000000000000000000..fcc0b77061d46cae24eedc38b2140953bc37cc24
--- /dev/null
+++ b/app_Web/public/assets/icons/iconfont/iconfont.css
@@ -0,0 +1,21 @@
+@font-face {font-family: "iconfont";
+ src: url('iconfont.eot?t=1591350784537'); /* IE9 */
+ src: url('iconfont.eot?t=1591350784537#iefix') format('embedded-opentype'), /* IE6-IE8 */
+ url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAALoAAsAAAAABrAAAAKaAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcAqBOIE2ATYCJAMICwYABCAFhG0HMRvdBRHVk0lkPwtjN9pmGESkqlGiscij+Th0MMv1Y+N+PwTPf2uv9+3M/kyAwRGxioqKJWqrWg0AjoCOJ9K7tZa5B3YvTB7L6ADIHWQPOJsSON/x1cndkps3TzTSb6kH3jxKrADwiXunfwUUyHxAgaS+9qZJXUBdHEgB7oVRZEWWUN4wdoFLuA8BPIghC6nZPb4Gg8ZaJoBM+a4JJhdGo1nOILhq9mpkCzbG2mQ9BDaHn5ev82LAwlZYDR2TOw5UfKm2C9SvUyM+QQQEdNgGFJAFaJCe2nQbCmFshUdakwD7qhX4Eo7jW5G9mhD211nVXgBEQfE9SVzpreYsgNsaSwlQO+o7gJTMiGX835C9r+tuvsTFa7lMsP84O57lnnkRu3QyxejPivT+2K3X8xb3/cn2LD+VXm08yPPDg+rYqfLH4sKfm2ivC1dPt1f0Y+16nnxLl6Nbx65e/WP0E924399f9hHhdeH01Qv0FSoAcFYdVCkIIPD1Tp+M+27+N00NwAeshEFnNf28YE7nEfhtkp49WpdZFkurktpBi5LbafLAA3CA/QF8HqsPvkenYHKyEV43ojUoDEmkZmXBxpMcuDCUw4NM6g97Esg0CtHuQAZrAIIfp2DhwxUo/HhEatYn2ITwHS78RMGDPmmf6UmKcH5ji8kUctB6Q99OE+XYpBHVXpL7FJmclYWcW2Ltx3BueraY26OEeI4N+tmdF1GoOI1xFzxGUZRixmlAtkx7Itn6zIyqe9G0ncbQgGAyhRy03tC300T5w6VRev8luU+RyS1dNeFbYu1PjnPTsz3IPXXSq+tentHP7ryIQsVpjLtgFkVRiln9rIBsmfZGJLP1Gbuf6queXl8bf90RABpgGQqGPbUIpp+shEQDAAAA') format('woff2'),
+ url('iconfont.woff?t=1591350784537') format('woff'),
+ url('iconfont.ttf?t=1591350784537') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
+ url('iconfont.svg?t=1591350784537#iconfont') format('svg'); /* iOS 4.1- */
+}
+
+.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.studio-icon-subnets:before {
+ content: "\ea43";
+}
+
diff --git a/app_Web/public/assets/icons/iconfont/iconfont.eot b/app_Web/public/assets/icons/iconfont/iconfont.eot
new file mode 100644
index 0000000000000000000000000000000000000000..94fa9c02dd9f235824ff47780ae55985f799dddd
Binary files /dev/null and b/app_Web/public/assets/icons/iconfont/iconfont.eot differ
diff --git a/app_Web/public/assets/icons/iconfont/iconfont.js b/app_Web/public/assets/icons/iconfont/iconfont.js
new file mode 100644
index 0000000000000000000000000000000000000000..8101383abd16d459d1f100474651640407ef5caf
--- /dev/null
+++ b/app_Web/public/assets/icons/iconfont/iconfont.js
@@ -0,0 +1 @@
+!function(e){var t,n,o,i,c,d,s,l='',a=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss");if(a&&!e.__iconfont__svg__cssinject__){e.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(e){console&&console.log(e)}}function r(){d||(d=!0,i())}n=function(){var e,t,n,o,i,c=document.createElement("div");c.innerHTML=l,l=null,(e=c.getElementsByTagName("svg")[0])&&(e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.width=0,e.style.height=0,e.style.overflow="hidden",t=e,(n=document.body).firstChild?(o=t,(i=n.firstChild).parentNode.insertBefore(o,i)):n.appendChild(t))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(n,0):(o=function(){document.removeEventListener("DOMContentLoaded",o,!1),n()},document.addEventListener("DOMContentLoaded",o,!1)):document.attachEvent&&(i=n,c=e.document,d=!1,(s=function(){try{c.documentElement.doScroll("left")}catch(e){return void setTimeout(s,50)}r()})(),c.onreadystatechange=function(){"complete"==c.readyState&&(c.onreadystatechange=null,r())})}(window);
\ No newline at end of file
diff --git a/app_Web/public/assets/icons/iconfont/iconfont.json b/app_Web/public/assets/icons/iconfont/iconfont.json
new file mode 100644
index 0000000000000000000000000000000000000000..c3cf382b382c2a043aba34425614e6fc32669a1c
--- /dev/null
+++ b/app_Web/public/assets/icons/iconfont/iconfont.json
@@ -0,0 +1,16 @@
+{
+ "id": "1866280",
+ "name": "Studio模板图标",
+ "font_family": "iconfont",
+ "css_prefix_text": "studio-icon-",
+ "description": "Studio模板专增图标",
+ "glyphs": [
+ {
+ "icon_id": "212786",
+ "name": "subnets ",
+ "font_class": "subnets",
+ "unicode": "ea43",
+ "unicode_decimal": 59971
+ }
+ ]
+}
diff --git a/app_Web/public/assets/icons/iconfont/iconfont.svg b/app_Web/public/assets/icons/iconfont/iconfont.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1e275da47781600b037a21bfb5c904b907d7d157
--- /dev/null
+++ b/app_Web/public/assets/icons/iconfont/iconfont.svg
@@ -0,0 +1,29 @@
+
+
+
+
diff --git a/app_Web/public/assets/icons/iconfont/iconfont.ttf b/app_Web/public/assets/icons/iconfont/iconfont.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..87a27c466136cf632b1efdd87230400cd80afd96
Binary files /dev/null and b/app_Web/public/assets/icons/iconfont/iconfont.ttf differ
diff --git a/app_Web/public/assets/icons/iconfont/iconfont.woff b/app_Web/public/assets/icons/iconfont/iconfont.woff
new file mode 100644
index 0000000000000000000000000000000000000000..5028dee043935bb44f32834ab7df7120cf031a0d
Binary files /dev/null and b/app_Web/public/assets/icons/iconfont/iconfont.woff differ
diff --git a/app_Web/public/assets/icons/iconfont/iconfont.woff2 b/app_Web/public/assets/icons/iconfont/iconfont.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..a2785ce379bb3b30117fa7c2ba75c022154550a5
Binary files /dev/null and b/app_Web/public/assets/icons/iconfont/iconfont.woff2 differ
diff --git a/app_Web/public/assets/json/data-dictionary.json b/app_Web/public/assets/json/data-dictionary.json
index 0d6e0b9e9e279dd1e622569b623d30b26fb6f50d..61fc6c7002c69d3854bdb3f8725cde850cab24eb 100644
--- a/app_Web/public/assets/json/data-dictionary.json
+++ b/app_Web/public/assets/json/data-dictionary.json
@@ -38,6 +38,7 @@
"text": "激活",
"data":"",
"codename":"Active",
+ "color": "rgba(0, 157, 255, 1)",
"value": "active",
"disabled": false
@@ -48,6 +49,7 @@
"text": "已解决",
"data":"",
"codename":"Resolved",
+ "color": "rgba(1, 217, 19, 1)",
"value": "resolved",
"disabled": false
@@ -58,6 +60,7 @@
"text": "已关闭",
"data":"",
"codename":"Closed",
+ "color": "rgba(151, 152, 141, 1)",
"value": "closed",
"disabled": false
@@ -276,6 +279,130 @@
}
]
},
+ {
+ "srfkey": "ProjectTimeType",
+ "emptytext": "",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "CONSUMED",
+ "label": "消耗时间",
+ "text": "消耗时间",
+ "data":"",
+ "codename":"Consumed",
+ "value": "CONSUMED",
+
+ "disabled": false
+ }
+ , {
+ "id": "LEFT",
+ "label": "剩余时间",
+ "text": "剩余时间",
+ "data":"",
+ "codename":"Left",
+ "value": "LEFT",
+
+ "disabled": false
+ }
+ ]
+ },
+ {
+ "srfkey": "Bug__type",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "codeerror",
+ "label": "代码错误",
+ "text": "代码错误",
+ "data":"",
+ "codename":"Codeerror",
+ "value": "codeerror",
+
+ "disabled": false
+ }
+ , {
+ "id": "config",
+ "label": "配置相关",
+ "text": "配置相关",
+ "data":"",
+ "codename":"Config",
+ "value": "config",
+
+ "disabled": false
+ }
+ , {
+ "id": "install",
+ "label": "安装部署",
+ "text": "安装部署",
+ "data":"",
+ "codename":"Install",
+ "value": "install",
+
+ "disabled": false
+ }
+ , {
+ "id": "security",
+ "label": "安全相关",
+ "text": "安全相关",
+ "data":"",
+ "codename":"Security",
+ "value": "security",
+
+ "disabled": false
+ }
+ , {
+ "id": "performance",
+ "label": "性能问题",
+ "text": "性能问题",
+ "data":"",
+ "codename":"Performance",
+ "value": "performance",
+
+ "disabled": false
+ }
+ , {
+ "id": "standard",
+ "label": "标准规范",
+ "text": "标准规范",
+ "data":"",
+ "codename":"Standard",
+ "value": "standard",
+
+ "disabled": false
+ }
+ , {
+ "id": "automation",
+ "label": "测试脚本",
+ "text": "测试脚本",
+ "data":"",
+ "codename":"Automation",
+ "value": "automation",
+
+ "disabled": false
+ }
+ , {
+ "id": "designdefect",
+ "label": "设计缺陷",
+ "text": "设计缺陷",
+ "data":"",
+ "codename":"Designdefect",
+ "value": "designdefect",
+
+ "disabled": false
+ }
+ , {
+ "id": "others",
+ "label": "其他",
+ "text": "其他",
+ "data":"",
+ "codename":"Others",
+ "value": "others",
+
+ "disabled": false
+ }
+ ]
+ },
{
"srfkey": "Product__acl",
"emptytext": "未定义",
@@ -1040,6 +1167,33 @@
}
]
},
+ {
+ "srfkey": "User__gender",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "f",
+ "label": "女",
+ "text": "女",
+ "data":"",
+ "codename":"F",
+ "value": "f",
+
+ "disabled": false
+ }
+ , {
+ "id": "m",
+ "label": "男",
+ "text": "男",
+ "data":"",
+ "codename":"M",
+ "value": "m",
+
+ "disabled": false
+ }
+ ]
+ },
{
"srfkey": "Action__object_type",
"emptytext": "未定义",
@@ -1408,137 +1562,134 @@
]
},
{
- "srfkey": "Task__closed_reason",
+ "srfkey": "Task_quickpacket",
"emptytext": "未定义",
"codelisttype":"static",
"items": [
{
- "id": "done",
- "label": "已完成",
- "text": "已完成",
- "data":"",
- "codename":"Done",
- "value": "done",
+ "id": "All",
+ "label": "所有",
+ "text": "所有",
+ "data":{},
+ "codename":"All",
+ "value": "All",
"disabled": false
}
, {
- "id": "cancel",
- "label": "已取消",
- "text": "已取消",
- "data":"",
- "codename":"Cancel",
- "value": "cancel",
+ "id": "UNCLOSED",
+ "label": "未关闭",
+ "text": "未关闭",
+ "data":{"n_status_noteq":"closed"},
+ "codename":"Unclosed",
+ "value": "UNCLOSED",
"disabled": false
}
- ]
- },
- {
- "srfkey": "UserRealName",
- "emptytext": "未定义",
- "codelisttype":"dynamic",
- "appdataentity":"User",
- "appdedataset":"FetchDefault",
- "items": []
- },
- {
- "srfkey": "Product__type",
- "emptytext": "未定义",
- "codelisttype":"static",
- "items": [
- {
- "id": "normal",
- "label": "正常",
- "text": "正常",
- "data":"",
- "codename":"Normal",
- "color": "blue",
- "value": "normal",
+ , {
+ "id": "TOME",
+ "label": "指派给我",
+ "text": "指派给我",
+ "data":{"n_assignedto_eq":"%srfloginname%"},
+ "codename":"Tome",
+ "value": "TOME",
"disabled": false
}
, {
- "id": "branch",
- "label": "多分支",
- "text": "多分支",
+ "id": "MORE",
+ "label": "更多",
+ "text": "更多",
"data":"",
- "codename":"Branch",
- "value": "branch",
+ "codename":"More",
+ "value": "MORE",
"disabled": false
}
, {
- "id": "platform",
- "label": "多平台",
- "text": "多平台",
- "data":"",
- "codename":"Platform",
- "value": "platform",
-
+ "id": "NOTSTARTED",
+ "label": "未开始",
+ "text": "未开始",
+ "data":{"n_status_eq":"wait"},
+ "codename":"Notstarted",
+ "value": "NOTSTARTED",
+ "pvalue": "MORE",
"disabled": false
}
- ]
- },
- {
- "srfkey": "Testcase__status",
- "emptytext": "未定义",
- "codelisttype":"static",
- "items": [
- {
- "id": "wait",
- "label": "待评审",
- "text": "待评审",
- "data":"",
- "codename":"Wait",
- "value": "wait",
-
+ , {
+ "id": "INPROGRESS",
+ "label": "进行中",
+ "text": "进行中",
+ "data":{"n_status_eq":"doing"},
+ "codename":"Inprogress",
+ "value": "INPROGRESS",
+ "pvalue": "MORE",
"disabled": false
}
, {
- "id": "normal",
- "label": "正常",
- "text": "正常",
- "data":"",
- "codename":"Normal",
- "value": "normal",
-
+ "id": "UNACCOMPLISHED",
+ "label": "未完成",
+ "text": "未完成",
+ "data":{"n_status_noteq":"done"},
+ "codename":"Unaccomplished",
+ "value": "UNACCOMPLISHED",
+ "pvalue": "MORE",
"disabled": false
}
, {
- "id": "blocked",
- "label": "被阻塞",
- "text": "被阻塞",
- "data":"",
- "codename":"Blocked",
- "value": "blocked",
-
+ "id": "IFINISHED",
+ "label": "我完成",
+ "text": "我完成",
+ "data":{"n_finishedby_eq":"%srfloginname%"},
+ "codename":"Ifinished",
+ "value": "IFINISHED",
+ "pvalue": "MORE",
"disabled": false
}
, {
- "id": "investigate",
- "label": "研究中",
- "text": "研究中",
- "data":"",
- "codename":"Investigate",
- "value": "investigate",
-
+ "id": "COMPLETED",
+ "label": "已完成",
+ "text": "已完成",
+ "data":{"n_status_eq":"done"},
+ "codename":"Completed",
+ "value": "COMPLETED",
+ "pvalue": "MORE",
+ "disabled": false
+ }
+ , {
+ "id": "CLOSED",
+ "label": "已关闭",
+ "text": "已关闭",
+ "data":{"n_status_eq":"closed"},
+ "codename":"Closed",
+ "value": "CLOSED",
+ "pvalue": "MORE",
+ "disabled": false
+ }
+ , {
+ "id": "CANCELLED",
+ "label": "已取消",
+ "text": "已取消",
+ "data":{"n_status_eq":"cancel"},
+ "codename":"Cancelled",
+ "value": "CANCELLED",
+ "pvalue": "MORE",
"disabled": false
}
]
},
{
- "srfkey": "Story__quickpacket",
+ "srfkey": "Bug__quickpacket",
"emptytext": "未定义",
"codelisttype":"static",
"items": [
{
- "id": "ALL",
+ "id": "All",
"label": "所有",
"text": "所有",
- "data":"",
+ "data":{},
"codename":"All",
- "value": "ALL",
+ "value": "All",
"disabled": false
}
@@ -1546,16 +1697,26 @@
"id": "UNCLOSED",
"label": "未关闭",
"text": "未关闭",
- "data":{"n_stage_noteq":"closed"},
+ "data":{"n_status_noteq":"closed"},
"codename":"Unclosed",
"value": "UNCLOSED",
"disabled": false
}
+ , {
+ "id": "ICREATE",
+ "label": "由我创建",
+ "text": "由我创建",
+ "data":{"n_openedby_eq":"%SRFUSERID%"},
+ "codename":"Icreate",
+ "value": "ICREATE",
+
+ "disabled": false
+ }
, {
"id": "TOME",
- "label": "指给我",
- "text": "指给我",
+ "label": "指派给我",
+ "text": "指派给我",
"data":{"n_assignedto_eq":"%SRFUSERID%"},
"codename":"Tome",
"value": "TOME",
@@ -1563,32 +1724,32 @@
"disabled": false
}
, {
- "id": "ICREATE",
- "label": "我创建",
- "text": "我创建",
- "data":{"n_openedby_eq":"%SRFUSERID%"},
- "codename":"Icreate",
- "value": "ICREATE",
+ "id": "BYME",
+ "label": "由我解决",
+ "text": "由我解决",
+ "data":{"n_resolvedby_eq":"%SRFUSERID%"},
+ "codename":"Byme",
+ "value": "BYME",
"disabled": false
}
, {
- "id": "IREVIEW",
- "label": "我评审",
- "text": "我评审",
- "data":{"n_reviewedby_eq":"%SRFUSERID%"},
- "codename":"Ireview",
- "value": "IREVIEW",
+ "id": "WAITCLOSED",
+ "label": "待关闭",
+ "text": "待关闭",
+ "data":{"n_status_eq":"closed"},
+ "codename":"Waitclosed",
+ "value": "WAITCLOSED",
"disabled": false
}
, {
- "id": "DRAFT",
- "label": "草稿",
- "text": "草稿",
- "data":{"n_status_eq":"draft"},
- "codename":"Draft",
- "value": "DRAFT",
+ "id": "UNRESOLVED",
+ "label": "未解决",
+ "text": "未解决",
+ "data":{"n_status_eq":"resolved"},
+ "codename":"Unresolved",
+ "value": "UNRESOLVED",
"disabled": false
}
@@ -1603,17 +1764,595 @@
"disabled": false
}
, {
- "id": "ICLOSE",
- "label": "我关闭",
- "text": "我关闭",
- "data":{"n_closedby_eq":"%SRFUSERID%"},
- "codename":"Iclose",
- "value": "ICLOSE",
+ "id": "UNCONFIRMED",
+ "label": "未确认",
+ "text": "未确认",
+ "data":{"n_confirmed_eq": 0},
+ "codename":"Unconfirmed",
+ "value": "UNCONFIRMED",
"pvalue": "MORE",
"disabled": false
}
, {
- "id": "ACTIVED",
+ "id": "UNASSIGNED",
+ "label": "未指派",
+ "text": "未指派",
+ "data":{"n_assignedto_eq":""},
+ "codename":"Unassigned",
+ "value": "UNASSIGNED",
+ "pvalue": "MORE",
+ "disabled": false
+ }
+ , {
+ "id": "EXPIREDBUG",
+ "label": "过期Bug",
+ "text": "过期Bug",
+ "data":{"n_deadline_lt": "%srfcurdate%"},
+ "codename":"Expiredbug",
+ "value": "EXPIREDBUG",
+ "pvalue": "MORE",
+ "disabled": false
+ }
+ ]
+ },
+ {
+ "srfkey": "Task__closed_reason",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "done",
+ "label": "已完成",
+ "text": "已完成",
+ "data":"",
+ "codename":"Done",
+ "value": "done",
+
+ "disabled": false
+ }
+ , {
+ "id": "cancel",
+ "label": "已取消",
+ "text": "已取消",
+ "data":"",
+ "codename":"Cancel",
+ "value": "cancel",
+
+ "disabled": false
+ }
+ ]
+ },
+ {
+ "srfkey": "Bug__os",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "all",
+ "label": "全部",
+ "text": "全部",
+ "data":"",
+ "codename":"All",
+ "value": "all",
+
+ "disabled": false
+ }
+ , {
+ "id": "windows",
+ "label": "Windows",
+ "text": "Windows",
+ "data":"",
+ "codename":"Windows",
+ "value": "windows",
+
+ "disabled": false
+ }
+ , {
+ "id": "win10",
+ "label": "Windows 10",
+ "text": "Windows 10",
+ "data":"",
+ "codename":"Win10",
+ "value": "win10",
+
+ "disabled": false
+ }
+ , {
+ "id": "win8",
+ "label": "Windows 8",
+ "text": "Windows 8",
+ "data":"",
+ "codename":"Win8",
+ "value": "win8",
+
+ "disabled": false
+ }
+ , {
+ "id": "win7",
+ "label": "Windows 7",
+ "text": "Windows 7",
+ "data":"",
+ "codename":"Win7",
+ "value": "win7",
+
+ "disabled": false
+ }
+ , {
+ "id": "vista",
+ "label": "Windows Vista",
+ "text": "Windows Vista",
+ "data":"",
+ "codename":"Vista",
+ "value": "vista",
+
+ "disabled": false
+ }
+ , {
+ "id": "winxp",
+ "label": "Windows XP",
+ "text": "Windows XP",
+ "data":"",
+ "codename":"Winxp",
+ "value": "winxp",
+
+ "disabled": false
+ }
+ , {
+ "id": "win2012",
+ "label": "Windows 2012",
+ "text": "Windows 2012",
+ "data":"",
+ "codename":"Win2012",
+ "value": "win2012",
+
+ "disabled": false
+ }
+ , {
+ "id": "win2008",
+ "label": "Windows 2008",
+ "text": "Windows 2008",
+ "data":"",
+ "codename":"Win2008",
+ "value": "win2008",
+
+ "disabled": false
+ }
+ , {
+ "id": "win2003",
+ "label": "Windows 2003",
+ "text": "Windows 2003",
+ "data":"",
+ "codename":"Win2003",
+ "value": "win2003",
+
+ "disabled": false
+ }
+ , {
+ "id": "win2000",
+ "label": "Windows 2000",
+ "text": "Windows 2000",
+ "data":"",
+ "codename":"Win2000",
+ "value": "win2000",
+
+ "disabled": false
+ }
+ , {
+ "id": "android",
+ "label": "Android",
+ "text": "Android",
+ "data":"",
+ "codename":"Android",
+ "value": "android",
+
+ "disabled": false
+ }
+ , {
+ "id": "ios",
+ "label": "IOS",
+ "text": "IOS",
+ "data":"",
+ "codename":"Ios",
+ "value": "ios",
+
+ "disabled": false
+ }
+ , {
+ "id": "wp8",
+ "label": "WP8",
+ "text": "WP8",
+ "data":"",
+ "codename":"Wp8",
+ "value": "wp8",
+
+ "disabled": false
+ }
+ , {
+ "id": "wp7",
+ "label": "WP7",
+ "text": "WP7",
+ "data":"",
+ "codename":"Wp7",
+ "value": "wp7",
+
+ "disabled": false
+ }
+ , {
+ "id": "symbian",
+ "label": "Symbian",
+ "text": "Symbian",
+ "data":"",
+ "codename":"Symbian",
+ "value": "symbian",
+
+ "disabled": false
+ }
+ , {
+ "id": "linux",
+ "label": "Linux",
+ "text": "Linux",
+ "data":"",
+ "codename":"Linux",
+ "value": "linux",
+
+ "disabled": false
+ }
+ , {
+ "id": "freebsd",
+ "label": "FreeBSD",
+ "text": "FreeBSD",
+ "data":"",
+ "codename":"Freebsd",
+ "value": "freebsd",
+
+ "disabled": false
+ }
+ , {
+ "id": "osx",
+ "label": "OS X",
+ "text": "OS X",
+ "data":"",
+ "codename":"Osx",
+ "value": "osx",
+
+ "disabled": false
+ }
+ , {
+ "id": "unix",
+ "label": "Unix",
+ "text": "Unix",
+ "data":"",
+ "codename":"Unix",
+ "value": "unix",
+
+ "disabled": false
+ }
+ , {
+ "id": "others",
+ "label": "其他",
+ "text": "其他",
+ "data":"",
+ "codename":"Others",
+ "value": "others",
+
+ "disabled": false
+ }
+ ]
+ },
+ {
+ "srfkey": "UserRealName",
+ "emptytext": "未定义",
+ "codelisttype":"dynamic",
+ "appdataentity":"User",
+ "appdedataset":"FetchDefault",
+ "items": []
+ },
+ {
+ "srfkey": "Product__type",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "normal",
+ "label": "正常",
+ "text": "正常",
+ "data":"",
+ "codename":"Normal",
+ "color": "blue",
+ "value": "normal",
+
+ "disabled": false
+ }
+ , {
+ "id": "branch",
+ "label": "多分支",
+ "text": "多分支",
+ "data":"",
+ "codename":"Branch",
+ "value": "branch",
+
+ "disabled": false
+ }
+ , {
+ "id": "platform",
+ "label": "多平台",
+ "text": "多平台",
+ "data":"",
+ "codename":"Platform",
+ "value": "platform",
+
+ "disabled": false
+ }
+ ]
+ },
+ {
+ "srfkey": "Testcase__type",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "feature",
+ "label": "功能测试",
+ "text": "功能测试",
+ "data":"",
+ "codename":"Feature",
+ "value": "feature",
+
+ "disabled": false
+ }
+ , {
+ "id": "performance",
+ "label": "性能测试",
+ "text": "性能测试",
+ "data":"",
+ "codename":"Performance",
+ "value": "performance",
+
+ "disabled": false
+ }
+ , {
+ "id": "config",
+ "label": "配置相关",
+ "text": "配置相关",
+ "data":"",
+ "codename":"Config",
+ "value": "config",
+
+ "disabled": false
+ }
+ , {
+ "id": "install",
+ "label": "安装部署",
+ "text": "安装部署",
+ "data":"",
+ "codename":"Install",
+ "value": "install",
+
+ "disabled": false
+ }
+ , {
+ "id": "security",
+ "label": "安全相关",
+ "text": "安全相关",
+ "data":"",
+ "codename":"Security",
+ "value": "security",
+
+ "disabled": false
+ }
+ , {
+ "id": "interface",
+ "label": "接口测试",
+ "text": "接口测试",
+ "data":"",
+ "codename":"Interface",
+ "value": "interface",
+
+ "disabled": false
+ }
+ , {
+ "id": "unit",
+ "label": "单元测试",
+ "text": "单元测试",
+ "data":"",
+ "codename":"Unit",
+ "value": "unit",
+
+ "disabled": false
+ }
+ , {
+ "id": "other",
+ "label": "其他",
+ "text": "其他",
+ "data":"",
+ "codename":"Other",
+ "value": "other",
+
+ "disabled": false
+ }
+ ]
+ },
+ {
+ "srfkey": "Bug__severity",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "1",
+ "label": "1",
+ "text": "1",
+ "data":"",
+ "codename":"Item_1",
+ "value": 1,
+
+ "disabled": false
+ }
+ , {
+ "id": "2",
+ "label": "2",
+ "text": "2",
+ "data":"",
+ "codename":"Item_2",
+ "value": 2,
+
+ "disabled": false
+ }
+ , {
+ "id": "3",
+ "label": "3",
+ "text": "3",
+ "data":"",
+ "codename":"Item_3",
+ "value": 3,
+
+ "disabled": false
+ }
+ , {
+ "id": "4",
+ "label": "4",
+ "text": "4",
+ "data":"",
+ "codename":"Item_4",
+ "value": 4,
+
+ "disabled": false
+ }
+ ]
+ },
+ {
+ "srfkey": "Testcase__status",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "wait",
+ "label": "待评审",
+ "text": "待评审",
+ "data":"",
+ "codename":"Wait",
+ "value": "wait",
+
+ "disabled": false
+ }
+ , {
+ "id": "normal",
+ "label": "正常",
+ "text": "正常",
+ "data":"",
+ "codename":"Normal",
+ "value": "normal",
+
+ "disabled": false
+ }
+ , {
+ "id": "blocked",
+ "label": "被阻塞",
+ "text": "被阻塞",
+ "data":"",
+ "codename":"Blocked",
+ "value": "blocked",
+
+ "disabled": false
+ }
+ , {
+ "id": "investigate",
+ "label": "研究中",
+ "text": "研究中",
+ "data":"",
+ "codename":"Investigate",
+ "value": "investigate",
+
+ "disabled": false
+ }
+ ]
+ },
+ {
+ "srfkey": "Story__quickpacket",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "ALL",
+ "label": "所有",
+ "text": "所有",
+ "data":"",
+ "codename":"All",
+ "value": "ALL",
+
+ "disabled": false
+ }
+ , {
+ "id": "UNCLOSED",
+ "label": "未关闭",
+ "text": "未关闭",
+ "data":{"n_stage_noteq":"closed"},
+ "codename":"Unclosed",
+ "value": "UNCLOSED",
+
+ "disabled": false
+ }
+ , {
+ "id": "TOME",
+ "label": "指给我",
+ "text": "指给我",
+ "data":{"n_assignedto_eq":"%SRFUSERID%"},
+ "codename":"Tome",
+ "value": "TOME",
+
+ "disabled": false
+ }
+ , {
+ "id": "ICREATE",
+ "label": "我创建",
+ "text": "我创建",
+ "data":{"n_openedby_eq":"%SRFUSERID%"},
+ "codename":"Icreate",
+ "value": "ICREATE",
+
+ "disabled": false
+ }
+ , {
+ "id": "IREVIEW",
+ "label": "我评审",
+ "text": "我评审",
+ "data":{"n_reviewedby_eq":"%SRFUSERID%"},
+ "codename":"Ireview",
+ "value": "IREVIEW",
+
+ "disabled": false
+ }
+ , {
+ "id": "DRAFT",
+ "label": "草稿",
+ "text": "草稿",
+ "data":{"n_status_eq":"draft"},
+ "codename":"Draft",
+ "value": "DRAFT",
+
+ "disabled": false
+ }
+ , {
+ "id": "MORE",
+ "label": "更多",
+ "text": "更多",
+ "data":"",
+ "codename":"More",
+ "value": "MORE",
+
+ "disabled": false
+ }
+ , {
+ "id": "ICLOSE",
+ "label": "我关闭",
+ "text": "我关闭",
+ "data":{"n_closedby_eq":"%SRFUSERID%"},
+ "codename":"Iclose",
+ "value": "ICLOSE",
+ "pvalue": "MORE",
+ "disabled": false
+ }
+ , {
+ "id": "ACTIVED",
"label": "激活",
"text": "激活",
"data":{"n_status_eq":"active"},
@@ -1654,6 +2393,223 @@
}
]
},
+ {
+ "srfkey": "Bug__browser",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "all",
+ "label": "全部",
+ "text": "全部",
+ "data":"",
+ "codename":"All",
+ "value": "all",
+
+ "disabled": false
+ }
+ , {
+ "id": "ie",
+ "label": "IE系列",
+ "text": "IE系列",
+ "data":"",
+ "codename":"Ie",
+ "value": "ie",
+
+ "disabled": false
+ }
+ , {
+ "id": "ie11",
+ "label": "IE11",
+ "text": "IE11",
+ "data":"",
+ "codename":"Ie11",
+ "value": "ie11",
+
+ "disabled": false
+ }
+ , {
+ "id": "ie10",
+ "label": "IE10",
+ "text": "IE10",
+ "data":"",
+ "codename":"Ie10",
+ "value": "ie10",
+
+ "disabled": false
+ }
+ , {
+ "id": "ie9",
+ "label": "IE9",
+ "text": "IE9",
+ "data":"",
+ "codename":"Ie9",
+ "value": "ie9",
+
+ "disabled": false
+ }
+ , {
+ "id": "ie8",
+ "label": "IE8",
+ "text": "IE8",
+ "data":"",
+ "codename":"Ie8",
+ "value": "ie8",
+
+ "disabled": false
+ }
+ , {
+ "id": "ie7",
+ "label": "IE7",
+ "text": "IE7",
+ "data":"",
+ "codename":"Ie7",
+ "value": "ie7",
+
+ "disabled": false
+ }
+ , {
+ "id": "ie6",
+ "label": "IE6",
+ "text": "IE6",
+ "data":"",
+ "codename":"Ie6",
+ "value": "ie6",
+
+ "disabled": false
+ }
+ , {
+ "id": "chrome",
+ "label": "chrome",
+ "text": "chrome",
+ "data":"",
+ "codename":"Chrome",
+ "value": "chrome",
+
+ "disabled": false
+ }
+ , {
+ "id": "firefox",
+ "label": "firefox系列",
+ "text": "firefox系列",
+ "data":"",
+ "codename":"Firefox",
+ "value": "firefox",
+
+ "disabled": false
+ }
+ , {
+ "id": "firefox4",
+ "label": "firefox4",
+ "text": "firefox4",
+ "data":"",
+ "codename":"Firefox4",
+ "value": "firefox4",
+
+ "disabled": false
+ }
+ , {
+ "id": "firefox3",
+ "label": "firefox3",
+ "text": "firefox3",
+ "data":"",
+ "codename":"Firefox3",
+ "value": "firefox3",
+
+ "disabled": false
+ }
+ , {
+ "id": "firefox2",
+ "label": "firefox2",
+ "text": "firefox2",
+ "data":"",
+ "codename":"Firefox2",
+ "value": "firefox2",
+
+ "disabled": false
+ }
+ , {
+ "id": "opera",
+ "label": "opera系列",
+ "text": "opera系列",
+ "data":"",
+ "codename":"Opera",
+ "value": "opera",
+
+ "disabled": false
+ }
+ , {
+ "id": "opera11",
+ "label": "opera11",
+ "text": "opera11",
+ "data":"",
+ "codename":"Opera11",
+ "value": "opera11",
+
+ "disabled": false
+ }
+ , {
+ "id": "oprea10",
+ "label": "oprea10",
+ "text": "oprea10",
+ "data":"",
+ "codename":"Oprea10",
+ "value": "oprea10",
+
+ "disabled": false
+ }
+ , {
+ "id": "opera9",
+ "label": "opera9",
+ "text": "opera9",
+ "data":"",
+ "codename":"Opera9",
+ "value": "opera9",
+
+ "disabled": false
+ }
+ , {
+ "id": "safari",
+ "label": "safari",
+ "text": "safari",
+ "data":"",
+ "codename":"Safari",
+ "value": "safari",
+
+ "disabled": false
+ }
+ , {
+ "id": "maxthon",
+ "label": "傲游",
+ "text": "傲游",
+ "data":"",
+ "codename":"Maxthon",
+ "value": "maxthon",
+
+ "disabled": false
+ }
+ , {
+ "id": "uc",
+ "label": "UC",
+ "text": "UC",
+ "data":"",
+ "codename":"Uc",
+ "value": "uc",
+
+ "disabled": false
+ }
+ , {
+ "id": "others",
+ "label": "其他",
+ "text": "其他",
+ "data":"",
+ "codename":"Others",
+ "value": "others",
+
+ "disabled": false
+ }
+ ]
+ },
{
"srfkey": "Project__type",
"emptytext": "未定义",
@@ -1798,6 +2754,33 @@
}
]
},
+ {
+ "srfkey": "Company__guest",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "1",
+ "label": "允许",
+ "text": "允许",
+ "data":"",
+ "codename":"Item_1",
+ "value": "1",
+
+ "disabled": false
+ }
+ , {
+ "id": "0",
+ "label": "不允许",
+ "text": "不允许",
+ "data":"",
+ "codename":"Item_0",
+ "value": "0",
+
+ "disabled": false
+ }
+ ]
+ },
{
"srfkey": "Story__status",
"emptytext": "未定义",
@@ -2057,6 +3040,7 @@
"text": "未开始",
"data":"",
"codename":"Wait",
+ "color": "rgba(131, 138, 157, 1)",
"value": "wait",
"disabled": false
@@ -2067,6 +3051,7 @@
"text": "进行中",
"data":"",
"codename":"Doing",
+ "color": "rgba(255, 93, 93, 1)",
"value": "doing",
"disabled": false
@@ -2077,6 +3062,7 @@
"text": "已完成",
"data":"",
"codename":"Done",
+ "color": "rgba(67, 160, 71, 1)",
"value": "done",
"disabled": false
@@ -2087,6 +3073,7 @@
"text": "已暂停",
"data":"",
"codename":"Pause",
+ "color": "rgba(255, 152, 0, 1)",
"value": "pause",
"disabled": false
@@ -2097,6 +3084,7 @@
"text": "已取消",
"data":"",
"codename":"Cancel",
+ "color": "rgba(131, 138, 157, 1)",
"value": "cancel",
"disabled": false
@@ -2107,6 +3095,7 @@
"text": "已关闭",
"data":"",
"codename":"Closed",
+ "color": "rgba(131, 138, 157, 1)",
"value": "closed",
"disabled": false
@@ -2187,6 +3176,61 @@
}
]
},
+ {
+ "srfkey": "Role",
+ "emptytext": "未定义",
+ "codelisttype":"dynamic",
+ "appdataentity":"Group",
+ "appdedataset":"FetchDefault",
+ "items": []
+ },
+ {
+ "srfkey": "Testcase__result",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "n/a",
+ "label": "忽略",
+ "text": "忽略",
+ "data":"",
+ "codename":"N_a",
+ "value": "n/a",
+
+ "disabled": false
+ }
+ , {
+ "id": "pass",
+ "label": "通过",
+ "text": "通过",
+ "data":"",
+ "codename":"Pass",
+ "value": "pass",
+
+ "disabled": false
+ }
+ , {
+ "id": "fail",
+ "label": "失败",
+ "text": "失败",
+ "data":"",
+ "codename":"Fail",
+ "value": "fail",
+
+ "disabled": false
+ }
+ , {
+ "id": "blocked",
+ "label": "阻塞",
+ "text": "阻塞",
+ "data":"",
+ "codename":"Blocked",
+ "value": "blocked",
+
+ "disabled": false
+ }
+ ]
+ },
{
"srfkey": "Bug__pri",
"emptytext": "未定义",
@@ -2230,6 +3274,93 @@
"codename":"Item_4",
"value": 4,
+ "disabled": false
+ }
+ ]
+ },
+ {
+ "srfkey": "Bug__resolution",
+ "emptytext": "未定义",
+ "codelisttype":"static",
+ "items": [
+ {
+ "id": "bydesign",
+ "label": "设计如此",
+ "text": "设计如此",
+ "data":"",
+ "codename":"Bydesign",
+ "value": "bydesign",
+
+ "disabled": false
+ }
+ , {
+ "id": "duplicate",
+ "label": "重复Bug",
+ "text": "重复Bug",
+ "data":"",
+ "codename":"Duplicate",
+ "value": "duplicate",
+
+ "disabled": false
+ }
+ , {
+ "id": "external",
+ "label": "外部原因",
+ "text": "外部原因",
+ "data":"",
+ "codename":"External",
+ "value": "external",
+
+ "disabled": false
+ }
+ , {
+ "id": "fixed",
+ "label": "已解决",
+ "text": "已解决",
+ "data":"",
+ "codename":"Fixed",
+ "value": "fixed",
+
+ "disabled": false
+ }
+ , {
+ "id": "notrepro",
+ "label": "无法重现",
+ "text": "无法重现",
+ "data":"",
+ "codename":"Notrepro",
+ "value": "notrepro",
+
+ "disabled": false
+ }
+ , {
+ "id": "postponed",
+ "label": "延期处理",
+ "text": "延期处理",
+ "data":"",
+ "codename":"Postponed",
+ "value": "postponed",
+
+ "disabled": false
+ }
+ , {
+ "id": "willnotfix",
+ "label": "不予解决",
+ "text": "不予解决",
+ "data":"",
+ "codename":"Willnotfix",
+ "value": "willnotfix",
+
+ "disabled": false
+ }
+ , {
+ "id": "tostory",
+ "label": "转为需求",
+ "text": "转为需求",
+ "data":"",
+ "codename":"Tostory",
+ "value": "tostory",
+
"disabled": false
}
]
diff --git a/app_Web/public/assets/json/view-config.json b/app_Web/public/assets/json/view-config.json
index ffd61b2fd9a7f0c6f2ad2de5ac78187f58b7b0cd..378e65269d6a8ea5420fc1138503a39445a6cb8f 100644
--- a/app_Web/public/assets/json/view-config.json
+++ b/app_Web/public/assets/json/view-config.json
@@ -19,6 +19,16 @@
"viewtag": "00ac056d598228619b6c0dbfcd603e4c",
"memo": ""
},
+ "companydepttreeexpview": {
+ "title": "组织部门树导航视图",
+ "caption": "公司",
+ "viewtype": "DETREEEXPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CompanyDeptTreeExpView",
+ "viewfilename": "company-dept-tree-exp-view",
+ "viewtag": "025443fdc6ac693e261108fbdf1b40ab",
+ "memo": ""
+ },
"caseeditview": {
"title": "case编辑视图",
"caption": "测试用例",
@@ -89,6 +99,26 @@
"viewtag": "103bc77ad54de2476db1d4e9c788cd4e",
"memo": ""
},
+ "bugmaineditview": {
+ "title": "Bug编辑",
+ "caption": "Bug编辑",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "BugMainEditView",
+ "viewfilename": "bug-main-edit-view",
+ "viewtag": "122af527bf38b47ddc53c882847b490e",
+ "memo": "主信息编辑"
+ },
+ "taskassigntaskview": {
+ "title": "指派任务",
+ "caption": "指派任务",
+ "viewtype": "DEOPTVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskAssignTaskView",
+ "viewfilename": "task-assign-task-view",
+ "viewtag": "12661bdb476cd339554799b417c6ea48",
+ "memo": ""
+ },
"bugmaindashboardview": {
"title": "Bug数据看板视图",
"caption": "Bug",
@@ -99,6 +129,16 @@
"viewtag": "1540523a668e920d831510cfbec2c5e2",
"memo": ""
},
+ "deptpickupview": {
+ "title": "dept数据选择视图",
+ "caption": "部门",
+ "viewtype": "DEPICKUPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "DeptPickupView",
+ "viewfilename": "dept-pickup-view",
+ "viewtag": "16b54862dad958907853dc7eb084a0c0",
+ "memo": ""
+ },
"productplansubplancreateview": {
"title": "计划",
"caption": "产品计划",
@@ -169,6 +209,16 @@
"viewtag": "21d716ac12c793af54b112a5a3599674",
"memo": ""
},
+ "taskmaineditview": {
+ "title": "任务",
+ "caption": "任务",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskMainEditView",
+ "viewfilename": "task-main-edit-view",
+ "viewtag": "21e00a7239d9737bbfda5c1608b4129c",
+ "memo": ""
+ },
"moduleeditview": {
"title": "模块",
"caption": "模块",
@@ -219,6 +269,26 @@
"viewtag": "321ab2e4e87a29fef8eed086e951a006",
"memo": ""
},
+ "tasksubtasknewview": {
+ "title": "子任务",
+ "caption": "子任务",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskSubTaskNewView",
+ "viewfilename": "task-sub-task-new-view",
+ "viewtag": "35ba93bac795e0deb7297d2d471b7180",
+ "memo": ""
+ },
+ "projectstatsmaindashboardview": {
+ "title": "项目统计数据看板视图",
+ "caption": "项目统计",
+ "viewtype": "DEPORTALVIEW",
+ "viewmodule": "ibiz",
+ "viewname": "ProjectStatsMainDashboardView",
+ "viewfilename": "project-stats-main-dashboard-view",
+ "viewtag": "37df93bfc6d8126c9303eab0c5363df8",
+ "memo": ""
+ },
"projectburndownchartview": {
"title": "燃尽图",
"caption": "项目",
@@ -239,6 +309,16 @@
"viewtag": "3aafb12bb0db2be013c0f5ced8c7dc50",
"memo": ""
},
+ "projectpickupgridview": {
+ "title": "project选择表格视图",
+ "caption": "项目",
+ "viewtype": "DEPICKUPGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ProjectPickupGridView",
+ "viewfilename": "project-pickup-grid-view",
+ "viewtag": "3b346aee2b79b7b6b59bc870b4c67f72",
+ "memo": ""
+ },
"storymainview": {
"title": "需求数据看板视图",
"caption": "需求",
@@ -249,8 +329,28 @@
"viewtag": "3f2ca3e560d9082bb56fbf7667a57a66",
"memo": ""
},
+ "casemaingridview": {
+ "title": "功能测试",
+ "caption": "测试用例",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CaseMainGridView",
+ "viewfilename": "case-main-grid-view",
+ "viewtag": "417541fa331fc089b84936b8359403fa",
+ "memo": ""
+ },
+ "bugbuglifeeditview9": {
+ "title": "Bug的一生",
+ "caption": "Bug",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "zentao",
+ "viewname": "BugBugLifeEditView9",
+ "viewfilename": "bug-bug-life-edit-view9",
+ "viewtag": "443935a0b9d0fa8daf3131956a8bacc9",
+ "memo": ""
+ },
"bugeditview": {
- "title": "bug编辑视图",
+ "title": "Bug",
"caption": "Bug",
"viewtype": "DEEDITVIEW",
"viewmodule": "zentao",
@@ -269,6 +369,16 @@
"viewtag": "4863a523ac490ebce771717756f0c6a8",
"memo": ""
},
+ "taskgridview": {
+ "title": "task表格视图",
+ "caption": "任务",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskGridView",
+ "viewfilename": "task-grid-view",
+ "viewtag": "4b01c8ae7e7e23b9c67dbca2ee90e41b",
+ "memo": ""
+ },
"storygridview9_assignedtome": {
"title": "需求表格视图",
"caption": "需求",
@@ -279,6 +389,16 @@
"viewtag": "4b82e9acf6c784b138b365d6011b296b",
"memo": "视图参数中指定了过滤条件"
},
+ "companydeptusertreeexpview": {
+ "title": "组织部门人员树导航视图",
+ "caption": "公司",
+ "viewtype": "DETREEEXPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CompanyDeptUserTreeExpView",
+ "viewfilename": "company-dept-user-tree-exp-view",
+ "viewtag": "4cb497e84dfabd873bc62d5386d5551f",
+ "memo": ""
+ },
"productplansubplangridview": {
"title": "子计划",
"caption": "产品计划",
@@ -359,6 +479,16 @@
"viewtag": "54c7ba4afb6222c4c0af04a78a0592df",
"memo": ""
},
+ "companymaintabexpview": {
+ "title": "组织权限",
+ "caption": "组织权限",
+ "viewtype": "DETABEXPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CompanyMainTabExpView",
+ "viewfilename": "company-main-tab-exp-view",
+ "viewtag": "56084e37dc061358abd4a3f5340b27e9",
+ "memo": ""
+ },
"storypickupgridview": {
"title": "需求",
"caption": "需求",
@@ -379,6 +509,26 @@
"viewtag": "575fecad655143bbd28f17c581725a4e",
"memo": ""
},
+ "userpickupview": {
+ "title": "user数据选择视图",
+ "caption": "用户",
+ "viewtype": "DEPICKUPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "UserPickupView",
+ "viewfilename": "user-pickup-view",
+ "viewtag": "57e77f1cea8cff268fbd744f326867fb",
+ "memo": ""
+ },
+ "casemainnewview": {
+ "title": "功能测试",
+ "caption": "功能测试",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CaseMainNewView",
+ "viewfilename": "case-main-new-view",
+ "viewtag": "5890a810365fec51e801d2cffce44fde",
+ "memo": ""
+ },
"productstorytreeexpview": {
"title": "产品需求导航视图",
"caption": "产品",
@@ -389,6 +539,16 @@
"viewtag": "58a943454a652d4f4ce2702d6447c079",
"memo": ""
},
+ "projectpickupview": {
+ "title": "project数据选择视图",
+ "caption": "项目",
+ "viewtype": "DEPICKUPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ProjectPickupView",
+ "viewfilename": "project-pickup-view",
+ "viewtag": "5a8a29268a7563b62fc0160233958830",
+ "memo": ""
+ },
"testtaskeditview": {
"title": "testtask编辑视图",
"caption": "测试版本",
@@ -399,6 +559,26 @@
"viewtag": "5b139a407fa34f386f3f784f33841184",
"memo": ""
},
+ "deptmaingridview": {
+ "title": "dept表格视图",
+ "caption": "部门",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "DeptMainGridView",
+ "viewfilename": "dept-main-grid-view",
+ "viewtag": "5c2b20935d511794aeca60376bd81fef",
+ "memo": ""
+ },
+ "productstatseditview9": {
+ "title": "产品统计编辑视图",
+ "caption": "产品统计",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "ibiz",
+ "viewname": "ProductStatsEditView9",
+ "viewfilename": "product-stats-edit-view9",
+ "viewtag": "5d468f620cc30181773d875b3bb8be6e",
+ "memo": ""
+ },
"tasktasktypeganttview": {
"title": "任务甘特视图",
"caption": "任务",
@@ -419,6 +599,46 @@
"viewtag": "61f32b2b422e8f1a9825e1f704464a8c",
"memo": ""
},
+ "productcasetreeexpview": {
+ "title": "产品需求导航视图",
+ "caption": "产品",
+ "viewtype": "DETREEEXPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ProductCaseTreeExpView",
+ "viewfilename": "product-case-tree-exp-view",
+ "viewtag": "63b82c8ee288130faca83833ec1f837c",
+ "memo": ""
+ },
+ "taskpivottableview": {
+ "title": "任务表格视图",
+ "caption": "任务",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskPivotTableView",
+ "viewfilename": "task-pivot-table-view",
+ "viewtag": "64204774cc4b97f20aa3becb41b184d5",
+ "memo": ""
+ },
+ "bugstepsinfoeditview": {
+ "title": "Bug编辑视图",
+ "caption": "重现步骤",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "BugStepsInfoEditView",
+ "viewfilename": "bug-steps-info-edit-view",
+ "viewtag": "6558930042f15c2297572f51d7e77df5",
+ "memo": ""
+ },
+ "casebatchnewgridview": {
+ "title": "测试用例",
+ "caption": "测试用例",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CaseBatchNewGridView",
+ "viewfilename": "case-batch-new-grid-view",
+ "viewtag": "66769499a681f12bd2ebff8859f1d4ea",
+ "memo": ""
+ },
"productmaintabexpview": {
"title": "产品",
"caption": "产品",
@@ -429,6 +649,16 @@
"viewtag": "6c7b582273d0726bcf77214807cfe40c",
"memo": ""
},
+ "casemaindashboardview": {
+ "title": "功能测试",
+ "caption": "功能测试",
+ "viewtype": "DEPORTALVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CaseMainDashboardView",
+ "viewfilename": "case-main-dashboard-view",
+ "viewtag": "6f78b25e86923ab600a2141d50fe49fd",
+ "memo": ""
+ },
"actionhistroylistview": {
"title": "历史记录",
"caption": "系统日志",
@@ -509,6 +739,16 @@
"viewtag": "7d34636d1c24d613abf8d3fdc64ec7ba",
"memo": ""
},
+ "productpickupview": {
+ "title": "product数据选择视图",
+ "caption": "产品",
+ "viewtype": "DEPICKUPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ProductPickupView",
+ "viewfilename": "product-pickup-view",
+ "viewtag": "7df0f0deee91304e0350f00baa8a92d6",
+ "memo": ""
+ },
"storymainview_editmode": {
"title": "需求数据看板视图",
"caption": "需求",
@@ -549,6 +789,26 @@
"viewtag": "81b0cee2fedff8f4902c0d735714e5af",
"memo": ""
},
+ "groupmaingridview": {
+ "title": "group表格视图",
+ "caption": "群组",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "GroupMainGridView",
+ "viewfilename": "group-main-grid-view",
+ "viewtag": "8399a93b13ffd4ecea6c65e7804a1353",
+ "memo": ""
+ },
+ "usereditview": {
+ "title": "user编辑视图",
+ "caption": "用户信息",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "UserEditView",
+ "viewfilename": "user-edit-view",
+ "viewtag": "83b1f6c353e9383e36b8d58eec845267",
+ "memo": ""
+ },
"projectgridview": {
"title": "项目",
"caption": "项目",
@@ -569,6 +829,16 @@
"viewtag": "85ee867b09a2d6303c061d91374ec975",
"memo": ""
},
+ "taskworkinfoeditview9": {
+ "title": "工时信息",
+ "caption": "工时信息",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "zentao",
+ "viewname": "TaskWorkInfoEditView9",
+ "viewfilename": "task-work-info-edit-view9",
+ "viewtag": "8ca35f54383cecb05da77cdb1a6588fd",
+ "memo": ""
+ },
"productleftsidebarlistview": {
"title": "所有产品",
"caption": "产品",
@@ -579,6 +849,16 @@
"viewtag": "8ca39819b87c5e3e8669fcd7409cf9a2",
"memo": ""
},
+ "productpickupgridview": {
+ "title": "product选择表格视图",
+ "caption": "产品",
+ "viewtype": "DEPICKUPGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ProductPickupGridView",
+ "viewfilename": "product-pickup-grid-view",
+ "viewtag": "8d53a973712c13f448efb8e2182ccc0b",
+ "memo": ""
+ },
"storymainview9": {
"title": "需求编辑视图",
"caption": "需求",
@@ -719,6 +999,36 @@
"viewtag": "aae1ade339fe6a2ebe367489f6393db1",
"memo": ""
},
+ "companymainview": {
+ "title": "公司数据看板视图",
+ "caption": "公司信息",
+ "viewtype": "DEPORTALVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CompanyMainView",
+ "viewfilename": "company-main-view",
+ "viewtag": "abc58a7e8f6c6860ef5ea3ead20e5ffd",
+ "memo": ""
+ },
+ "taskopentaskview": {
+ "title": "开始任务",
+ "caption": "开始任务",
+ "viewtype": "DEOPTVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskOpenTaskView",
+ "viewfilename": "task-open-task-view",
+ "viewtag": "abca63015fc84466991c6479f955f6d0",
+ "memo": ""
+ },
+ "companyeditview": {
+ "title": "company编辑视图",
+ "caption": "公司信息",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CompanyEditView",
+ "viewfilename": "company-edit-view",
+ "viewtag": "b39a7a76c2175803831235ae3aeef05b",
+ "memo": ""
+ },
"productdashboardinfomainview9": {
"title": "产品信息",
"caption": "产品",
@@ -729,6 +1039,16 @@
"viewtag": "b5d2389c0dd12ae614b319090ecc2361",
"memo": ""
},
+ "taskclosepausecancelview": {
+ "title": "任务选项操作视图",
+ "caption": "任务",
+ "viewtype": "DEOPTVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskClosePauseCancelView",
+ "viewfilename": "task-close-pause-cancel-view",
+ "viewtag": "b78229d8342c2c13ddd8e403a7d853bc",
+ "memo": ""
+ },
"storympickupview": {
"title": "关联需求",
"caption": "关联需求",
@@ -749,6 +1069,16 @@
"viewtag": "b9e94e3713c82ebab002631bda872b94",
"memo": ""
},
+ "depteditview": {
+ "title": "dept编辑视图",
+ "caption": "部门信息",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "DeptEditView",
+ "viewfilename": "dept-edit-view",
+ "viewtag": "bae11f9447355ecc9e2cdff2490e6d11",
+ "memo": ""
+ },
"productmaindashboardview": {
"title": "产品数据看板视图",
"caption": "产品",
@@ -759,6 +1089,16 @@
"viewtag": "bc36be2ee4a78e69c13665a8ad03ab6a",
"memo": ""
},
+ "userpickupgridview": {
+ "title": "user选择表格视图",
+ "caption": "用户",
+ "viewtype": "DEPICKUPGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "UserPickupGridView",
+ "viewfilename": "user-pickup-grid-view",
+ "viewtag": "bd3043a0eb4bed8abd005228a4e729af",
+ "memo": ""
+ },
"modulepickupgridview": {
"title": "模块选择",
"caption": "模块",
@@ -779,6 +1119,16 @@
"viewtag": "c9410c9f72535adf1fff569d5243edd1",
"memo": ""
},
+ "taskdoneview": {
+ "title": "完成任务",
+ "caption": "完成任务",
+ "viewtype": "DEOPTVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskDoneView",
+ "viewfilename": "task-done-view",
+ "viewtag": "c9c256aef78723e1bf9ddc1d38667c3f",
+ "memo": ""
+ },
"modulepickupview": {
"title": "模块选择",
"caption": "模块",
@@ -829,6 +1179,26 @@
"viewtag": "D1283E46-401A-4CFD-A7A1-BF5B90197463",
"memo": ""
},
+ "groupeditview": {
+ "title": "group编辑视图",
+ "caption": "分组信息",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "GroupEditView",
+ "viewfilename": "group-edit-view",
+ "viewtag": "d2de1e2449f8c1cf2e0310f5477eef4b",
+ "memo": ""
+ },
+ "usermaingridview": {
+ "title": "user表格视图",
+ "caption": "用户",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "UserMainGridView",
+ "viewfilename": "user-main-grid-view",
+ "viewtag": "d364bfbf7092ee45cd0acae49fac77ab",
+ "memo": ""
+ },
"branchpmeditview": {
"title": "平台管理",
"caption": "产品的分支和平台信息",
@@ -839,6 +1209,16 @@
"viewtag": "d4cb26555e6d81a172652580cf7d9f7f",
"memo": ""
},
+ "companymainview9": {
+ "title": "公司编辑视图",
+ "caption": "公司",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "zentao",
+ "viewname": "CompanyMainView9",
+ "viewfilename": "company-main-view9",
+ "viewtag": "d7f401156de51eb49cdb10a6fb9263ee",
+ "memo": ""
+ },
"storymain2gridview": {
"title": "story表格视图",
"caption": "需求",
@@ -849,6 +1229,16 @@
"viewtag": "dea346284a2fbb66467c4838c1b3f577",
"memo": ""
},
+ "actionalltrendslistview": {
+ "title": "系统日志列表视图",
+ "caption": "系统日志",
+ "viewtype": "DELISTVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ActionAllTrendsListView",
+ "viewfilename": "action-all-trends-list-view",
+ "viewtag": "df57be69540a2e80fee7f3575162b93a",
+ "memo": ""
+ },
"producteditview": {
"title": "product编辑视图",
"caption": "产品",
@@ -869,6 +1259,36 @@
"viewtag": "e396b6f39451e3bf963aec602106adf0",
"memo": ""
},
+ "projectstatseditview9": {
+ "title": "项目统计编辑视图",
+ "caption": "项目统计",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "ibiz",
+ "viewname": "ProjectStatsEditView9",
+ "viewfilename": "project-stats-edit-view9",
+ "viewtag": "e444135470a806822b9b950e15c42a3e",
+ "memo": ""
+ },
+ "storyeditview_storychange": {
+ "title": "需求编辑视图",
+ "caption": "变更",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "StoryEditView_StoryChange",
+ "viewfilename": "story-edit-view-story-change",
+ "viewtag": "e54598b1e6d38d7c6ce8231b531b46bd",
+ "memo": ""
+ },
+ "deptpickupgridview": {
+ "title": "dept选择表格视图",
+ "caption": "部门",
+ "viewtype": "DEPICKUPGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "DeptPickupGridView",
+ "viewfilename": "dept-pickup-grid-view",
+ "viewtag": "e644f7976b08c3d7f14fd7e1d5329da8",
+ "memo": ""
+ },
"taskeditview": {
"title": "task编辑视图",
"caption": "任务",
@@ -879,6 +1299,16 @@
"viewtag": "ea141fddc78fd1af4d06e494baf12cc1",
"memo": ""
},
+ "bugdashboardmaineditview9": {
+ "title": "主信息",
+ "caption": "Bug",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "zentao",
+ "viewname": "BugDashboardMainEditView9",
+ "viewfilename": "bug-dashboard-main-edit-view9",
+ "viewtag": "ec9a5987de12c718961f243f4034efea",
+ "memo": ""
+ },
"casestepgridview": {
"title": "casestep表格视图",
"caption": "用例步骤",
diff --git a/app_Web/src/app-register.ts b/app_Web/src/app-register.ts
index 9fd99db26c682d4e6b4067f439a3433f12500141..b90abce86d382116ed9eeacb88131f518a8e4021 100644
--- a/app_Web/src/app-register.ts
+++ b/app_Web/src/app-register.ts
@@ -76,6 +76,7 @@ import AppDepartmentSelect from './components/app-department-select/app-departme
import IBizGroupSelect from './components/ibiz-group-select/ibiz-group-select.vue'
import IBizGroupPicker from './components/ibiz-group-picker/ibiz-group-picker.vue'
import AppWFApproval from './components/app-wf-approval/app-wf-approval.vue'
+import Breadcrumb from './components/app-breadcrumb/app-breadcrumb.vue';
// 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister;
@@ -161,5 +162,6 @@ export const AppComponents = {
v.component('ibiz-group-select',IBizGroupSelect);
v.component('ibiz-group-picker',IBizGroupPicker);
v.component('app-wf-approval',AppWFApproval);
+ v.component('app-breadcrumb',Breadcrumb);
},
};
\ No newline at end of file
diff --git a/app_Web/src/codelist/role.ts b/app_Web/src/codelist/role.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d8194adbdc6db182b5ba58d94dfe9c0673a1c2d0
--- /dev/null
+++ b/app_Web/src/codelist/role.ts
@@ -0,0 +1,149 @@
+import GroupService from '@service/group/group-service';
+/**
+ * 代码表--群组(动态)
+ *
+ * @export
+ * @class Role
+ */
+export default class Role {
+
+ /**
+ * 是否启用缓存
+ *
+ * @type boolean
+ * @memberof Role
+ */
+ public isEnableCache:boolean = true;
+
+ /**
+ * 过期时间
+ *
+ * @type any
+ * @memberof Role
+ */
+ public expirationTime:any;
+
+ /**
+ * 缓存超长时长
+ *
+ * @type any
+ * @memberof Role
+ */
+ public cacheTimeout:any = -1;
+
+ /**
+ * 代码表模型对象
+ *
+ * @type any
+ * @memberof Role
+ */
+ public codelistModel:any = {
+ codelistid:"Role"
+ };
+
+ /**
+ * 自定义参数集合
+ *
+ * @type any
+ * @memberof Role
+ */
+ public userParamNames:any ={
+ }
+
+ /**
+ * 查询参数集合
+ *
+ * @type any
+ * @memberof Role
+ */
+ public queryParamNames:any ={
+ }
+
+ /**
+ * 群组应用实体服务对象
+ *
+ * @type {GroupService}
+ * @memberof Role
+ */
+ public groupService: GroupService = new GroupService();
+
+
+ /**
+ * 处理数据
+ *
+ * @public
+ * @param {any[]} items
+ * @returns {any[]}
+ * @memberof Role
+ */
+ public doItems(items: any[]): any[] {
+ let _items: any[] = [];
+ items.forEach((item: any) => {
+ let itemdata:any = {};
+ Object.assign(itemdata,{id:item.id});
+ Object.assign(itemdata,{value:item.id});
+ Object.assign(itemdata,{text:item.name});
+
+ _items.push(itemdata);
+ });
+ return _items;
+ }
+
+ /**
+ * 获取数据项
+ *
+ * @param {*} context
+ * @param {*} data
+ * @param {boolean} [isloading]
+ * @returns {Promise}
+ * @memberof Role
+ */
+ public getItems(context: any={}, data: any={}, isloading?: boolean): Promise {
+ return new Promise((resolve, reject) => {
+ data = this.handleQueryParam(data);
+ const promise: Promise = this.groupService.FetchDefault(context, data, isloading);
+ promise.then((response: any) => {
+ if (response && response.status === 200) {
+ const data = response.data;
+ resolve(this.doItems(data));
+ } else {
+ resolve([]);
+ }
+ }).catch((response: any) => {
+ console.error(response);
+ reject(response);
+ });
+ });
+ }
+
+ /**
+ * 处理查询参数
+ * @param data 传入data
+ * @memberof Role
+ */
+ public handleQueryParam(data:any){
+ let tempData:any = data?JSON.parse(JSON.stringify(data)):{};
+ if(this.userParamNames && Object.keys(this.userParamNames).length >0){
+ Object.keys(this.userParamNames).forEach((name: string) => {
+ if (!name) {
+ return;
+ }
+ let value: string | null = this.userParamNames[name];
+ if (value && value.startsWith('%') && value.endsWith('%')) {
+ const key = value.substring(1, value.length - 1);
+ if (this.codelistModel && this.codelistModel.hasOwnProperty(key)) {
+ value = (this.codelistModel[key] !== null && this.codelistModel[key] !== undefined) ? this.codelistModel[key] : null;
+ } else {
+ value = null;
+ }
+ }
+ Object.assign(tempData, { [name]: value });
+ });
+ }
+ Object.assign(tempData,{page: 0, size: 1000});
+ if(this.queryParamNames && Object.keys(this.queryParamNames).length > 0){
+ Object.assign(tempData,this.queryParamNames);
+ }
+ return tempData;
+ }
+}
diff --git a/app_Web/src/components/app-actionbar/app-actionbar.less b/app_Web/src/components/app-actionbar/app-actionbar.less
index 16b3c63a27b4be6adc150ba9e99d06764419e64a..217cd483f17929164152ff31a08b04a06943020d 100644
--- a/app_Web/src/components/app-actionbar/app-actionbar.less
+++ b/app_Web/src/components/app-actionbar/app-actionbar.less
@@ -6,6 +6,17 @@
background: var(--view-button-background-color);
border-radius: 5px;
+ .app-actionbar-item {
+
+ >.ivu-btn.ivu-btn-text {
+ color: var(--view-button-color);
+ }
+
+ >.ivu-btn.ivu-btn-text:hover {
+ color: var(--view-button-background-color-active);
+ }
+ }
+
.app-actionbar-item:nth-child(n + 2) {
border-left: 1px solid var(--app-dividing-line-color-bright);
}
diff --git a/app_Web/src/components/app-autocomplete/app-autocomplete.vue b/app_Web/src/components/app-autocomplete/app-autocomplete.vue
index a9ab48de6e78b9da79a8d25a9b3fd38ffd9a3139..97641ff0f56acb5cd210d2207295033139b7f4df 100644
--- a/app_Web/src/components/app-autocomplete/app-autocomplete.vue
+++ b/app_Web/src/components/app-autocomplete/app-autocomplete.vue
@@ -173,29 +173,22 @@ export default class AppAutocomplete extends Vue {
* @param callback
*/
public onSearch(query: any, callback: any): void {
+ // 公共参数处理
+ let data: any = {};
+ const bcancel: boolean = this.handlePublicParams(data);
+ if (!bcancel) {
+ return;
+ }
+ // 参数处理
+ let _context = data.context;
+ let _param = data.param;
// 处理搜索参数
query = !query ? '' : query;
if (!this.inputState && Object.is(query, this.value)) {
query = '';
}
this.inputState = false;
- // 合并视图上下文参数和视图参数
- let param: any = JSON.parse(JSON.stringify(this.viewparams));
- let context: any = JSON.parse(JSON.stringify(this.context));
- Object.assign(param, { query: query });
- // 附加参数处理
- if (this.itemParam.context) {
- let _context = this.$util.formatData(this.data,this.itemParam.context);
- Object.assign(context,_context);
- }
- if (this.itemParam.param) {
- let _param = this.$util.formatData(this.data,this.itemParam.param);
- Object.assign(param,_param);
- }
- if (this.itemParam.parentdata) {
- let _parentdata = this.$util.formatData(this.data,this.itemParam.parentdata);
- Object.assign(param,_parentdata);
- }
+ Object.assign(_param, { query: query });
// 错误信息国际化
let error: string = (this.$t('components.appAutocomplete.error') as any);
let miss: string = (this.$t('components.appAutocomplete.miss') as any);
@@ -208,7 +201,7 @@ export default class AppAutocomplete extends Vue {
} else if(!this.acParams.interfaceName) {
this.$Notice.error({ title: error, desc: miss+'interfaceName' });
} else {
- this.service.getItems(this.acParams.serviceName,this.acParams.interfaceName, context, param).then((response: any) => {
+ this.service.getItems(this.acParams.serviceName,this.acParams.interfaceName, _context, _param).then((response: any) => {
if (!response) {
this.$Notice.error({ title: error, desc: requestException });
} else {
@@ -274,6 +267,34 @@ export default class AppAutocomplete extends Vue {
this.$forceUpdate();
}
+
+ /**
+ * 公共参数处理
+ *
+ * @param {*} arg
+ * @returns
+ * @memberof AppAutocomplete
+ */
+ public handlePublicParams(arg: any): boolean {
+ if (!this.data) {
+ this.$Notice.error({ title: (this.$t('components.appPicker.error') as any), desc: (this.$t('components.appPicker.formdataException') as any) });
+ return false;
+ }
+ // 合并表单参数
+ arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
+ arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
+ // 附加参数处理
+ if (this.itemParam && this.itemParam.context) {
+ let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
+ Object.assign(arg.context,_context);
+ }
+ if (this.itemParam && this.itemParam.param) {
+ let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
+ Object.assign(arg.param,_param);
+ }
+ return true;
+ }
+
}
diff --git a/app_Web/src/components/app-breadcrumb/app-breadcrumb.less b/app_Web/src/components/app-breadcrumb/app-breadcrumb.less
new file mode 100644
index 0000000000000000000000000000000000000000..e8ba311b9ffcf598a2e17e88f650f4005e6b723f
--- /dev/null
+++ b/app_Web/src/components/app-breadcrumb/app-breadcrumb.less
@@ -0,0 +1,17 @@
+
+.el-breadcrumb__inner,
+.el-breadcrumb__inner a {
+ font-weight: 400 !important;
+}
+
+.app-breadcrumb.el-breadcrumb {
+ display: inline-block;
+ font-size: 14px;
+ line-height: 50px;
+ margin-left: 8px;
+
+ .no-redirect {
+ color: #97a8be;
+ cursor: text;
+ }
+}
\ No newline at end of file
diff --git a/app_Web/src/components/app-breadcrumb/app-breadcrumb.vue b/app_Web/src/components/app-breadcrumb/app-breadcrumb.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7bdb7a03c7b3acf4196a81807736025dafde4cd3
--- /dev/null
+++ b/app_Web/src/components/app-breadcrumb/app-breadcrumb.vue
@@ -0,0 +1,91 @@
+
+
+
+
+ {{ $t(item.meta.caption) }}
+ {{ $t(item.meta.caption) }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_Web/src/components/app-checkbox-list/app-checkbox-list.vue b/app_Web/src/components/app-checkbox-list/app-checkbox-list.vue
index 321be2c7527080ee08228976116488a65e76afe8..6d8caf3e905f258ba1d89871de081b375e5a0999 100644
--- a/app_Web/src/components/app-checkbox-list/app-checkbox-list.vue
+++ b/app_Web/src/components/app-checkbox-list/app-checkbox-list.vue
@@ -7,7 +7,7 @@
diff --git a/app_Web/src/components/app-column-link/app-column-link.vue b/app_Web/src/components/app-column-link/app-column-link.vue
index 0d1ac2ab63cb8bd88d21591d5ae7fa88ffa25f74..5a8426443cf5c883e797afe2ef5765dc9f8549bb 100644
--- a/app_Web/src/components/app-column-link/app-column-link.vue
+++ b/app_Web/src/components/app-column-link/app-column-link.vue
@@ -279,8 +279,8 @@ export default class AppColumnLink extends Vue {
return false;
}
// 合并表单参数
- arg.param = JSON.parse(JSON.stringify(this.viewparams));
- arg.context = JSON.parse(JSON.stringify(this.context));
+ arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
+ arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
return true;
}
diff --git a/app_Web/src/components/app-embed-picker/app-embed-picker.vue b/app_Web/src/components/app-embed-picker/app-embed-picker.vue
index 730f0586294507c5c22d31143caf3c14d5e8d92e..96ed7021af7a27fe93b8fb4404a694da92579d10 100644
--- a/app_Web/src/components/app-embed-picker/app-embed-picker.vue
+++ b/app_Web/src/components/app-embed-picker/app-embed-picker.vue
@@ -170,15 +170,15 @@ export default class AppEmbedPicker extends Vue {
let context: any = JSON.parse(JSON.stringify(this.context));
// 附加参数处理
if (this.itemParam.context) {
- let _context = this.$util.formatData(activeData,this.itemParam.context);
+ let _context = this.$util.formatData(activeData,context,this.itemParam.context);
Object.assign(context,_context);
}
if (this.itemParam.param) {
- let _param = this.$util.formatData(activeData,this.itemParam.param);
+ let _param = this.$util.formatData(activeData,param,this.itemParam.param);
Object.assign(param,_param);
}
if (this.itemParam.parentdata) {
- let _parentdata = this.$util.formatData(activeData,this.itemParam.parentdata);
+ let _parentdata = this.$util.formatData(activeData,param,this.itemParam.parentdata);
Object.assign(param,_parentdata);
}
this.viewdata = JSON.stringify(context);
diff --git a/app_Web/src/components/app-mpicker/app-mpicker.vue b/app_Web/src/components/app-mpicker/app-mpicker.vue
index f3086877921cae6a26e00abadca5a03584187463..942544aeb60078424bac2fd4450b3696453063f9 100644
--- a/app_Web/src/components/app-mpicker/app-mpicker.vue
+++ b/app_Web/src/components/app-mpicker/app-mpicker.vue
@@ -44,6 +44,14 @@ export default class AppMpicker extends Vue {
*/
@Prop() curvalue?: any;
+ /**
+ * 表单项参数
+ *
+ * @type {any}
+ * @memberof AppPicker
+ */
+ @Prop() public itemParam: any;
+
/**
* 表单项名称
*/
@@ -147,9 +155,18 @@ export default class AppMpicker extends Vue {
* @memberof AppMpicker
*/
public onSearch(query: any) {
- let param: any = { query: query };
+ // 公共参数处理
+ let data: any = {};
+ const bcancel: boolean = this.handlePublicParams(data);
+ if (!bcancel) {
+ return;
+ }
+ // 参数处理
+ let _context = data.context;
+ let _param = data.param;
+ Object.assign(_param ,{ query: query });
if (this.activeData) {
- Object.assign(param, { srfreferdata: this.activeData });
+ Object.assign(_param, { srfreferdata: this.activeData });
}
// 错误信息国际化
let error: string = (this.$t('components.appMpicker.error') as any);
@@ -162,7 +179,7 @@ export default class AppMpicker extends Vue {
} else if(!this.acParams.interfaceName) {
this.$Notice.error({ title: error, desc: miss+'interfaceName' });
} else {
- this.service.getItems(this.acParams.serviceName,this.acParams.interfaceName, param).then((response: any) => {
+ this.service.getItems(this.acParams.serviceName,this.acParams.interfaceName, _context, _param).then((response: any) => {
if (!response) {
this.$Notice.error({ title: error, desc: requestException });
} else {
@@ -216,6 +233,33 @@ export default class AppMpicker extends Vue {
}
}
+ /**
+ * 公共参数处理
+ *
+ * @param {*} arg
+ * @returns
+ * @memberof AppMpicker
+ */
+ public handlePublicParams(arg: any): boolean {
+ if (!this.activeData) {
+ this.$Notice.error({ title: (this.$t('components.appPicker.error') as any), desc: (this.$t('components.appPicker.formdataException') as any) });
+ return false;
+ }
+ // 合并表单参数
+ arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
+ arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
+ // 附加参数处理
+ if (this.itemParam && this.itemParam.context) {
+ let _context = this.$util.formatData(this.activeData,arg.context,this.itemParam.context);
+ Object.assign(arg.context,_context);
+ }
+ if (this.itemParam && this.itemParam.param) {
+ let _param = this.$util.formatData(this.activeData,arg.param,this.itemParam.param);
+ Object.assign(arg.param,_param);
+ }
+ return true;
+ }
+
/**
* 打开视图
*
@@ -229,8 +273,15 @@ export default class AppMpicker extends Vue {
if (this.pickupView && Object.keys(this.pickupView).length > 0) {
// 参数处理
const view = { ...this.pickupView };
- let _viewparams = JSON.parse(JSON.stringify(this.viewparams));
- let _context = JSON.parse(JSON.stringify(this.context));
+ // 公共参数处理
+ let data: any = {};
+ const bcancel: boolean = this.handlePublicParams(data);
+ if (!bcancel) {
+ return;
+ }
+ // 参数处理
+ let _context = data.context;
+ let _viewparams = data.param;
let _selectItems = JSON.parse(JSON.stringify(this.selectItems));
if(!Object.is(this.deKeyField,"srfkey")){
_selectItems.forEach((item:any, index:number)=>{
diff --git a/app_Web/src/components/app-picker-select-view/app-picker-select-view.less b/app_Web/src/components/app-picker-select-view/app-picker-select-view.less
index 57233e0e4902e0d1d80926dc40073d0abd1d1fae..615cfab87e817af57b82ba413b4b95da56fa3ed6 100644
--- a/app_Web/src/components/app-picker-select-view/app-picker-select-view.less
+++ b/app_Web/src/components/app-picker-select-view/app-picker-select-view.less
@@ -22,6 +22,14 @@
.ivu-select-dropdown{
max-height: 200px;
overflow: scroll;
+ margin: 0;
+ padding: 0;
+ .ivu-dropdown-menu{
+ .view-container{
+ margin: 0;
+ padding: 0;
+ }
+ }
.tree-contant{
overflow:inherit;
}
diff --git a/app_Web/src/components/app-picker-select-view/app-picker-select-view.vue b/app_Web/src/components/app-picker-select-view/app-picker-select-view.vue
index 3c83be111488f266caa674b5d1bbb375aca1c897..bbc960ff17f5e7986fba17469a5bd509a516dfad 100644
--- a/app_Web/src/components/app-picker-select-view/app-picker-select-view.vue
+++ b/app_Web/src/components/app-picker-select-view/app-picker-select-view.vue
@@ -255,21 +255,17 @@ export default class AppPickerSelectView extends Vue {
return false;
}
// 合并表单参数
- arg.param = JSON.parse(JSON.stringify(this.viewparams));
- arg.context = JSON.parse(JSON.stringify(this.context));
+ arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
+ arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam.context) {
- let _context = this.$util.formatData(this.data,this.itemParam.context);
+ let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam.param) {
- let _param = this.$util.formatData(this.data,this.itemParam.param);
+ let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
- if (this.itemParam.parentdata) {
- let _parentdata = this.$util.formatData(this.data,this.itemParam.parentdata);
- Object.assign(arg.param,_parentdata);
- }
return true;
}
diff --git a/app_Web/src/components/app-picker/app-picker.vue b/app_Web/src/components/app-picker/app-picker.vue
index 2f32ba8336bb31a53bfb2942529a0ca11de9993c..1709a7ecd992cc80c6a6e30ad5ac4163f1a481be 100644
--- a/app_Web/src/components/app-picker/app-picker.vue
+++ b/app_Web/src/components/app-picker/app-picker.vue
@@ -410,9 +410,9 @@ export default class AppPicker extends Vue {
// 判断打开方式
if (view.placement && !Object.is(view.placement, '')) {
if (Object.is(view.placement, 'POPOVER')) {
- this.openPopOver($event, view, _context, data);
+ this.openPopOver($event, view, _context, _param);
} else {
- this.openDrawer(view, _context, data);
+ this.openDrawer(view, _context, _param);
}
} else {
this.openPopupModal(view, _context, _param);
@@ -647,21 +647,17 @@ export default class AppPicker extends Vue {
return false;
}
// 合并表单参数
- arg.param = JSON.parse(JSON.stringify(this.viewparams));
- arg.context = JSON.parse(JSON.stringify(this.context));
+ arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
+ arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
- if (this.itemParam.context) {
- let _context = this.$util.formatData(this.data,this.itemParam.context);
+ if (this.itemParam && this.itemParam.context) {
+ let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
- if (this.itemParam.param) {
- let _param = this.$util.formatData(this.data,this.itemParam.param);
+ if (this.itemParam && this.itemParam.param) {
+ let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
- if (this.itemParam.parentdata) {
- let _parentdata = this.$util.formatData(this.data,this.itemParam.parentdata);
- Object.assign(arg.param,_parentdata);
- }
return true;
}
@@ -691,9 +687,9 @@ export default class AppPicker extends Vue {
// 判断打开方式
if (view.placement && !Object.is(view.placement, '')) {
if (Object.is(view.placement, 'POPOVER')) {
- this.openPopOver($event, view, _context, data);
+ this.openPopOver($event, view, _context, _param);
} else {
- this.openDrawer(view, _context, data);
+ this.openDrawer(view, _context, _param);
}
} else {
this.openPopupModal(view, _context, _param);
diff --git a/app_Web/src/components/app-radio-group/app-radio-group.vue b/app_Web/src/components/app-radio-group/app-radio-group.vue
index 5616296c2a539fe56114728278a8db42b9574201..3df0ab185148ebd826a3b3e07831ed3e3800edd5 100644
--- a/app_Web/src/components/app-radio-group/app-radio-group.vue
+++ b/app_Web/src/components/app-radio-group/app-radio-group.vue
@@ -6,7 +6,7 @@
+
+
\ No newline at end of file
diff --git a/app_Web/src/components/codelist/codelist.vue b/app_Web/src/components/codelist/codelist.vue
index 5bbe204d9c14b06ad668a3e0193c659e6ff9a98f..8a0f244b639028414ce11ac15ab6226a2481ab2e 100644
--- a/app_Web/src/components/codelist/codelist.vue
+++ b/app_Web/src/components/codelist/codelist.vue
@@ -37,14 +37,14 @@ export default class CodeList extends Vue {
* 代码表类型
*
* @type {string}
- * @memberof AppCheckBox
+ * @memberof CodeList
*/
@Prop() public codelistType?: string;
/**
* 当前值
* @type {any}
- * @memberof SelectPicker
+ * @memberof CodeList
*
*/
@Prop() public value?: string;
@@ -52,24 +52,56 @@ export default class CodeList extends Vue {
/**
* 获取或模式
* @type {boolean}
- * @memberof SelectPicker
+ * @memberof CodeList
*/
@Prop({default:"STR"}) public renderMode?: string;
/**
* 文本分隔符
* @type {boolean}
- * @memberof SelectPicker
+ * @memberof CodeList
*/
@Prop({default:'、'}) public textSeparator?: string;
/**
* 值分隔符
* @type {boolean}
- * @memberof SelectPicker
+ * @memberof CodeList
*/
@Prop({default:','}) public valueSeparator?: string;
+ /**
+ * 传入表单数据
+ *
+ * @type {*}
+ * @memberof CodeList
+ */
+ @Prop() public data?: any;
+
+ /**
+ * 传入额外参数
+ *
+ * @type {*}
+ * @memberof CodeList
+ */
+ @Prop() public itemParam?: any;
+
+ /**
+ * 视图上下文
+ *
+ * @type {*}
+ * @memberof CodeList
+ */
+ @Prop() public context!: any;
+
+ /**
+ * 视图参数
+ *
+ * @type {*}
+ * @memberof CodeList
+ */
+ @Prop() public viewparams!: any;
+
/**
* 是否为空
*
@@ -101,7 +133,7 @@ export default class CodeList extends Vue {
*/
public isUseLangres:boolean = false;
- /**
+ /**
* 数据值变化
*
* @param {*} newval
@@ -112,7 +144,18 @@ export default class CodeList extends Vue {
@Watch('value')
public onValueChange(newVal: any, oldVal: any) {
this.dataHandle();
+ }
+ /**
+ * 监听表单数据变化
+ *
+ * @memberof CodeList
+ */
+ @Watch('data',{immediate:true,deep:true})
+ onDataChange(newVal: any, oldVal: any) {
+ if(newVal){
+ this.dataHandle();
+ }
}
/**
@@ -131,7 +174,13 @@ export default class CodeList extends Vue {
this.ifEmpty = false;
// 动态代码表处理
if (Object.is(this.codelistType, "DYNAMIC")) {
- this.codeListService.getItems(this.tag).then((res: any) => {
+ // 公共参数处理
+ let data: any = {};
+ this.handlePublicParams(data);
+ // 参数处理
+ let _context = data.context;
+ let _param = data.param;
+ this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
let items = res;
_this.setItems(items, _this);
}).catch((error: any) => {
@@ -209,6 +258,28 @@ export default class CodeList extends Vue {
}
}
+ /**
+ * 公共参数处理
+ *
+ * @param {*} arg
+ * @returns
+ * @memberof CodeList
+ */
+ public handlePublicParams(arg: any) {
+ // 合并表单参数
+ arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
+ arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
+ // 附加参数处理
+ if (this.itemParam && this.itemParam.context) {
+ let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
+ Object.assign(arg.context,_context);
+ }
+ if (this.itemParam && this.itemParam.param) {
+ let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
+ Object.assign(arg.param,_param);
+ }
+ }
+
}
diff --git a/app_Web/src/components/context-menu/context-menu.less b/app_Web/src/components/context-menu/context-menu.less
index d72fa7a7fc7af34037238bd047d7cc263eea688b..6adfa5fc566cd7ffd863c03c23adb38e826648cd 100644
--- a/app_Web/src/components/context-menu/context-menu.less
+++ b/app_Web/src/components/context-menu/context-menu.less
@@ -1,52 +1,56 @@
.context-menu-container {
- // width: 100vw;
- // height: 100vh;
- // z-index: -10000;
- // position: absolute;
- // top: 0;
- // left: 0;
- line-height: 1;
+ // width: 100vw;
+ // height: 100vh;
+ // z-index: -10000;
+ // position: absolute;
+ // top: 0;
+ // left: 0;
+ // line-height: 1;
+ z-index: 10001;
- .context-menu-content {
- z-index: 10001;
- position: absolute;
- background: #FFF;
- // border: 1px solid #e3e3e3;
- }
+ .context-menu-content {
+ position: absolute;
+ background: #FFF;
+ // border: 1px solid #e3e3e3;
+ .ivu-divider{
+ width: 100%;
+ }
- .context-menus {
+ }
- .context-menus-item {
- list-style: none;
- line-height: 36px;
- padding: 0 13px;
- margin: 0;
- font-size: 14px;
- color: #606266;
- cursor: pointer;
- outline: none;
- display: flex;
-
- .icon {
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 16px;
- width: 20px;
- margin-right: 8px;
- }
- }
-
- .context-menus-item:hover {
- background-color: #ecf5ff;
- color: #66b1ff;
- }
- }
+ .context-menus {
+
+ .context-menus-item {
+ list-style: none;
+ line-height: 36px;
+ padding: 0 13px;
+ margin: 0;
+ font-size: 14px;
+ color: #606266;
+ cursor: pointer;
+ outline: none;
+ display: flex;
+
+ .icon {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 16px;
+ width: 20px;
+ margin-right: 8px;
+ }
+ }
+
+ .context-menus-item:hover {
+ background-color: #ecf5ff;
+ color: #66b1ff;
+ }
+ }
}
.context-menu {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
}
\ No newline at end of file
diff --git a/app_Web/src/components/dropdown-list-dynamic/dropdown-list-dynamic.vue b/app_Web/src/components/dropdown-list-dynamic/dropdown-list-dynamic.vue
index 2346928e325a1b4963d4ec8edd49c137a87c9bac..c5e7d4b944aba7a101c01a90785c55c3bb2f4be3 100644
--- a/app_Web/src/components/dropdown-list-dynamic/dropdown-list-dynamic.vue
+++ b/app_Web/src/components/dropdown-list-dynamic/dropdown-list-dynamic.vue
@@ -81,7 +81,7 @@ export default class DropDownListDynamic extends Vue {
@Watch('data',{ deep: true })
onDataChange(newVal: any, val: any){
if(newVal){
- this.handleOtherParam();
+
}
}
@@ -145,26 +145,40 @@ export default class DropDownListDynamic extends Vue {
public items: any[] = [];
/**
- * 处理额外参数
- */
- public handleOtherParam(){
- if(this.itemParam){
- this.queryParam = {};
- this.otherParam = this.itemParam.parentdata;
- if(this.otherParam && Object.keys(this.otherParam).length >0){
- Object.keys(this.otherParam).forEach((item:any) =>{
- let value: string | null = this.otherParam[item];
- if (value && value.startsWith('%') && value.endsWith('%')) {
- const key = value.substring(1, value.length - 1);
- if (this.data && this.data.hasOwnProperty(key)) {
- value = (this.data[key] !== null && this.data[key] !== undefined) ? this.data[key] : null;
- } else {
- value = null;
- }
- }
- Object.assign(this.queryParam,{[item]:value});
- })
- }
+ * 视图上下文
+ *
+ * @type {*}
+ * @memberof AppAutocomplete
+ */
+ @Prop() public context!: any;
+
+ /**
+ * 视图参数
+ *
+ * @type {*}
+ * @memberof AppFormDRUIPart
+ */
+ @Prop() public viewparams!: any;
+
+ /**
+ * 公共参数处理
+ *
+ * @param {*} arg
+ * @returns
+ * @memberof DropDownListDynamic
+ */
+ public handlePublicParams(arg: any) {
+ // 合并表单参数
+ arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
+ arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
+ // 附加参数处理
+ if (this.itemParam.context) {
+ let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
+ Object.assign(arg.context,_context);
+ }
+ if (this.itemParam.param) {
+ let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
+ Object.assign(arg.param,_param);
}
}
@@ -182,7 +196,13 @@ export default class DropDownListDynamic extends Vue {
console.log(`----${this.tag}----代码表不存在`);
}
}else if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
- this.codeListService.getItems(this.tag,{},this.queryParam).then((res:any) => {
+ // 公共参数处理
+ let data: any = {};
+ this.handlePublicParams(data);
+ // 参数处理
+ let _context = data.context;
+ let _param = data.param;
+ this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
@@ -199,7 +219,13 @@ export default class DropDownListDynamic extends Vue {
public onClick($event:any){
if($event){
if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
- this.codeListService.getItems(this.tag,{},this.queryParam).then((res:any) => {
+ // 公共参数处理
+ let data: any = {};
+ this.handlePublicParams(data);
+ // 参数处理
+ let _context = data.context;
+ let _param = data.param;
+ this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
diff --git a/app_Web/src/components/dropdown-list-mpicker/dropdown-list-mpicker.vue b/app_Web/src/components/dropdown-list-mpicker/dropdown-list-mpicker.vue
index a9a1cbf66f0edd628b1e3e2ed59eed0d9a6e5d46..de6bd027108295a5f217e85095508fcebd8549fe 100644
--- a/app_Web/src/components/dropdown-list-mpicker/dropdown-list-mpicker.vue
+++ b/app_Web/src/components/dropdown-list-mpicker/dropdown-list-mpicker.vue
@@ -84,6 +84,38 @@ export default class DropDownListMpicker extends Vue {
*/
@Prop() public placeholder?: string;
+ /**
+ * 传入额外参数
+ *
+ * @type {*}
+ * @memberof DropDownListMpicker
+ */
+ @Prop() public itemParam?: any;
+
+ /**
+ * 视图上下文
+ *
+ * @type {*}
+ * @memberof DropDownListMpicker
+ */
+ @Prop() public context!: any;
+
+ /**
+ * 视图参数
+ *
+ * @type {*}
+ * @memberof DropDownListMpicker
+ */
+ @Prop() public viewparams!: any;
+
+ /**
+ * 传入表单数据
+ *
+ * @type {*}
+ * @memberof DropDownListMpicker
+ */
+ @Prop() public data?: any;
+
/**
* 计算属性(当前值)
* @type {any}
@@ -113,6 +145,28 @@ export default class DropDownListMpicker extends Vue {
*/
public items: any[] = [];
+ /**
+ * 公共参数处理
+ *
+ * @param {*} arg
+ * @returns
+ * @memberof DropDownList
+ */
+ public handlePublicParams(arg: any) {
+ // 合并表单参数
+ arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
+ arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
+ // 附加参数处理
+ if (this.itemParam.context) {
+ let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
+ Object.assign(arg.context,_context);
+ }
+ if (this.itemParam.param) {
+ let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
+ Object.assign(arg.param,_param);
+ }
+ }
+
/**
* vue 生命周期
*
@@ -127,7 +181,13 @@ export default class DropDownListMpicker extends Vue {
console.log(`----${this.tag}----代码表不存在`);
}
}else if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
- this.codeListService.getItems(this.tag).then((res:any) => {
+ // 公共参数处理
+ let data: any = {};
+ this.handlePublicParams(data);
+ // 参数处理
+ let _context = data.context;
+ let _param = data.param;
+ this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
@@ -143,7 +203,13 @@ export default class DropDownListMpicker extends Vue {
*/
public onClick($event:any){
if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
- this.codeListService.getItems(this.tag).then((res:any) => {
+ // 公共参数处理
+ let data: any = {};
+ this.handlePublicParams(data);
+ // 参数处理
+ let _context = data.context;
+ let _param = data.param;
+ this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
diff --git a/app_Web/src/components/dropdown-list/dropdown-list.vue b/app_Web/src/components/dropdown-list/dropdown-list.vue
index 3472e8532f6601386281cebcf7af76d699e12641..dcc055caabc93c1ce34520aa1c8a0022355a1e7b 100644
--- a/app_Web/src/components/dropdown-list/dropdown-list.vue
+++ b/app_Web/src/components/dropdown-list/dropdown-list.vue
@@ -81,7 +81,7 @@ export default class DropDownList extends Vue {
@Watch('data',{ deep: true })
onDataChange(newVal: any, val: any){
if(newVal){
- this.handleOtherParam();
+
}
}
@@ -93,6 +93,22 @@ export default class DropDownList extends Vue {
*/
@Prop() public itemParam?: any;
+ /**
+ * 视图上下文
+ *
+ * @type {*}
+ * @memberof AppAutocomplete
+ */
+ @Prop() public context!: any;
+
+ /**
+ * 视图参数
+ *
+ * @type {*}
+ * @memberof AppFormDRUIPart
+ */
+ @Prop() public viewparams!: any;
+
/**
* 是否禁用
* @type {any}
@@ -145,26 +161,24 @@ export default class DropDownList extends Vue {
public items: any[] = [];
/**
- * 处理额外参数
- */
- public handleOtherParam(){
- if(this.itemParam){
- this.queryParam = {};
- this.otherParam = this.itemParam.parentdata;
- if(this.otherParam && Object.keys(this.otherParam).length >0){
- Object.keys(this.otherParam).forEach((item:any) =>{
- let value: string | null = this.otherParam[item];
- if (value && value.startsWith('%') && value.endsWith('%')) {
- const key = value.substring(1, value.length - 1);
- if (this.data && this.data.hasOwnProperty(key)) {
- value = (this.data[key] !== null && this.data[key] !== undefined) ? this.data[key] : null;
- } else {
- value = null;
- }
- }
- Object.assign(this.queryParam,{[item]:value});
- })
- }
+ * 公共参数处理
+ *
+ * @param {*} arg
+ * @returns
+ * @memberof DropDownList
+ */
+ public handlePublicParams(arg: any) {
+ // 合并表单参数
+ arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
+ arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
+ // 附加参数处理
+ if (this.itemParam && this.itemParam.context) {
+ let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
+ Object.assign(arg.context,_context);
+ }
+ if (this.itemParam && this.itemParam.param) {
+ let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
+ Object.assign(arg.param,_param);
}
}
@@ -182,7 +196,13 @@ export default class DropDownList extends Vue {
console.log(`----${this.tag}----代码表不存在`);
}
}else if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
- this.codeListService.getItems(this.tag,{},this.queryParam).then((res:any) => {
+ // 公共参数处理
+ let data: any = {};
+ this.handlePublicParams(data);
+ // 参数处理
+ let _context = data.context;
+ let _param = data.param;
+ this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
@@ -199,7 +219,13 @@ export default class DropDownList extends Vue {
public onClick($event:any){
if($event){
if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
- this.codeListService.getItems(this.tag,{},this.queryParam).then((res:any) => {
+ // 公共参数处理
+ let data: any = {};
+ this.handlePublicParams(data);
+ // 参数处理
+ let _context = data.context;
+ let _param = data.param;
+ this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
diff --git a/app_Web/src/components/ibiz-group-picker/ibiz-group-picker.vue b/app_Web/src/components/ibiz-group-picker/ibiz-group-picker.vue
index 5f76da24d0b793d0cfcd100760b3b2b6ace0d0c2..b392912b06a5df80d2dc784083a670a6451614a7 100644
--- a/app_Web/src/components/ibiz-group-picker/ibiz-group-picker.vue
+++ b/app_Web/src/components/ibiz-group-picker/ibiz-group-picker.vue
@@ -275,26 +275,30 @@ export default class IBizGroupPicker extends Vue {
\ No newline at end of file
diff --git a/app_Web/src/engine/view/edit-view-engine.ts b/app_Web/src/engine/view/edit-view-engine.ts
index cf159ec9981b4e63a1405777d77f053b92afbf80..88aaa365e40b533d661c6bd2aa45d3babccd0205 100644
--- a/app_Web/src/engine/view/edit-view-engine.ts
+++ b/app_Web/src/engine/view/edit-view-engine.ts
@@ -250,6 +250,7 @@ export default class EditViewEngine extends ViewEngine {
if (viewdata && info && !Object.is(info, '') && this.view.$tabPageExp && (viewdata.srfTitle.indexOf(" - ") === -1)) {
this.view.$tabPageExp.setCurPageCaption(viewdata.srfCaption, viewdata.srfTitle, info);
this.view.model.srfTitle = `${this.view.$t(viewdata.srfTitle)} - ${viewdata.dataInfo}`;
+ this.view.$emit('viewModelChange', this.view.model.srfTitle);
}
}
diff --git a/app_Web/src/environments/environment.ts b/app_Web/src/environments/environment.ts
index 4aabf46c6d3f5bc84dd18735fdb3052d59790b67..5df63775825b02a670e18cb259b791017f24a1db 100644
--- a/app_Web/src/environments/environment.ts
+++ b/app_Web/src/environments/environment.ts
@@ -19,6 +19,8 @@ export const Environment = {
isAppMode: true,
//统一地址
uniteAddress: "http://172.16.100.202:8114",
+ // 是否开启权限认证
+ enablePermissionValid:false,
// 是否为开发模式
devMode: true,
// 项目模板地址
diff --git a/app_Web/src/ibiz-project-core/components/action-history/action-history.less b/app_Web/src/ibiz-project-core/components/action-history/action-history.less
index 409d034c9f95a99e3cbe3deb0f265124ec3e16b1..14c73de6ee31ecd2fafd6fc79f5e3aa83de416cf 100644
--- a/app_Web/src/ibiz-project-core/components/action-history/action-history.less
+++ b/app_Web/src/ibiz-project-core/components/action-history/action-history.less
@@ -2,7 +2,19 @@
height: 100%;
margin-bottom: 6px;
+ >.action-history-header {
+ height: 35px;
+ padding: 6px 0px;
+ border-bottom: 1px solid var(--view-dividing-line-color-bright);
+
+ >.title {
+ font-size: 16px;
+ font-weight: 700;
+ }
+ }
+
>.action-wrapper {
+ height: calc(100% - 36px);
>.action-item {
min-height: 22px;
diff --git a/app_Web/src/ibiz-project-core/components/action-history/action-history.tsx b/app_Web/src/ibiz-project-core/components/action-history/action-history.tsx
index fca36b3b506c86e8070902cc557aed529dc010f7..7a01fa5412f2bd63dab99fa61f8480fe01cdce48 100644
--- a/app_Web/src/ibiz-project-core/components/action-history/action-history.tsx
+++ b/app_Web/src/ibiz-project-core/components/action-history/action-history.tsx
@@ -26,7 +26,7 @@ export class ActionHistory extends Vue {
*
* @memberof ActionHistory
*/
- @Watch('items')
+ @Watch('items', { immediate: true })
public itemsWatch(): void {
this.formatData();
}
@@ -48,18 +48,6 @@ export class ActionHistory extends Vue {
*/
protected actionType: any[] = [];
- /**
- * 组件加载完毕
- *
- * @memberof ActionHistory
- */
- public created(): void {
- const codeList2 = this.$store.getters.getCodeList('Action__type');
- if (codeList2) {
- this.actionType.push(...codeList2.items);
- }
- }
-
/**
* 格式化数据
*
@@ -67,6 +55,12 @@ export class ActionHistory extends Vue {
* @memberof ActionHistory
*/
protected formatData(): void {
+ if (this.actionType.length === 0) {
+ const codeList2 = this.$store.getters.getCodeList('Action__type');
+ if (codeList2) {
+ this.actionType.push(...codeList2.items);
+ }
+ }
this.items.forEach((item: ActionItem) => {
const data = this.actionType.find(code => Object.is(code.value, item.action));
if (data) {
@@ -82,7 +76,6 @@ export class ActionHistory extends Vue {
* @memberof ActionHistory
*/
public async loadChildren(item: ActionItem): Promise {
- this.$store.getters.getCodeList('key');
if (item && item.isLoadedChildren === true) {
item.expand = !item.expand;
this.$forceUpdate();
@@ -153,7 +146,7 @@ export class ActionHistory extends Vue {
return
{item.date},由 {item.actor} {item.actionText}
{Object.is(item.action, 'edited') && this.load ?
- this.loadChildren(item)}/>
+ this.loadChildren(item)} />
: null}
;
}
@@ -184,6 +177,9 @@ export class ActionHistory extends Vue {
*/
public render(): any {
return
+
{this.renderAction()}
;
}
diff --git a/app_Web/src/ibiz-project-core/components/product-list/product-list.tsx b/app_Web/src/ibiz-project-core/components/product-list/product-list.tsx
index 39f166cac5fa9a0c9540cf61024b3cd3f0ac075f..95824d3820241d3248267680e76a7eefabc54da1 100644
--- a/app_Web/src/ibiz-project-core/components/product-list/product-list.tsx
+++ b/app_Web/src/ibiz-project-core/components/product-list/product-list.tsx
@@ -69,16 +69,16 @@ export class ProductList extends Vue {
- 计划数:0
+ 计划数:{p.productplancnt}
- 发布数:0
+ 发布数:{p.releasecnt}
- 激活需求:0
+ 激活需求:{p.activestorycnt}
- 未解决Bug:0
+ 未解决Bug:{p.activebugcnt}
;
diff --git a/app_Web/src/ibiz-project-core/components/project-list/project-list.tsx b/app_Web/src/ibiz-project-core/components/project-list/project-list.tsx
index f97e401be5a5fb2c02f6650c5abab1dbcc1a9fbb..1545c32b6a687a9c8810dd5feabbf42e37a9579b 100644
--- a/app_Web/src/ibiz-project-core/components/project-list/project-list.tsx
+++ b/app_Web/src/ibiz-project-core/components/project-list/project-list.tsx
@@ -69,13 +69,13 @@ export class ProjectList extends Vue {
- 需求:0
+ 需求:{p.storycnt}
- 任务:0
+ 任务:{p.taskcnt}
- Bug:0
+ Bug:{p.bugcnt}
;
diff --git a/app_Web/src/interface/entity/bug.ts b/app_Web/src/interface/entity/bug.ts
index 27ebb1aff763cb722ce02df02c8b42a9c0fc10c1..d0a1c8c15eed584432eb30e1484f49d0b8252371 100644
--- a/app_Web/src/interface/entity/bug.ts
+++ b/app_Web/src/interface/entity/bug.ts
@@ -270,6 +270,14 @@ export interface Bug {
*/
resolvedby?: any;
+ /**
+ * 解决版本
+ *
+ * @returns {*}
+ * @memberof Bug
+ */
+ resolvedbuild?: any;
+
/**
* 优先级
*
@@ -461,12 +469,4 @@ export interface Bug {
* @memberof Bug
*/
testtask?: any;
-
- /**
- * 解决版本
- *
- * @returns {*}
- * @memberof Bug
- */
- resolvedbuild?: any;
}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/case.ts b/app_Web/src/interface/entity/case.ts
index 2730f0d97338b2a3ea44259afbc4b1db6779346d..1f7cff1aecb5be880e2949753b74635ef6c91f4d 100644
--- a/app_Web/src/interface/entity/case.ts
+++ b/app_Web/src/interface/entity/case.ts
@@ -333,4 +333,28 @@ export interface Case {
* @memberof Case
*/
module?: any;
+
+ /**
+ * 模块名称
+ *
+ * @returns {*}
+ * @memberof Case
+ */
+ modulename?: any;
+
+ /**
+ * 需求名称
+ *
+ * @returns {*}
+ * @memberof Case
+ */
+ storyname?: any;
+
+ /**
+ * 产品名称
+ *
+ * @returns {*}
+ * @memberof Case
+ */
+ productname?: any;
}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/company.ts b/app_Web/src/interface/entity/company.ts
new file mode 100644
index 0000000000000000000000000000000000000000..14561a03f334152744e312ee69c075f8b3c99462
--- /dev/null
+++ b/app_Web/src/interface/entity/company.ts
@@ -0,0 +1,96 @@
+/**
+ * 公司
+ *
+ * @export
+ * @interface Company
+ */
+export interface Company {
+
+ /**
+ * admins
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ admins?: any;
+
+ /**
+ * 传真
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ fax?: any;
+
+ /**
+ * 逻辑删除标志
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ deleted?: any;
+
+ /**
+ * 官网
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ website?: any;
+
+ /**
+ * id
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ id?: any;
+
+ /**
+ * 邮政编码
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ zipcode?: any;
+
+ /**
+ * 通讯地址
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ address?: any;
+
+ /**
+ * 内网
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ backyard?: any;
+
+ /**
+ * 公司名称
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ name?: any;
+
+ /**
+ * 匿名登陆
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ guest?: any;
+
+ /**
+ * 联系电话
+ *
+ * @returns {*}
+ * @memberof Company
+ */
+ phone?: any;
+}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/dept.ts b/app_Web/src/interface/entity/dept.ts
new file mode 100644
index 0000000000000000000000000000000000000000..26494e4c49abf4d378c2705415da083c362e9d4f
--- /dev/null
+++ b/app_Web/src/interface/entity/dept.ts
@@ -0,0 +1,96 @@
+/**
+ * 部门
+ *
+ * @export
+ * @interface Dept
+ */
+export interface Dept {
+
+ /**
+ * 负责人
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ manager?: any;
+
+ /**
+ * grade
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ grade?: any;
+
+ /**
+ * function
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ function?: any;
+
+ /**
+ * order
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ order?: any;
+
+ /**
+ * path
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ path?: any;
+
+ /**
+ * position
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ position?: any;
+
+ /**
+ * id
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ id?: any;
+
+ /**
+ * 部门名称
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ name?: any;
+
+ /**
+ * 上级部门
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ parentname?: any;
+
+ /**
+ * parent
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ parent?: any;
+
+ /**
+ * 无子部门
+ *
+ * @returns {*}
+ * @memberof Dept
+ */
+ isleaf?: any;
+}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/group.ts b/app_Web/src/interface/entity/group.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bd9ba57a6eb6b7b2b24469c5ddfd9c064c4bd104
--- /dev/null
+++ b/app_Web/src/interface/entity/group.ts
@@ -0,0 +1,48 @@
+/**
+ * 群组
+ *
+ * @export
+ * @interface Group
+ */
+export interface Group {
+
+ /**
+ * acl
+ *
+ * @returns {*}
+ * @memberof Group
+ */
+ acl?: any;
+
+ /**
+ * 分组描述
+ *
+ * @returns {*}
+ * @memberof Group
+ */
+ desc?: any;
+
+ /**
+ * ID
+ *
+ * @returns {*}
+ * @memberof Group
+ */
+ id?: any;
+
+ /**
+ * 分组名称
+ *
+ * @returns {*}
+ * @memberof Group
+ */
+ name?: any;
+
+ /**
+ * role
+ *
+ * @returns {*}
+ * @memberof Group
+ */
+ role?: any;
+}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/ibz-subtask.ts b/app_Web/src/interface/entity/ibz-subtask.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ec98c6f666a644236c1058b6db4c1c7762dbebdc
--- /dev/null
+++ b/app_Web/src/interface/entity/ibz-subtask.ts
@@ -0,0 +1,352 @@
+/**
+ * 子任务
+ *
+ * @export
+ * @interface IBZ_SUBTASK
+ */
+export interface IBZ_SUBTASK {
+
+ /**
+ * 由谁取消
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ canceledby?: any;
+
+ /**
+ * 预计剩余
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ left?: any;
+
+ /**
+ * 创建日期
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ openeddate?: any;
+
+ /**
+ * 标题颜色
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ color?: any;
+
+ /**
+ * 编号
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ id?: any;
+
+ /**
+ * 由谁完成
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ finishedby?: any;
+
+ /**
+ * 完成者列表
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ finishedlist?: any;
+
+ /**
+ * 实际开始
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ realstarted?: any;
+
+ /**
+ * 由谁关闭
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ closedby?: any;
+
+ /**
+ * 子状态
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ substatus?: any;
+
+ /**
+ * 关闭原因
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ closedreason?: any;
+
+ /**
+ * 最后修改日期
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ lastediteddate?: any;
+
+ /**
+ * 指派日期
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ assigneddate?: any;
+
+ /**
+ * 优先级
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ pri?: any;
+
+ /**
+ * 最后修改
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ lasteditedby?: any;
+
+ /**
+ * 任务状态
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ status?: any;
+
+ /**
+ * 任务名称
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ name?: any;
+
+ /**
+ * 关闭时间
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ closeddate?: any;
+
+ /**
+ * 任务类型
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ type?: any;
+
+ /**
+ * 指派给
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ assignedto?: any;
+
+ /**
+ * 任务描述
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ desc?: any;
+
+ /**
+ * 预计开始
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ eststarted?: any;
+
+ /**
+ * 截止日期
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ deadline?: any;
+
+ /**
+ * 已删除
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ deleted?: any;
+
+ /**
+ * 抄送给
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ mailto?: any;
+
+ /**
+ * 总计消耗
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ consumed?: any;
+
+ /**
+ * 最初预计
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ estimate?: any;
+
+ /**
+ * 由谁创建
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ openedby?: any;
+
+ /**
+ * 取消时间
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ canceleddate?: any;
+
+ /**
+ * 实际完成
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ finisheddate?: any;
+
+ /**
+ * 所属模块
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ modulename?: any;
+
+ /**
+ * 相关需求
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ storyname?: any;
+
+ /**
+ * 所属项目
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ projectname?: any;
+
+ /**
+ * 产品
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ product?: any;
+
+ /**
+ * 需求版本
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ storyversion?: any;
+
+ /**
+ * 产品
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ productname?: any;
+
+ /**
+ * 父任务
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ parentname?: any;
+
+ /**
+ * 所属项目
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ project?: any;
+
+ /**
+ * 所属模块
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ module?: any;
+
+ /**
+ * 相关需求
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ story?: any;
+
+ /**
+ * 父任务
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ parent?: any;
+
+ /**
+ * 来源Bug
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ frombug?: any;
+
+ /**
+ * 持续时间
+ *
+ * @returns {*}
+ * @memberof IBZ_SUBTASK
+ */
+ duration?: any;
+}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/product-stats.ts b/app_Web/src/interface/entity/product-stats.ts
new file mode 100644
index 0000000000000000000000000000000000000000..dc2bce47abf3756caf6a4646a976fd8984cc156f
--- /dev/null
+++ b/app_Web/src/interface/entity/product-stats.ts
@@ -0,0 +1,160 @@
+/**
+ * 产品统计
+ *
+ * @export
+ * @interface ProductStats
+ */
+export interface ProductStats {
+
+ /**
+ * 产品编号
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ id?: any;
+
+ /**
+ * 已删除
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ deleted?: any;
+
+ /**
+ * 需求总数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ storycnt?: any;
+
+ /**
+ * 计划总数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ productplancnt?: any;
+
+ /**
+ * 发布总数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ releasecnt?: any;
+
+ /**
+ * 未开始需求数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ waitstorycnt?: any;
+
+ /**
+ * 已计划需求数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ plannedstorycnt?: any;
+
+ /**
+ * 开发中需求数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ developingstorycnt?: any;
+
+ /**
+ * 测试中需求数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ testingstorycnt?: any;
+
+ /**
+ * 已发布需求数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ releasedstorycnt?: any;
+
+ /**
+ * 未过期计划数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ unendproductplancnt?: any;
+
+ /**
+ * 剩余计划率
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ unendproductplanrate?: any;
+
+ /**
+ * 关联项目数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ resprojectcnt?: any;
+
+ /**
+ * 未完成关联项目数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ undoneresprojectcnt?: any;
+
+ /**
+ * 进行项目率
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ undoneresprojectrate?: any;
+
+ /**
+ * 维护中发布数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ normalreleasecnt?: any;
+
+ /**
+ * 维护发布率
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ normalreleaserate?: any;
+
+ /**
+ * 激活需求数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ activestorycnt?: any;
+
+ /**
+ * 未解决Bug数
+ *
+ * @returns {*}
+ * @memberof ProductStats
+ */
+ activebugcnt?: any;
+}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/product.ts b/app_Web/src/interface/entity/product.ts
index 303d0db81a262bc8f85e17d14ef7cc63e8b39229..d07f7334df2a1a518391d27c89d8a578949e6ecf 100644
--- a/app_Web/src/interface/entity/product.ts
+++ b/app_Web/src/interface/entity/product.ts
@@ -157,4 +157,36 @@ export interface Product {
* @memberof Product
*/
line?: any;
+
+ /**
+ * 未解决Bug数
+ *
+ * @returns {*}
+ * @memberof Product
+ */
+ activebugcnt?: any;
+
+ /**
+ * 计划总数
+ *
+ * @returns {*}
+ * @memberof Product
+ */
+ productplancnt?: any;
+
+ /**
+ * 发布总数
+ *
+ * @returns {*}
+ * @memberof Product
+ */
+ releasecnt?: any;
+
+ /**
+ * 激活需求数
+ *
+ * @returns {*}
+ * @memberof Product
+ */
+ activestorycnt?: any;
}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/project-stats.ts b/app_Web/src/interface/entity/project-stats.ts
new file mode 100644
index 0000000000000000000000000000000000000000..de720e2941a4f0014109dccfa99d6a982c5d11e2
--- /dev/null
+++ b/app_Web/src/interface/entity/project-stats.ts
@@ -0,0 +1,160 @@
+/**
+ * 项目统计
+ *
+ * @export
+ * @interface ProjectStats
+ */
+export interface ProjectStats {
+
+ /**
+ * 项目编号
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ id?: any;
+
+ /**
+ * 需求总数
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ storycnt?: any;
+
+ /**
+ * 任务总数
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ taskcnt?: any;
+
+ /**
+ * 任务最初预计总工时
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ totalestimate?: any;
+
+ /**
+ * 任务消耗总工时
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ totalconsumed?: any;
+
+ /**
+ * 任务预计剩余总工时
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ totalleft?: any;
+
+ /**
+ * 未完成任务总数
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ undonetaskcnt?: any;
+
+ /**
+ * 关闭需求总数
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ closedstorycnt?: any;
+
+ /**
+ * Bug总数
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ bugcnt?: any;
+
+ /**
+ * 未解决Bug总数
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ activebugcnt?: any;
+
+ /**
+ * 未关闭需求总数
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ unclosedstorycnt?: any;
+
+ /**
+ * 已结束任务总数
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ finishtaskcnt?: any;
+
+ /**
+ * 已解决Bug总数
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ finishbugcnt?: any;
+
+ /**
+ * 完成任务率
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ donetaskrate?: any;
+
+ /**
+ * 关闭需求率
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ closedstoryrate?: any;
+
+ /**
+ * 解决Bug率
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ finishbugrate?: any;
+
+ /**
+ * 已删除
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ deleted?: any;
+
+ /**
+ * 工时
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ time?: any;
+
+ /**
+ * 工时类型
+ *
+ * @returns {*}
+ * @memberof ProjectStats
+ */
+ type?: any;
+}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/project.ts b/app_Web/src/interface/entity/project.ts
index 03b8df0f14562864fe4452c880797dcd817970c5..ce7eff6a4ce72abfa0e56e972b1231ff403b7ce5 100644
--- a/app_Web/src/interface/entity/project.ts
+++ b/app_Web/src/interface/entity/project.ts
@@ -261,4 +261,28 @@ export interface Project {
* @memberof Project
*/
parent?: any;
+
+ /**
+ * 任务总数
+ *
+ * @returns {*}
+ * @memberof Project
+ */
+ taskcnt?: any;
+
+ /**
+ * Bug总数
+ *
+ * @returns {*}
+ * @memberof Project
+ */
+ bugcnt?: any;
+
+ /**
+ * 需求总数
+ *
+ * @returns {*}
+ * @memberof Project
+ */
+ storycnt?: any;
}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/sub-task.ts b/app_Web/src/interface/entity/sub-task.ts
new file mode 100644
index 0000000000000000000000000000000000000000..209bc5197615018ef629b43a58d70e73ad5518d9
--- /dev/null
+++ b/app_Web/src/interface/entity/sub-task.ts
@@ -0,0 +1,352 @@
+/**
+ * 子任务
+ *
+ * @export
+ * @interface SubTask
+ */
+export interface SubTask {
+
+ /**
+ * 由谁取消
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ canceledby?: any;
+
+ /**
+ * 预计剩余
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ left?: any;
+
+ /**
+ * 创建日期
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ openeddate?: any;
+
+ /**
+ * 标题颜色
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ color?: any;
+
+ /**
+ * 编号
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ id?: any;
+
+ /**
+ * 由谁完成
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ finishedby?: any;
+
+ /**
+ * 完成者列表
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ finishedlist?: any;
+
+ /**
+ * 实际开始
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ realstarted?: any;
+
+ /**
+ * 由谁关闭
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ closedby?: any;
+
+ /**
+ * 子状态
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ substatus?: any;
+
+ /**
+ * 关闭原因
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ closedreason?: any;
+
+ /**
+ * 最后修改日期
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ lastediteddate?: any;
+
+ /**
+ * 指派日期
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ assigneddate?: any;
+
+ /**
+ * 优先级
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ pri?: any;
+
+ /**
+ * 最后修改
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ lasteditedby?: any;
+
+ /**
+ * 任务状态
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ status?: any;
+
+ /**
+ * 任务名称
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ name?: any;
+
+ /**
+ * 关闭时间
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ closeddate?: any;
+
+ /**
+ * 任务类型
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ type?: any;
+
+ /**
+ * 指派给
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ assignedto?: any;
+
+ /**
+ * 任务描述
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ desc?: any;
+
+ /**
+ * 预计开始
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ eststarted?: any;
+
+ /**
+ * 截止日期
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ deadline?: any;
+
+ /**
+ * 已删除
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ deleted?: any;
+
+ /**
+ * 抄送给
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ mailto?: any;
+
+ /**
+ * 总计消耗
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ consumed?: any;
+
+ /**
+ * 最初预计
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ estimate?: any;
+
+ /**
+ * 由谁创建
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ openedby?: any;
+
+ /**
+ * 取消时间
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ canceleddate?: any;
+
+ /**
+ * 实际完成
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ finisheddate?: any;
+
+ /**
+ * 所属模块
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ modulename?: any;
+
+ /**
+ * 相关需求
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ storyname?: any;
+
+ /**
+ * 所属项目
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ projectname?: any;
+
+ /**
+ * 产品
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ product?: any;
+
+ /**
+ * 需求版本
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ storyversion?: any;
+
+ /**
+ * 产品
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ productname?: any;
+
+ /**
+ * 父任务
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ parentname?: any;
+
+ /**
+ * 所属项目
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ project?: any;
+
+ /**
+ * 所属模块
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ module?: any;
+
+ /**
+ * 相关需求
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ story?: any;
+
+ /**
+ * 父任务
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ parent?: any;
+
+ /**
+ * 来源Bug
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ frombug?: any;
+
+ /**
+ * 持续时间
+ *
+ * @returns {*}
+ * @memberof SubTask
+ */
+ duration?: any;
+}
\ No newline at end of file
diff --git a/app_Web/src/interface/entity/user.ts b/app_Web/src/interface/entity/user.ts
index 11579b149101b00280c2be2a43a5ccf076e1210e..188e303a17944dffe666a9ac23d2cd412b721afd 100644
--- a/app_Web/src/interface/entity/user.ts
+++ b/app_Web/src/interface/entity/user.ts
@@ -7,7 +7,7 @@
export interface User {
/**
- * password
+ * 密码
*
* @returns {*}
* @memberof User
@@ -15,7 +15,7 @@ export interface User {
password?: any;
/**
- * address
+ * 通讯地址
*
* @returns {*}
* @memberof User
@@ -23,7 +23,7 @@ export interface User {
address?: any;
/**
- * weixin
+ * 微信
*
* @returns {*}
* @memberof User
@@ -31,7 +31,7 @@ export interface User {
weixin?: any;
/**
- * dingding
+ * 钉钉
*
* @returns {*}
* @memberof User
@@ -63,7 +63,7 @@ export interface User {
ranzhi?: any;
/**
- * account
+ * 账户
*
* @returns {*}
* @memberof User
@@ -95,7 +95,7 @@ export interface User {
scorelevel?: any;
/**
- * realname
+ * 真实姓名
*
* @returns {*}
* @memberof User
@@ -111,7 +111,7 @@ export interface User {
zipcode?: any;
/**
- * dept
+ * 所属部门
*
* @returns {*}
* @memberof User
@@ -127,7 +127,7 @@ export interface User {
commiter?: any;
/**
- * role
+ * 职位
*
* @returns {*}
* @memberof User
@@ -143,7 +143,7 @@ export interface User {
deleted?: any;
/**
- * last
+ * 最后登录
*
* @returns {*}
* @memberof User
@@ -183,7 +183,7 @@ export interface User {
score?: any;
/**
- * gender
+ * 性别
*
* @returns {*}
* @memberof User
@@ -191,7 +191,7 @@ export interface User {
gender?: any;
/**
- * mobile
+ * 手机
*
* @returns {*}
* @memberof User
@@ -207,7 +207,7 @@ export interface User {
clientlang?: any;
/**
- * visits
+ * 访问次数
*
* @returns {*}
* @memberof User
@@ -215,7 +215,7 @@ export interface User {
visits?: any;
/**
- * join
+ * 入职日期
*
* @returns {*}
* @memberof User
@@ -223,7 +223,7 @@ export interface User {
join?: any;
/**
- * email
+ * 邮箱
*
* @returns {*}
* @memberof User
@@ -255,7 +255,7 @@ export interface User {
nickname?: any;
/**
- * phone
+ * 电话
*
* @returns {*}
* @memberof User
@@ -263,7 +263,7 @@ export interface User {
phone?: any;
/**
- * id
+ * ID
*
* @returns {*}
* @memberof User
@@ -271,7 +271,7 @@ export interface User {
id?: any;
/**
- * qq
+ * QQ
*
* @returns {*}
* @memberof User
diff --git a/app_Web/src/locale/lang/en-US.ts b/app_Web/src/locale/lang/en-US.ts
index 3cfbeebff2687536f4d2b3430505a7ec1074fc9d..305aeff7541efb29db3c9273108d447e149062ea 100644
--- a/app_Web/src/locale/lang/en-US.ts
+++ b/app_Web/src/locale/lang/en-US.ts
@@ -1,25 +1,31 @@
-import productplan_en_US from '@locale/lanres/product-plan/product-plan_en_US';
-import projectproduct_en_US from '@locale/lanres/project-product/project-product_en_US';
-import case_en_US from '@locale/lanres/case/case_en_US';
-import product_en_US from '@locale/lanres/product/product_en_US';
-import subproductplan_en_US from '@locale/lanres/sub-product-plan/sub-product-plan_en_US';
-import storyspec_en_US from '@locale/lanres/story-spec/story-spec_en_US';
-import branch_en_US from '@locale/lanres/branch/branch_en_US';
-import action_en_US from '@locale/lanres/action/action_en_US';
-import casestep_en_US from '@locale/lanres/case-step/case-step_en_US';
-import story_en_US from '@locale/lanres/story/story_en_US';
-import project_en_US from '@locale/lanres/project/project_en_US';
-import history_en_US from '@locale/lanres/history/history_en_US';
-import user_en_US from '@locale/lanres/user/user_en_US';
-import productmodule_en_US from '@locale/lanres/product-module/product-module_en_US';
-import module_en_US from '@locale/lanres/module/module_en_US';
-import productlife_en_US from '@locale/lanres/product-life/product-life_en_US';
-import task_en_US from '@locale/lanres/task/task_en_US';
-import build_en_US from '@locale/lanres/build/build_en_US';
-import testtask_en_US from '@locale/lanres/test-task/test-task_en_US';
-import bug_en_US from '@locale/lanres/bug/bug_en_US';
-import ibzdoc_en_US from '@locale/lanres/ibz-doc/ibz-doc_en_US';
-import release_en_US from '@locale/lanres/release/release_en_US';
+import productplan_en_US from '@locale/lanres/entities/product-plan/product-plan_en_US';
+import projectproduct_en_US from '@locale/lanres/entities/project-product/project-product_en_US';
+import case_en_US from '@locale/lanres/entities/case/case_en_US';
+import product_en_US from '@locale/lanres/entities/product/product_en_US';
+import subproductplan_en_US from '@locale/lanres/entities/sub-product-plan/sub-product-plan_en_US';
+import storyspec_en_US from '@locale/lanres/entities/story-spec/story-spec_en_US';
+import branch_en_US from '@locale/lanres/entities/branch/branch_en_US';
+import productstats_en_US from '@locale/lanres/entities/product-stats/product-stats_en_US';
+import action_en_US from '@locale/lanres/entities/action/action_en_US';
+import group_en_US from '@locale/lanres/entities/group/group_en_US';
+import casestep_en_US from '@locale/lanres/entities/case-step/case-step_en_US';
+import dept_en_US from '@locale/lanres/entities/dept/dept_en_US';
+import company_en_US from '@locale/lanres/entities/company/company_en_US';
+import story_en_US from '@locale/lanres/entities/story/story_en_US';
+import subtask_en_US from '@locale/lanres/entities/sub-task/sub-task_en_US';
+import project_en_US from '@locale/lanres/entities/project/project_en_US';
+import history_en_US from '@locale/lanres/entities/history/history_en_US';
+import user_en_US from '@locale/lanres/entities/user/user_en_US';
+import productmodule_en_US from '@locale/lanres/entities/product-module/product-module_en_US';
+import module_en_US from '@locale/lanres/entities/module/module_en_US';
+import productlife_en_US from '@locale/lanres/entities/product-life/product-life_en_US';
+import task_en_US from '@locale/lanres/entities/task/task_en_US';
+import build_en_US from '@locale/lanres/entities/build/build_en_US';
+import testtask_en_US from '@locale/lanres/entities/test-task/test-task_en_US';
+import projectstats_en_US from '@locale/lanres/entities/project-stats/project-stats_en_US';
+import bug_en_US from '@locale/lanres/entities/bug/bug_en_US';
+import ibzdoc_en_US from '@locale/lanres/entities/ibz-doc/ibz-doc_en_US';
+import release_en_US from '@locale/lanres/entities/release/release_en_US';
import components_en_US from '@locale/lanres/components/components_en_US';
import codelist_en_US from '@locale/lanres/codelist/codelist_en_US';
import userCustom_en_US from '@locale/lanres/userCustom/userCustom_en_US';
@@ -111,9 +117,14 @@ export default {
subproductplan: subproductplan_en_US,
storyspec: storyspec_en_US,
branch: branch_en_US,
+ productstats: productstats_en_US,
action: action_en_US,
+ group: group_en_US,
casestep: casestep_en_US,
+ dept: dept_en_US,
+ company: company_en_US,
story: story_en_US,
+ subtask: subtask_en_US,
project: project_en_US,
history: history_en_US,
user: user_en_US,
@@ -123,6 +134,7 @@ export default {
task: task_en_US,
build: build_en_US,
testtask: testtask_en_US,
+ projectstats: projectstats_en_US,
bug: bug_en_US,
ibzdoc: ibzdoc_en_US,
release: release_en_US,
diff --git a/app_Web/src/locale/lang/zh-CN.ts b/app_Web/src/locale/lang/zh-CN.ts
index efb763dbbf10d1885c827af67d479fdc50129184..dd1aa7c805c8b50a0cf09602183ff97f40a0778c 100644
--- a/app_Web/src/locale/lang/zh-CN.ts
+++ b/app_Web/src/locale/lang/zh-CN.ts
@@ -1,25 +1,31 @@
-import productplan_zh_CN from '@locale/lanres/product-plan/product-plan_zh_CN';
-import projectproduct_zh_CN from '@locale/lanres/project-product/project-product_zh_CN';
-import case_zh_CN from '@locale/lanres/case/case_zh_CN';
-import product_zh_CN from '@locale/lanres/product/product_zh_CN';
-import subproductplan_zh_CN from '@locale/lanres/sub-product-plan/sub-product-plan_zh_CN';
-import storyspec_zh_CN from '@locale/lanres/story-spec/story-spec_zh_CN';
-import branch_zh_CN from '@locale/lanres/branch/branch_zh_CN';
-import action_zh_CN from '@locale/lanres/action/action_zh_CN';
-import casestep_zh_CN from '@locale/lanres/case-step/case-step_zh_CN';
-import story_zh_CN from '@locale/lanres/story/story_zh_CN';
-import project_zh_CN from '@locale/lanres/project/project_zh_CN';
-import history_zh_CN from '@locale/lanres/history/history_zh_CN';
-import user_zh_CN from '@locale/lanres/user/user_zh_CN';
-import productmodule_zh_CN from '@locale/lanres/product-module/product-module_zh_CN';
-import module_zh_CN from '@locale/lanres/module/module_zh_CN';
-import productlife_zh_CN from '@locale/lanres/product-life/product-life_zh_CN';
-import task_zh_CN from '@locale/lanres/task/task_zh_CN';
-import build_zh_CN from '@locale/lanres/build/build_zh_CN';
-import testtask_zh_CN from '@locale/lanres/test-task/test-task_zh_CN';
-import bug_zh_CN from '@locale/lanres/bug/bug_zh_CN';
-import ibzdoc_zh_CN from '@locale/lanres/ibz-doc/ibz-doc_zh_CN';
-import release_zh_CN from '@locale/lanres/release/release_zh_CN';
+import productplan_zh_CN from '@locale/lanres/entities/product-plan/product-plan_zh_CN';
+import projectproduct_zh_CN from '@locale/lanres/entities/project-product/project-product_zh_CN';
+import case_zh_CN from '@locale/lanres/entities/case/case_zh_CN';
+import product_zh_CN from '@locale/lanres/entities/product/product_zh_CN';
+import subproductplan_zh_CN from '@locale/lanres/entities/sub-product-plan/sub-product-plan_zh_CN';
+import storyspec_zh_CN from '@locale/lanres/entities/story-spec/story-spec_zh_CN';
+import branch_zh_CN from '@locale/lanres/entities/branch/branch_zh_CN';
+import productstats_zh_CN from '@locale/lanres/entities/product-stats/product-stats_zh_CN';
+import action_zh_CN from '@locale/lanres/entities/action/action_zh_CN';
+import group_zh_CN from '@locale/lanres/entities/group/group_zh_CN';
+import casestep_zh_CN from '@locale/lanres/entities/case-step/case-step_zh_CN';
+import dept_zh_CN from '@locale/lanres/entities/dept/dept_zh_CN';
+import company_zh_CN from '@locale/lanres/entities/company/company_zh_CN';
+import story_zh_CN from '@locale/lanres/entities/story/story_zh_CN';
+import subtask_zh_CN from '@locale/lanres/entities/sub-task/sub-task_zh_CN';
+import project_zh_CN from '@locale/lanres/entities/project/project_zh_CN';
+import history_zh_CN from '@locale/lanres/entities/history/history_zh_CN';
+import user_zh_CN from '@locale/lanres/entities/user/user_zh_CN';
+import productmodule_zh_CN from '@locale/lanres/entities/product-module/product-module_zh_CN';
+import module_zh_CN from '@locale/lanres/entities/module/module_zh_CN';
+import productlife_zh_CN from '@locale/lanres/entities/product-life/product-life_zh_CN';
+import task_zh_CN from '@locale/lanres/entities/task/task_zh_CN';
+import build_zh_CN from '@locale/lanres/entities/build/build_zh_CN';
+import testtask_zh_CN from '@locale/lanres/entities/test-task/test-task_zh_CN';
+import projectstats_zh_CN from '@locale/lanres/entities/project-stats/project-stats_zh_CN';
+import bug_zh_CN from '@locale/lanres/entities/bug/bug_zh_CN';
+import ibzdoc_zh_CN from '@locale/lanres/entities/ibz-doc/ibz-doc_zh_CN';
+import release_zh_CN from '@locale/lanres/entities/release/release_zh_CN';
import components_zh_CN from '@locale/lanres/components/components_zh_CN';
import codelist_zh_CN from '@locale/lanres/codelist/codelist_zh_CN';
import userCustom_zh_CN from '@locale/lanres/userCustom/userCustom_zh_CN';
@@ -111,9 +117,14 @@ export default {
subproductplan: subproductplan_zh_CN,
storyspec: storyspec_zh_CN,
branch: branch_zh_CN,
+ productstats: productstats_zh_CN,
action: action_zh_CN,
+ group: group_zh_CN,
casestep: casestep_zh_CN,
+ dept: dept_zh_CN,
+ company: company_zh_CN,
story: story_zh_CN,
+ subtask: subtask_zh_CN,
project: project_zh_CN,
history: history_zh_CN,
user: user_zh_CN,
@@ -123,6 +134,7 @@ export default {
task: task_zh_CN,
build: build_zh_CN,
testtask: testtask_zh_CN,
+ projectstats: projectstats_zh_CN,
bug: bug_zh_CN,
ibzdoc: ibzdoc_zh_CN,
release: release_zh_CN,
diff --git a/app_Web/src/locale/lanres/action/action_en_US.ts b/app_Web/src/locale/lanres/action/action_en_US.ts
index 06f88637497b5d6a32a71e613552abb2f7b32b54..5ff7ac38c46de5c31acf06103b100dc4b5c480ae 100644
--- a/app_Web/src/locale/lanres/action/action_en_US.ts
+++ b/app_Web/src/locale/lanres/action/action_en_US.ts
@@ -28,6 +28,10 @@ export default {
},
producttrendslistview9: {
caption: "系统日志",
+ title: '系统日志',
+ },
+ alltrendslistview: {
+ caption: "系统日志",
title: '系统日志',
},
producttrendslistview: {
diff --git a/app_Web/src/locale/lanres/action/action_zh_CN.ts b/app_Web/src/locale/lanres/action/action_zh_CN.ts
index 98b2cdd5117a5e9f5f4d19a153843a0a300808c8..f6958590187073563d44d0cc9631852b18ce0825 100644
--- a/app_Web/src/locale/lanres/action/action_zh_CN.ts
+++ b/app_Web/src/locale/lanres/action/action_zh_CN.ts
@@ -27,6 +27,10 @@ export default {
},
producttrendslistview9: {
caption: '系统日志',
+ title: '系统日志',
+ },
+ alltrendslistview: {
+ caption: '系统日志',
title: '系统日志',
},
producttrendslistview: {
@@ -74,8 +78,8 @@ export default {
tip: '',
},
tbitem7: {
- caption: '删除并关闭',
- tip: '删除并关闭',
+ caption: '删除',
+ tip: '删除',
},
tbitem8: {
caption: '-',
diff --git a/app_Web/src/locale/lanres/bug/bug_en_US.ts b/app_Web/src/locale/lanres/bug/bug_en_US.ts
index 374a248bf50849465900e33c8fbed828624cc7cd..b4ebf7d70e496f063b25bdaec81a8048e2824098 100644
--- a/app_Web/src/locale/lanres/bug/bug_en_US.ts
+++ b/app_Web/src/locale/lanres/bug/bug_en_US.ts
@@ -64,6 +64,10 @@ export default {
plansubgridview: {
caption: "Bug",
title: 'Bug',
+ },
+ maineditview: {
+ caption: "Bug编辑",
+ title: 'Bug编辑',
},
maindashboardview: {
caption: "Bug",
@@ -76,10 +80,18 @@ export default {
mpickupview: {
caption: "关联Bug",
title: '关联Bug',
+ },
+ buglifeeditview9: {
+ caption: "Bug",
+ title: 'Bug',
},
editview: {
caption: "Bug",
title: 'Bug',
+ },
+ stepsinfoeditview: {
+ caption: "重现步骤",
+ title: '重现步骤',
},
gridview9_assignedtome: {
caption: "Bug",
@@ -87,15 +99,37 @@ export default {
},
gridview: {
caption: "Bug",
+ title: 'Bug',
+ },
+ dashboardmaineditview9: {
+ caption: "Bug",
title: 'Bug',
},
},
+ stepsinfo_form: {
+ details: {
+ group1: "Bug基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "修改日期",
+ srforikey: "",
+ srfkey: "Bug编号",
+ srfmajortext: "Bug标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ steps: "",
+ id: "Bug编号",
+ },
+ uiactions: {
+ },
+ },
main_form: {
details: {
+ grouppanel1: "分组面板",
+ grouppanel2: "分组面板",
group1: "bug基本信息",
formpage1: "基本信息",
- group2: "操作信息",
- formpage2: "其它",
srfupdatedate: "修改日期",
srforikey: "",
srfkey: "Bug编号",
@@ -104,13 +138,153 @@ export default {
srfuf: "",
srfdeid: "",
srfsourcekey: "",
+ productname: "产品",
+ product: "所属产品",
+ module: "所属模块",
+ project: "所属项目",
+ projectname: "项目",
+ openedbuild: "影响版本",
+ assignedto: "指派给",
+ deadline: "截止日期",
+ type: "Bug类型",
+ os: "操作系统",
+ browser: "浏览器",
title: "Bug标题",
+ severity: "严重程度",
+ pri: "优先级",
+ steps: "重现步骤",
+ story: "相关需求",
+ task: "相关任务",
+ mailto: "抄送给",
+ keywords: "关键词",
id: "Bug编号",
},
uiactions: {
},
},
- main_grid: {
+ dashboardmainedit_form: {
+ details: {
+ druipart1: "",
+ grouppanel6: "历史记录",
+ grouppanel1: "分组面板",
+ grouppanel3: "基本信息",
+ grouppanel4: "项目/需求/任务",
+ grouppanel5: "Bug的一生",
+ grouppanel2: "分组面板",
+ group1: "Bug基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "修改日期",
+ srforikey: "",
+ srfkey: "Bug编号",
+ srfmajortext: "Bug标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ title: "Bug标题",
+ steps: "重现步骤",
+ product: "所属产品",
+ productname: "产品",
+ module: "所属模块",
+ plan: "所属计划",
+ type: "Bug类型",
+ severity: "严重程度",
+ pri: "优先级",
+ status: "Bug状态",
+ activatedcount: "激活次数",
+ activateddate: "激活日期",
+ confirmed: "是否确认",
+ assignedto: "当前指派",
+ deadline: "截止日期",
+ os: "操作系统",
+ browser: "浏览器",
+ keywords: "关键词",
+ mailto: "抄送给",
+ project: "所属项目",
+ projectname: "项目",
+ story: "相关需求",
+ task: "相关任务",
+ openedby: "由谁创建",
+ openedbuild: "影响版本",
+ resolvedby: "由谁解决",
+ resolvedbuild: "解决版本",
+ resolution: "解决方案",
+ closedby: "由谁关闭",
+ lasteditedby: "最后修改者",
+ id: "Bug编号",
+ },
+ uiactions: {
+ },
+ },
+ dashboardmain_form: {
+ details: {
+ maingroup1: "Bug基本信息",
+ formpage1: "基本信息",
+ grouppanel1: "分组面板",
+ formpage2: "项目/需求/任务",
+ srfupdatedate: "修改日期",
+ srforikey: "",
+ srfkey: "Bug编号",
+ srfmajortext: "Bug标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ product: "所属产品",
+ title: "Bug标题",
+ productname: "产品",
+ module: "所属模块",
+ plan: "所属计划",
+ type: "Bug类型",
+ severity: "严重程度",
+ pri: "优先级",
+ status: "Bug状态",
+ activatedcount: "激活次数",
+ activateddate: "激活日期",
+ confirmed: "是否确认",
+ assignedto: "当前指派",
+ deadline: "截止日期",
+ os: "操作系统",
+ browser: "浏览器",
+ keywords: "关键词",
+ mailto: "抄送给",
+ project: "所属项目",
+ projectname: "项目",
+ story: "相关需求",
+ task: "相关任务",
+ id: "Bug编号",
+ },
+ uiactions: {
+ },
+ },
+ dashboardbuglife_form: {
+ details: {
+ buggroup1: "Bug基本信息",
+ formpage1: "Bug的一生",
+ grouppanel1: "分组面板",
+ formpage2: "其他相关",
+ srfupdatedate: "修改日期",
+ srforikey: "",
+ srfkey: "Bug编号",
+ srfmajortext: "Bug标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ openedby: "由谁创建",
+ openedbuild: "影响版本",
+ resolvedby: "由谁解决",
+ resolvedbuild: "解决版本",
+ resolution: "解决方案",
+ closedby: "由谁关闭",
+ lasteditedby: "最后修改者",
+ linkbug: "相关Bug",
+ id: "Bug编号",
+ },
+ uiactions: {
+ },
+ },
+ pickupgird_grid: {
columns: {
id: "Bug编号",
pri: "P",
@@ -138,7 +312,7 @@ export default {
uiactions: {
},
},
- pickupgird_grid: {
+ main_grid: {
columns: {
id: "Bug编号",
pri: "P",
@@ -148,8 +322,11 @@ export default {
openedby: "由谁创建",
openeddate: "创建日期",
assignedto: "指派给",
+ resolution: "方案",
+ uagridcolumn1: "操作",
},
uiactions: {
+ mainedit: "编辑",
},
},
main2_grid: {
@@ -162,77 +339,27 @@ export default {
uiactions: {
},
},
- editviewtoolbar_toolbar: {
- tbitem3: {
- caption: "Save",
- tip: "Save",
- },
- tbitem4: {
- caption: "Save And New",
- tip: "Save And New",
- },
- tbitem5: {
+ maineditviewtoolbar_toolbar: {
+ deuiaction1: {
caption: "Save And Close",
tip: "Save And Close Window",
},
- tbitem6: {
- caption: "-",
- tip: "",
- },
- tbitem7: {
- caption: "Remove And Close",
- tip: "Remove And Close Window",
- },
- tbitem8: {
- caption: "-",
- tip: "",
- },
- tbitem12: {
- caption: "New",
- tip: "New",
- },
- tbitem13: {
- caption: "-",
- tip: "",
- },
- tbitem14: {
- caption: "Copy",
- tip: "Copy {0}",
- },
- tbitem16: {
- caption: "-",
- tip: "",
- },
- tbitem23: {
- caption: "第一个记录",
- tip: "第一个记录",
- },
- tbitem24: {
- caption: "上一个记录",
- tip: "上一个记录",
- },
- tbitem25: {
- caption: "下一个记录",
- tip: "下一个记录",
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
},
- tbitem26: {
- caption: "最后一个记录",
- tip: "最后一个记录",
+ },
+ plansubgridviewtoolbar_toolbar: {
+ deuiaction3_planrelationbug: {
+ caption: "关联Bug",
+ tip: "关联Bug",
},
- tbitem21: {
- caption: "-",
+ seperator2: {
+ caption: "",
tip: "",
},
- tbitem22: {
- caption: "Help",
- tip: "Help",
- },
- },
- gridviewtoolbar_toolbar: {
- deuiaction1: {
- caption: "New",
- tip: "New",
- },
deuiaction4: {
caption: "Remove",
tip: "Remove {0}",
@@ -246,14 +373,10 @@ export default {
tip: "刷新",
},
},
- plansubgridviewtoolbar_toolbar: {
- deuiaction3_planrelationbug: {
- caption: "关联Bug",
- tip: "关联Bug",
- },
- seperator2: {
- caption: "",
- tip: "",
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
},
deuiaction4: {
caption: "Remove",
diff --git a/app_Web/src/locale/lanres/bug/bug_zh_CN.ts b/app_Web/src/locale/lanres/bug/bug_zh_CN.ts
index e05e1968b3ef5c8553993fd14e191d8272166fed..f897cd54e4d0ae92eb3615dbf6a1d655b18ba8e7 100644
--- a/app_Web/src/locale/lanres/bug/bug_zh_CN.ts
+++ b/app_Web/src/locale/lanres/bug/bug_zh_CN.ts
@@ -63,6 +63,10 @@ export default {
plansubgridview: {
caption: 'Bug',
title: 'Bug',
+ },
+ maineditview: {
+ caption: 'Bug编辑',
+ title: 'Bug编辑',
},
maindashboardview: {
caption: 'Bug',
@@ -75,10 +79,18 @@ export default {
mpickupview: {
caption: '关联Bug',
title: '关联Bug',
+ },
+ buglifeeditview9: {
+ caption: 'Bug',
+ title: 'Bug',
},
editview: {
caption: 'Bug',
title: 'Bug',
+ },
+ stepsinfoeditview: {
+ caption: '重现步骤',
+ title: '重现步骤',
},
gridview9_assignedtome: {
caption: 'Bug',
@@ -86,15 +98,37 @@ export default {
},
gridview: {
caption: 'Bug',
+ title: 'Bug',
+ },
+ dashboardmaineditview9: {
+ caption: 'Bug',
title: 'Bug',
},
},
+ stepsinfo_form: {
+ details: {
+ group1: 'Bug基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '修改日期',
+ srforikey: '',
+ srfkey: 'Bug编号',
+ srfmajortext: 'Bug标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ steps: '',
+ id: 'Bug编号',
+ },
+ uiactions: {
+ },
+ },
main_form: {
details: {
+ grouppanel1: '分组面板',
+ grouppanel2: '分组面板',
group1: 'bug基本信息',
formpage1: '基本信息',
- group2: '操作信息',
- formpage2: '其它',
srfupdatedate: '修改日期',
srforikey: '',
srfkey: 'Bug编号',
@@ -103,13 +137,153 @@ export default {
srfuf: '',
srfdeid: '',
srfsourcekey: '',
+ productname: '产品',
+ product: '所属产品',
+ module: '所属模块',
+ project: '所属项目',
+ projectname: '项目',
+ openedbuild: '影响版本',
+ assignedto: '指派给',
+ deadline: '截止日期',
+ type: 'Bug类型',
+ os: '操作系统',
+ browser: '浏览器',
title: 'Bug标题',
+ severity: '严重程度',
+ pri: '优先级',
+ steps: '重现步骤',
+ story: '相关需求',
+ task: '相关任务',
+ mailto: '抄送给',
+ keywords: '关键词',
id: 'Bug编号',
},
uiactions: {
},
},
- main_grid: {
+ dashboardmainedit_form: {
+ details: {
+ druipart1: '',
+ grouppanel6: '历史记录',
+ grouppanel1: '分组面板',
+ grouppanel3: '基本信息',
+ grouppanel4: '项目/需求/任务',
+ grouppanel5: 'Bug的一生',
+ grouppanel2: '分组面板',
+ group1: 'Bug基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '修改日期',
+ srforikey: '',
+ srfkey: 'Bug编号',
+ srfmajortext: 'Bug标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ title: 'Bug标题',
+ steps: '重现步骤',
+ product: '所属产品',
+ productname: '产品',
+ module: '所属模块',
+ plan: '所属计划',
+ type: 'Bug类型',
+ severity: '严重程度',
+ pri: '优先级',
+ status: 'Bug状态',
+ activatedcount: '激活次数',
+ activateddate: '激活日期',
+ confirmed: '是否确认',
+ assignedto: '当前指派',
+ deadline: '截止日期',
+ os: '操作系统',
+ browser: '浏览器',
+ keywords: '关键词',
+ mailto: '抄送给',
+ project: '所属项目',
+ projectname: '项目',
+ story: '相关需求',
+ task: '相关任务',
+ openedby: '由谁创建',
+ openedbuild: '影响版本',
+ resolvedby: '由谁解决',
+ resolvedbuild: '解决版本',
+ resolution: '解决方案',
+ closedby: '由谁关闭',
+ lasteditedby: '最后修改者',
+ id: 'Bug编号',
+ },
+ uiactions: {
+ },
+ },
+ dashboardmain_form: {
+ details: {
+ maingroup1: 'Bug基本信息',
+ formpage1: '基本信息',
+ grouppanel1: '分组面板',
+ formpage2: '项目/需求/任务',
+ srfupdatedate: '修改日期',
+ srforikey: '',
+ srfkey: 'Bug编号',
+ srfmajortext: 'Bug标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ product: '所属产品',
+ title: 'Bug标题',
+ productname: '产品',
+ module: '所属模块',
+ plan: '所属计划',
+ type: 'Bug类型',
+ severity: '严重程度',
+ pri: '优先级',
+ status: 'Bug状态',
+ activatedcount: '激活次数',
+ activateddate: '激活日期',
+ confirmed: '是否确认',
+ assignedto: '当前指派',
+ deadline: '截止日期',
+ os: '操作系统',
+ browser: '浏览器',
+ keywords: '关键词',
+ mailto: '抄送给',
+ project: '所属项目',
+ projectname: '项目',
+ story: '相关需求',
+ task: '相关任务',
+ id: 'Bug编号',
+ },
+ uiactions: {
+ },
+ },
+ dashboardbuglife_form: {
+ details: {
+ buggroup1: 'Bug基本信息',
+ formpage1: 'Bug的一生',
+ grouppanel1: '分组面板',
+ formpage2: '其他相关',
+ srfupdatedate: '修改日期',
+ srforikey: '',
+ srfkey: 'Bug编号',
+ srfmajortext: 'Bug标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ openedby: '由谁创建',
+ openedbuild: '影响版本',
+ resolvedby: '由谁解决',
+ resolvedbuild: '解决版本',
+ resolution: '解决方案',
+ closedby: '由谁关闭',
+ lasteditedby: '最后修改者',
+ linkbug: '相关Bug',
+ id: 'Bug编号',
+ },
+ uiactions: {
+ },
+ },
+ pickupgird_grid: {
columns: {
id: 'Bug编号',
pri: 'P',
@@ -137,7 +311,7 @@ export default {
uiactions: {
},
},
- pickupgird_grid: {
+ main_grid: {
columns: {
id: 'Bug编号',
pri: 'P',
@@ -147,8 +321,11 @@ export default {
openedby: '由谁创建',
openeddate: '创建日期',
assignedto: '指派给',
+ resolution: '方案',
+ uagridcolumn1: '操作',
},
uiactions: {
+ mainedit: '编辑',
},
},
main2_grid: {
@@ -161,77 +338,27 @@ export default {
uiactions: {
},
},
- editviewtoolbar_toolbar: {
- tbitem3: {
- caption: '保存',
- tip: '保存',
- },
- tbitem4: {
- caption: '保存并新建',
- tip: '保存并新建',
- },
- tbitem5: {
+ maineditviewtoolbar_toolbar: {
+ deuiaction1: {
caption: '保存并关闭',
tip: '保存并关闭',
},
- tbitem6: {
- caption: '-',
- tip: '',
- },
- tbitem7: {
- caption: '删除并关闭',
- tip: '删除并关闭',
- },
- tbitem8: {
- caption: '-',
- tip: '',
- },
- tbitem12: {
- caption: '新建',
- tip: '新建',
- },
- tbitem13: {
- caption: '-',
- tip: '',
- },
- tbitem14: {
- caption: '拷贝',
- tip: '拷贝',
- },
- tbitem16: {
- caption: '-',
- tip: '',
- },
- tbitem23: {
- caption: '第一个记录',
- tip: '第一个记录',
- },
- tbitem24: {
- caption: '上一个记录',
- tip: '上一个记录',
- },
- tbitem25: {
- caption: '下一个记录',
- tip: '下一个记录',
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
},
- tbitem26: {
- caption: '最后一个记录',
- tip: '最后一个记录',
+ },
+ plansubgridviewtoolbar_toolbar: {
+ deuiaction3_planrelationbug: {
+ caption: '关联Bug',
+ tip: '关联Bug',
},
- tbitem21: {
- caption: '-',
+ seperator2: {
+ caption: '',
tip: '',
},
- tbitem22: {
- caption: '帮助',
- tip: '帮助',
- },
- },
- gridviewtoolbar_toolbar: {
- deuiaction1: {
- caption: '新建',
- tip: '新建',
- },
deuiaction4: {
caption: '删除',
tip: '删除',
@@ -245,14 +372,10 @@ export default {
tip: '刷新',
},
},
- plansubgridviewtoolbar_toolbar: {
- deuiaction3_planrelationbug: {
- caption: '关联Bug',
- tip: '关联Bug',
- },
- seperator2: {
- caption: '',
- tip: '',
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
},
deuiaction4: {
caption: '删除',
diff --git a/app_Web/src/locale/lanres/case-step/case-step_zh_CN.ts b/app_Web/src/locale/lanres/case-step/case-step_zh_CN.ts
index 96fda035fc792be9cd3ae88aa8927eb379442988..e9810f9e8bd4ab96af605e4edbb6b35a4a3fb3ef 100644
--- a/app_Web/src/locale/lanres/case-step/case-step_zh_CN.ts
+++ b/app_Web/src/locale/lanres/case-step/case-step_zh_CN.ts
@@ -66,8 +66,8 @@ export default {
tip: '',
},
tbitem7: {
- caption: '删除并关闭',
- tip: '删除并关闭',
+ caption: '删除',
+ tip: '删除',
},
tbitem8: {
caption: '-',
diff --git a/app_Web/src/locale/lanres/case/case_en_US.ts b/app_Web/src/locale/lanres/case/case_en_US.ts
index f91240b6dd0b7cfdc11824b754fd7e8885f4c759..b7d7c719a9517d52be402dcd07464bdc359fa101 100644
--- a/app_Web/src/locale/lanres/case/case_en_US.ts
+++ b/app_Web/src/locale/lanres/case/case_en_US.ts
@@ -94,24 +94,6 @@ export default {
uiactions: {
},
},
- gridviewtoolbar_toolbar: {
- deuiaction1: {
- caption: "New",
- tip: "New",
- },
- deuiaction4: {
- caption: "Remove",
- tip: "Remove {0}",
- },
- seperator1: {
- caption: "",
- tip: "",
- },
- deuiaction2: {
- caption: "刷新",
- tip: "刷新",
- },
- },
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
@@ -178,4 +160,22 @@ export default {
tip: "Help",
},
},
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/case/case_zh_CN.ts b/app_Web/src/locale/lanres/case/case_zh_CN.ts
index 756f5587de24a2301fb8992c5f8e45a4538e0373..43d4a74fb5789ceba11f28ab00445ddf394dfa15 100644
--- a/app_Web/src/locale/lanres/case/case_zh_CN.ts
+++ b/app_Web/src/locale/lanres/case/case_zh_CN.ts
@@ -93,24 +93,6 @@ export default {
uiactions: {
},
},
- gridviewtoolbar_toolbar: {
- deuiaction1: {
- caption: '新建',
- tip: '新建',
- },
- deuiaction4: {
- caption: '删除',
- tip: '删除',
- },
- seperator1: {
- caption: '',
- tip: '',
- },
- deuiaction2: {
- caption: '刷新',
- tip: '刷新',
- },
- },
editviewtoolbar_toolbar: {
tbitem3: {
caption: '保存',
@@ -129,8 +111,8 @@ export default {
tip: '',
},
tbitem7: {
- caption: '删除并关闭',
- tip: '删除并关闭',
+ caption: '删除',
+ tip: '删除',
},
tbitem8: {
caption: '-',
@@ -177,4 +159,22 @@ export default {
tip: '帮助',
},
},
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/codelist/codelist_en_US.ts b/app_Web/src/locale/lanres/codelist/codelist_en_US.ts
index 111f07ab2d01485c6bb17b1385fe81a0bbf1ad2f..90a7f0444fd9ec9ccc94a727209e5d1d16221d8a 100644
--- a/app_Web/src/locale/lanres/codelist/codelist_en_US.ts
+++ b/app_Web/src/locale/lanres/codelist/codelist_en_US.ts
@@ -1,287 +1,429 @@
export default {
Product__status: {
- 'normal': '正常',
- 'closed': '结束',
+ 'normal': '正常',
+ 'closed': '结束',
empty: '',
},
Bug__status: {
- 'active': '激活',
- 'resolved': '已解决',
- 'closed': '已关闭',
+ 'active': '激活',
+ 'resolved': '已解决',
+ 'closed': '已关闭',
empty: '',
},
Story__closed_reason: {
- 'done': '已完成',
- 'subdivided': '已细分',
- 'duplicate': '重复',
- 'postponed': '延期',
- 'willnotdo': '不做',
- 'cancel': '已取消',
- 'bydesign': '设计如此',
+ 'done': '已完成',
+ 'subdivided': '已细分',
+ 'duplicate': '重复',
+ 'postponed': '延期',
+ 'willnotdo': '不做',
+ 'cancel': '已取消',
+ 'bydesign': '设计如此',
empty: '',
},
Task__type: {
- 'design': '设计',
- 'devel': '开发',
- 'test': '测试',
- 'study': '研究',
- 'discuss': '讨论',
- 'ui': '界面',
- 'affair': '事务',
- 'misc': '其他',
+ 'design': '设计',
+ 'devel': '开发',
+ 'test': '测试',
+ 'study': '研究',
+ 'discuss': '讨论',
+ 'ui': '界面',
+ 'affair': '事务',
+ 'misc': '其他',
empty: '',
},
Story__pri: {
- 1: '1',
- 2: '2',
- 3: '3',
- 4: '4',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ empty: '',
+ },
+ ProjectTimeType: {
+ 'CONSUMED': '消耗时间',
+ 'LEFT': '剩余时间',
+ empty: '',
+ },
+ Bug__type: {
+ 'codeerror': '代码错误',
+ 'config': '配置相关',
+ 'install': '安装部署',
+ 'security': '安全相关',
+ 'performance': '性能问题',
+ 'standard': '标准规范',
+ 'automation': '测试脚本',
+ 'designdefect': '设计缺陷',
+ 'others': '其他',
empty: '',
},
Product__acl: {
- 'open': '默认设置(有产品视图权限,即可访问)',
- 'private': '私有产品相关负责人和项目团队成员才能访问)',
- 'custom': '自定义白名单(团队成员和白名单的成员可以访问)',
+ 'open': '默认设置(有产品视图权限,即可访问)',
+ 'private': '私有产品相关负责人和项目团队成员才能访问)',
+ 'custom': '自定义白名单(团队成员和白名单的成员可以访问)',
empty: '',
},
Action__type: {
- 'created': '创建',
- 'opened': '创建',
- 'changed': '变更了',
- 'edited': '编辑了',
- 'assigned': '指派了',
- 'closed': '关闭了',
- 'deleted': '删除了',
- 'deletedfile': '删除附件',
- 'editfile': '编辑附件',
- 'erased': '删除了',
- 'undeleted': '还原了',
- 'hidden': '隐藏了',
- 'commented': '评论了',
- 'activated': '激活了',
- 'blocked': '阻塞了',
- 'resolved': '解决了',
- 'reviewed': '评审了',
- 'moved': '移动了',
- 'confirmed': '确认了需求',
- 'bugconfirmed': '确认了',
- 'tostory': '转需求',
- 'frombug': '转需求',
- 'fromlib': '从用例库导入',
- 'totask': '转任务',
- 'svncommited': '提交代码',
- 'gitcommited': '提交代码',
- 'linked2plan': '关联计划',
- 'unlinkedfromplan': '移除计划',
- 'changestatus': '修改状态',
- 'marked': '编辑了',
- 'linked2project': '关联项目',
- 'unlinkedfromproject': '移除项目',
- 'unlinkedfrombuild': '移除版本',
- 'linked2release': '关联发布',
- 'unlinkedfromrelease': '移除发布',
- 'linkrelatedbug': '关联了相关Bug',
- 'unlinkrelatedbug': '移除了相关Bug',
- 'linkrelatedcase': '关联了相关用例',
- 'unlinkrelatedcase': '移除了相关用例',
- 'linkrelatedstory': '关联了相关需求',
- 'unlinkrelatedstory': '移除了相关需求',
- 'subdividestory': '细分了需求',
- 'unlinkchildstory': '移除了细分需求',
- 'started': '开始了',
- 'restarted': '继续了',
- 'recordestimate': '记录了工时',
- 'editestimate': '编辑了工时',
- 'canceled': '取消了',
- 'finished': '完成了',
- 'paused': '暂停了',
- 'verified': '验收了',
- 'delayed': '延期',
- 'suspended': '挂起',
- 'login': '登录系统',
- 'logout': '退出登录',
- 'deleteestimate': '删除了工时',
- 'linked2build': '关联了',
- 'linked2bug': '关联了',
- 'linkchildtask': '关联子任务',
- 'unlinkchildrentask': '取消关联子任务',
- 'linkparenttask': '关联到父任务',
- 'unlinkparenttask': '从父任务取消关联',
- 'batchcreate': '批量创建任务',
- 'createchildren': '创建子任务',
- 'managed': '维护',
- 'deletechildrentask': '删除子任务',
- 'createchildrenstory': '创建子需求',
- 'linkchildstory': '关联子需求',
- 'unlinkchildrenstory': '取消关联子需求',
- 'linkparentstory': '关联到父需求',
- 'unlinkparentstory': '从父需求取消关联',
- 'deletechildrenstory': '删除子需求',
+ 'created': '创建',
+ 'opened': '创建',
+ 'changed': '变更了',
+ 'edited': '编辑了',
+ 'assigned': '指派了',
+ 'closed': '关闭了',
+ 'deleted': '删除了',
+ 'deletedfile': '删除附件',
+ 'editfile': '编辑附件',
+ 'erased': '删除了',
+ 'undeleted': '还原了',
+ 'hidden': '隐藏了',
+ 'commented': '评论了',
+ 'activated': '激活了',
+ 'blocked': '阻塞了',
+ 'resolved': '解决了',
+ 'reviewed': '评审了',
+ 'moved': '移动了',
+ 'confirmed': '确认了需求',
+ 'bugconfirmed': '确认了',
+ 'tostory': '转需求',
+ 'frombug': '转需求',
+ 'fromlib': '从用例库导入',
+ 'totask': '转任务',
+ 'svncommited': '提交代码',
+ 'gitcommited': '提交代码',
+ 'linked2plan': '关联计划',
+ 'unlinkedfromplan': '移除计划',
+ 'changestatus': '修改状态',
+ 'marked': '编辑了',
+ 'linked2project': '关联项目',
+ 'unlinkedfromproject': '移除项目',
+ 'unlinkedfrombuild': '移除版本',
+ 'linked2release': '关联发布',
+ 'unlinkedfromrelease': '移除发布',
+ 'linkrelatedbug': '关联了相关Bug',
+ 'unlinkrelatedbug': '移除了相关Bug',
+ 'linkrelatedcase': '关联了相关用例',
+ 'unlinkrelatedcase': '移除了相关用例',
+ 'linkrelatedstory': '关联了相关需求',
+ 'unlinkrelatedstory': '移除了相关需求',
+ 'subdividestory': '细分了需求',
+ 'unlinkchildstory': '移除了细分需求',
+ 'started': '开始了',
+ 'restarted': '继续了',
+ 'recordestimate': '记录了工时',
+ 'editestimate': '编辑了工时',
+ 'canceled': '取消了',
+ 'finished': '完成了',
+ 'paused': '暂停了',
+ 'verified': '验收了',
+ 'delayed': '延期',
+ 'suspended': '挂起',
+ 'login': '登录系统',
+ 'logout': '退出登录',
+ 'deleteestimate': '删除了工时',
+ 'linked2build': '关联了',
+ 'linked2bug': '关联了',
+ 'linkchildtask': '关联子任务',
+ 'unlinkchildrentask': '取消关联子任务',
+ 'linkparenttask': '关联到父任务',
+ 'unlinkparenttask': '从父任务取消关联',
+ 'batchcreate': '批量创建任务',
+ 'createchildren': '创建子任务',
+ 'managed': '维护',
+ 'deletechildrentask': '删除子任务',
+ 'createchildrenstory': '创建子需求',
+ 'linkchildstory': '关联子需求',
+ 'unlinkchildrenstory': '取消关联子需求',
+ 'linkparentstory': '关联到父需求',
+ 'unlinkparentstory': '从父需求取消关联',
+ 'deletechildrenstory': '删除子需求',
+ empty: '',
+ },
+ User__gender: {
+ 'f': '女',
+ 'm': '男',
empty: '',
},
Action__object_type: {
- 'product': '产品',
- 'story': '需求',
- 'productplan': '计划',
- 'release': '发布',
- 'project': '项目',
- 'task': '任务',
- 'build': '版本',
- 'bug': 'Bug',
- 'case': '用例',
- 'caseresult': '用例结果',
- 'stepresult': '用例步骤',
- 'testtask': '测试单',
- 'user': '用户',
- 'doc': '文档',
- 'doclib': '文档库',
- 'todo': '待办',
- 'branch': '分支',
- 'module': '模块',
- 'testsuite': '套件',
- 'caselib': '用例库',
- 'testreport': '报告',
- 'entry': '应用',
- 'webhook': 'Webhook',
+ 'product': '产品',
+ 'story': '需求',
+ 'productplan': '计划',
+ 'release': '发布',
+ 'project': '项目',
+ 'task': '任务',
+ 'build': '版本',
+ 'bug': 'Bug',
+ 'case': '用例',
+ 'caseresult': '用例结果',
+ 'stepresult': '用例步骤',
+ 'testtask': '测试单',
+ 'user': '用户',
+ 'doc': '文档',
+ 'doclib': '文档库',
+ 'todo': '待办',
+ 'branch': '分支',
+ 'module': '模块',
+ 'testsuite': '套件',
+ 'caselib': '用例库',
+ 'testreport': '报告',
+ 'entry': '应用',
+ 'webhook': 'Webhook',
empty: '',
},
CurProductPlan: {
empty: '',
},
Task__pri: {
- 1: '1',
- 2: '2',
- 3: '3',
- 4: '4',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
empty: '',
},
Project__status: {
- 'wait': '未开始',
- 'doing': '进行中',
- 'suspended': '已挂起',
- 'closed': '已关闭',
+ 'wait': '未开始',
+ 'doing': '进行中',
+ 'suspended': '已挂起',
+ 'closed': '已关闭',
empty: '',
},
Release__status: {
- 'normal': '正常',
- 'terminate': '停止维护',
+ 'normal': '正常',
+ 'terminate': '停止维护',
+ empty: '',
+ },
+ Task_quickpacket: {
+ 'All': '所有',
+ 'UNCLOSED': '未关闭',
+ 'TOME': '指派给我',
+ 'MORE': '更多',
+ 'NOTSTARTED': '未开始',
+ 'INPROGRESS': '进行中',
+ 'UNACCOMPLISHED': '未完成',
+ 'IFINISHED': '我完成',
+ 'COMPLETED': '已完成',
+ 'CLOSED': '已关闭',
+ 'CANCELLED': '已取消',
+ empty: '',
+ },
+ Bug__quickpacket: {
+ 'All': '所有',
+ 'UNCLOSED': '未关闭',
+ 'ICREATE': '由我创建',
+ 'TOME': '指派给我',
+ 'BYME': '由我解决',
+ 'WAITCLOSED': '待关闭',
+ 'UNRESOLVED': '未解决',
+ 'MORE': '更多',
+ 'UNCONFIRMED': '未确认',
+ 'UNASSIGNED': '未指派',
+ 'EXPIREDBUG': '过期Bug',
empty: '',
},
Task__closed_reason: {
- 'done': '已完成',
- 'cancel': '已取消',
+ 'done': '已完成',
+ 'cancel': '已取消',
+ empty: '',
+ },
+ Bug__os: {
+ 'all': '全部',
+ 'windows': 'Windows',
+ 'win10': 'Windows 10',
+ 'win8': 'Windows 8',
+ 'win7': 'Windows 7',
+ 'vista': 'Windows Vista',
+ 'winxp': 'Windows XP',
+ 'win2012': 'Windows 2012',
+ 'win2008': 'Windows 2008',
+ 'win2003': 'Windows 2003',
+ 'win2000': 'Windows 2000',
+ 'android': 'Android',
+ 'ios': 'IOS',
+ 'wp8': 'WP8',
+ 'wp7': 'WP7',
+ 'symbian': 'Symbian',
+ 'linux': 'Linux',
+ 'freebsd': 'FreeBSD',
+ 'osx': 'OS X',
+ 'unix': 'Unix',
+ 'others': '其他',
empty: '',
},
UserRealName: {
empty: '',
},
Product__type: {
- 'normal': '正常',
- 'branch': '多分支',
- 'platform': '多平台',
+ 'normal': '正常',
+ 'branch': '多分支',
+ 'platform': '多平台',
+ empty: '',
+ },
+ Testcase__type: {
+ 'feature': '功能测试',
+ 'performance': '性能测试',
+ 'config': '配置相关',
+ 'install': '安装部署',
+ 'security': '安全相关',
+ 'interface': '接口测试',
+ 'unit': '单元测试',
+ 'other': '其他',
+ empty: '',
+ },
+ Bug__severity: {
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
empty: '',
},
Testcase__status: {
- 'wait': '待评审',
- 'normal': '正常',
- 'blocked': '被阻塞',
- 'investigate': '研究中',
+ 'wait': '待评审',
+ 'normal': '正常',
+ 'blocked': '被阻塞',
+ 'investigate': '研究中',
empty: '',
},
Story__quickpacket: {
- 'ALL': '所有',
- 'UNCLOSED': '未关闭',
- 'TOME': '指给我',
- 'ICREATE': '我创建',
- 'IREVIEW': '我评审',
- 'DRAFT': '草稿',
- 'MORE': '更多',
- 'ICLOSE': '我关闭',
- 'ACTIVED': '激活',
- 'CHANGED': '已变更',
- 'TOBECLOSED': '待关闭',
- 'CLOSED': '已关闭',
+ 'ALL': '所有',
+ 'UNCLOSED': '未关闭',
+ 'TOME': '指给我',
+ 'ICREATE': '我创建',
+ 'IREVIEW': '我评审',
+ 'DRAFT': '草稿',
+ 'MORE': '更多',
+ 'ICLOSE': '我关闭',
+ 'ACTIVED': '激活',
+ 'CHANGED': '已变更',
+ 'TOBECLOSED': '待关闭',
+ 'CLOSED': '已关闭',
+ empty: '',
+ },
+ Bug__browser: {
+ 'all': '全部',
+ 'ie': 'IE系列',
+ 'ie11': 'IE11',
+ 'ie10': 'IE10',
+ 'ie9': 'IE9',
+ 'ie8': 'IE8',
+ 'ie7': 'IE7',
+ 'ie6': 'IE6',
+ 'chrome': 'chrome',
+ 'firefox': 'firefox系列',
+ 'firefox4': 'firefox4',
+ 'firefox3': 'firefox3',
+ 'firefox2': 'firefox2',
+ 'opera': 'opera系列',
+ 'opera11': 'opera11',
+ 'oprea10': 'oprea10',
+ 'opera9': 'opera9',
+ 'safari': 'safari',
+ 'maxthon': '傲游',
+ 'uc': 'UC',
+ 'others': '其他',
empty: '',
},
Project__type: {
- 'sprint': '短期项目',
- 'waterfall': '长期项目',
- 'ops': '运维项目',
+ 'sprint': '短期项目',
+ 'waterfall': '长期项目',
+ 'ops': '运维项目',
empty: '',
},
Story__stage: {
- 'wait': '未开始',
- 'planned': '已计划',
- 'projected': '已立项',
- 'developing': '研发中',
- 'developed': '研发完毕',
- 'testing': '测试中',
- 'tested': '测试完毕',
- 'verified': '已验收',
- 'released': '已发布',
- 'closed': '已关闭',
+ 'wait': '未开始',
+ 'planned': '已计划',
+ 'projected': '已立项',
+ 'developing': '研发中',
+ 'developed': '研发完毕',
+ 'testing': '测试中',
+ 'tested': '测试完毕',
+ 'verified': '已验收',
+ 'released': '已发布',
+ 'closed': '已关闭',
+ empty: '',
+ },
+ Company__guest: {
+ '1': '允许',
+ '0': '不允许',
empty: '',
},
Story__status: {
- 'draft': '草稿',
- 'active': '激活',
- 'closed': '已关闭',
- 'changed': '已变更',
+ 'draft': '草稿',
+ 'active': '激活',
+ 'closed': '已关闭',
+ 'changed': '已变更',
empty: '',
},
Action__read: {
- '0': '0',
- '1': '1',
+ '0': '0',
+ '1': '1',
empty: '',
},
YesNo3: {
- 'yes': '是',
- 'no': '否',
+ 'yes': '是',
+ 'no': '否',
empty: '',
},
Story__source: {
- 'customer': '客户',
- 'user': '用户',
- 'po': '产品经理',
- 'market': '市场',
- 'service': '客服',
- 'operation': '运营',
- 'support': '技术支持',
- 'competitor': '竞争对手',
- 'partner': '合作伙伴',
- 'dev': '开发人员',
- 'tester': '测试人员',
- 'bug': 'Bug',
- 'forum': '论坛',
- 'other': '其它',
+ 'customer': '客户',
+ 'user': '用户',
+ 'po': '产品经理',
+ 'market': '市场',
+ 'service': '客服',
+ 'operation': '运营',
+ 'support': '技术支持',
+ 'competitor': '竞争对手',
+ 'partner': '合作伙伴',
+ 'dev': '开发人员',
+ 'tester': '测试人员',
+ 'bug': 'Bug',
+ 'forum': '论坛',
+ 'other': '其它',
empty: '',
},
Task__status: {
- 'wait': '未开始',
- 'doing': '进行中',
- 'done': '已完成',
- 'pause': '已暂停',
- 'cancel': '已取消',
- 'closed': '已关闭',
+ 'wait': '未开始',
+ 'doing': '进行中',
+ 'done': '已完成',
+ 'pause': '已暂停',
+ 'cancel': '已取消',
+ 'closed': '已关闭',
empty: '',
},
Testcase__pri: {
- 1: '1',
- 2: '2',
- 3: '3',
- 4: '4',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
empty: '',
},
YesNo2: {
- 1: '是',
- 0: '否',
+ 1: '是',
+ 0: '否',
+ empty: '',
+ },
+ Role: {
+ empty: '',
+ },
+ Testcase__result: {
+ 'n/a': '忽略',
+ 'pass': '通过',
+ 'fail': '失败',
+ 'blocked': '阻塞',
empty: '',
},
Bug__pri: {
- 1: '1',
- 2: '2',
- 3: '3',
- 4: '4',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ empty: '',
+ },
+ Bug__resolution: {
+ 'bydesign': '设计如此',
+ 'duplicate': '重复Bug',
+ 'external': '外部原因',
+ 'fixed': '已解决',
+ 'notrepro': '无法重现',
+ 'postponed': '延期处理',
+ 'willnotfix': '不予解决',
+ 'tostory': '转为需求',
empty: '',
},
};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/codelist/codelist_zh_CN.ts b/app_Web/src/locale/lanres/codelist/codelist_zh_CN.ts
index 111f07ab2d01485c6bb17b1385fe81a0bbf1ad2f..90a7f0444fd9ec9ccc94a727209e5d1d16221d8a 100644
--- a/app_Web/src/locale/lanres/codelist/codelist_zh_CN.ts
+++ b/app_Web/src/locale/lanres/codelist/codelist_zh_CN.ts
@@ -1,287 +1,429 @@
export default {
Product__status: {
- 'normal': '正常',
- 'closed': '结束',
+ 'normal': '正常',
+ 'closed': '结束',
empty: '',
},
Bug__status: {
- 'active': '激活',
- 'resolved': '已解决',
- 'closed': '已关闭',
+ 'active': '激活',
+ 'resolved': '已解决',
+ 'closed': '已关闭',
empty: '',
},
Story__closed_reason: {
- 'done': '已完成',
- 'subdivided': '已细分',
- 'duplicate': '重复',
- 'postponed': '延期',
- 'willnotdo': '不做',
- 'cancel': '已取消',
- 'bydesign': '设计如此',
+ 'done': '已完成',
+ 'subdivided': '已细分',
+ 'duplicate': '重复',
+ 'postponed': '延期',
+ 'willnotdo': '不做',
+ 'cancel': '已取消',
+ 'bydesign': '设计如此',
empty: '',
},
Task__type: {
- 'design': '设计',
- 'devel': '开发',
- 'test': '测试',
- 'study': '研究',
- 'discuss': '讨论',
- 'ui': '界面',
- 'affair': '事务',
- 'misc': '其他',
+ 'design': '设计',
+ 'devel': '开发',
+ 'test': '测试',
+ 'study': '研究',
+ 'discuss': '讨论',
+ 'ui': '界面',
+ 'affair': '事务',
+ 'misc': '其他',
empty: '',
},
Story__pri: {
- 1: '1',
- 2: '2',
- 3: '3',
- 4: '4',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ empty: '',
+ },
+ ProjectTimeType: {
+ 'CONSUMED': '消耗时间',
+ 'LEFT': '剩余时间',
+ empty: '',
+ },
+ Bug__type: {
+ 'codeerror': '代码错误',
+ 'config': '配置相关',
+ 'install': '安装部署',
+ 'security': '安全相关',
+ 'performance': '性能问题',
+ 'standard': '标准规范',
+ 'automation': '测试脚本',
+ 'designdefect': '设计缺陷',
+ 'others': '其他',
empty: '',
},
Product__acl: {
- 'open': '默认设置(有产品视图权限,即可访问)',
- 'private': '私有产品相关负责人和项目团队成员才能访问)',
- 'custom': '自定义白名单(团队成员和白名单的成员可以访问)',
+ 'open': '默认设置(有产品视图权限,即可访问)',
+ 'private': '私有产品相关负责人和项目团队成员才能访问)',
+ 'custom': '自定义白名单(团队成员和白名单的成员可以访问)',
empty: '',
},
Action__type: {
- 'created': '创建',
- 'opened': '创建',
- 'changed': '变更了',
- 'edited': '编辑了',
- 'assigned': '指派了',
- 'closed': '关闭了',
- 'deleted': '删除了',
- 'deletedfile': '删除附件',
- 'editfile': '编辑附件',
- 'erased': '删除了',
- 'undeleted': '还原了',
- 'hidden': '隐藏了',
- 'commented': '评论了',
- 'activated': '激活了',
- 'blocked': '阻塞了',
- 'resolved': '解决了',
- 'reviewed': '评审了',
- 'moved': '移动了',
- 'confirmed': '确认了需求',
- 'bugconfirmed': '确认了',
- 'tostory': '转需求',
- 'frombug': '转需求',
- 'fromlib': '从用例库导入',
- 'totask': '转任务',
- 'svncommited': '提交代码',
- 'gitcommited': '提交代码',
- 'linked2plan': '关联计划',
- 'unlinkedfromplan': '移除计划',
- 'changestatus': '修改状态',
- 'marked': '编辑了',
- 'linked2project': '关联项目',
- 'unlinkedfromproject': '移除项目',
- 'unlinkedfrombuild': '移除版本',
- 'linked2release': '关联发布',
- 'unlinkedfromrelease': '移除发布',
- 'linkrelatedbug': '关联了相关Bug',
- 'unlinkrelatedbug': '移除了相关Bug',
- 'linkrelatedcase': '关联了相关用例',
- 'unlinkrelatedcase': '移除了相关用例',
- 'linkrelatedstory': '关联了相关需求',
- 'unlinkrelatedstory': '移除了相关需求',
- 'subdividestory': '细分了需求',
- 'unlinkchildstory': '移除了细分需求',
- 'started': '开始了',
- 'restarted': '继续了',
- 'recordestimate': '记录了工时',
- 'editestimate': '编辑了工时',
- 'canceled': '取消了',
- 'finished': '完成了',
- 'paused': '暂停了',
- 'verified': '验收了',
- 'delayed': '延期',
- 'suspended': '挂起',
- 'login': '登录系统',
- 'logout': '退出登录',
- 'deleteestimate': '删除了工时',
- 'linked2build': '关联了',
- 'linked2bug': '关联了',
- 'linkchildtask': '关联子任务',
- 'unlinkchildrentask': '取消关联子任务',
- 'linkparenttask': '关联到父任务',
- 'unlinkparenttask': '从父任务取消关联',
- 'batchcreate': '批量创建任务',
- 'createchildren': '创建子任务',
- 'managed': '维护',
- 'deletechildrentask': '删除子任务',
- 'createchildrenstory': '创建子需求',
- 'linkchildstory': '关联子需求',
- 'unlinkchildrenstory': '取消关联子需求',
- 'linkparentstory': '关联到父需求',
- 'unlinkparentstory': '从父需求取消关联',
- 'deletechildrenstory': '删除子需求',
+ 'created': '创建',
+ 'opened': '创建',
+ 'changed': '变更了',
+ 'edited': '编辑了',
+ 'assigned': '指派了',
+ 'closed': '关闭了',
+ 'deleted': '删除了',
+ 'deletedfile': '删除附件',
+ 'editfile': '编辑附件',
+ 'erased': '删除了',
+ 'undeleted': '还原了',
+ 'hidden': '隐藏了',
+ 'commented': '评论了',
+ 'activated': '激活了',
+ 'blocked': '阻塞了',
+ 'resolved': '解决了',
+ 'reviewed': '评审了',
+ 'moved': '移动了',
+ 'confirmed': '确认了需求',
+ 'bugconfirmed': '确认了',
+ 'tostory': '转需求',
+ 'frombug': '转需求',
+ 'fromlib': '从用例库导入',
+ 'totask': '转任务',
+ 'svncommited': '提交代码',
+ 'gitcommited': '提交代码',
+ 'linked2plan': '关联计划',
+ 'unlinkedfromplan': '移除计划',
+ 'changestatus': '修改状态',
+ 'marked': '编辑了',
+ 'linked2project': '关联项目',
+ 'unlinkedfromproject': '移除项目',
+ 'unlinkedfrombuild': '移除版本',
+ 'linked2release': '关联发布',
+ 'unlinkedfromrelease': '移除发布',
+ 'linkrelatedbug': '关联了相关Bug',
+ 'unlinkrelatedbug': '移除了相关Bug',
+ 'linkrelatedcase': '关联了相关用例',
+ 'unlinkrelatedcase': '移除了相关用例',
+ 'linkrelatedstory': '关联了相关需求',
+ 'unlinkrelatedstory': '移除了相关需求',
+ 'subdividestory': '细分了需求',
+ 'unlinkchildstory': '移除了细分需求',
+ 'started': '开始了',
+ 'restarted': '继续了',
+ 'recordestimate': '记录了工时',
+ 'editestimate': '编辑了工时',
+ 'canceled': '取消了',
+ 'finished': '完成了',
+ 'paused': '暂停了',
+ 'verified': '验收了',
+ 'delayed': '延期',
+ 'suspended': '挂起',
+ 'login': '登录系统',
+ 'logout': '退出登录',
+ 'deleteestimate': '删除了工时',
+ 'linked2build': '关联了',
+ 'linked2bug': '关联了',
+ 'linkchildtask': '关联子任务',
+ 'unlinkchildrentask': '取消关联子任务',
+ 'linkparenttask': '关联到父任务',
+ 'unlinkparenttask': '从父任务取消关联',
+ 'batchcreate': '批量创建任务',
+ 'createchildren': '创建子任务',
+ 'managed': '维护',
+ 'deletechildrentask': '删除子任务',
+ 'createchildrenstory': '创建子需求',
+ 'linkchildstory': '关联子需求',
+ 'unlinkchildrenstory': '取消关联子需求',
+ 'linkparentstory': '关联到父需求',
+ 'unlinkparentstory': '从父需求取消关联',
+ 'deletechildrenstory': '删除子需求',
+ empty: '',
+ },
+ User__gender: {
+ 'f': '女',
+ 'm': '男',
empty: '',
},
Action__object_type: {
- 'product': '产品',
- 'story': '需求',
- 'productplan': '计划',
- 'release': '发布',
- 'project': '项目',
- 'task': '任务',
- 'build': '版本',
- 'bug': 'Bug',
- 'case': '用例',
- 'caseresult': '用例结果',
- 'stepresult': '用例步骤',
- 'testtask': '测试单',
- 'user': '用户',
- 'doc': '文档',
- 'doclib': '文档库',
- 'todo': '待办',
- 'branch': '分支',
- 'module': '模块',
- 'testsuite': '套件',
- 'caselib': '用例库',
- 'testreport': '报告',
- 'entry': '应用',
- 'webhook': 'Webhook',
+ 'product': '产品',
+ 'story': '需求',
+ 'productplan': '计划',
+ 'release': '发布',
+ 'project': '项目',
+ 'task': '任务',
+ 'build': '版本',
+ 'bug': 'Bug',
+ 'case': '用例',
+ 'caseresult': '用例结果',
+ 'stepresult': '用例步骤',
+ 'testtask': '测试单',
+ 'user': '用户',
+ 'doc': '文档',
+ 'doclib': '文档库',
+ 'todo': '待办',
+ 'branch': '分支',
+ 'module': '模块',
+ 'testsuite': '套件',
+ 'caselib': '用例库',
+ 'testreport': '报告',
+ 'entry': '应用',
+ 'webhook': 'Webhook',
empty: '',
},
CurProductPlan: {
empty: '',
},
Task__pri: {
- 1: '1',
- 2: '2',
- 3: '3',
- 4: '4',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
empty: '',
},
Project__status: {
- 'wait': '未开始',
- 'doing': '进行中',
- 'suspended': '已挂起',
- 'closed': '已关闭',
+ 'wait': '未开始',
+ 'doing': '进行中',
+ 'suspended': '已挂起',
+ 'closed': '已关闭',
empty: '',
},
Release__status: {
- 'normal': '正常',
- 'terminate': '停止维护',
+ 'normal': '正常',
+ 'terminate': '停止维护',
+ empty: '',
+ },
+ Task_quickpacket: {
+ 'All': '所有',
+ 'UNCLOSED': '未关闭',
+ 'TOME': '指派给我',
+ 'MORE': '更多',
+ 'NOTSTARTED': '未开始',
+ 'INPROGRESS': '进行中',
+ 'UNACCOMPLISHED': '未完成',
+ 'IFINISHED': '我完成',
+ 'COMPLETED': '已完成',
+ 'CLOSED': '已关闭',
+ 'CANCELLED': '已取消',
+ empty: '',
+ },
+ Bug__quickpacket: {
+ 'All': '所有',
+ 'UNCLOSED': '未关闭',
+ 'ICREATE': '由我创建',
+ 'TOME': '指派给我',
+ 'BYME': '由我解决',
+ 'WAITCLOSED': '待关闭',
+ 'UNRESOLVED': '未解决',
+ 'MORE': '更多',
+ 'UNCONFIRMED': '未确认',
+ 'UNASSIGNED': '未指派',
+ 'EXPIREDBUG': '过期Bug',
empty: '',
},
Task__closed_reason: {
- 'done': '已完成',
- 'cancel': '已取消',
+ 'done': '已完成',
+ 'cancel': '已取消',
+ empty: '',
+ },
+ Bug__os: {
+ 'all': '全部',
+ 'windows': 'Windows',
+ 'win10': 'Windows 10',
+ 'win8': 'Windows 8',
+ 'win7': 'Windows 7',
+ 'vista': 'Windows Vista',
+ 'winxp': 'Windows XP',
+ 'win2012': 'Windows 2012',
+ 'win2008': 'Windows 2008',
+ 'win2003': 'Windows 2003',
+ 'win2000': 'Windows 2000',
+ 'android': 'Android',
+ 'ios': 'IOS',
+ 'wp8': 'WP8',
+ 'wp7': 'WP7',
+ 'symbian': 'Symbian',
+ 'linux': 'Linux',
+ 'freebsd': 'FreeBSD',
+ 'osx': 'OS X',
+ 'unix': 'Unix',
+ 'others': '其他',
empty: '',
},
UserRealName: {
empty: '',
},
Product__type: {
- 'normal': '正常',
- 'branch': '多分支',
- 'platform': '多平台',
+ 'normal': '正常',
+ 'branch': '多分支',
+ 'platform': '多平台',
+ empty: '',
+ },
+ Testcase__type: {
+ 'feature': '功能测试',
+ 'performance': '性能测试',
+ 'config': '配置相关',
+ 'install': '安装部署',
+ 'security': '安全相关',
+ 'interface': '接口测试',
+ 'unit': '单元测试',
+ 'other': '其他',
+ empty: '',
+ },
+ Bug__severity: {
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
empty: '',
},
Testcase__status: {
- 'wait': '待评审',
- 'normal': '正常',
- 'blocked': '被阻塞',
- 'investigate': '研究中',
+ 'wait': '待评审',
+ 'normal': '正常',
+ 'blocked': '被阻塞',
+ 'investigate': '研究中',
empty: '',
},
Story__quickpacket: {
- 'ALL': '所有',
- 'UNCLOSED': '未关闭',
- 'TOME': '指给我',
- 'ICREATE': '我创建',
- 'IREVIEW': '我评审',
- 'DRAFT': '草稿',
- 'MORE': '更多',
- 'ICLOSE': '我关闭',
- 'ACTIVED': '激活',
- 'CHANGED': '已变更',
- 'TOBECLOSED': '待关闭',
- 'CLOSED': '已关闭',
+ 'ALL': '所有',
+ 'UNCLOSED': '未关闭',
+ 'TOME': '指给我',
+ 'ICREATE': '我创建',
+ 'IREVIEW': '我评审',
+ 'DRAFT': '草稿',
+ 'MORE': '更多',
+ 'ICLOSE': '我关闭',
+ 'ACTIVED': '激活',
+ 'CHANGED': '已变更',
+ 'TOBECLOSED': '待关闭',
+ 'CLOSED': '已关闭',
+ empty: '',
+ },
+ Bug__browser: {
+ 'all': '全部',
+ 'ie': 'IE系列',
+ 'ie11': 'IE11',
+ 'ie10': 'IE10',
+ 'ie9': 'IE9',
+ 'ie8': 'IE8',
+ 'ie7': 'IE7',
+ 'ie6': 'IE6',
+ 'chrome': 'chrome',
+ 'firefox': 'firefox系列',
+ 'firefox4': 'firefox4',
+ 'firefox3': 'firefox3',
+ 'firefox2': 'firefox2',
+ 'opera': 'opera系列',
+ 'opera11': 'opera11',
+ 'oprea10': 'oprea10',
+ 'opera9': 'opera9',
+ 'safari': 'safari',
+ 'maxthon': '傲游',
+ 'uc': 'UC',
+ 'others': '其他',
empty: '',
},
Project__type: {
- 'sprint': '短期项目',
- 'waterfall': '长期项目',
- 'ops': '运维项目',
+ 'sprint': '短期项目',
+ 'waterfall': '长期项目',
+ 'ops': '运维项目',
empty: '',
},
Story__stage: {
- 'wait': '未开始',
- 'planned': '已计划',
- 'projected': '已立项',
- 'developing': '研发中',
- 'developed': '研发完毕',
- 'testing': '测试中',
- 'tested': '测试完毕',
- 'verified': '已验收',
- 'released': '已发布',
- 'closed': '已关闭',
+ 'wait': '未开始',
+ 'planned': '已计划',
+ 'projected': '已立项',
+ 'developing': '研发中',
+ 'developed': '研发完毕',
+ 'testing': '测试中',
+ 'tested': '测试完毕',
+ 'verified': '已验收',
+ 'released': '已发布',
+ 'closed': '已关闭',
+ empty: '',
+ },
+ Company__guest: {
+ '1': '允许',
+ '0': '不允许',
empty: '',
},
Story__status: {
- 'draft': '草稿',
- 'active': '激活',
- 'closed': '已关闭',
- 'changed': '已变更',
+ 'draft': '草稿',
+ 'active': '激活',
+ 'closed': '已关闭',
+ 'changed': '已变更',
empty: '',
},
Action__read: {
- '0': '0',
- '1': '1',
+ '0': '0',
+ '1': '1',
empty: '',
},
YesNo3: {
- 'yes': '是',
- 'no': '否',
+ 'yes': '是',
+ 'no': '否',
empty: '',
},
Story__source: {
- 'customer': '客户',
- 'user': '用户',
- 'po': '产品经理',
- 'market': '市场',
- 'service': '客服',
- 'operation': '运营',
- 'support': '技术支持',
- 'competitor': '竞争对手',
- 'partner': '合作伙伴',
- 'dev': '开发人员',
- 'tester': '测试人员',
- 'bug': 'Bug',
- 'forum': '论坛',
- 'other': '其它',
+ 'customer': '客户',
+ 'user': '用户',
+ 'po': '产品经理',
+ 'market': '市场',
+ 'service': '客服',
+ 'operation': '运营',
+ 'support': '技术支持',
+ 'competitor': '竞争对手',
+ 'partner': '合作伙伴',
+ 'dev': '开发人员',
+ 'tester': '测试人员',
+ 'bug': 'Bug',
+ 'forum': '论坛',
+ 'other': '其它',
empty: '',
},
Task__status: {
- 'wait': '未开始',
- 'doing': '进行中',
- 'done': '已完成',
- 'pause': '已暂停',
- 'cancel': '已取消',
- 'closed': '已关闭',
+ 'wait': '未开始',
+ 'doing': '进行中',
+ 'done': '已完成',
+ 'pause': '已暂停',
+ 'cancel': '已取消',
+ 'closed': '已关闭',
empty: '',
},
Testcase__pri: {
- 1: '1',
- 2: '2',
- 3: '3',
- 4: '4',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
empty: '',
},
YesNo2: {
- 1: '是',
- 0: '否',
+ 1: '是',
+ 0: '否',
+ empty: '',
+ },
+ Role: {
+ empty: '',
+ },
+ Testcase__result: {
+ 'n/a': '忽略',
+ 'pass': '通过',
+ 'fail': '失败',
+ 'blocked': '阻塞',
empty: '',
},
Bug__pri: {
- 1: '1',
- 2: '2',
- 3: '3',
- 4: '4',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ empty: '',
+ },
+ Bug__resolution: {
+ 'bydesign': '设计如此',
+ 'duplicate': '重复Bug',
+ 'external': '外部原因',
+ 'fixed': '已解决',
+ 'notrepro': '无法重现',
+ 'postponed': '延期处理',
+ 'willnotfix': '不予解决',
+ 'tostory': '转为需求',
empty: '',
},
};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/company/company_en_US.ts b/app_Web/src/locale/lanres/company/company_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6c73be0485e31894dd0f3909f0ee576980fe63c3
--- /dev/null
+++ b/app_Web/src/locale/lanres/company/company_en_US.ts
@@ -0,0 +1,106 @@
+
+export default {
+ fields: {
+ admins: 'admins',
+ fax: '传真',
+ deleted: '逻辑删除标志',
+ website: '官网',
+ id: 'id',
+ zipcode: '邮政编码',
+ address: '通讯地址',
+ backyard: '内网',
+ name: '公司名称',
+ guest: '匿名登陆',
+ phone: '联系电话',
+ },
+ views: {
+ depttreeexpview: {
+ caption: "公司",
+ title: '公司',
+ },
+ deptusertreeexpview: {
+ caption: "公司",
+ title: '公司',
+ },
+ maintabexpview: {
+ caption: "组织权限",
+ title: '组织权限',
+ },
+ mainview: {
+ caption: "公司信息",
+ title: '公司信息',
+ },
+ editview: {
+ caption: "公司信息",
+ title: '公司信息',
+ },
+ mainview9: {
+ caption: "公司",
+ title: '公司',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "company基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "id",
+ srfmajortext: "公司名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "公司名称",
+ phone: "联系电话",
+ fax: "传真",
+ address: "通讯地址",
+ zipcode: "邮政编码",
+ website: "官网",
+ backyard: "内网",
+ guest: "匿名登陆",
+ id: "id",
+ },
+ uiactions: {
+ },
+ },
+ main_edit_form: {
+ details: {
+ group1: "company基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "id",
+ srfmajortext: "公司名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "公司名称",
+ phone: "联系电话",
+ fax: "传真",
+ address: "通讯地址",
+ zipcode: "邮政编码",
+ website: "官网",
+ backyard: "内网",
+ guest: "匿名登陆",
+ id: "id",
+ },
+ uiactions: {
+ },
+ },
+ deptexp_treeview: {
+ nodes: {
+ alldept: '所有部门',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+ deptuserexp_treeview: {
+ nodes: {
+ alldept: '所有部门',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/company/company_zh_CN.ts b/app_Web/src/locale/lanres/company/company_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..952c4b58a1a89d3dce483eb35df8ff69c1ffa1ef
--- /dev/null
+++ b/app_Web/src/locale/lanres/company/company_zh_CN.ts
@@ -0,0 +1,105 @@
+export default {
+ fields: {
+ admins: 'admins',
+ fax: '传真',
+ deleted: '逻辑删除标志',
+ website: '官网',
+ id: 'id',
+ zipcode: '邮政编码',
+ address: '通讯地址',
+ backyard: '内网',
+ name: '公司名称',
+ guest: '匿名登陆',
+ phone: '联系电话',
+ },
+ views: {
+ depttreeexpview: {
+ caption: '公司',
+ title: '公司',
+ },
+ deptusertreeexpview: {
+ caption: '公司',
+ title: '公司',
+ },
+ maintabexpview: {
+ caption: '组织权限',
+ title: '组织权限',
+ },
+ mainview: {
+ caption: '公司信息',
+ title: '公司信息',
+ },
+ editview: {
+ caption: '公司信息',
+ title: '公司信息',
+ },
+ mainview9: {
+ caption: '公司',
+ title: '公司',
+ },
+ },
+ main_form: {
+ details: {
+ group1: 'company基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'id',
+ srfmajortext: '公司名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '公司名称',
+ phone: '联系电话',
+ fax: '传真',
+ address: '通讯地址',
+ zipcode: '邮政编码',
+ website: '官网',
+ backyard: '内网',
+ guest: '匿名登陆',
+ id: 'id',
+ },
+ uiactions: {
+ },
+ },
+ main_edit_form: {
+ details: {
+ group1: 'company基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'id',
+ srfmajortext: '公司名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '公司名称',
+ phone: '联系电话',
+ fax: '传真',
+ address: '通讯地址',
+ zipcode: '邮政编码',
+ website: '官网',
+ backyard: '内网',
+ guest: '匿名登陆',
+ id: 'id',
+ },
+ uiactions: {
+ },
+ },
+ deptexp_treeview: {
+ nodes: {
+ alldept: '所有部门',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+ deptuserexp_treeview: {
+ nodes: {
+ alldept: '所有部门',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/dept/dept_en_US.ts b/app_Web/src/locale/lanres/dept/dept_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c9721ae5a7caedf09bac1d911eae9d5d3a611f2a
--- /dev/null
+++ b/app_Web/src/locale/lanres/dept/dept_en_US.ts
@@ -0,0 +1,156 @@
+
+export default {
+ fields: {
+ manager: '负责人',
+ grade: 'grade',
+ function: 'function',
+ order: 'order',
+ path: 'path',
+ position: 'position',
+ id: 'id',
+ name: '部门名称',
+ parentname: '上级部门',
+ parent: 'parent',
+ isleaf: '无子部门',
+ },
+ views: {
+ pickupview: {
+ caption: "部门",
+ title: '部门',
+ },
+ maingridview: {
+ caption: "部门",
+ title: '部门',
+ },
+ editview: {
+ caption: "部门信息",
+ title: '部门信息',
+ },
+ pickupgridview: {
+ caption: "部门",
+ title: '部门',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "id",
+ srfmajortext: "部门名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "部门名称",
+ parentname: "上级部门",
+ manager: "负责人",
+ id: "id",
+ parent: "parent",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ name: "部门",
+ parentname: "上级部门",
+ manager: "负责人",
+ order: "排序值",
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: "Save",
+ tip: "Save",
+ },
+ tbitem4: {
+ caption: "Save And New",
+ tip: "Save And New",
+ },
+ tbitem5: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ tbitem6: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem7: {
+ caption: "Remove And Close",
+ tip: "Remove And Close Window",
+ },
+ tbitem8: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem12: {
+ caption: "New",
+ tip: "New",
+ },
+ tbitem13: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem14: {
+ caption: "Copy",
+ tip: "Copy {0}",
+ },
+ tbitem16: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem23: {
+ caption: "第一个记录",
+ tip: "第一个记录",
+ },
+ tbitem24: {
+ caption: "上一个记录",
+ tip: "上一个记录",
+ },
+ tbitem25: {
+ caption: "下一个记录",
+ tip: "下一个记录",
+ },
+ tbitem26: {
+ caption: "最后一个记录",
+ tip: "最后一个记录",
+ },
+ tbitem21: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem22: {
+ caption: "Help",
+ tip: "Help",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/dept/dept_zh_CN.ts b/app_Web/src/locale/lanres/dept/dept_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a9739be1de7a981e9fa144cd077c6de232396dda
--- /dev/null
+++ b/app_Web/src/locale/lanres/dept/dept_zh_CN.ts
@@ -0,0 +1,155 @@
+export default {
+ fields: {
+ manager: '负责人',
+ grade: 'grade',
+ function: 'function',
+ order: 'order',
+ path: 'path',
+ position: 'position',
+ id: 'id',
+ name: '部门名称',
+ parentname: '上级部门',
+ parent: 'parent',
+ isleaf: '无子部门',
+ },
+ views: {
+ pickupview: {
+ caption: '部门',
+ title: '部门',
+ },
+ maingridview: {
+ caption: '部门',
+ title: '部门',
+ },
+ editview: {
+ caption: '部门信息',
+ title: '部门信息',
+ },
+ pickupgridview: {
+ caption: '部门',
+ title: '部门',
+ },
+ },
+ main_form: {
+ details: {
+ group1: '基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'id',
+ srfmajortext: '部门名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '部门名称',
+ parentname: '上级部门',
+ manager: '负责人',
+ id: 'id',
+ parent: 'parent',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ name: '部门',
+ parentname: '上级部门',
+ manager: '负责人',
+ order: '排序值',
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: '保存',
+ tip: '保存',
+ },
+ tbitem4: {
+ caption: '保存并新建',
+ tip: '保存并新建',
+ },
+ tbitem5: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ tbitem6: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem7: {
+ caption: '删除',
+ tip: '删除',
+ },
+ tbitem8: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem12: {
+ caption: '新建',
+ tip: '新建',
+ },
+ tbitem13: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem14: {
+ caption: '拷贝',
+ tip: '拷贝',
+ },
+ tbitem16: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem23: {
+ caption: '第一个记录',
+ tip: '第一个记录',
+ },
+ tbitem24: {
+ caption: '上一个记录',
+ tip: '上一个记录',
+ },
+ tbitem25: {
+ caption: '下一个记录',
+ tip: '下一个记录',
+ },
+ tbitem26: {
+ caption: '最后一个记录',
+ tip: '最后一个记录',
+ },
+ tbitem21: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem22: {
+ caption: '帮助',
+ tip: '帮助',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/action/action_en_US.ts b/app_Web/src/locale/lanres/entities/action/action_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5ff7ac38c46de5c31acf06103b100dc4b5c480ae
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/action/action_en_US.ts
@@ -0,0 +1,130 @@
+
+export default {
+ fields: {
+ extra: '附加值',
+ objecttype: '对象类型',
+ id: 'id',
+ comment: '备注',
+ read: '已读',
+ action: '动作',
+ date: '日期',
+ product: '产品',
+ objectid: '对象ID',
+ actor: '操作者',
+ project: '项目',
+ },
+ views: {
+ histroylistview: {
+ caption: "系统日志",
+ title: '系统日志',
+ },
+ projecttrendslistview: {
+ caption: "系统日志",
+ title: '系统日志',
+ },
+ projecttrendslistview9: {
+ caption: "系统日志",
+ title: '系统日志',
+ },
+ producttrendslistview9: {
+ caption: "系统日志",
+ title: '系统日志',
+ },
+ alltrendslistview: {
+ caption: "系统日志",
+ title: '系统日志',
+ },
+ producttrendslistview: {
+ caption: "系统日志",
+ title: '系统日志',
+ },
+ editview: {
+ caption: "系统日志",
+ title: '系统日志',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "action基本信息",
+ formpage1: "基本信息",
+ group2: "操作信息",
+ formpage2: "其它",
+ srforikey: "",
+ srfkey: "id",
+ srfmajortext: "备注",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ id: "id",
+ },
+ uiactions: {
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: "Save",
+ tip: "Save",
+ },
+ tbitem4: {
+ caption: "Save And New",
+ tip: "Save And New",
+ },
+ tbitem5: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ tbitem6: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem7: {
+ caption: "Remove And Close",
+ tip: "Remove And Close Window",
+ },
+ tbitem8: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem12: {
+ caption: "New",
+ tip: "New",
+ },
+ tbitem13: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem14: {
+ caption: "Copy",
+ tip: "Copy {0}",
+ },
+ tbitem16: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem23: {
+ caption: "第一个记录",
+ tip: "第一个记录",
+ },
+ tbitem24: {
+ caption: "上一个记录",
+ tip: "上一个记录",
+ },
+ tbitem25: {
+ caption: "下一个记录",
+ tip: "下一个记录",
+ },
+ tbitem26: {
+ caption: "最后一个记录",
+ tip: "最后一个记录",
+ },
+ tbitem21: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem22: {
+ caption: "Help",
+ tip: "Help",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/action/action_zh_CN.ts b/app_Web/src/locale/lanres/entities/action/action_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f6958590187073563d44d0cc9631852b18ce0825
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/action/action_zh_CN.ts
@@ -0,0 +1,129 @@
+export default {
+ fields: {
+ extra: '附加值',
+ objecttype: '对象类型',
+ id: 'id',
+ comment: '备注',
+ read: '已读',
+ action: '动作',
+ date: '日期',
+ product: '产品',
+ objectid: '对象ID',
+ actor: '操作者',
+ project: '项目',
+ },
+ views: {
+ histroylistview: {
+ caption: '系统日志',
+ title: '系统日志',
+ },
+ projecttrendslistview: {
+ caption: '系统日志',
+ title: '系统日志',
+ },
+ projecttrendslistview9: {
+ caption: '系统日志',
+ title: '系统日志',
+ },
+ producttrendslistview9: {
+ caption: '系统日志',
+ title: '系统日志',
+ },
+ alltrendslistview: {
+ caption: '系统日志',
+ title: '系统日志',
+ },
+ producttrendslistview: {
+ caption: '系统日志',
+ title: '系统日志',
+ },
+ editview: {
+ caption: '系统日志',
+ title: '系统日志',
+ },
+ },
+ main_form: {
+ details: {
+ group1: 'action基本信息',
+ formpage1: '基本信息',
+ group2: '操作信息',
+ formpage2: '其它',
+ srforikey: '',
+ srfkey: 'id',
+ srfmajortext: '备注',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ id: 'id',
+ },
+ uiactions: {
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: '保存',
+ tip: '保存',
+ },
+ tbitem4: {
+ caption: '保存并新建',
+ tip: '保存并新建',
+ },
+ tbitem5: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ tbitem6: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem7: {
+ caption: '删除',
+ tip: '删除',
+ },
+ tbitem8: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem12: {
+ caption: '新建',
+ tip: '新建',
+ },
+ tbitem13: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem14: {
+ caption: '拷贝',
+ tip: '拷贝',
+ },
+ tbitem16: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem23: {
+ caption: '第一个记录',
+ tip: '第一个记录',
+ },
+ tbitem24: {
+ caption: '上一个记录',
+ tip: '上一个记录',
+ },
+ tbitem25: {
+ caption: '下一个记录',
+ tip: '下一个记录',
+ },
+ tbitem26: {
+ caption: '最后一个记录',
+ tip: '最后一个记录',
+ },
+ tbitem21: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem22: {
+ caption: '帮助',
+ tip: '帮助',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/branch/branch_en_US.ts b/app_Web/src/locale/lanres/entities/branch/branch_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0dd01ed0f48083bde5c45f2232579f7a554979f6
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/branch/branch_en_US.ts
@@ -0,0 +1,74 @@
+
+export default {
+ fields: {
+ name: '名称',
+ deleted: '已删除',
+ id: '编号',
+ order: '排序',
+ product: '所属产品',
+ },
+ views: {
+ pmgridview: {
+ caption: "平台管理",
+ title: '平台管理',
+ },
+ pmeditview: {
+ caption: "产品的分支和平台信息",
+ title: '产品的分支和平台信息',
+ },
+ },
+ platformmanagement_form: {
+ details: {
+ group1: "产品的分支和平台信息基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "名称",
+ order: "排序",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ platformmanagement_grid: {
+ columns: {
+ id: "编号",
+ name: "名称",
+ order: "排序",
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ pmgridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "Edit",
+ tip: "Edit {0}",
+ },
+ },
+ pmeditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/branch/branch_zh_CN.ts b/app_Web/src/locale/lanres/entities/branch/branch_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..29e0a26aea8e44061bc8a3cefeaa2e65ed0219ce
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/branch/branch_zh_CN.ts
@@ -0,0 +1,73 @@
+export default {
+ fields: {
+ name: '名称',
+ deleted: '已删除',
+ id: '编号',
+ order: '排序',
+ product: '所属产品',
+ },
+ views: {
+ pmgridview: {
+ caption: '平台管理',
+ title: '平台管理',
+ },
+ pmeditview: {
+ caption: '产品的分支和平台信息',
+ title: '产品的分支和平台信息',
+ },
+ },
+ platformmanagement_form: {
+ details: {
+ group1: '产品的分支和平台信息基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '名称',
+ order: '排序',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ platformmanagement_grid: {
+ columns: {
+ id: '编号',
+ name: '名称',
+ order: '排序',
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ pmgridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '编辑',
+ tip: '编辑',
+ },
+ },
+ pmeditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/bug/bug_en_US.ts b/app_Web/src/locale/lanres/entities/bug/bug_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c75433427122e8d1809ecd6de730fdc47d801a61
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/bug/bug_en_US.ts
@@ -0,0 +1,394 @@
+
+export default {
+ fields: {
+ severity: '严重程度',
+ storyversion: '需求版本',
+ linkbug: '相关Bug',
+ activateddate: '激活日期',
+ assignedto: '指派给',
+ resolution: '解决方案',
+ lastediteddate: '修改日期',
+ result: 'result',
+ keywords: '关键词',
+ closedby: '由谁关闭',
+ browser: '浏览器',
+ steps: '重现步骤',
+ v2: 'v2',
+ confirmed: '是否确认',
+ openedby: '由谁创建',
+ activatedcount: '激活次数',
+ openeddate: '创建日期',
+ closeddate: '关闭日期',
+ mailto: '抄送给',
+ assigneddate: '指派日期',
+ deadline: '截止日期',
+ color: '标题颜色',
+ resolveddate: '解决日期',
+ type: 'Bug类型',
+ status: 'Bug状态',
+ openedbuild: '影响版本',
+ v1: 'v1',
+ deleted: '已删除',
+ lines: 'lines',
+ substatus: '子状态',
+ id: 'Bug编号',
+ found: 'found',
+ resolvedby: '解决者',
+ resolvedbuild: '解决版本',
+ pri: '优先级',
+ os: '操作系统',
+ hardware: 'hardware',
+ lasteditedby: '最后修改者',
+ title: 'Bug标题',
+ productname: '产品',
+ projectname: '项目',
+ storyname: '需求',
+ caseversion: '用例版本',
+ repotype: '代码类型',
+ tostory: '转需求',
+ entry: '应用',
+ product: '所属产品',
+ totask: '转任务',
+ plan: '所属计划',
+ module: '所属模块',
+ branch: '平台/分支',
+ duplicatebug: '重复ID',
+ repo: '代码',
+ story: '相关需求',
+ ibizcase: '相关用例',
+ project: '所属项目',
+ task: '相关任务',
+ testtask: '测试单',
+ },
+ views: {
+ plansubgridview: {
+ caption: "Bug",
+ title: 'Bug',
+ },
+ maineditview: {
+ caption: "Bug编辑",
+ title: 'Bug编辑',
+ },
+ maindashboardview: {
+ caption: "Bug",
+ title: 'Bug',
+ },
+ pickupgridview: {
+ caption: "Bug",
+ title: 'Bug',
+ },
+ mpickupview: {
+ caption: "关联Bug",
+ title: '关联Bug',
+ },
+ buglifeeditview9: {
+ caption: "Bug",
+ title: 'Bug',
+ },
+ editview: {
+ caption: "Bug",
+ title: 'Bug',
+ },
+ stepsinfoeditview: {
+ caption: "重现步骤",
+ title: '重现步骤',
+ },
+ gridview9_assignedtome: {
+ caption: "Bug",
+ title: 'Bug',
+ },
+ gridview: {
+ caption: "Bug",
+ title: 'Bug',
+ },
+ dashboardmaineditview9: {
+ caption: "Bug",
+ title: 'Bug',
+ },
+ },
+ stepsinfo_form: {
+ details: {
+ group1: "Bug基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "修改日期",
+ srforikey: "",
+ srfkey: "Bug编号",
+ srfmajortext: "Bug标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ steps: "",
+ id: "Bug编号",
+ },
+ uiactions: {
+ },
+ },
+ main_form: {
+ details: {
+ grouppanel1: "分组面板",
+ grouppanel2: "分组面板",
+ group1: "bug基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "修改日期",
+ srforikey: "",
+ srfkey: "Bug编号",
+ srfmajortext: "Bug标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ productname: "产品",
+ product: "所属产品",
+ module: "所属模块",
+ project: "所属项目",
+ projectname: "项目",
+ openedbuild: "影响版本",
+ assignedto: "指派给",
+ deadline: "截止日期",
+ type: "Bug类型",
+ os: "操作系统",
+ browser: "浏览器",
+ title: "Bug标题",
+ severity: "严重程度",
+ pri: "优先级",
+ steps: "重现步骤",
+ story: "相关需求",
+ task: "相关任务",
+ mailto: "抄送给",
+ keywords: "关键词",
+ id: "Bug编号",
+ },
+ uiactions: {
+ },
+ },
+ dashboardmainedit_form: {
+ details: {
+ druipart1: "",
+ grouppanel6: "历史记录",
+ grouppanel1: "分组面板",
+ grouppanel3: "基本信息",
+ grouppanel4: "项目/需求/任务",
+ grouppanel5: "Bug的一生",
+ grouppanel2: "分组面板",
+ group1: "Bug基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "修改日期",
+ srforikey: "",
+ srfkey: "Bug编号",
+ srfmajortext: "Bug标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ title: "Bug标题",
+ steps: "重现步骤",
+ product: "所属产品",
+ productname: "产品",
+ module: "所属模块",
+ plan: "所属计划",
+ type: "Bug类型",
+ severity: "严重程度",
+ pri: "优先级",
+ status: "Bug状态",
+ activatedcount: "激活次数",
+ activateddate: "激活日期",
+ confirmed: "是否确认",
+ assignedto: "当前指派",
+ deadline: "截止日期",
+ os: "操作系统",
+ browser: "浏览器",
+ keywords: "关键词",
+ mailto: "抄送给",
+ project: "所属项目",
+ projectname: "项目",
+ story: "相关需求",
+ task: "相关任务",
+ openedby: "由谁创建",
+ openedbuild: "影响版本",
+ resolvedby: "由谁解决",
+ resolution: "解决方案",
+ resolvedbuild: "解决版本",
+ closedby: "由谁关闭",
+ lasteditedby: "最后修改者",
+ id: "Bug编号",
+ },
+ uiactions: {
+ },
+ },
+ dashboardmain_form: {
+ details: {
+ maingroup1: "Bug基本信息",
+ formpage1: "基本信息",
+ grouppanel1: "分组面板",
+ formpage2: "项目/需求/任务",
+ srfupdatedate: "修改日期",
+ srforikey: "",
+ srfkey: "Bug编号",
+ srfmajortext: "Bug标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ product: "所属产品",
+ title: "Bug标题",
+ productname: "产品",
+ module: "所属模块",
+ plan: "所属计划",
+ type: "Bug类型",
+ severity: "严重程度",
+ pri: "优先级",
+ status: "Bug状态",
+ activatedcount: "激活次数",
+ activateddate: "激活日期",
+ confirmed: "是否确认",
+ assignedto: "当前指派",
+ deadline: "截止日期",
+ os: "操作系统",
+ browser: "浏览器",
+ keywords: "关键词",
+ mailto: "抄送给",
+ project: "所属项目",
+ projectname: "项目",
+ story: "相关需求",
+ task: "相关任务",
+ id: "Bug编号",
+ },
+ uiactions: {
+ },
+ },
+ dashboardbuglife_form: {
+ details: {
+ buggroup1: "Bug基本信息",
+ formpage1: "Bug的一生",
+ grouppanel1: "分组面板",
+ formpage2: "其他相关",
+ srfupdatedate: "修改日期",
+ srforikey: "",
+ srfkey: "Bug编号",
+ srfmajortext: "Bug标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ openedby: "由谁创建",
+ openedbuild: "影响版本",
+ resolvedby: "由谁解决",
+ resolvedbuild: "解决版本",
+ resolution: "解决方案",
+ closedby: "由谁关闭",
+ lasteditedby: "最后修改者",
+ linkbug: "相关Bug",
+ id: "Bug编号",
+ },
+ uiactions: {
+ },
+ },
+ pickupgird_grid: {
+ columns: {
+ id: "Bug编号",
+ pri: "P",
+ confirmed: "是否确认",
+ title: "Bug标题",
+ status: "Bug状态",
+ openedby: "由谁创建",
+ openeddate: "创建日期",
+ assignedto: "指派给",
+ },
+ uiactions: {
+ },
+ },
+ main_plansub_grid: {
+ columns: {
+ id: "Bug编号",
+ pri: "P",
+ confirmed: "是否确认",
+ title: "Bug标题",
+ status: "Bug状态",
+ openedby: "由谁创建",
+ openeddate: "创建日期",
+ assignedto: "指派给",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "Bug编号",
+ pri: "P",
+ confirmed: "是否确认",
+ title: "Bug标题",
+ status: "Bug状态",
+ openedby: "由谁创建",
+ openeddate: "创建日期",
+ assignedto: "指派给",
+ resolution: "方案",
+ uagridcolumn1: "操作",
+ },
+ uiactions: {
+ mainedit: "编辑",
+ },
+ },
+ main2_grid: {
+ columns: {
+ id: "ID",
+ pri: "级别",
+ title: "Bug标题",
+ status: "状态",
+ },
+ uiactions: {
+ },
+ },
+ maineditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ plansubgridviewtoolbar_toolbar: {
+ deuiaction3_planrelationbug: {
+ caption: "关联Bug",
+ tip: "关联Bug",
+ },
+ seperator2: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/bug/bug_zh_CN.ts b/app_Web/src/locale/lanres/entities/bug/bug_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..23e992ddff38a0df96db2bb1ec4f31c696267d07
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/bug/bug_zh_CN.ts
@@ -0,0 +1,393 @@
+export default {
+ fields: {
+ severity: '严重程度',
+ storyversion: '需求版本',
+ linkbug: '相关Bug',
+ activateddate: '激活日期',
+ assignedto: '指派给',
+ resolution: '解决方案',
+ lastediteddate: '修改日期',
+ result: 'result',
+ keywords: '关键词',
+ closedby: '由谁关闭',
+ browser: '浏览器',
+ steps: '重现步骤',
+ v2: 'v2',
+ confirmed: '是否确认',
+ openedby: '由谁创建',
+ activatedcount: '激活次数',
+ openeddate: '创建日期',
+ closeddate: '关闭日期',
+ mailto: '抄送给',
+ assigneddate: '指派日期',
+ deadline: '截止日期',
+ color: '标题颜色',
+ resolveddate: '解决日期',
+ type: 'Bug类型',
+ status: 'Bug状态',
+ openedbuild: '影响版本',
+ v1: 'v1',
+ deleted: '已删除',
+ lines: 'lines',
+ substatus: '子状态',
+ id: 'Bug编号',
+ found: 'found',
+ resolvedby: '解决者',
+ resolvedbuild: '解决版本',
+ pri: '优先级',
+ os: '操作系统',
+ hardware: 'hardware',
+ lasteditedby: '最后修改者',
+ title: 'Bug标题',
+ productname: '产品',
+ projectname: '项目',
+ storyname: '需求',
+ caseversion: '用例版本',
+ repotype: '代码类型',
+ tostory: '转需求',
+ entry: '应用',
+ product: '所属产品',
+ totask: '转任务',
+ plan: '所属计划',
+ module: '所属模块',
+ branch: '平台/分支',
+ duplicatebug: '重复ID',
+ repo: '代码',
+ story: '相关需求',
+ ibizcase: '相关用例',
+ project: '所属项目',
+ task: '相关任务',
+ testtask: '测试单',
+ },
+ views: {
+ plansubgridview: {
+ caption: 'Bug',
+ title: 'Bug',
+ },
+ maineditview: {
+ caption: 'Bug编辑',
+ title: 'Bug编辑',
+ },
+ maindashboardview: {
+ caption: 'Bug',
+ title: 'Bug',
+ },
+ pickupgridview: {
+ caption: 'Bug',
+ title: 'Bug',
+ },
+ mpickupview: {
+ caption: '关联Bug',
+ title: '关联Bug',
+ },
+ buglifeeditview9: {
+ caption: 'Bug',
+ title: 'Bug',
+ },
+ editview: {
+ caption: 'Bug',
+ title: 'Bug',
+ },
+ stepsinfoeditview: {
+ caption: '重现步骤',
+ title: '重现步骤',
+ },
+ gridview9_assignedtome: {
+ caption: 'Bug',
+ title: 'Bug',
+ },
+ gridview: {
+ caption: 'Bug',
+ title: 'Bug',
+ },
+ dashboardmaineditview9: {
+ caption: 'Bug',
+ title: 'Bug',
+ },
+ },
+ stepsinfo_form: {
+ details: {
+ group1: 'Bug基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '修改日期',
+ srforikey: '',
+ srfkey: 'Bug编号',
+ srfmajortext: 'Bug标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ steps: '',
+ id: 'Bug编号',
+ },
+ uiactions: {
+ },
+ },
+ main_form: {
+ details: {
+ grouppanel1: '分组面板',
+ grouppanel2: '分组面板',
+ group1: 'bug基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '修改日期',
+ srforikey: '',
+ srfkey: 'Bug编号',
+ srfmajortext: 'Bug标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ productname: '产品',
+ product: '所属产品',
+ module: '所属模块',
+ project: '所属项目',
+ projectname: '项目',
+ openedbuild: '影响版本',
+ assignedto: '指派给',
+ deadline: '截止日期',
+ type: 'Bug类型',
+ os: '操作系统',
+ browser: '浏览器',
+ title: 'Bug标题',
+ severity: '严重程度',
+ pri: '优先级',
+ steps: '重现步骤',
+ story: '相关需求',
+ task: '相关任务',
+ mailto: '抄送给',
+ keywords: '关键词',
+ id: 'Bug编号',
+ },
+ uiactions: {
+ },
+ },
+ dashboardmainedit_form: {
+ details: {
+ druipart1: '',
+ grouppanel6: '历史记录',
+ grouppanel1: '分组面板',
+ grouppanel3: '基本信息',
+ grouppanel4: '项目/需求/任务',
+ grouppanel5: 'Bug的一生',
+ grouppanel2: '分组面板',
+ group1: 'Bug基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '修改日期',
+ srforikey: '',
+ srfkey: 'Bug编号',
+ srfmajortext: 'Bug标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ title: 'Bug标题',
+ steps: '重现步骤',
+ product: '所属产品',
+ productname: '产品',
+ module: '所属模块',
+ plan: '所属计划',
+ type: 'Bug类型',
+ severity: '严重程度',
+ pri: '优先级',
+ status: 'Bug状态',
+ activatedcount: '激活次数',
+ activateddate: '激活日期',
+ confirmed: '是否确认',
+ assignedto: '当前指派',
+ deadline: '截止日期',
+ os: '操作系统',
+ browser: '浏览器',
+ keywords: '关键词',
+ mailto: '抄送给',
+ project: '所属项目',
+ projectname: '项目',
+ story: '相关需求',
+ task: '相关任务',
+ openedby: '由谁创建',
+ openedbuild: '影响版本',
+ resolvedby: '由谁解决',
+ resolution: '解决方案',
+ resolvedbuild: '解决版本',
+ closedby: '由谁关闭',
+ lasteditedby: '最后修改者',
+ id: 'Bug编号',
+ },
+ uiactions: {
+ },
+ },
+ dashboardmain_form: {
+ details: {
+ maingroup1: 'Bug基本信息',
+ formpage1: '基本信息',
+ grouppanel1: '分组面板',
+ formpage2: '项目/需求/任务',
+ srfupdatedate: '修改日期',
+ srforikey: '',
+ srfkey: 'Bug编号',
+ srfmajortext: 'Bug标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ product: '所属产品',
+ title: 'Bug标题',
+ productname: '产品',
+ module: '所属模块',
+ plan: '所属计划',
+ type: 'Bug类型',
+ severity: '严重程度',
+ pri: '优先级',
+ status: 'Bug状态',
+ activatedcount: '激活次数',
+ activateddate: '激活日期',
+ confirmed: '是否确认',
+ assignedto: '当前指派',
+ deadline: '截止日期',
+ os: '操作系统',
+ browser: '浏览器',
+ keywords: '关键词',
+ mailto: '抄送给',
+ project: '所属项目',
+ projectname: '项目',
+ story: '相关需求',
+ task: '相关任务',
+ id: 'Bug编号',
+ },
+ uiactions: {
+ },
+ },
+ dashboardbuglife_form: {
+ details: {
+ buggroup1: 'Bug基本信息',
+ formpage1: 'Bug的一生',
+ grouppanel1: '分组面板',
+ formpage2: '其他相关',
+ srfupdatedate: '修改日期',
+ srforikey: '',
+ srfkey: 'Bug编号',
+ srfmajortext: 'Bug标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ openedby: '由谁创建',
+ openedbuild: '影响版本',
+ resolvedby: '由谁解决',
+ resolvedbuild: '解决版本',
+ resolution: '解决方案',
+ closedby: '由谁关闭',
+ lasteditedby: '最后修改者',
+ linkbug: '相关Bug',
+ id: 'Bug编号',
+ },
+ uiactions: {
+ },
+ },
+ pickupgird_grid: {
+ columns: {
+ id: 'Bug编号',
+ pri: 'P',
+ confirmed: '是否确认',
+ title: 'Bug标题',
+ status: 'Bug状态',
+ openedby: '由谁创建',
+ openeddate: '创建日期',
+ assignedto: '指派给',
+ },
+ uiactions: {
+ },
+ },
+ main_plansub_grid: {
+ columns: {
+ id: 'Bug编号',
+ pri: 'P',
+ confirmed: '是否确认',
+ title: 'Bug标题',
+ status: 'Bug状态',
+ openedby: '由谁创建',
+ openeddate: '创建日期',
+ assignedto: '指派给',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'Bug编号',
+ pri: 'P',
+ confirmed: '是否确认',
+ title: 'Bug标题',
+ status: 'Bug状态',
+ openedby: '由谁创建',
+ openeddate: '创建日期',
+ assignedto: '指派给',
+ resolution: '方案',
+ uagridcolumn1: '操作',
+ },
+ uiactions: {
+ mainedit: '编辑',
+ },
+ },
+ main2_grid: {
+ columns: {
+ id: 'ID',
+ pri: '级别',
+ title: 'Bug标题',
+ status: '状态',
+ },
+ uiactions: {
+ },
+ },
+ maineditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ plansubgridviewtoolbar_toolbar: {
+ deuiaction3_planrelationbug: {
+ caption: '关联Bug',
+ tip: '关联Bug',
+ },
+ seperator2: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/build/build_en_US.ts b/app_Web/src/locale/lanres/entities/build/build_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..eec0e0599f467c27239c273ef36ecc9b2ae8e392
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/build/build_en_US.ts
@@ -0,0 +1,18 @@
+
+export default {
+ fields: {
+ name: '名称编号',
+ builder: '构建者',
+ desc: '描述',
+ id: 'id',
+ deleted: '已删除',
+ scmpath: '源代码地址',
+ filepath: '下载地址',
+ stories: '完成的需求',
+ bugs: '解决的Bug',
+ date: '打包日期',
+ product: '产品',
+ branch: '平台/分支',
+ project: '所属项目',
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/build/build_zh_CN.ts b/app_Web/src/locale/lanres/entities/build/build_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..998fa397b239ee94d6274474025d9ac56b4325ce
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/build/build_zh_CN.ts
@@ -0,0 +1,17 @@
+export default {
+ fields: {
+ name: '名称编号',
+ builder: '构建者',
+ desc: '描述',
+ id: 'id',
+ deleted: '已删除',
+ scmpath: '源代码地址',
+ filepath: '下载地址',
+ stories: '完成的需求',
+ bugs: '解决的Bug',
+ date: '打包日期',
+ product: '产品',
+ branch: '平台/分支',
+ project: '所属项目',
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/case-step/case-step_en_US.ts b/app_Web/src/locale/lanres/entities/case-step/case-step_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..03c6ef6679426326c24df358a85543845ec3022c
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/case-step/case-step_en_US.ts
@@ -0,0 +1,176 @@
+
+export default {
+ fields: {
+ type: '用例步骤类型',
+ id: '编号',
+ desc: '步骤',
+ expect: '预期',
+ version: '用例版本',
+ ibizcase: '用例',
+ parent: '分组用例步骤的组编号',
+ },
+ views: {
+ editview: {
+ caption: "用例步骤",
+ title: '用例步骤',
+ },
+ gridview: {
+ caption: "用例步骤",
+ title: '用例步骤',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "casestep基本信息",
+ formpage1: "基本信息",
+ group2: "操作信息",
+ formpage2: "其它",
+ srforikey: "",
+ srfkey: "编号",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: "Save",
+ tip: "Save",
+ },
+ tbitem4: {
+ caption: "Save And New",
+ tip: "Save And New",
+ },
+ tbitem5: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ tbitem6: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem7: {
+ caption: "Remove And Close",
+ tip: "Remove And Close Window",
+ },
+ tbitem8: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem12: {
+ caption: "New",
+ tip: "New",
+ },
+ tbitem13: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem14: {
+ caption: "Copy",
+ tip: "Copy {0}",
+ },
+ tbitem16: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem23: {
+ caption: "第一个记录",
+ tip: "第一个记录",
+ },
+ tbitem24: {
+ caption: "上一个记录",
+ tip: "上一个记录",
+ },
+ tbitem25: {
+ caption: "下一个记录",
+ tip: "下一个记录",
+ },
+ tbitem26: {
+ caption: "最后一个记录",
+ tip: "最后一个记录",
+ },
+ tbitem21: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem22: {
+ caption: "Help",
+ tip: "Help",
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: "New",
+ tip: "New",
+ },
+ tbitem4: {
+ caption: "Edit",
+ tip: "Edit {0}",
+ },
+ tbitem6: {
+ caption: "Copy",
+ tip: "Copy {0}",
+ },
+ tbitem7: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem8: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ tbitem9: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem13: {
+ caption: "Export",
+ tip: "Export {0} Data To Excel",
+ },
+ tbitem10: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem16: {
+ caption: "其它",
+ tip: "其它",
+ },
+ tbitem21: {
+ caption: "Export Data Model",
+ tip: "导出数据模型",
+ },
+ tbitem23: {
+ caption: "数据导入",
+ tip: "数据导入",
+ },
+ tbitem17: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem19: {
+ caption: "Filter",
+ tip: "Filter",
+ },
+ tbitem18: {
+ caption: "Help",
+ tip: "Help",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/case-step/case-step_zh_CN.ts b/app_Web/src/locale/lanres/entities/case-step/case-step_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e9810f9e8bd4ab96af605e4edbb6b35a4a3fb3ef
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/case-step/case-step_zh_CN.ts
@@ -0,0 +1,175 @@
+export default {
+ fields: {
+ type: '用例步骤类型',
+ id: '编号',
+ desc: '步骤',
+ expect: '预期',
+ version: '用例版本',
+ ibizcase: '用例',
+ parent: '分组用例步骤的组编号',
+ },
+ views: {
+ editview: {
+ caption: '用例步骤',
+ title: '用例步骤',
+ },
+ gridview: {
+ caption: '用例步骤',
+ title: '用例步骤',
+ },
+ },
+ main_form: {
+ details: {
+ group1: 'casestep基本信息',
+ formpage1: '基本信息',
+ group2: '操作信息',
+ formpage2: '其它',
+ srforikey: '',
+ srfkey: '编号',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: '保存',
+ tip: '保存',
+ },
+ tbitem4: {
+ caption: '保存并新建',
+ tip: '保存并新建',
+ },
+ tbitem5: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ tbitem6: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem7: {
+ caption: '删除',
+ tip: '删除',
+ },
+ tbitem8: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem12: {
+ caption: '新建',
+ tip: '新建',
+ },
+ tbitem13: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem14: {
+ caption: '拷贝',
+ tip: '拷贝',
+ },
+ tbitem16: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem23: {
+ caption: '第一个记录',
+ tip: '第一个记录',
+ },
+ tbitem24: {
+ caption: '上一个记录',
+ tip: '上一个记录',
+ },
+ tbitem25: {
+ caption: '下一个记录',
+ tip: '下一个记录',
+ },
+ tbitem26: {
+ caption: '最后一个记录',
+ tip: '最后一个记录',
+ },
+ tbitem21: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem22: {
+ caption: '帮助',
+ tip: '帮助',
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: '新建',
+ tip: '新建',
+ },
+ tbitem4: {
+ caption: '编辑',
+ tip: '编辑',
+ },
+ tbitem6: {
+ caption: '拷贝',
+ tip: '拷贝',
+ },
+ tbitem7: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem8: {
+ caption: '删除',
+ tip: '删除',
+ },
+ tbitem9: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem13: {
+ caption: '导出',
+ tip: '导出',
+ },
+ tbitem10: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem16: {
+ caption: '其它',
+ tip: '其它',
+ },
+ tbitem21: {
+ caption: '导出数据模型',
+ tip: '导出数据模型',
+ },
+ tbitem23: {
+ caption: '数据导入',
+ tip: '数据导入',
+ },
+ tbitem17: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem19: {
+ caption: '过滤',
+ tip: '过滤',
+ },
+ tbitem18: {
+ caption: '帮助',
+ tip: '帮助',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/case/case_en_US.ts b/app_Web/src/locale/lanres/entities/case/case_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..dce31ddfd038336db238d6486a2d28c758d5cef7
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/case/case_en_US.ts
@@ -0,0 +1,298 @@
+
+export default {
+ fields: {
+ lastediteddate: '修改日期',
+ scripteddate: 'scriptedDate',
+ color: '标题颜色',
+ path: 'path',
+ openeddate: '创建日期',
+ lastrunresult: '结果',
+ linkcase: '相关用例',
+ order: '排序',
+ howrun: 'howRun',
+ version: '用例版本',
+ scriptedby: 'scriptedBy',
+ openedby: '由谁创建',
+ type: '用例类型',
+ status: '用例状态',
+ auto: 'auto',
+ frequency: 'frequency',
+ title: '用例标题',
+ lasteditedby: '最后修改者',
+ reviewedby: '由谁评审',
+ deleted: '已删除',
+ revieweddate: '评审时间',
+ pri: '优先级',
+ stage: '适用阶段',
+ scriptlocation: 'scriptLocation',
+ lastrundate: '执行时间',
+ keywords: '关键词',
+ scriptstatus: 'scriptStatus',
+ frame: '工具/框架',
+ substatus: '子状态',
+ id: '用例编号',
+ precondition: '前置条件',
+ lastrunner: '执行人',
+ fromcaseversion: '来源用例版本',
+ storyversion: '需求版本',
+ fromcaseid: '来源用例',
+ branch: '平台/分支',
+ frombug: '来源Bug',
+ story: '相关需求',
+ product: '所属产品',
+ lib: '所属库',
+ module: '所属模块',
+ modulename: '模块名称',
+ storyname: '需求名称',
+ productname: '产品名称',
+ },
+ views: {
+ editview: {
+ caption: "测试用例",
+ title: '测试用例',
+ },
+ maingridview: {
+ caption: "测试用例",
+ title: '测试用例',
+ },
+ mainnewview: {
+ caption: "功能测试",
+ title: '功能测试',
+ },
+ batchnewgridview: {
+ caption: "测试用例",
+ title: '测试用例',
+ },
+ maindashboardview: {
+ caption: "功能测试",
+ title: '功能测试',
+ },
+ gridview9: {
+ caption: "测试用例",
+ title: '测试用例',
+ },
+ gridview: {
+ caption: "测试用例",
+ title: '测试用例',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "case基本信息",
+ formpage1: "基本信息",
+ group2: "操作信息",
+ formpage2: "其它",
+ srforikey: "",
+ srfkey: "用例编号",
+ srfmajortext: "用例标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ title: "用例标题",
+ id: "用例编号",
+ },
+ uiactions: {
+ },
+ },
+ mainnew_form: {
+ details: {
+ group1: "测试用例基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "用例编号",
+ srfmajortext: "用例标题",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ product: "所属产品",
+ productname: "产品名称",
+ module: "所属模块",
+ modulename: "模块名称",
+ type: "用例类型",
+ story: "相关需求",
+ storyname: "需求名称",
+ title: "用例标题",
+ pri: "优先级",
+ id: "用例编号",
+ },
+ uiactions: {
+ },
+ },
+ maingrid_grid: {
+ columns: {
+ id: "id",
+ pri: "P",
+ title: "用例标题",
+ type: "用例类型",
+ openedby: "创建",
+ lastrunner: "执行人",
+ lastrundate: "执行时间",
+ lastrunresult: "结果",
+ status: "状态",
+ branch: "B",
+ uagridcolumn1: "操作",
+ },
+ uiactions: {
+ },
+ },
+ batchnew_grid: {
+ columns: {
+ modulename: "所属模块",
+ storyname: "相关需求",
+ title: "用例标题",
+ type: "用例类型",
+ },
+ uiactions: {
+ },
+ },
+ main2_grid: {
+ columns: {
+ pri: "P",
+ title: "用例标题",
+ status: "状态",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ pri: "P",
+ title: "用例标题",
+ status: "状态",
+ },
+ uiactions: {
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: "Save",
+ tip: "Save",
+ },
+ tbitem4: {
+ caption: "Save And New",
+ tip: "Save And New",
+ },
+ tbitem5: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ tbitem6: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem7: {
+ caption: "Remove And Close",
+ tip: "Remove And Close Window",
+ },
+ tbitem8: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem12: {
+ caption: "New",
+ tip: "New",
+ },
+ tbitem13: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem14: {
+ caption: "Copy",
+ tip: "Copy {0}",
+ },
+ tbitem16: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem23: {
+ caption: "第一个记录",
+ tip: "第一个记录",
+ },
+ tbitem24: {
+ caption: "上一个记录",
+ tip: "上一个记录",
+ },
+ tbitem25: {
+ caption: "下一个记录",
+ tip: "下一个记录",
+ },
+ tbitem26: {
+ caption: "最后一个记录",
+ tip: "最后一个记录",
+ },
+ tbitem21: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem22: {
+ caption: "Help",
+ tip: "Help",
+ },
+ },
+ batchnewgridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "行编辑",
+ tip: "行编辑",
+ },
+ deuiaction2: {
+ caption: "新建行",
+ tip: "新建行",
+ },
+ deuiaction3: {
+ caption: "保存行",
+ tip: "保存行",
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction3_batchnew: {
+ caption: "批量新建用例",
+ tip: "批量新建用例",
+ },
+ seperator2: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ mainnewviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/case/case_zh_CN.ts b/app_Web/src/locale/lanres/entities/case/case_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..31189a9aaa36fd1b99228de11a2c0d46f8d93b74
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/case/case_zh_CN.ts
@@ -0,0 +1,297 @@
+export default {
+ fields: {
+ lastediteddate: '修改日期',
+ scripteddate: 'scriptedDate',
+ color: '标题颜色',
+ path: 'path',
+ openeddate: '创建日期',
+ lastrunresult: '结果',
+ linkcase: '相关用例',
+ order: '排序',
+ howrun: 'howRun',
+ version: '用例版本',
+ scriptedby: 'scriptedBy',
+ openedby: '由谁创建',
+ type: '用例类型',
+ status: '用例状态',
+ auto: 'auto',
+ frequency: 'frequency',
+ title: '用例标题',
+ lasteditedby: '最后修改者',
+ reviewedby: '由谁评审',
+ deleted: '已删除',
+ revieweddate: '评审时间',
+ pri: '优先级',
+ stage: '适用阶段',
+ scriptlocation: 'scriptLocation',
+ lastrundate: '执行时间',
+ keywords: '关键词',
+ scriptstatus: 'scriptStatus',
+ frame: '工具/框架',
+ substatus: '子状态',
+ id: '用例编号',
+ precondition: '前置条件',
+ lastrunner: '执行人',
+ fromcaseversion: '来源用例版本',
+ storyversion: '需求版本',
+ fromcaseid: '来源用例',
+ branch: '平台/分支',
+ frombug: '来源Bug',
+ story: '相关需求',
+ product: '所属产品',
+ lib: '所属库',
+ module: '所属模块',
+ modulename: '模块名称',
+ storyname: '需求名称',
+ productname: '产品名称',
+ },
+ views: {
+ editview: {
+ caption: '测试用例',
+ title: '测试用例',
+ },
+ maingridview: {
+ caption: '测试用例',
+ title: '测试用例',
+ },
+ mainnewview: {
+ caption: '功能测试',
+ title: '功能测试',
+ },
+ batchnewgridview: {
+ caption: '测试用例',
+ title: '测试用例',
+ },
+ maindashboardview: {
+ caption: '功能测试',
+ title: '功能测试',
+ },
+ gridview9: {
+ caption: '测试用例',
+ title: '测试用例',
+ },
+ gridview: {
+ caption: '测试用例',
+ title: '测试用例',
+ },
+ },
+ main_form: {
+ details: {
+ group1: 'case基本信息',
+ formpage1: '基本信息',
+ group2: '操作信息',
+ formpage2: '其它',
+ srforikey: '',
+ srfkey: '用例编号',
+ srfmajortext: '用例标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ title: '用例标题',
+ id: '用例编号',
+ },
+ uiactions: {
+ },
+ },
+ mainnew_form: {
+ details: {
+ group1: '测试用例基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '用例编号',
+ srfmajortext: '用例标题',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ product: '所属产品',
+ productname: '产品名称',
+ module: '所属模块',
+ modulename: '模块名称',
+ type: '用例类型',
+ story: '相关需求',
+ storyname: '需求名称',
+ title: '用例标题',
+ pri: '优先级',
+ id: '用例编号',
+ },
+ uiactions: {
+ },
+ },
+ maingrid_grid: {
+ columns: {
+ id: 'id',
+ pri: 'P',
+ title: '用例标题',
+ type: '用例类型',
+ openedby: '创建',
+ lastrunner: '执行人',
+ lastrundate: '执行时间',
+ lastrunresult: '结果',
+ status: '状态',
+ branch: 'B',
+ uagridcolumn1: '操作',
+ },
+ uiactions: {
+ },
+ },
+ batchnew_grid: {
+ columns: {
+ modulename: '所属模块',
+ storyname: '相关需求',
+ title: '用例标题',
+ type: '用例类型',
+ },
+ uiactions: {
+ },
+ },
+ main2_grid: {
+ columns: {
+ pri: 'P',
+ title: '用例标题',
+ status: '状态',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ pri: 'P',
+ title: '用例标题',
+ status: '状态',
+ },
+ uiactions: {
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: '保存',
+ tip: '保存',
+ },
+ tbitem4: {
+ caption: '保存并新建',
+ tip: '保存并新建',
+ },
+ tbitem5: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ tbitem6: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem7: {
+ caption: '删除',
+ tip: '删除',
+ },
+ tbitem8: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem12: {
+ caption: '新建',
+ tip: '新建',
+ },
+ tbitem13: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem14: {
+ caption: '拷贝',
+ tip: '拷贝',
+ },
+ tbitem16: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem23: {
+ caption: '第一个记录',
+ tip: '第一个记录',
+ },
+ tbitem24: {
+ caption: '上一个记录',
+ tip: '上一个记录',
+ },
+ tbitem25: {
+ caption: '下一个记录',
+ tip: '下一个记录',
+ },
+ tbitem26: {
+ caption: '最后一个记录',
+ tip: '最后一个记录',
+ },
+ tbitem21: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem22: {
+ caption: '帮助',
+ tip: '帮助',
+ },
+ },
+ batchnewgridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '行编辑',
+ tip: '行编辑',
+ },
+ deuiaction2: {
+ caption: '新建行',
+ tip: '新建行',
+ },
+ deuiaction3: {
+ caption: '保存行',
+ tip: '保存行',
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction3_batchnew: {
+ caption: '批量新建用例',
+ tip: '批量新建用例',
+ },
+ seperator2: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ mainnewviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/company/company_en_US.ts b/app_Web/src/locale/lanres/entities/company/company_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6c73be0485e31894dd0f3909f0ee576980fe63c3
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/company/company_en_US.ts
@@ -0,0 +1,106 @@
+
+export default {
+ fields: {
+ admins: 'admins',
+ fax: '传真',
+ deleted: '逻辑删除标志',
+ website: '官网',
+ id: 'id',
+ zipcode: '邮政编码',
+ address: '通讯地址',
+ backyard: '内网',
+ name: '公司名称',
+ guest: '匿名登陆',
+ phone: '联系电话',
+ },
+ views: {
+ depttreeexpview: {
+ caption: "公司",
+ title: '公司',
+ },
+ deptusertreeexpview: {
+ caption: "公司",
+ title: '公司',
+ },
+ maintabexpview: {
+ caption: "组织权限",
+ title: '组织权限',
+ },
+ mainview: {
+ caption: "公司信息",
+ title: '公司信息',
+ },
+ editview: {
+ caption: "公司信息",
+ title: '公司信息',
+ },
+ mainview9: {
+ caption: "公司",
+ title: '公司',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "company基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "id",
+ srfmajortext: "公司名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "公司名称",
+ phone: "联系电话",
+ fax: "传真",
+ address: "通讯地址",
+ zipcode: "邮政编码",
+ website: "官网",
+ backyard: "内网",
+ guest: "匿名登陆",
+ id: "id",
+ },
+ uiactions: {
+ },
+ },
+ main_edit_form: {
+ details: {
+ group1: "company基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "id",
+ srfmajortext: "公司名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "公司名称",
+ phone: "联系电话",
+ fax: "传真",
+ address: "通讯地址",
+ zipcode: "邮政编码",
+ website: "官网",
+ backyard: "内网",
+ guest: "匿名登陆",
+ id: "id",
+ },
+ uiactions: {
+ },
+ },
+ deptexp_treeview: {
+ nodes: {
+ alldept: '所有部门',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+ deptuserexp_treeview: {
+ nodes: {
+ alldept: '所有部门',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/company/company_zh_CN.ts b/app_Web/src/locale/lanres/entities/company/company_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..952c4b58a1a89d3dce483eb35df8ff69c1ffa1ef
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/company/company_zh_CN.ts
@@ -0,0 +1,105 @@
+export default {
+ fields: {
+ admins: 'admins',
+ fax: '传真',
+ deleted: '逻辑删除标志',
+ website: '官网',
+ id: 'id',
+ zipcode: '邮政编码',
+ address: '通讯地址',
+ backyard: '内网',
+ name: '公司名称',
+ guest: '匿名登陆',
+ phone: '联系电话',
+ },
+ views: {
+ depttreeexpview: {
+ caption: '公司',
+ title: '公司',
+ },
+ deptusertreeexpview: {
+ caption: '公司',
+ title: '公司',
+ },
+ maintabexpview: {
+ caption: '组织权限',
+ title: '组织权限',
+ },
+ mainview: {
+ caption: '公司信息',
+ title: '公司信息',
+ },
+ editview: {
+ caption: '公司信息',
+ title: '公司信息',
+ },
+ mainview9: {
+ caption: '公司',
+ title: '公司',
+ },
+ },
+ main_form: {
+ details: {
+ group1: 'company基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'id',
+ srfmajortext: '公司名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '公司名称',
+ phone: '联系电话',
+ fax: '传真',
+ address: '通讯地址',
+ zipcode: '邮政编码',
+ website: '官网',
+ backyard: '内网',
+ guest: '匿名登陆',
+ id: 'id',
+ },
+ uiactions: {
+ },
+ },
+ main_edit_form: {
+ details: {
+ group1: 'company基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'id',
+ srfmajortext: '公司名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '公司名称',
+ phone: '联系电话',
+ fax: '传真',
+ address: '通讯地址',
+ zipcode: '邮政编码',
+ website: '官网',
+ backyard: '内网',
+ guest: '匿名登陆',
+ id: 'id',
+ },
+ uiactions: {
+ },
+ },
+ deptexp_treeview: {
+ nodes: {
+ alldept: '所有部门',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+ deptuserexp_treeview: {
+ nodes: {
+ alldept: '所有部门',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/dept/dept_en_US.ts b/app_Web/src/locale/lanres/entities/dept/dept_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c9721ae5a7caedf09bac1d911eae9d5d3a611f2a
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/dept/dept_en_US.ts
@@ -0,0 +1,156 @@
+
+export default {
+ fields: {
+ manager: '负责人',
+ grade: 'grade',
+ function: 'function',
+ order: 'order',
+ path: 'path',
+ position: 'position',
+ id: 'id',
+ name: '部门名称',
+ parentname: '上级部门',
+ parent: 'parent',
+ isleaf: '无子部门',
+ },
+ views: {
+ pickupview: {
+ caption: "部门",
+ title: '部门',
+ },
+ maingridview: {
+ caption: "部门",
+ title: '部门',
+ },
+ editview: {
+ caption: "部门信息",
+ title: '部门信息',
+ },
+ pickupgridview: {
+ caption: "部门",
+ title: '部门',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "id",
+ srfmajortext: "部门名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "部门名称",
+ parentname: "上级部门",
+ manager: "负责人",
+ id: "id",
+ parent: "parent",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ name: "部门",
+ parentname: "上级部门",
+ manager: "负责人",
+ order: "排序值",
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: "Save",
+ tip: "Save",
+ },
+ tbitem4: {
+ caption: "Save And New",
+ tip: "Save And New",
+ },
+ tbitem5: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ tbitem6: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem7: {
+ caption: "Remove And Close",
+ tip: "Remove And Close Window",
+ },
+ tbitem8: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem12: {
+ caption: "New",
+ tip: "New",
+ },
+ tbitem13: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem14: {
+ caption: "Copy",
+ tip: "Copy {0}",
+ },
+ tbitem16: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem23: {
+ caption: "第一个记录",
+ tip: "第一个记录",
+ },
+ tbitem24: {
+ caption: "上一个记录",
+ tip: "上一个记录",
+ },
+ tbitem25: {
+ caption: "下一个记录",
+ tip: "下一个记录",
+ },
+ tbitem26: {
+ caption: "最后一个记录",
+ tip: "最后一个记录",
+ },
+ tbitem21: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem22: {
+ caption: "Help",
+ tip: "Help",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/dept/dept_zh_CN.ts b/app_Web/src/locale/lanres/entities/dept/dept_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a9739be1de7a981e9fa144cd077c6de232396dda
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/dept/dept_zh_CN.ts
@@ -0,0 +1,155 @@
+export default {
+ fields: {
+ manager: '负责人',
+ grade: 'grade',
+ function: 'function',
+ order: 'order',
+ path: 'path',
+ position: 'position',
+ id: 'id',
+ name: '部门名称',
+ parentname: '上级部门',
+ parent: 'parent',
+ isleaf: '无子部门',
+ },
+ views: {
+ pickupview: {
+ caption: '部门',
+ title: '部门',
+ },
+ maingridview: {
+ caption: '部门',
+ title: '部门',
+ },
+ editview: {
+ caption: '部门信息',
+ title: '部门信息',
+ },
+ pickupgridview: {
+ caption: '部门',
+ title: '部门',
+ },
+ },
+ main_form: {
+ details: {
+ group1: '基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'id',
+ srfmajortext: '部门名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '部门名称',
+ parentname: '上级部门',
+ manager: '负责人',
+ id: 'id',
+ parent: 'parent',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ name: '部门',
+ parentname: '上级部门',
+ manager: '负责人',
+ order: '排序值',
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: '保存',
+ tip: '保存',
+ },
+ tbitem4: {
+ caption: '保存并新建',
+ tip: '保存并新建',
+ },
+ tbitem5: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ tbitem6: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem7: {
+ caption: '删除',
+ tip: '删除',
+ },
+ tbitem8: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem12: {
+ caption: '新建',
+ tip: '新建',
+ },
+ tbitem13: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem14: {
+ caption: '拷贝',
+ tip: '拷贝',
+ },
+ tbitem16: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem23: {
+ caption: '第一个记录',
+ tip: '第一个记录',
+ },
+ tbitem24: {
+ caption: '上一个记录',
+ tip: '上一个记录',
+ },
+ tbitem25: {
+ caption: '下一个记录',
+ tip: '下一个记录',
+ },
+ tbitem26: {
+ caption: '最后一个记录',
+ tip: '最后一个记录',
+ },
+ tbitem21: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem22: {
+ caption: '帮助',
+ tip: '帮助',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/group/group_en_US.ts b/app_Web/src/locale/lanres/entities/group/group_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..736af8a95a700c3b6ee876abbd50117e360abd43
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/group/group_en_US.ts
@@ -0,0 +1,70 @@
+
+export default {
+ fields: {
+ acl: 'acl',
+ desc: '分组描述',
+ id: 'ID',
+ name: '分组名称',
+ role: 'role',
+ },
+ views: {
+ maingridview: {
+ caption: "群组",
+ title: '群组',
+ },
+ editview: {
+ caption: "分组信息",
+ title: '分组信息',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "ID",
+ srfmajortext: "分组名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "分组名称",
+ desc: "分组描述",
+ id: "ID",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ name: "分组名称",
+ desc: "分组描述",
+ uagridcolumn1: "操作",
+ },
+ uiactions: {
+ edit: "Edit",
+ remove: "Remove",
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/group/group_zh_CN.ts b/app_Web/src/locale/lanres/entities/group/group_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a2a4ac9239a48f2180c3a1f72913c9d5ace51f8d
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/group/group_zh_CN.ts
@@ -0,0 +1,69 @@
+export default {
+ fields: {
+ acl: 'acl',
+ desc: '分组描述',
+ id: 'ID',
+ name: '分组名称',
+ role: 'role',
+ },
+ views: {
+ maingridview: {
+ caption: '群组',
+ title: '群组',
+ },
+ editview: {
+ caption: '分组信息',
+ title: '分组信息',
+ },
+ },
+ main_form: {
+ details: {
+ group1: '基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'ID',
+ srfmajortext: '分组名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '分组名称',
+ desc: '分组描述',
+ id: 'ID',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ name: '分组名称',
+ desc: '分组描述',
+ uagridcolumn1: '操作',
+ },
+ uiactions: {
+ edit: '编辑',
+ remove: '删除',
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/history/history_en_US.ts b/app_Web/src/locale/lanres/entities/history/history_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5e59ecbe8d7dcdb73b0d30dd4fcbfb4b9c84b255
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/history/history_en_US.ts
@@ -0,0 +1,11 @@
+
+export default {
+ fields: {
+ diff: '不同',
+ field: '字段',
+ ibiznew: '新值',
+ old: '旧值',
+ id: 'id',
+ action: '关联日志',
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/history/history_zh_CN.ts b/app_Web/src/locale/lanres/entities/history/history_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4f495cbf638fa5dacef76ae2f17c11ed0444faee
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/history/history_zh_CN.ts
@@ -0,0 +1,10 @@
+export default {
+ fields: {
+ diff: '不同',
+ field: '字段',
+ ibiznew: '新值',
+ old: '旧值',
+ id: 'id',
+ action: '关联日志',
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/ibz-doc/ibz-doc_en_US.ts b/app_Web/src/locale/lanres/entities/ibz-doc/ibz-doc_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..08a4595623579f47e8a5ae357bf9de8cca3b7476
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/ibz-doc/ibz-doc_en_US.ts
@@ -0,0 +1,20 @@
+
+export default {
+ fields: {
+ ibzdocid: '文档标识',
+ addedby: '由谁添加',
+ editedby: '由谁更新',
+ addeddate: '添加时间',
+ size: '大小',
+ lib: '所属文档库',
+ createdate: '建立时间',
+ ibzdocname: '文档名称',
+ order: '排序',
+ iscollect: '是否已收藏',
+ createman: '建立人',
+ updatedate: '更新时间',
+ editeddate: '更新时间',
+ objecttype: '对象类型',
+ updateman: '更新人',
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/ibz-doc/ibz-doc_zh_CN.ts b/app_Web/src/locale/lanres/entities/ibz-doc/ibz-doc_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4890786fb1d76fed6aac3b00ba113efdb226d6d9
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/ibz-doc/ibz-doc_zh_CN.ts
@@ -0,0 +1,19 @@
+export default {
+ fields: {
+ ibzdocid: '文档标识',
+ addedby: '由谁添加',
+ editedby: '由谁更新',
+ addeddate: '添加时间',
+ size: '大小',
+ lib: '所属文档库',
+ createdate: '建立时间',
+ ibzdocname: '文档名称',
+ order: '排序',
+ iscollect: '是否已收藏',
+ createman: '建立人',
+ updatedate: '更新时间',
+ editeddate: '更新时间',
+ objecttype: '对象类型',
+ updateman: '更新人',
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/ibz-subtask/ibz-subtask_en_US.ts b/app_Web/src/locale/lanres/entities/ibz-subtask/ibz-subtask_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4d278de2fd30887ace7be5e0882e1c4fac924b6e
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/ibz-subtask/ibz-subtask_en_US.ts
@@ -0,0 +1,82 @@
+
+export default {
+ fields: {
+ canceledby: '由谁取消',
+ left: '预计剩余',
+ openeddate: '创建日期',
+ color: '标题颜色',
+ id: '编号',
+ finishedby: '由谁完成',
+ finishedlist: '完成者列表',
+ realstarted: '实际开始',
+ closedby: '由谁关闭',
+ substatus: '子状态',
+ closedreason: '关闭原因',
+ lastediteddate: '最后修改日期',
+ assigneddate: '指派日期',
+ pri: '优先级',
+ lasteditedby: '最后修改',
+ status: '任务状态',
+ name: '任务名称',
+ closeddate: '关闭时间',
+ type: '任务类型',
+ assignedto: '指派给',
+ desc: '任务描述',
+ eststarted: '预计开始',
+ deadline: '截止日期',
+ deleted: '已删除',
+ mailto: '抄送给',
+ consumed: '总计消耗',
+ estimate: '最初预计',
+ openedby: '由谁创建',
+ canceleddate: '取消时间',
+ finisheddate: '实际完成',
+ modulename: '所属模块',
+ storyname: '相关需求',
+ projectname: '所属项目',
+ product: '产品',
+ storyversion: '需求版本',
+ productname: '产品',
+ parentname: '父任务',
+ project: '所属项目',
+ module: '所属模块',
+ story: '相关需求',
+ parent: '父任务',
+ frombug: '来源Bug',
+ duration: '持续时间',
+ },
+ views: {
+ subtasknewview: {
+ caption: "子任务",
+ title: '子任务',
+ },
+ },
+ subtasknew_grid: {
+ columns: {
+ modulename: "所属模块",
+ storyname: "相关需求",
+ name: "任务名称",
+ type: "任务类型",
+ assignedto: "指派给",
+ left: "预计",
+ desc: "任务描述",
+ pri: "优先级",
+ },
+ uiactions: {
+ },
+ },
+ subtasknewviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "行编辑",
+ tip: "行编辑",
+ },
+ deuiaction2: {
+ caption: "新建行",
+ tip: "新建行",
+ },
+ deuiaction3: {
+ caption: "保存行",
+ tip: "保存行",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/ibz-subtask/ibz-subtask_zh_CN.ts b/app_Web/src/locale/lanres/entities/ibz-subtask/ibz-subtask_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ffdb89639bb32df3b38f9e5fc518cd2e5b2468ea
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/ibz-subtask/ibz-subtask_zh_CN.ts
@@ -0,0 +1,81 @@
+export default {
+ fields: {
+ canceledby: '由谁取消',
+ left: '预计剩余',
+ openeddate: '创建日期',
+ color: '标题颜色',
+ id: '编号',
+ finishedby: '由谁完成',
+ finishedlist: '完成者列表',
+ realstarted: '实际开始',
+ closedby: '由谁关闭',
+ substatus: '子状态',
+ closedreason: '关闭原因',
+ lastediteddate: '最后修改日期',
+ assigneddate: '指派日期',
+ pri: '优先级',
+ lasteditedby: '最后修改',
+ status: '任务状态',
+ name: '任务名称',
+ closeddate: '关闭时间',
+ type: '任务类型',
+ assignedto: '指派给',
+ desc: '任务描述',
+ eststarted: '预计开始',
+ deadline: '截止日期',
+ deleted: '已删除',
+ mailto: '抄送给',
+ consumed: '总计消耗',
+ estimate: '最初预计',
+ openedby: '由谁创建',
+ canceleddate: '取消时间',
+ finisheddate: '实际完成',
+ modulename: '所属模块',
+ storyname: '相关需求',
+ projectname: '所属项目',
+ product: '产品',
+ storyversion: '需求版本',
+ productname: '产品',
+ parentname: '父任务',
+ project: '所属项目',
+ module: '所属模块',
+ story: '相关需求',
+ parent: '父任务',
+ frombug: '来源Bug',
+ duration: '持续时间',
+ },
+ views: {
+ subtasknewview: {
+ caption: '子任务',
+ title: '子任务',
+ },
+ },
+ subtasknew_grid: {
+ columns: {
+ modulename: '所属模块',
+ storyname: '相关需求',
+ name: '任务名称',
+ type: '任务类型',
+ assignedto: '指派给',
+ left: '预计',
+ desc: '任务描述',
+ pri: '优先级',
+ },
+ uiactions: {
+ },
+ },
+ subtasknewviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '行编辑',
+ tip: '行编辑',
+ },
+ deuiaction2: {
+ caption: '新建行',
+ tip: '新建行',
+ },
+ deuiaction3: {
+ caption: '保存行',
+ tip: '保存行',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/module/module_en_US.ts b/app_Web/src/locale/lanres/entities/module/module_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7d7660d5450612d35365f98b555a8850267de38b
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/module/module_en_US.ts
@@ -0,0 +1,96 @@
+
+export default {
+ fields: {
+ root: '所属根',
+ grade: '级别',
+ type: '类型',
+ name: '模块名称',
+ order: '排序',
+ owner: '负责人',
+ id: 'id',
+ collector: '收藏者',
+ ibizshort: '简称',
+ path: '路径',
+ deleted: '已删除',
+ parentname: '上级模块',
+ branch: '平台/分支',
+ parent: '上级模块',
+ },
+ views: {
+ editview: {
+ caption: "模块",
+ title: '模块',
+ },
+ gridview: {
+ caption: "模块",
+ title: '模块',
+ },
+ pickupgridview: {
+ caption: "模块",
+ title: '模块',
+ },
+ pickupview: {
+ caption: "模块",
+ title: '模块',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "module基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "id",
+ srfmajortext: "模块名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "模块名称",
+ short: "简称",
+ parentname: "上级模块",
+ parent: "上级模块",
+ order: "排序",
+ id: "id",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ name: "模块名称",
+ parentname: "上级模块",
+ grade: "级别",
+ order: "排序",
+ owner: "负责人",
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "Edit",
+ tip: "Edit {0}",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/module/module_zh_CN.ts b/app_Web/src/locale/lanres/entities/module/module_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5e22f8123f3b62d468d0cc635f4a663f1578b9cd
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/module/module_zh_CN.ts
@@ -0,0 +1,95 @@
+export default {
+ fields: {
+ root: '所属根',
+ grade: '级别',
+ type: '类型',
+ name: '模块名称',
+ order: '排序',
+ owner: '负责人',
+ id: 'id',
+ collector: '收藏者',
+ ibizshort: '简称',
+ path: '路径',
+ deleted: '已删除',
+ parentname: '上级模块',
+ branch: '平台/分支',
+ parent: '上级模块',
+ },
+ views: {
+ editview: {
+ caption: '模块',
+ title: '模块',
+ },
+ gridview: {
+ caption: '模块',
+ title: '模块',
+ },
+ pickupgridview: {
+ caption: '模块',
+ title: '模块',
+ },
+ pickupview: {
+ caption: '模块',
+ title: '模块',
+ },
+ },
+ main_form: {
+ details: {
+ group1: 'module基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'id',
+ srfmajortext: '模块名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '模块名称',
+ short: '简称',
+ parentname: '上级模块',
+ parent: '上级模块',
+ order: '排序',
+ id: 'id',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ name: '模块名称',
+ parentname: '上级模块',
+ grade: '级别',
+ order: '排序',
+ owner: '负责人',
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '编辑',
+ tip: '编辑',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/product-life/product-life_en_US.ts b/app_Web/src/locale/lanres/entities/product-life/product-life_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8eb3c2ec325a7665dfbe502d06e5c7c1daaada67
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/product-life/product-life_en_US.ts
@@ -0,0 +1,29 @@
+
+export default {
+ fields: {
+ branch: '平台/分支',
+ createman: '建立人',
+ updatedate: '更新时间',
+ productlifename: '产品生命周期名称',
+ product: '产品',
+ createdate: '建立时间',
+ parent: '父对象',
+ year: '年',
+ updateman: '更新人',
+ type: '属性',
+ marker: '里程碑',
+ begin: '开始日期',
+ productlifeid: '产品生命周期标识',
+ end: '结束日期',
+ },
+ views: {
+ roadmaplistview: {
+ caption: "产品生命周期",
+ title: '产品生命周期',
+ },
+ roadmaplistview9: {
+ caption: "产品生命周期",
+ title: '产品生命周期',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/product-life/product-life_zh_CN.ts b/app_Web/src/locale/lanres/entities/product-life/product-life_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5efdd1893ef2560c2a9d5d675d5f00b83223b964
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/product-life/product-life_zh_CN.ts
@@ -0,0 +1,28 @@
+export default {
+ fields: {
+ branch: '平台/分支',
+ createman: '建立人',
+ updatedate: '更新时间',
+ productlifename: '产品生命周期名称',
+ product: '产品',
+ createdate: '建立时间',
+ parent: '父对象',
+ year: '年',
+ updateman: '更新人',
+ type: '属性',
+ marker: '里程碑',
+ begin: '开始日期',
+ productlifeid: '产品生命周期标识',
+ end: '结束日期',
+ },
+ views: {
+ roadmaplistview: {
+ caption: '产品生命周期',
+ title: '产品生命周期',
+ },
+ roadmaplistview9: {
+ caption: '产品生命周期',
+ title: '产品生命周期',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/product-module/product-module_en_US.ts b/app_Web/src/locale/lanres/entities/product-module/product-module_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3a48b8481f1964642d42d339560b753496cba9a8
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/product-module/product-module_en_US.ts
@@ -0,0 +1,116 @@
+
+export default {
+ fields: {
+ path: 'path',
+ deleted: '逻辑删除标志',
+ name: '名称',
+ branch: 'branch',
+ ibizshort: '短名称',
+ order: 'order',
+ grade: 'grade',
+ type: '类型(story)',
+ owner: 'owner',
+ isleaf: '叶子模块',
+ id: 'id',
+ collector: 'collector',
+ root: '产品',
+ parent: 'id',
+ },
+ views: {
+ gridview: {
+ caption: "需求模块",
+ title: '需求模块',
+ },
+ editview: {
+ caption: "需求模块",
+ title: '需求模块',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "产品模块基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "id",
+ srfmajortext: "名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "名称",
+ order: "order",
+ id: "id",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ name: "名称",
+ root: "产品",
+ short: "短名称",
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "Edit",
+ tip: "Edit {0}",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ exp_treeview: {
+ nodes: {
+ all: '所有模块',
+ branch: '平台',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+ taskexp_treeview: {
+ nodes: {
+ all: '所有模块',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+ bugexp_treeview: {
+ nodes: {
+ root: '默认根节点',
+ all: '全部',
+ },
+ uiactions: {
+ },
+ },
+ caseexp_treeview: {
+ nodes: {
+ all: '全部',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/product-module/product-module_zh_CN.ts b/app_Web/src/locale/lanres/entities/product-module/product-module_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2b969243fa5f0c5dc058a6ab56f61b475721082f
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/product-module/product-module_zh_CN.ts
@@ -0,0 +1,115 @@
+export default {
+ fields: {
+ path: 'path',
+ deleted: '逻辑删除标志',
+ name: '名称',
+ branch: 'branch',
+ ibizshort: '短名称',
+ order: 'order',
+ grade: 'grade',
+ type: '类型(story)',
+ owner: 'owner',
+ isleaf: '叶子模块',
+ id: 'id',
+ collector: 'collector',
+ root: '产品',
+ parent: 'id',
+ },
+ views: {
+ gridview: {
+ caption: '需求模块',
+ title: '需求模块',
+ },
+ editview: {
+ caption: '需求模块',
+ title: '需求模块',
+ },
+ },
+ main_form: {
+ details: {
+ group1: '产品模块基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'id',
+ srfmajortext: '名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '名称',
+ order: 'order',
+ id: 'id',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ name: '名称',
+ root: '产品',
+ short: '短名称',
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '编辑',
+ tip: '编辑',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ exp_treeview: {
+ nodes: {
+ all: '所有模块',
+ branch: '平台',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+ taskexp_treeview: {
+ nodes: {
+ all: '所有模块',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+ bugexp_treeview: {
+ nodes: {
+ root: '默认根节点',
+ all: '全部',
+ },
+ uiactions: {
+ },
+ },
+ caseexp_treeview: {
+ nodes: {
+ all: '全部',
+ root: '默认根节点',
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/product-plan/product-plan_en_US.ts b/app_Web/src/locale/lanres/entities/product-plan/product-plan_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..46c766cbb5d7dd9d6d71f1e8a464f8c6a7237007
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/product-plan/product-plan_en_US.ts
@@ -0,0 +1,118 @@
+
+export default {
+ fields: {
+ title: '名称',
+ id: '编号',
+ begin: '开始日期',
+ desc: '描述',
+ end: '结束日期',
+ deleted: '已删除',
+ order: '排序',
+ parentname: '父计划名称',
+ branch: '平台/分支',
+ parent: '父计划',
+ product: '产品',
+ },
+ views: {
+ maintabexp: {
+ caption: "产品计划",
+ title: '产品计划',
+ },
+ maineditview: {
+ caption: "产品计划",
+ title: '产品计划',
+ },
+ gridview: {
+ caption: "产品计划",
+ title: '产品计划',
+ },
+ editview: {
+ caption: "产品计划",
+ title: '产品计划',
+ },
+ },
+ main_form: {
+ details: {
+ grouppanel1: "分组面板",
+ group1: "productplan基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ product: "产品",
+ title: "名称",
+ begin: "开始日期",
+ end: "结束日期",
+ desc: "描述",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ info_form: {
+ details: {
+ grouppanel1: "分组面板",
+ group1: "基本信息",
+ druipart1: "",
+ grouppanel2: "历史记录",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ product: "产品",
+ title: "名称",
+ begin: "开始日期",
+ end: "结束日期",
+ desc: "描述",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "编号",
+ title: "名称",
+ begin: "开始日期",
+ end: "结束日期",
+ actions: "操作",
+ },
+ uiactions: {
+ relationstory: "关联需求",
+ relationbug: "关联Bug",
+ newsubplan: "子计划",
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/product-plan/product-plan_zh_CN.ts b/app_Web/src/locale/lanres/entities/product-plan/product-plan_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bcaf180af242393a318921df3c5fc899850bc8ee
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/product-plan/product-plan_zh_CN.ts
@@ -0,0 +1,117 @@
+export default {
+ fields: {
+ title: '名称',
+ id: '编号',
+ begin: '开始日期',
+ desc: '描述',
+ end: '结束日期',
+ deleted: '已删除',
+ order: '排序',
+ parentname: '父计划名称',
+ branch: '平台/分支',
+ parent: '父计划',
+ product: '产品',
+ },
+ views: {
+ maintabexp: {
+ caption: '产品计划',
+ title: '产品计划',
+ },
+ maineditview: {
+ caption: '产品计划',
+ title: '产品计划',
+ },
+ gridview: {
+ caption: '产品计划',
+ title: '产品计划',
+ },
+ editview: {
+ caption: '产品计划',
+ title: '产品计划',
+ },
+ },
+ main_form: {
+ details: {
+ grouppanel1: '分组面板',
+ group1: 'productplan基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ product: '产品',
+ title: '名称',
+ begin: '开始日期',
+ end: '结束日期',
+ desc: '描述',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ info_form: {
+ details: {
+ grouppanel1: '分组面板',
+ group1: '基本信息',
+ druipart1: '',
+ grouppanel2: '历史记录',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ product: '产品',
+ title: '名称',
+ begin: '开始日期',
+ end: '结束日期',
+ desc: '描述',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: '编号',
+ title: '名称',
+ begin: '开始日期',
+ end: '结束日期',
+ actions: '操作',
+ },
+ uiactions: {
+ relationstory: '关联需求',
+ relationbug: '关联Bug',
+ newsubplan: '子计划',
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/product-stats/product-stats_en_US.ts b/app_Web/src/locale/lanres/entities/product-stats/product-stats_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..42b0ea67f9a79aecfff96f11a0f56c36b244c347
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/product-stats/product-stats_en_US.ts
@@ -0,0 +1,77 @@
+
+export default {
+ fields: {
+ id: '产品编号',
+ deleted: '已删除',
+ storycnt: '需求总数',
+ productplancnt: '计划总数',
+ releasecnt: '发布总数',
+ waitstorycnt: '未开始需求数',
+ plannedstorycnt: '已计划需求数',
+ developingstorycnt: '开发中需求数',
+ testingstorycnt: '测试中需求数',
+ releasedstorycnt: '已发布需求数',
+ unendproductplancnt: '未过期计划数',
+ unendproductplanrate: '剩余计划率',
+ resprojectcnt: '关联项目数',
+ undoneresprojectcnt: '未完成关联项目数',
+ undoneresprojectrate: '进行项目率',
+ normalreleasecnt: '维护中发布数',
+ normalreleaserate: '维护发布率',
+ activestorycnt: '激活需求数',
+ activebugcnt: '未解决Bug数',
+ },
+ views: {
+ editview9: {
+ caption: "产品统计",
+ title: '产品统计',
+ },
+ },
+ main2_form: {
+ details: {
+ rawitem1: "",
+ button4: "查看全部",
+ button5: "提需求",
+ grouppanel6: "",
+ rawitem2: "",
+ grouppanel13: "需求状态统计",
+ grouppanel1: "产品需求统计",
+ button1: "创建计划",
+ grouppanel3: "",
+ grouppanel8: "计划",
+ button2: "创建项目",
+ grouppanel4: "",
+ grouppanel9: "项目",
+ button3: "创建发布",
+ grouppanel5: "",
+ grouppanel11: "发布",
+ grouppanel2: "产品统计",
+ group1: "统计",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "产品编号",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ storycnt: "需求数",
+ waitstorycnt: "未开始",
+ plannedstorycnt: "已计划",
+ developingstorycnt: "研发中",
+ testingstorycnt: "测试中",
+ releasedstorycnt: "已发布",
+ productplancnt: "所有计划",
+ unendproductplanrate: "剩余计划率",
+ unendproductplancnt: "未过期",
+ resprojectcnt: "所有项目",
+ undoneresprojectrate: "进行项目率",
+ undoneresprojectcnt: "进行中",
+ releasecnt: "所有发布",
+ normalreleaserate: "维护发布率",
+ normalreleasecnt: "维护中",
+ id: "产品编号",
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/product-stats/product-stats_zh_CN.ts b/app_Web/src/locale/lanres/entities/product-stats/product-stats_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..058df698ead967dfe495bdb9e39273cdfb792dc7
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/product-stats/product-stats_zh_CN.ts
@@ -0,0 +1,76 @@
+export default {
+ fields: {
+ id: '产品编号',
+ deleted: '已删除',
+ storycnt: '需求总数',
+ productplancnt: '计划总数',
+ releasecnt: '发布总数',
+ waitstorycnt: '未开始需求数',
+ plannedstorycnt: '已计划需求数',
+ developingstorycnt: '开发中需求数',
+ testingstorycnt: '测试中需求数',
+ releasedstorycnt: '已发布需求数',
+ unendproductplancnt: '未过期计划数',
+ unendproductplanrate: '剩余计划率',
+ resprojectcnt: '关联项目数',
+ undoneresprojectcnt: '未完成关联项目数',
+ undoneresprojectrate: '进行项目率',
+ normalreleasecnt: '维护中发布数',
+ normalreleaserate: '维护发布率',
+ activestorycnt: '激活需求数',
+ activebugcnt: '未解决Bug数',
+ },
+ views: {
+ editview9: {
+ caption: '产品统计',
+ title: '产品统计',
+ },
+ },
+ main2_form: {
+ details: {
+ rawitem1: '',
+ button4: '查看全部',
+ button5: '提需求',
+ grouppanel6: '',
+ rawitem2: '',
+ grouppanel13: '需求状态统计',
+ grouppanel1: '产品需求统计',
+ button1: '创建计划',
+ grouppanel3: '',
+ grouppanel8: '计划',
+ button2: '创建项目',
+ grouppanel4: '',
+ grouppanel9: '项目',
+ button3: '创建发布',
+ grouppanel5: '',
+ grouppanel11: '发布',
+ grouppanel2: '产品统计',
+ group1: '统计',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '产品编号',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ storycnt: '需求数',
+ waitstorycnt: '未开始',
+ plannedstorycnt: '已计划',
+ developingstorycnt: '研发中',
+ testingstorycnt: '测试中',
+ releasedstorycnt: '已发布',
+ productplancnt: '所有计划',
+ unendproductplanrate: '剩余计划率',
+ unendproductplancnt: '未过期',
+ resprojectcnt: '所有项目',
+ undoneresprojectrate: '进行项目率',
+ undoneresprojectcnt: '进行中',
+ releasecnt: '所有发布',
+ normalreleaserate: '维护发布率',
+ normalreleasecnt: '维护中',
+ id: '产品编号',
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/product/product_en_US.ts b/app_Web/src/locale/lanres/entities/product/product_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3d23f3e316c95df72ad4f7569da413c8d9814e83
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/product/product_en_US.ts
@@ -0,0 +1,289 @@
+
+export default {
+ fields: {
+ qd: '测试负责人',
+ acl: '访问控制',
+ name: '产品名称',
+ id: '编号',
+ deleted: '已删除',
+ whitelist: '分组白名单',
+ rd: '发布负责人',
+ order: '排序',
+ type: '产品类型',
+ po: '产品负责人',
+ desc: '产品描述 ',
+ status: '状态',
+ createdby: '由谁创建',
+ createdversion: '当前系统版本',
+ substatus: '子状态',
+ code: '产品代号',
+ createddate: '创建日期',
+ linename: '产品线',
+ line: '产品线',
+ activebugcnt: '未解决Bug数',
+ productplancnt: '计划总数',
+ releasecnt: '发布总数',
+ activestorycnt: '激活需求数',
+ },
+ views: {
+ testtabexpview: {
+ caption: "测试",
+ title: '测试',
+ },
+ expeditview: {
+ caption: "产品",
+ title: '产品',
+ },
+ htmlview: {
+ caption: "iBiz软件生产管理",
+ title: 'iBiz软件生产管理',
+ },
+ testdashboardview: {
+ caption: "产品",
+ title: '产品',
+ },
+ testgridview: {
+ caption: "产品",
+ title: '产品',
+ },
+ chartview: {
+ caption: "产品",
+ title: '产品',
+ },
+ gridview_unclosed: {
+ caption: "未关闭产品",
+ title: '未关闭产品',
+ },
+ storytreeexpview: {
+ caption: "产品",
+ title: '产品',
+ },
+ casetreeexpview: {
+ caption: "产品",
+ title: '产品',
+ },
+ maintabexpview: {
+ caption: "产品",
+ title: '产品',
+ },
+ testleftsidebarlistview: {
+ caption: "测试",
+ title: '测试',
+ },
+ gridview: {
+ caption: "产品",
+ title: '产品',
+ },
+ pickupview: {
+ caption: "产品",
+ title: '产品',
+ },
+ leftsidebarlistview: {
+ caption: "产品",
+ title: '产品',
+ },
+ pickupgridview: {
+ caption: "产品",
+ title: '产品',
+ },
+ dashboardinfomainview9: {
+ caption: "产品",
+ title: '产品',
+ },
+ maindashboardview: {
+ caption: "产品",
+ title: '产品',
+ },
+ editview: {
+ caption: "产品",
+ title: '产品',
+ },
+ listexpview: {
+ caption: "产品统计",
+ title: '产品统计',
+ },
+ bugtreeexpview: {
+ caption: "产品",
+ title: '产品',
+ },
+ },
+ dashboardinfo_form: {
+ details: {
+ group1: "产品基本信息",
+ grouppanel2: "负责人",
+ grouppanel3: "产品信息",
+ grouppanel4: "其他信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "产品名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "名称",
+ po: "产品",
+ rd: "发布",
+ qd: "测试",
+ linename: "产品线",
+ createdby: "创建人",
+ createddate: "创建日期",
+ acl: "访问控制",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ main_form: {
+ details: {
+ grouppanel1: "分组面板",
+ group1: "product基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "产品名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "产品名称",
+ code: "产品代号",
+ line: "产品线",
+ linename: "产品线",
+ po: "产品负责人",
+ qd: "测试负责人",
+ rd: "发布负责人",
+ type: "产品类型",
+ desc: "产品描述 ",
+ acl: "访问控制",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ name: "产品名称",
+ code: "产品代号",
+ status: "状态",
+ type: "产品类型",
+ linename: "产品线",
+ },
+ uiactions: {
+ },
+ },
+ test_grid: {
+ columns: {
+ name: "产品名称",
+ code: "产品代号",
+ status: "状态",
+ type: "产品类型",
+ linename: "产品线",
+ },
+ uiactions: {
+ },
+ },
+ main2_grid: {
+ columns: {
+ name: "产品名称",
+ code: "产品代号",
+ status: "状态",
+ type: "产品类型",
+ linename: "产品线",
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ n_acl_eq: "访问控制(等于(=))",
+ n_line_eq: "产品线(等于(=))",
+ n_linename_like: "产品线(文本包含(%))",
+ n_linename_eq: "产品线(等于(=))",
+ n_name_like: "产品名称(文本包含(%))",
+ },
+ uiactions: {
+ },
+ },
+ testgridviewtoolbar_toolbar: {
+ tbitem4: {
+ caption: "Edit",
+ tip: "Edit {0}",
+ },
+ tbitem7: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem16: {
+ caption: "其它",
+ tip: "其它",
+ },
+ tbitem21: {
+ caption: "Export Data Model",
+ tip: "导出数据模型",
+ },
+ },
+ testleftsidebarlistviewtoolbar_toolbar: {
+ deuiaction3_testmanager: {
+ caption: "管理",
+ tip: "管理",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ leftsidebarlistviewtoolbar_toolbar: {
+ deuiaction3_manager: {
+ caption: "管理",
+ tip: "管理",
+ },
+ seperator2: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ listexpviewlistexpbar_list_quicktoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/product/product_zh_CN.ts b/app_Web/src/locale/lanres/entities/product/product_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ddd5d28360662333e4190d910a55ae0d109a31c1
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/product/product_zh_CN.ts
@@ -0,0 +1,288 @@
+export default {
+ fields: {
+ qd: '测试负责人',
+ acl: '访问控制',
+ name: '产品名称',
+ id: '编号',
+ deleted: '已删除',
+ whitelist: '分组白名单',
+ rd: '发布负责人',
+ order: '排序',
+ type: '产品类型',
+ po: '产品负责人',
+ desc: '产品描述 ',
+ status: '状态',
+ createdby: '由谁创建',
+ createdversion: '当前系统版本',
+ substatus: '子状态',
+ code: '产品代号',
+ createddate: '创建日期',
+ linename: '产品线',
+ line: '产品线',
+ activebugcnt: '未解决Bug数',
+ productplancnt: '计划总数',
+ releasecnt: '发布总数',
+ activestorycnt: '激活需求数',
+ },
+ views: {
+ testtabexpview: {
+ caption: '测试',
+ title: '测试',
+ },
+ expeditview: {
+ caption: '产品',
+ title: '产品',
+ },
+ htmlview: {
+ caption: 'iBiz软件生产管理',
+ title: 'iBiz软件生产管理',
+ },
+ testdashboardview: {
+ caption: '产品',
+ title: '产品',
+ },
+ testgridview: {
+ caption: '产品',
+ title: '产品',
+ },
+ chartview: {
+ caption: '产品',
+ title: '产品',
+ },
+ gridview_unclosed: {
+ caption: '未关闭产品',
+ title: '未关闭产品',
+ },
+ storytreeexpview: {
+ caption: '产品',
+ title: '产品',
+ },
+ casetreeexpview: {
+ caption: '产品',
+ title: '产品',
+ },
+ maintabexpview: {
+ caption: '产品',
+ title: '产品',
+ },
+ testleftsidebarlistview: {
+ caption: '测试',
+ title: '测试',
+ },
+ gridview: {
+ caption: '产品',
+ title: '产品',
+ },
+ pickupview: {
+ caption: '产品',
+ title: '产品',
+ },
+ leftsidebarlistview: {
+ caption: '产品',
+ title: '产品',
+ },
+ pickupgridview: {
+ caption: '产品',
+ title: '产品',
+ },
+ dashboardinfomainview9: {
+ caption: '产品',
+ title: '产品',
+ },
+ maindashboardview: {
+ caption: '产品',
+ title: '产品',
+ },
+ editview: {
+ caption: '产品',
+ title: '产品',
+ },
+ listexpview: {
+ caption: '产品统计',
+ title: '产品统计',
+ },
+ bugtreeexpview: {
+ caption: '产品',
+ title: '产品',
+ },
+ },
+ dashboardinfo_form: {
+ details: {
+ group1: '产品基本信息',
+ grouppanel2: '负责人',
+ grouppanel3: '产品信息',
+ grouppanel4: '其他信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '产品名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '名称',
+ po: '产品',
+ rd: '发布',
+ qd: '测试',
+ linename: '产品线',
+ createdby: '创建人',
+ createddate: '创建日期',
+ acl: '访问控制',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ main_form: {
+ details: {
+ grouppanel1: '分组面板',
+ group1: 'product基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '产品名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '产品名称',
+ code: '产品代号',
+ line: '产品线',
+ linename: '产品线',
+ po: '产品负责人',
+ qd: '测试负责人',
+ rd: '发布负责人',
+ type: '产品类型',
+ desc: '产品描述 ',
+ acl: '访问控制',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ name: '产品名称',
+ code: '产品代号',
+ status: '状态',
+ type: '产品类型',
+ linename: '产品线',
+ },
+ uiactions: {
+ },
+ },
+ test_grid: {
+ columns: {
+ name: '产品名称',
+ code: '产品代号',
+ status: '状态',
+ type: '产品类型',
+ linename: '产品线',
+ },
+ uiactions: {
+ },
+ },
+ main2_grid: {
+ columns: {
+ name: '产品名称',
+ code: '产品代号',
+ status: '状态',
+ type: '产品类型',
+ linename: '产品线',
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ n_acl_eq: '访问控制(等于(=))',
+ n_line_eq: '产品线(等于(=))',
+ n_linename_like: '产品线(文本包含(%))',
+ n_linename_eq: '产品线(等于(=))',
+ n_name_like: '产品名称(文本包含(%))',
+ },
+ uiactions: {
+ },
+ },
+ testgridviewtoolbar_toolbar: {
+ tbitem4: {
+ caption: '编辑',
+ tip: '编辑',
+ },
+ tbitem7: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem16: {
+ caption: '其它',
+ tip: '其它',
+ },
+ tbitem21: {
+ caption: '导出数据模型',
+ tip: '导出数据模型',
+ },
+ },
+ testleftsidebarlistviewtoolbar_toolbar: {
+ deuiaction3_testmanager: {
+ caption: '管理',
+ tip: '管理',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ leftsidebarlistviewtoolbar_toolbar: {
+ deuiaction3_manager: {
+ caption: '管理',
+ tip: '管理',
+ },
+ seperator2: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ listexpviewlistexpbar_list_quicktoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/project-product/project-product_en_US.ts b/app_Web/src/locale/lanres/entities/project-product/project-product_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ae5bc6f3141b8a737b7405343456c8a3eaf3b191
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/project-product/project-product_en_US.ts
@@ -0,0 +1,23 @@
+
+export default {
+ fields: {
+ id: '虚拟主键',
+ productname: '产品',
+ projectname: '项目',
+ planname: '计划名称',
+ product: '产品',
+ plan: '产品计划',
+ branch: '平台/分支',
+ project: '项目',
+ },
+ views: {
+ planlistview9: {
+ caption: "关联计划",
+ title: '关联计划',
+ },
+ listview9: {
+ caption: "关联产品",
+ title: '关联产品',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/project-product/project-product_zh_CN.ts b/app_Web/src/locale/lanres/entities/project-product/project-product_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fabddd237920861480ca73ed12d1b2724517ac78
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/project-product/project-product_zh_CN.ts
@@ -0,0 +1,22 @@
+export default {
+ fields: {
+ id: '虚拟主键',
+ productname: '产品',
+ projectname: '项目',
+ planname: '计划名称',
+ product: '产品',
+ plan: '产品计划',
+ branch: '平台/分支',
+ project: '项目',
+ },
+ views: {
+ planlistview9: {
+ caption: '关联计划',
+ title: '关联计划',
+ },
+ listview9: {
+ caption: '关联产品',
+ title: '关联产品',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/project-stats/project-stats_en_US.ts b/app_Web/src/locale/lanres/entities/project-stats/project-stats_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..934964355763e0cb5ad247a8c95bbf22eff28d7f
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/project-stats/project-stats_en_US.ts
@@ -0,0 +1,61 @@
+
+export default {
+ fields: {
+ id: '项目编号',
+ storycnt: '需求总数',
+ taskcnt: '任务总数',
+ totalestimate: '任务最初预计总工时',
+ totalconsumed: '任务消耗总工时',
+ totalleft: '任务预计剩余总工时',
+ undonetaskcnt: '未完成任务总数',
+ closedstorycnt: '关闭需求总数',
+ bugcnt: 'Bug总数',
+ activebugcnt: '未解决Bug总数',
+ unclosedstorycnt: '未关闭需求总数',
+ finishtaskcnt: '已结束任务总数',
+ finishbugcnt: '已解决Bug总数',
+ donetaskrate: '完成任务率',
+ closedstoryrate: '关闭需求率',
+ finishbugrate: '解决Bug率',
+ deleted: '已删除',
+ time: '工时',
+ type: '工时类型',
+ },
+ views: {
+ maindashboardview: {
+ caption: "项目统计",
+ title: '项目统计',
+ },
+ editview9: {
+ caption: "项目统计",
+ title: '项目统计',
+ },
+ },
+ main_form: {
+ details: {
+ grouppanel1: "任务统计",
+ grouppanel2: "需求统计",
+ grouppanel3: "bug统计",
+ group1: "项目统计基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "项目编号",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ taskcnt: "总任务",
+ donetaskrate: "",
+ undonetaskcnt: "未完成",
+ storycnt: "总需求",
+ closedstoryrate: "",
+ unclosedstorycnt: "未关闭",
+ bugcnt: "所有",
+ finishbugrate: "",
+ activebugcnt: "未解决",
+ id: "项目编号",
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/project-stats/project-stats_zh_CN.ts b/app_Web/src/locale/lanres/entities/project-stats/project-stats_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..720db6f20cc8f614c4b39c1bb7bcf56cc690b733
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/project-stats/project-stats_zh_CN.ts
@@ -0,0 +1,60 @@
+export default {
+ fields: {
+ id: '项目编号',
+ storycnt: '需求总数',
+ taskcnt: '任务总数',
+ totalestimate: '任务最初预计总工时',
+ totalconsumed: '任务消耗总工时',
+ totalleft: '任务预计剩余总工时',
+ undonetaskcnt: '未完成任务总数',
+ closedstorycnt: '关闭需求总数',
+ bugcnt: 'Bug总数',
+ activebugcnt: '未解决Bug总数',
+ unclosedstorycnt: '未关闭需求总数',
+ finishtaskcnt: '已结束任务总数',
+ finishbugcnt: '已解决Bug总数',
+ donetaskrate: '完成任务率',
+ closedstoryrate: '关闭需求率',
+ finishbugrate: '解决Bug率',
+ deleted: '已删除',
+ time: '工时',
+ type: '工时类型',
+ },
+ views: {
+ maindashboardview: {
+ caption: '项目统计',
+ title: '项目统计',
+ },
+ editview9: {
+ caption: '项目统计',
+ title: '项目统计',
+ },
+ },
+ main_form: {
+ details: {
+ grouppanel1: '任务统计',
+ grouppanel2: '需求统计',
+ grouppanel3: 'bug统计',
+ group1: '项目统计基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '项目编号',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ taskcnt: '总任务',
+ donetaskrate: '',
+ undonetaskcnt: '未完成',
+ storycnt: '总需求',
+ closedstoryrate: '',
+ unclosedstorycnt: '未关闭',
+ bugcnt: '所有',
+ finishbugrate: '',
+ activebugcnt: '未解决',
+ id: '项目编号',
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/project/project_en_US.ts b/app_Web/src/locale/lanres/entities/project/project_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0c186f41b1874a3b826d7fe07b4979b683acbcb3
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/project/project_en_US.ts
@@ -0,0 +1,240 @@
+
+export default {
+ fields: {
+ openedversion: '当前系统版本',
+ begin: '开始时间',
+ acl: '访问控制',
+ deleted: '已删除',
+ desc: '项目描述',
+ pm: '项目负责人',
+ id: '项目编号',
+ name: '项目名称',
+ substatus: '子状态',
+ order: '项目排序',
+ rd: '发布负责人',
+ whitelist: '分组白名单',
+ pri: '优先级',
+ end: '结束日期',
+ canceleddate: '取消日期',
+ code: '项目代号',
+ catid: 'catID',
+ statge: 'statge',
+ canceledby: '由谁取消',
+ iscat: 'isCat',
+ openeddate: '创建日期',
+ closedby: '由谁关闭',
+ type: '项目类型',
+ po: '产品负责人',
+ status: '项目状态',
+ days: '可用工作日',
+ team: '团队名称',
+ closeddate: '关闭日期',
+ openedby: '由谁创建',
+ qd: '测试负责人',
+ parentname: 'parent',
+ parent: '父项目',
+ taskcnt: '任务总数',
+ bugcnt: 'Bug总数',
+ storycnt: '需求总数',
+ },
+ views: {
+ tasktreeexpview: {
+ caption: "项目",
+ title: '项目',
+ },
+ burndownchartview: {
+ caption: "项目",
+ title: '项目',
+ },
+ listexpview: {
+ caption: "项目",
+ title: '项目',
+ },
+ pickupgridview: {
+ caption: "项目",
+ title: '项目',
+ },
+ curproductgridview: {
+ caption: "项目",
+ title: '项目',
+ },
+ pickupview: {
+ caption: "项目",
+ title: '项目',
+ },
+ leftsidebarlistview: {
+ caption: "项目",
+ title: '项目',
+ },
+ gridview: {
+ caption: "项目",
+ title: '项目',
+ },
+ maindashboardview: {
+ caption: "项目",
+ title: '项目',
+ },
+ gridview9_unclosed: {
+ caption: "未关闭的项目",
+ title: '未关闭的项目',
+ },
+ dashboardinfoview: {
+ caption: "项目",
+ title: '项目',
+ },
+ editview: {
+ caption: "项目",
+ title: '项目',
+ },
+ maintabexpview: {
+ caption: "项目",
+ title: '项目',
+ },
+ },
+ dashboardinfo_form: {
+ details: {
+ group1: "project基本信息",
+ druipart1: "",
+ grouppanel6: "关联产品",
+ druipart2: "",
+ grouppanel7: "关联计划",
+ grouppanel2: "分组面板",
+ grouppanel3: "分组面板",
+ grouppanel1: "工时统计",
+ grouppanel4: "基本信息",
+ grouppanel5: "访问控制",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "项目编号",
+ srfmajortext: "项目名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ id: "项目编号",
+ code: "项目代号",
+ name: "项目名称",
+ desc: "项目描述",
+ type: "项目类型",
+ status: "项目状态",
+ begin: "开始时间",
+ end: "结束日期",
+ days: "可用工作日",
+ formitem: "预计",
+ formitem1: "消耗",
+ formitem2: "剩余",
+ formitem3: "需求",
+ formitem4: "任务",
+ formitem5: "Bug",
+ acl: "访问控制",
+ },
+ uiactions: {
+ },
+ },
+ main_form: {
+ details: {
+ grouppanel1: "分组面板",
+ group1: "project基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "项目编号",
+ srfmajortext: "项目名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "项目名称",
+ code: "项目代号",
+ end: "结束日期",
+ begin: "开始时间",
+ formitemex1: "项目周期",
+ days: "可用工作日",
+ team: "团队名称",
+ type: "项目类型",
+ formitem: "关联产品",
+ formitem1: "关联计划",
+ desc: "项目描述",
+ acl: "访问控制",
+ id: "项目编号",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ name: "项目名称",
+ code: "项目代号",
+ status: "项目状态",
+ end: "结束日期",
+ },
+ uiactions: {
+ },
+ },
+ main2_grid: {
+ columns: {
+ id: "ID",
+ name: "项目名称",
+ code: "项目代号",
+ status: "项目状态",
+ end: "结束日期",
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ curproductgridviewtoolbar_toolbar: {
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ leftsidebarlistviewtoolbar_toolbar: {
+ deuiaction3_manager: {
+ caption: "管理",
+ tip: "管理",
+ },
+ seperator2: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/project/project_zh_CN.ts b/app_Web/src/locale/lanres/entities/project/project_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..450c1f94c3f2963056a02ed701c9f14a3681b965
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/project/project_zh_CN.ts
@@ -0,0 +1,239 @@
+export default {
+ fields: {
+ openedversion: '当前系统版本',
+ begin: '开始时间',
+ acl: '访问控制',
+ deleted: '已删除',
+ desc: '项目描述',
+ pm: '项目负责人',
+ id: '项目编号',
+ name: '项目名称',
+ substatus: '子状态',
+ order: '项目排序',
+ rd: '发布负责人',
+ whitelist: '分组白名单',
+ pri: '优先级',
+ end: '结束日期',
+ canceleddate: '取消日期',
+ code: '项目代号',
+ catid: 'catID',
+ statge: 'statge',
+ canceledby: '由谁取消',
+ iscat: 'isCat',
+ openeddate: '创建日期',
+ closedby: '由谁关闭',
+ type: '项目类型',
+ po: '产品负责人',
+ status: '项目状态',
+ days: '可用工作日',
+ team: '团队名称',
+ closeddate: '关闭日期',
+ openedby: '由谁创建',
+ qd: '测试负责人',
+ parentname: 'parent',
+ parent: '父项目',
+ taskcnt: '任务总数',
+ bugcnt: 'Bug总数',
+ storycnt: '需求总数',
+ },
+ views: {
+ tasktreeexpview: {
+ caption: '项目',
+ title: '项目',
+ },
+ burndownchartview: {
+ caption: '项目',
+ title: '项目',
+ },
+ listexpview: {
+ caption: '项目',
+ title: '项目',
+ },
+ pickupgridview: {
+ caption: '项目',
+ title: '项目',
+ },
+ curproductgridview: {
+ caption: '项目',
+ title: '项目',
+ },
+ pickupview: {
+ caption: '项目',
+ title: '项目',
+ },
+ leftsidebarlistview: {
+ caption: '项目',
+ title: '项目',
+ },
+ gridview: {
+ caption: '项目',
+ title: '项目',
+ },
+ maindashboardview: {
+ caption: '项目',
+ title: '项目',
+ },
+ gridview9_unclosed: {
+ caption: '未关闭的项目',
+ title: '未关闭的项目',
+ },
+ dashboardinfoview: {
+ caption: '项目',
+ title: '项目',
+ },
+ editview: {
+ caption: '项目',
+ title: '项目',
+ },
+ maintabexpview: {
+ caption: '项目',
+ title: '项目',
+ },
+ },
+ dashboardinfo_form: {
+ details: {
+ group1: 'project基本信息',
+ druipart1: '',
+ grouppanel6: '关联产品',
+ druipart2: '',
+ grouppanel7: '关联计划',
+ grouppanel2: '分组面板',
+ grouppanel3: '分组面板',
+ grouppanel1: '工时统计',
+ grouppanel4: '基本信息',
+ grouppanel5: '访问控制',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '项目编号',
+ srfmajortext: '项目名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ id: '项目编号',
+ code: '项目代号',
+ name: '项目名称',
+ desc: '项目描述',
+ type: '项目类型',
+ status: '项目状态',
+ begin: '开始时间',
+ end: '结束日期',
+ days: '可用工作日',
+ formitem: '预计',
+ formitem1: '消耗',
+ formitem2: '剩余',
+ formitem3: '需求',
+ formitem4: '任务',
+ formitem5: 'Bug',
+ acl: '访问控制',
+ },
+ uiactions: {
+ },
+ },
+ main_form: {
+ details: {
+ grouppanel1: '分组面板',
+ group1: 'project基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '项目编号',
+ srfmajortext: '项目名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '项目名称',
+ code: '项目代号',
+ end: '结束日期',
+ begin: '开始时间',
+ formitemex1: '项目周期',
+ days: '可用工作日',
+ team: '团队名称',
+ type: '项目类型',
+ formitem: '关联产品',
+ formitem1: '关联计划',
+ desc: '项目描述',
+ acl: '访问控制',
+ id: '项目编号',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ name: '项目名称',
+ code: '项目代号',
+ status: '项目状态',
+ end: '结束日期',
+ },
+ uiactions: {
+ },
+ },
+ main2_grid: {
+ columns: {
+ id: 'ID',
+ name: '项目名称',
+ code: '项目代号',
+ status: '项目状态',
+ end: '结束日期',
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ curproductgridviewtoolbar_toolbar: {
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ leftsidebarlistviewtoolbar_toolbar: {
+ deuiaction3_manager: {
+ caption: '管理',
+ tip: '管理',
+ },
+ seperator2: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/release/release_en_US.ts b/app_Web/src/locale/lanres/entities/release/release_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b7107cc859eb9276ac65f3c2ff08908c850e0931
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/release/release_en_US.ts
@@ -0,0 +1,144 @@
+
+export default {
+ fields: {
+ stories: '完成的需求',
+ marker: '里程碑',
+ id: 'ID',
+ leftbugs: '遗留的Bug',
+ bugs: '解决的Bug',
+ deleted: '已删除',
+ name: '发布名称',
+ date: '发布日期',
+ status: '状态',
+ substatus: '子状态',
+ desc: '描述',
+ buildname: '版本',
+ product: '产品',
+ build: '版本',
+ branch: '平台/分支',
+ },
+ views: {
+ gridview: {
+ caption: "发布",
+ title: '发布',
+ },
+ editview: {
+ caption: "发布",
+ title: '发布',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "release基本信息",
+ formpage1: "基本信息",
+ group2: "操作信息",
+ formpage2: "其它",
+ srforikey: "",
+ srfkey: "ID",
+ srfmajortext: "发布名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "发布名称",
+ id: "ID",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ name: "发布名称",
+ buildname: "版本",
+ status: "状态",
+ date: "发布日期",
+ },
+ uiactions: {
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: "Save",
+ tip: "Save",
+ },
+ tbitem4: {
+ caption: "Save And New",
+ tip: "Save And New",
+ },
+ tbitem5: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ tbitem6: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem7: {
+ caption: "Remove And Close",
+ tip: "Remove And Close Window",
+ },
+ tbitem8: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem12: {
+ caption: "New",
+ tip: "New",
+ },
+ tbitem13: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem14: {
+ caption: "Copy",
+ tip: "Copy {0}",
+ },
+ tbitem16: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem23: {
+ caption: "第一个记录",
+ tip: "第一个记录",
+ },
+ tbitem24: {
+ caption: "上一个记录",
+ tip: "上一个记录",
+ },
+ tbitem25: {
+ caption: "下一个记录",
+ tip: "下一个记录",
+ },
+ tbitem26: {
+ caption: "最后一个记录",
+ tip: "最后一个记录",
+ },
+ tbitem21: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem22: {
+ caption: "Help",
+ tip: "Help",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/release/release_zh_CN.ts b/app_Web/src/locale/lanres/entities/release/release_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b9e649965b46b8ea10926abf3c0a83a6405fa5bf
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/release/release_zh_CN.ts
@@ -0,0 +1,143 @@
+export default {
+ fields: {
+ stories: '完成的需求',
+ marker: '里程碑',
+ id: 'ID',
+ leftbugs: '遗留的Bug',
+ bugs: '解决的Bug',
+ deleted: '已删除',
+ name: '发布名称',
+ date: '发布日期',
+ status: '状态',
+ substatus: '子状态',
+ desc: '描述',
+ buildname: '版本',
+ product: '产品',
+ build: '版本',
+ branch: '平台/分支',
+ },
+ views: {
+ gridview: {
+ caption: '发布',
+ title: '发布',
+ },
+ editview: {
+ caption: '发布',
+ title: '发布',
+ },
+ },
+ main_form: {
+ details: {
+ group1: 'release基本信息',
+ formpage1: '基本信息',
+ group2: '操作信息',
+ formpage2: '其它',
+ srforikey: '',
+ srfkey: 'ID',
+ srfmajortext: '发布名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '发布名称',
+ id: 'ID',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ name: '发布名称',
+ buildname: '版本',
+ status: '状态',
+ date: '发布日期',
+ },
+ uiactions: {
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: '保存',
+ tip: '保存',
+ },
+ tbitem4: {
+ caption: '保存并新建',
+ tip: '保存并新建',
+ },
+ tbitem5: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ tbitem6: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem7: {
+ caption: '删除',
+ tip: '删除',
+ },
+ tbitem8: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem12: {
+ caption: '新建',
+ tip: '新建',
+ },
+ tbitem13: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem14: {
+ caption: '拷贝',
+ tip: '拷贝',
+ },
+ tbitem16: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem23: {
+ caption: '第一个记录',
+ tip: '第一个记录',
+ },
+ tbitem24: {
+ caption: '上一个记录',
+ tip: '上一个记录',
+ },
+ tbitem25: {
+ caption: '下一个记录',
+ tip: '下一个记录',
+ },
+ tbitem26: {
+ caption: '最后一个记录',
+ tip: '最后一个记录',
+ },
+ tbitem21: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem22: {
+ caption: '帮助',
+ tip: '帮助',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/story-spec/story-spec_en_US.ts b/app_Web/src/locale/lanres/entities/story-spec/story-spec_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c51ca087e3622549280b52a0ae13a561c5f97c8c
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/story-spec/story-spec_en_US.ts
@@ -0,0 +1,45 @@
+
+export default {
+ fields: {
+ spec: '需求描述 ',
+ duplicatestory: '重复需求ID',
+ verify: '验收标准',
+ id: '虚拟主键',
+ title: '需求名称',
+ version: '版本号',
+ story: '需求',
+ },
+ views: {
+ mainview9: {
+ caption: "需求描述",
+ title: '需求描述',
+ },
+ },
+ main_form: {
+ details: {
+ rawitem1: "",
+ group1: "storyspec基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "虚拟主键",
+ srfmajortext: "需求名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ spec: "需求描述 ",
+ verify: "验收标准",
+ id: "虚拟主键",
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ n_version_eq: "版本号(等于(=))",
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/story-spec/story-spec_zh_CN.ts b/app_Web/src/locale/lanres/entities/story-spec/story-spec_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ab0bc02c0a00d0297b6b086d159fe54d522b21d8
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/story-spec/story-spec_zh_CN.ts
@@ -0,0 +1,44 @@
+export default {
+ fields: {
+ spec: '需求描述 ',
+ duplicatestory: '重复需求ID',
+ verify: '验收标准',
+ id: '虚拟主键',
+ title: '需求名称',
+ version: '版本号',
+ story: '需求',
+ },
+ views: {
+ mainview9: {
+ caption: '需求描述',
+ title: '需求描述',
+ },
+ },
+ main_form: {
+ details: {
+ rawitem1: '',
+ group1: 'storyspec基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '虚拟主键',
+ srfmajortext: '需求名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ spec: '需求描述 ',
+ verify: '验收标准',
+ id: '虚拟主键',
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ n_version_eq: '版本号(等于(=))',
+ },
+ uiactions: {
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/story/story_en_US.ts b/app_Web/src/locale/lanres/entities/story/story_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cb87363418f922c3d2b8c10ae82e7142c45ad007
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/story/story_en_US.ts
@@ -0,0 +1,473 @@
+
+export default {
+ fields: {
+ assignedto: '指派给',
+ childstories: '细分需求',
+ plan: '所属计划',
+ version: '版本号',
+ assigneddate: '指派日期',
+ pri: '优先级',
+ linkstories: '相关需求',
+ status: '当前状态',
+ estimate: '预计工时',
+ revieweddate: '评审时间',
+ title: '需求名称',
+ sourcenote: '来源备注',
+ reviewedby: '由谁评审',
+ substatus: '子状态',
+ stagedby: '设置阶段者',
+ openedby: '由谁创建',
+ openeddate: '创建日期',
+ id: '编号',
+ source: '需求来源',
+ closedreason: '关闭原因',
+ color: '标题颜色',
+ mailto: '抄送给',
+ deleted: '已删除',
+ keywords: '关键词',
+ lasteditedby: '最后修改',
+ stage: '所处阶段',
+ closeddate: '关闭日期 ',
+ closedby: '由谁关闭',
+ type: '需求类型',
+ lastediteddate: '最后修改日期',
+ path: '模块路径',
+ parentname: '父需求名称',
+ modulename: '所属模块名称',
+ productname: '产品名称',
+ frombug: '来源Bug',
+ parent: '父需求',
+ module: '所属模块',
+ product: '所属产品',
+ duplicatestory: '重复需求ID',
+ branch: '平台/分支',
+ tobug: '转Bug',
+ spec: '需求描述',
+ verify: '验收标准',
+ },
+ views: {
+ mainview: {
+ caption: "需求",
+ title: '需求',
+ },
+ editview: {
+ caption: "需求",
+ title: '需求',
+ },
+ gridview9_assignedtome: {
+ caption: "需求",
+ title: '需求',
+ },
+ mainview9_editmode: {
+ caption: "需求",
+ title: '需求',
+ },
+ plansubeditview: {
+ caption: "需求",
+ title: '需求',
+ },
+ pickupgridview: {
+ caption: "需求",
+ title: '需求',
+ },
+ mainview9_storyspec: {
+ caption: "需求",
+ title: '需求',
+ },
+ mainview_editmode: {
+ caption: "需求",
+ title: '需求',
+ },
+ mainview9: {
+ caption: "需求",
+ title: '需求',
+ },
+ gridview9_substory: {
+ caption: "子需求",
+ title: '子需求',
+ },
+ maingridview: {
+ caption: "需求",
+ title: '需求',
+ },
+ mpickupview: {
+ caption: "关联需求",
+ title: '关联需求',
+ },
+ plansubgridview: {
+ caption: "需求",
+ title: '需求',
+ },
+ main2gridview: {
+ caption: "需求",
+ title: '需求',
+ },
+ editview_storychange: {
+ caption: "变更",
+ title: '变更',
+ },
+ },
+ storyspec_editmode_form: {
+ details: {
+ grouppanel1: "分组面板",
+ druipart1: "",
+ grouppanel2: "分组面板",
+ group1: "需求描述信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "需求名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ version: "版本#",
+ reviewedby: "由谁评审",
+ notreview: "不需要评审",
+ title: "需求名称",
+ verify: "验收标准",
+ spec: "需求描述",
+ comment: "备注",
+ files: "附件",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ main_newmode_form: {
+ details: {
+ group1: "需求基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "需求名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ product: "所属产品",
+ module: "所属模块",
+ prodoctname: "所属产品",
+ modulename: "所属模块",
+ plan: "计划",
+ source: "需求来源",
+ sourcenote: "来源备注",
+ reviewedby: "由谁评审",
+ title: "需求名称",
+ pri: "优先级",
+ estimate: "预计",
+ formitem: "需求描述",
+ formitem1: "验收标准",
+ mailto: "抄送给",
+ keywords: "关键词",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ storyspec_form: {
+ details: {
+ grouppanel1: "需求描述",
+ grouppanel2: "验收标准",
+ group1: "需求描述信息",
+ druipart1: "",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "需求名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ parent: "父需求",
+ version: "版本#",
+ spec: "需求描述",
+ verify: "验收标准",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ main_editmode_form: {
+ details: {
+ group1: "story基本信息",
+ grouppanel1: "分组面板",
+ grouppanel2: "分组面板",
+ group2: "需求的一生",
+ grouppanel3: "其他相关",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "需求名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ title: "需求名称",
+ prodoctname: "所属产品",
+ modulename: "所属模块",
+ plan: "所属计划",
+ source: "需求来源",
+ sourcenote: "来源备注",
+ status: "当前状态",
+ stage: "所处阶段",
+ pri: "优先级",
+ estimate: "预计工时",
+ keywords: "关键词",
+ mailto: "抄送给",
+ openedby: "由谁创建",
+ openeddate: "于",
+ assignedto: "指派给",
+ assigneddate: "于",
+ linkstories: "相关需求",
+ id: "编号",
+ product: "所属产品",
+ module: "所属模块",
+ },
+ uiactions: {
+ },
+ },
+ main_form: {
+ details: {
+ group1: "story基本信息",
+ formpage1: "基本信息",
+ grouppanel1: "分组面板",
+ grouppanel2: "分组面板",
+ grouppanel3: "分组面板",
+ group2: "操作信息",
+ formpage2: "需求的一生",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "需求名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ title: "需求名称",
+ prodoctname: "所属产品",
+ modulename: "所属模块",
+ plan: "所属计划",
+ source: "需求来源",
+ sourcenote: "来源备注",
+ status: "当前状态",
+ stage: "所处阶段",
+ pri: "优先级",
+ estimate: "预计工时",
+ keywords: "关键词",
+ mailto: "抄送给",
+ openedby: "由谁创建",
+ openeddate: "于",
+ assignedto: "指派给",
+ assigneddate: "于",
+ reviewedby: "由谁评审",
+ revieweddate: "评审时间",
+ closedby: "由谁关闭",
+ closeddate: "关闭日期 ",
+ closedreason: "关闭原因",
+ lasteditedby: "最后修改",
+ lastediteddate: "于",
+ id: "编号",
+ product: "所属产品",
+ },
+ uiactions: {
+ },
+ },
+ main3_grid: {
+ columns: {
+ id: "ID",
+ pri: "P",
+ title: "需求名称",
+ assignedto: "指派给",
+ estimate: "预计工时",
+ status: "当前状态",
+ uagridcolumn1: "操作",
+ },
+ uiactions: {
+ changestorydetail: "变更",
+ closestory: "关闭",
+ openbaseinfoeditview: "编辑",
+ opencasecreateview: "建用例",
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ pri: "P",
+ title: "需求名称",
+ modulename: "所属模块名称",
+ uagridcolumn1: "操作",
+ },
+ uiactions: {
+ changestorydetail: "变更",
+ closestory: "关闭",
+ openbaseinfoeditview: "编辑",
+ opencasecreateview: "建用例",
+ },
+ },
+ main2_grid: {
+ columns: {
+ id: "ID",
+ pri: "P",
+ title: "需求名称",
+ uagridcolumn1: "操作",
+ },
+ uiactions: {
+ changestorydetail: "变更",
+ closestory: "关闭",
+ openbaseinfoeditview: "编辑",
+ opencasecreateview: "建用例",
+ },
+ },
+ pickupgrid_grid: {
+ columns: {
+ id: "ID",
+ pri: "P",
+ title: "需求名称",
+ modulename: "所属模块名称",
+ },
+ uiactions: {
+ },
+ },
+ main_plansub_grid: {
+ columns: {
+ id: "ID",
+ pri: "P",
+ title: "需求名称",
+ modulename: "所属模块名称",
+ },
+ uiactions: {
+ },
+ },
+ main9_grid: {
+ columns: {
+ pri: "P",
+ title: "需求名称",
+ status: "状态",
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ editview_storychangetoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "Edit",
+ tip: "Edit {0}",
+ },
+ },
+ main2gridviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: "New",
+ tip: "New",
+ },
+ tbitem4: {
+ caption: "Edit",
+ tip: "Edit {0}",
+ },
+ tbitem6: {
+ caption: "Copy",
+ tip: "Copy {0}",
+ },
+ tbitem7: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem8: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ tbitem9: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem13: {
+ caption: "Export",
+ tip: "Export {0} Data To Excel",
+ },
+ tbitem10: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem16: {
+ caption: "其它",
+ tip: "其它",
+ },
+ tbitem21: {
+ caption: "Export Data Model",
+ tip: "导出数据模型",
+ },
+ tbitem23: {
+ caption: "数据导入",
+ tip: "数据导入",
+ },
+ tbitem17: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem19: {
+ caption: "Filter",
+ tip: "Filter",
+ },
+ tbitem18: {
+ caption: "Help",
+ tip: "Help",
+ },
+ },
+ plansubgridviewtoolbar_toolbar: {
+ deuiaction3_planrelationstory: {
+ caption: "关联需求",
+ tip: "关联需求",
+ },
+ seperator2: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ plansubeditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/story/story_zh_CN.ts b/app_Web/src/locale/lanres/entities/story/story_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..10b0c283e6110f532e7607091ca99c630ed7fb19
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/story/story_zh_CN.ts
@@ -0,0 +1,472 @@
+export default {
+ fields: {
+ assignedto: '指派给',
+ childstories: '细分需求',
+ plan: '所属计划',
+ version: '版本号',
+ assigneddate: '指派日期',
+ pri: '优先级',
+ linkstories: '相关需求',
+ status: '当前状态',
+ estimate: '预计工时',
+ revieweddate: '评审时间',
+ title: '需求名称',
+ sourcenote: '来源备注',
+ reviewedby: '由谁评审',
+ substatus: '子状态',
+ stagedby: '设置阶段者',
+ openedby: '由谁创建',
+ openeddate: '创建日期',
+ id: '编号',
+ source: '需求来源',
+ closedreason: '关闭原因',
+ color: '标题颜色',
+ mailto: '抄送给',
+ deleted: '已删除',
+ keywords: '关键词',
+ lasteditedby: '最后修改',
+ stage: '所处阶段',
+ closeddate: '关闭日期 ',
+ closedby: '由谁关闭',
+ type: '需求类型',
+ lastediteddate: '最后修改日期',
+ path: '模块路径',
+ parentname: '父需求名称',
+ modulename: '所属模块名称',
+ productname: '产品名称',
+ frombug: '来源Bug',
+ parent: '父需求',
+ module: '所属模块',
+ product: '所属产品',
+ duplicatestory: '重复需求ID',
+ branch: '平台/分支',
+ tobug: '转Bug',
+ spec: '需求描述',
+ verify: '验收标准',
+ },
+ views: {
+ mainview: {
+ caption: '需求',
+ title: '需求',
+ },
+ editview: {
+ caption: '需求',
+ title: '需求',
+ },
+ gridview9_assignedtome: {
+ caption: '需求',
+ title: '需求',
+ },
+ mainview9_editmode: {
+ caption: '需求',
+ title: '需求',
+ },
+ plansubeditview: {
+ caption: '需求',
+ title: '需求',
+ },
+ pickupgridview: {
+ caption: '需求',
+ title: '需求',
+ },
+ mainview9_storyspec: {
+ caption: '需求',
+ title: '需求',
+ },
+ mainview_editmode: {
+ caption: '需求',
+ title: '需求',
+ },
+ mainview9: {
+ caption: '需求',
+ title: '需求',
+ },
+ gridview9_substory: {
+ caption: '子需求',
+ title: '子需求',
+ },
+ maingridview: {
+ caption: '需求',
+ title: '需求',
+ },
+ mpickupview: {
+ caption: '关联需求',
+ title: '关联需求',
+ },
+ plansubgridview: {
+ caption: '需求',
+ title: '需求',
+ },
+ main2gridview: {
+ caption: '需求',
+ title: '需求',
+ },
+ editview_storychange: {
+ caption: '变更',
+ title: '变更',
+ },
+ },
+ storyspec_editmode_form: {
+ details: {
+ grouppanel1: '分组面板',
+ druipart1: '',
+ grouppanel2: '分组面板',
+ group1: '需求描述信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '需求名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ version: '版本#',
+ reviewedby: '由谁评审',
+ notreview: '不需要评审',
+ title: '需求名称',
+ verify: '验收标准',
+ spec: '需求描述',
+ comment: '备注',
+ files: '附件',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ main_newmode_form: {
+ details: {
+ group1: '需求基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '需求名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ product: '所属产品',
+ module: '所属模块',
+ prodoctname: '所属产品',
+ modulename: '所属模块',
+ plan: '计划',
+ source: '需求来源',
+ sourcenote: '来源备注',
+ reviewedby: '由谁评审',
+ title: '需求名称',
+ pri: '优先级',
+ estimate: '预计',
+ formitem: '需求描述',
+ formitem1: '验收标准',
+ mailto: '抄送给',
+ keywords: '关键词',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ storyspec_form: {
+ details: {
+ grouppanel1: '需求描述',
+ grouppanel2: '验收标准',
+ group1: '需求描述信息',
+ druipart1: '',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '需求名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ parent: '父需求',
+ version: '版本#',
+ spec: '需求描述',
+ verify: '验收标准',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ main_editmode_form: {
+ details: {
+ group1: 'story基本信息',
+ grouppanel1: '分组面板',
+ grouppanel2: '分组面板',
+ group2: '需求的一生',
+ grouppanel3: '其他相关',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '需求名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ title: '需求名称',
+ prodoctname: '所属产品',
+ modulename: '所属模块',
+ plan: '所属计划',
+ source: '需求来源',
+ sourcenote: '来源备注',
+ status: '当前状态',
+ stage: '所处阶段',
+ pri: '优先级',
+ estimate: '预计工时',
+ keywords: '关键词',
+ mailto: '抄送给',
+ openedby: '由谁创建',
+ openeddate: '于',
+ assignedto: '指派给',
+ assigneddate: '于',
+ linkstories: '相关需求',
+ id: '编号',
+ product: '所属产品',
+ module: '所属模块',
+ },
+ uiactions: {
+ },
+ },
+ main_form: {
+ details: {
+ group1: 'story基本信息',
+ formpage1: '基本信息',
+ grouppanel1: '分组面板',
+ grouppanel2: '分组面板',
+ grouppanel3: '分组面板',
+ group2: '操作信息',
+ formpage2: '需求的一生',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '需求名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ title: '需求名称',
+ prodoctname: '所属产品',
+ modulename: '所属模块',
+ plan: '所属计划',
+ source: '需求来源',
+ sourcenote: '来源备注',
+ status: '当前状态',
+ stage: '所处阶段',
+ pri: '优先级',
+ estimate: '预计工时',
+ keywords: '关键词',
+ mailto: '抄送给',
+ openedby: '由谁创建',
+ openeddate: '于',
+ assignedto: '指派给',
+ assigneddate: '于',
+ reviewedby: '由谁评审',
+ revieweddate: '评审时间',
+ closedby: '由谁关闭',
+ closeddate: '关闭日期 ',
+ closedreason: '关闭原因',
+ lasteditedby: '最后修改',
+ lastediteddate: '于',
+ id: '编号',
+ product: '所属产品',
+ },
+ uiactions: {
+ },
+ },
+ main3_grid: {
+ columns: {
+ id: 'ID',
+ pri: 'P',
+ title: '需求名称',
+ assignedto: '指派给',
+ estimate: '预计工时',
+ status: '当前状态',
+ uagridcolumn1: '操作',
+ },
+ uiactions: {
+ changestorydetail: '变更',
+ closestory: '关闭',
+ openbaseinfoeditview: '编辑',
+ opencasecreateview: '建用例',
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ pri: 'P',
+ title: '需求名称',
+ modulename: '所属模块名称',
+ uagridcolumn1: '操作',
+ },
+ uiactions: {
+ changestorydetail: '变更',
+ closestory: '关闭',
+ openbaseinfoeditview: '编辑',
+ opencasecreateview: '建用例',
+ },
+ },
+ main2_grid: {
+ columns: {
+ id: 'ID',
+ pri: 'P',
+ title: '需求名称',
+ uagridcolumn1: '操作',
+ },
+ uiactions: {
+ changestorydetail: '变更',
+ closestory: '关闭',
+ openbaseinfoeditview: '编辑',
+ opencasecreateview: '建用例',
+ },
+ },
+ pickupgrid_grid: {
+ columns: {
+ id: 'ID',
+ pri: 'P',
+ title: '需求名称',
+ modulename: '所属模块名称',
+ },
+ uiactions: {
+ },
+ },
+ main_plansub_grid: {
+ columns: {
+ id: 'ID',
+ pri: 'P',
+ title: '需求名称',
+ modulename: '所属模块名称',
+ },
+ uiactions: {
+ },
+ },
+ main9_grid: {
+ columns: {
+ pri: 'P',
+ title: '需求名称',
+ status: '状态',
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ editview_storychangetoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '编辑',
+ tip: '编辑',
+ },
+ },
+ main2gridviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: '新建',
+ tip: '新建',
+ },
+ tbitem4: {
+ caption: '编辑',
+ tip: '编辑',
+ },
+ tbitem6: {
+ caption: '拷贝',
+ tip: '拷贝',
+ },
+ tbitem7: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem8: {
+ caption: '删除',
+ tip: '删除',
+ },
+ tbitem9: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem13: {
+ caption: '导出',
+ tip: '导出',
+ },
+ tbitem10: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem16: {
+ caption: '其它',
+ tip: '其它',
+ },
+ tbitem21: {
+ caption: '导出数据模型',
+ tip: '导出数据模型',
+ },
+ tbitem23: {
+ caption: '数据导入',
+ tip: '数据导入',
+ },
+ tbitem17: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem19: {
+ caption: '过滤',
+ tip: '过滤',
+ },
+ tbitem18: {
+ caption: '帮助',
+ tip: '帮助',
+ },
+ },
+ plansubgridviewtoolbar_toolbar: {
+ deuiaction3_planrelationstory: {
+ caption: '关联需求',
+ tip: '关联需求',
+ },
+ seperator2: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ plansubeditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/sub-product-plan/sub-product-plan_en_US.ts b/app_Web/src/locale/lanres/entities/sub-product-plan/sub-product-plan_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cad8392a2de6a51d138a0638ccb27ae75d0157e9
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/sub-product-plan/sub-product-plan_en_US.ts
@@ -0,0 +1,94 @@
+
+export default {
+ fields: {
+ title: '名称',
+ id: '编号',
+ begin: '开始日期',
+ desc: '描述',
+ end: '结束日期',
+ deleted: '已删除',
+ order: '排序',
+ parentname: '父计划名称',
+ branch: '平台/分支',
+ parent: '父计划',
+ product: '产品',
+ },
+ views: {
+ subplancreateview: {
+ caption: "产品计划",
+ title: '产品计划',
+ },
+ subplangridview: {
+ caption: "产品计划",
+ title: '产品计划',
+ },
+ subplaneditview: {
+ caption: "子计划",
+ title: '子计划',
+ },
+ },
+ mainsubplan_form: {
+ details: {
+ grouppanel1: "分组面板",
+ group1: "productplan基本信息",
+ button1: "Save And Close",
+ button2: "关闭",
+ grouppanel3: "分组面板",
+ grouppanel2: "分组面板",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ product: "产品",
+ parent: "父计划",
+ parentname: "父计划名称",
+ title: "名称",
+ begin: "开始日期",
+ end: "结束日期",
+ desc: "描述",
+ id: "编号",
+ },
+ uiactions: {
+ saveandexit: "Save And Close",
+ exit: "返回",
+ },
+ },
+ mainsubplan_grid: {
+ columns: {
+ id: "编号",
+ title: "名称",
+ begin: "开始日期",
+ end: "结束日期",
+ },
+ uiactions: {
+ },
+ },
+ subplangridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ subplancreateviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/sub-product-plan/sub-product-plan_zh_CN.ts b/app_Web/src/locale/lanres/entities/sub-product-plan/sub-product-plan_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..080e2d00b6843a73aef3d15df648a829d4042d0f
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/sub-product-plan/sub-product-plan_zh_CN.ts
@@ -0,0 +1,93 @@
+export default {
+ fields: {
+ title: '名称',
+ id: '编号',
+ begin: '开始日期',
+ desc: '描述',
+ end: '结束日期',
+ deleted: '已删除',
+ order: '排序',
+ parentname: '父计划名称',
+ branch: '平台/分支',
+ parent: '父计划',
+ product: '产品',
+ },
+ views: {
+ subplancreateview: {
+ caption: '产品计划',
+ title: '产品计划',
+ },
+ subplangridview: {
+ caption: '产品计划',
+ title: '产品计划',
+ },
+ subplaneditview: {
+ caption: '子计划',
+ title: '子计划',
+ },
+ },
+ mainsubplan_form: {
+ details: {
+ grouppanel1: '分组面板',
+ group1: 'productplan基本信息',
+ button1: '保存',
+ button2: '关闭',
+ grouppanel3: '分组面板',
+ grouppanel2: '分组面板',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ product: '产品',
+ parent: '父计划',
+ parentname: '父计划名称',
+ title: '名称',
+ begin: '开始日期',
+ end: '结束日期',
+ desc: '描述',
+ id: '编号',
+ },
+ uiactions: {
+ saveandexit: '保存并关闭',
+ exit: '返回',
+ },
+ },
+ mainsubplan_grid: {
+ columns: {
+ id: '编号',
+ title: '名称',
+ begin: '开始日期',
+ end: '结束日期',
+ },
+ uiactions: {
+ },
+ },
+ subplangridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ subplancreateviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/sub-task/sub-task_en_US.ts b/app_Web/src/locale/lanres/entities/sub-task/sub-task_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4d278de2fd30887ace7be5e0882e1c4fac924b6e
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/sub-task/sub-task_en_US.ts
@@ -0,0 +1,82 @@
+
+export default {
+ fields: {
+ canceledby: '由谁取消',
+ left: '预计剩余',
+ openeddate: '创建日期',
+ color: '标题颜色',
+ id: '编号',
+ finishedby: '由谁完成',
+ finishedlist: '完成者列表',
+ realstarted: '实际开始',
+ closedby: '由谁关闭',
+ substatus: '子状态',
+ closedreason: '关闭原因',
+ lastediteddate: '最后修改日期',
+ assigneddate: '指派日期',
+ pri: '优先级',
+ lasteditedby: '最后修改',
+ status: '任务状态',
+ name: '任务名称',
+ closeddate: '关闭时间',
+ type: '任务类型',
+ assignedto: '指派给',
+ desc: '任务描述',
+ eststarted: '预计开始',
+ deadline: '截止日期',
+ deleted: '已删除',
+ mailto: '抄送给',
+ consumed: '总计消耗',
+ estimate: '最初预计',
+ openedby: '由谁创建',
+ canceleddate: '取消时间',
+ finisheddate: '实际完成',
+ modulename: '所属模块',
+ storyname: '相关需求',
+ projectname: '所属项目',
+ product: '产品',
+ storyversion: '需求版本',
+ productname: '产品',
+ parentname: '父任务',
+ project: '所属项目',
+ module: '所属模块',
+ story: '相关需求',
+ parent: '父任务',
+ frombug: '来源Bug',
+ duration: '持续时间',
+ },
+ views: {
+ subtasknewview: {
+ caption: "子任务",
+ title: '子任务',
+ },
+ },
+ subtasknew_grid: {
+ columns: {
+ modulename: "所属模块",
+ storyname: "相关需求",
+ name: "任务名称",
+ type: "任务类型",
+ assignedto: "指派给",
+ left: "预计",
+ desc: "任务描述",
+ pri: "优先级",
+ },
+ uiactions: {
+ },
+ },
+ subtasknewviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "行编辑",
+ tip: "行编辑",
+ },
+ deuiaction2: {
+ caption: "新建行",
+ tip: "新建行",
+ },
+ deuiaction3: {
+ caption: "保存行",
+ tip: "保存行",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/sub-task/sub-task_zh_CN.ts b/app_Web/src/locale/lanres/entities/sub-task/sub-task_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ffdb89639bb32df3b38f9e5fc518cd2e5b2468ea
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/sub-task/sub-task_zh_CN.ts
@@ -0,0 +1,81 @@
+export default {
+ fields: {
+ canceledby: '由谁取消',
+ left: '预计剩余',
+ openeddate: '创建日期',
+ color: '标题颜色',
+ id: '编号',
+ finishedby: '由谁完成',
+ finishedlist: '完成者列表',
+ realstarted: '实际开始',
+ closedby: '由谁关闭',
+ substatus: '子状态',
+ closedreason: '关闭原因',
+ lastediteddate: '最后修改日期',
+ assigneddate: '指派日期',
+ pri: '优先级',
+ lasteditedby: '最后修改',
+ status: '任务状态',
+ name: '任务名称',
+ closeddate: '关闭时间',
+ type: '任务类型',
+ assignedto: '指派给',
+ desc: '任务描述',
+ eststarted: '预计开始',
+ deadline: '截止日期',
+ deleted: '已删除',
+ mailto: '抄送给',
+ consumed: '总计消耗',
+ estimate: '最初预计',
+ openedby: '由谁创建',
+ canceleddate: '取消时间',
+ finisheddate: '实际完成',
+ modulename: '所属模块',
+ storyname: '相关需求',
+ projectname: '所属项目',
+ product: '产品',
+ storyversion: '需求版本',
+ productname: '产品',
+ parentname: '父任务',
+ project: '所属项目',
+ module: '所属模块',
+ story: '相关需求',
+ parent: '父任务',
+ frombug: '来源Bug',
+ duration: '持续时间',
+ },
+ views: {
+ subtasknewview: {
+ caption: '子任务',
+ title: '子任务',
+ },
+ },
+ subtasknew_grid: {
+ columns: {
+ modulename: '所属模块',
+ storyname: '相关需求',
+ name: '任务名称',
+ type: '任务类型',
+ assignedto: '指派给',
+ left: '预计',
+ desc: '任务描述',
+ pri: '优先级',
+ },
+ uiactions: {
+ },
+ },
+ subtasknewviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '行编辑',
+ tip: '行编辑',
+ },
+ deuiaction2: {
+ caption: '新建行',
+ tip: '新建行',
+ },
+ deuiaction3: {
+ caption: '保存行',
+ tip: '保存行',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/task/task_en_US.ts b/app_Web/src/locale/lanres/entities/task/task_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..79d46a5364c53de8d222ddfa2eb02bebfaed5c55
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/task/task_en_US.ts
@@ -0,0 +1,530 @@
+
+export default {
+ fields: {
+ canceledby: '由谁取消',
+ left: '预计剩余',
+ openeddate: '创建日期',
+ color: '标题颜色',
+ id: '编号',
+ finishedby: '由谁完成',
+ finishedlist: '完成者列表',
+ realstarted: '实际开始',
+ closedby: '由谁关闭',
+ substatus: '子状态',
+ closedreason: '关闭原因',
+ lastediteddate: '最后修改日期',
+ assigneddate: '指派日期',
+ pri: '优先级',
+ lasteditedby: '最后修改',
+ status: '任务状态',
+ name: '任务名称',
+ closeddate: '关闭时间',
+ type: '任务类型',
+ assignedto: '指派给',
+ desc: '任务描述',
+ eststarted: '预计开始',
+ deadline: '截止日期',
+ deleted: '已删除',
+ mailto: '抄送给',
+ consumed: '总计消耗',
+ estimate: '最初预计',
+ openedby: '由谁创建',
+ canceleddate: '取消时间',
+ finisheddate: '实际完成',
+ modulename: '所属模块',
+ storyname: '相关需求',
+ projectname: '所属项目',
+ product: '产品',
+ storyversion: '需求版本',
+ productname: '产品',
+ parentname: '父任务',
+ project: '所属项目',
+ module: '所属模块',
+ story: '相关需求',
+ parent: '父任务',
+ frombug: '来源Bug',
+ duration: '持续时间',
+ },
+ views: {
+ assigntaskview: {
+ caption: "指派任务",
+ title: '指派任务',
+ },
+ maineditview: {
+ caption: "任务",
+ title: '任务',
+ },
+ maingridview9_child: {
+ caption: "任务",
+ title: '任务',
+ },
+ maininfoview9: {
+ caption: "任务",
+ title: '任务',
+ },
+ gridview: {
+ caption: "任务",
+ title: '任务',
+ },
+ maindashboardview: {
+ caption: "任务",
+ title: '任务',
+ },
+ tasktypeganttview: {
+ caption: "任务",
+ title: '任务',
+ },
+ pivottableview: {
+ caption: "任务",
+ title: '任务',
+ },
+ gridview9_assignedtome: {
+ caption: "任务",
+ title: '任务',
+ },
+ workinfoeditview9: {
+ caption: "工时信息",
+ title: '工时信息',
+ },
+ maingridview: {
+ caption: "任务",
+ title: '任务',
+ },
+ opentaskview: {
+ caption: "开始任务",
+ title: '开始任务',
+ },
+ closepausecancelview: {
+ caption: "任务",
+ title: '任务',
+ },
+ doneview: {
+ caption: "完成任务",
+ title: '完成任务',
+ },
+ editview: {
+ caption: "任务",
+ title: '任务',
+ },
+ maindetailview9: {
+ caption: "任务",
+ title: '任务',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "task基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ projectname: "所属项目",
+ project: "所属项目",
+ type: "任务类型",
+ module: "所属模块",
+ modulename: "所属模块",
+ formitem: "所有模块",
+ assignedto: "指派给",
+ formitem1: "多人任务",
+ story: "相关需求",
+ storyname: "相关需求",
+ desc: "任务描述",
+ formitem2: "附件",
+ deadline: "截止日期",
+ estsarted: "预计开始",
+ formitemex1: "日程规划",
+ mailto: "抄送给",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ maindetail_form: {
+ details: {
+ grouppanel3: "任务描述",
+ grouppanel2: "需求描述",
+ druipart1: "",
+ grouppanel1: "子任务",
+ group1: "task基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ parent: "父任务",
+ story: "相关需求",
+ desc: "任务描述",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ assignform_form: {
+ details: {
+ druipart1: "",
+ grouppanel1: "分组面板",
+ group1: "任务基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ assignedto: "指派给",
+ left: "预计剩余",
+ formitem: "备注",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ closepausecancelform_form: {
+ details: {
+ druipart1: "",
+ grouppanel1: "分组面板",
+ group1: "任务基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ formitem: "备注",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ completeform_form: {
+ details: {
+ druipart1: "",
+ grouppanel1: "分组面板",
+ group1: "任务基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ consumed: "之前消耗",
+ consumption: "本次消耗",
+ consumed2: "总计耗时",
+ assignedto: "指派给",
+ finisheddate: "实际完成",
+ formitem: "附件",
+ formitem1: "备注",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ mainedit_form: {
+ details: {
+ grouppanel6: "任务描述",
+ grouppanel7: "备注",
+ druipart1: "",
+ grouppanel2: "分组面板",
+ group1: "任务基本信息",
+ grouppanel1: "基本信息",
+ grouppanel4: "工时信息",
+ grouppanel5: "任务的一生",
+ grouppanel3: "分组面板",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "任务名称",
+ desc: "任务描述",
+ desc1: "备注",
+ formitem: "附件",
+ projectname: "所属项目",
+ project: "所属项目",
+ modulename: "所属模块",
+ module: "所属模块",
+ storyname: "相关需求",
+ story: "相关需求",
+ parentname: "父任务",
+ parent: "父任务",
+ assignedto: "指派给",
+ type: "任务类型",
+ status: "任务状态",
+ eststarted: "预计开始",
+ deadline: "截止日期",
+ estimate: "最初预计",
+ consumed: "总计消耗",
+ left: "预计剩余",
+ openedby: "由谁创建",
+ realstarted: "实际开始",
+ finishedby: "由谁完成",
+ finisheddate: "实际完成",
+ canceledby: "由谁取消",
+ canceleddate: "取消时间",
+ closedby: "由谁关闭",
+ closedreason: "关闭原因",
+ closeddate: "关闭时间",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ maininfo_form: {
+ details: {
+ group1: "task基本信息",
+ formpage1: "基本信息",
+ grouppanel1: "分组面板",
+ grouppanel5: "分组面板",
+ grouppanel4: "分组面板",
+ grouppanel2: "分组面板",
+ grouppanel3: "分组面板",
+ formpage2: "任务的一生",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "任务名称",
+ projectname: "所属项目",
+ modulename: "所属模块",
+ storyname: "相关需求",
+ assignedto: "指派给",
+ type: "任务类型",
+ status: "任务状态",
+ pri: "优先级",
+ mailto: "抄送给",
+ openedby: "由谁创建",
+ openeddate: "于",
+ finishedby: "由谁完成",
+ finisheddate: "于",
+ canceledby: "由谁取消",
+ canceleddate: "于",
+ closedby: "由谁关闭",
+ closeddate: "于",
+ closedreason: "关闭原因",
+ lasteditedby: "最后修改",
+ lastediteddate: "于",
+ id: "编号",
+ project: "所属项目",
+ },
+ uiactions: {
+ },
+ },
+ workinfoform_form: {
+ details: {
+ group1: "工时信息",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ estimate: "最初预计",
+ consumed: "总计消耗",
+ left: "预计剩余",
+ eststarted: "预计开始",
+ realstarted: "实际开始",
+ deadline: "截止日期",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ startform_form: {
+ details: {
+ druipart1: "",
+ grouppanel1: "分组面板",
+ group1: "任务基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ realstarted: "实际开始",
+ consumed: "总计消耗",
+ left: "预计剩余",
+ formitem: "备注",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ main2_grid: {
+ columns: {
+ id: "编号",
+ pri: "P",
+ name: "任务名称",
+ status: "任务状态",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ pri: "P",
+ name: "任务名称",
+ status: "任务状态",
+ assignedto: "指派给",
+ finishedby: "完成者",
+ estimate: "预计",
+ consumed: "消耗",
+ left: "剩余",
+ deadline: "截止日期",
+ uagridcolumn1: "操作",
+ },
+ uiactions: {
+ starttask: "开始",
+ closetask: "关闭",
+ donetask: "完成",
+ mainedit: "编辑",
+ newsubtask: "子任务",
+ },
+ },
+ pivottable_grid: {
+ columns: {
+ id: "编号",
+ pri: "P",
+ name: "任务名称",
+ status: "任务状态",
+ type: "任务类型",
+ assignedto: "指派给",
+ estimate: "最初预计",
+ left: "预计剩余",
+ consumed: "总计消耗",
+ productname: "产品",
+ projectname: "所属项目",
+ storyname: "相关需求",
+ modulename: "所属模块",
+ parentname: "父任务",
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ maineditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: "New",
+ tip: "New",
+ },
+ tbitem4: {
+ caption: "Edit",
+ tip: "Edit {0}",
+ },
+ tbitem6: {
+ caption: "Copy",
+ tip: "Copy {0}",
+ },
+ tbitem7: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem8: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ tbitem9: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem13: {
+ caption: "Export",
+ tip: "Export {0} Data To Excel",
+ },
+ tbitem10: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem16: {
+ caption: "其它",
+ tip: "其它",
+ },
+ tbitem21: {
+ caption: "Export Data Model",
+ tip: "导出数据模型",
+ },
+ tbitem23: {
+ caption: "数据导入",
+ tip: "数据导入",
+ },
+ tbitem17: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem19: {
+ caption: "Filter",
+ tip: "Filter",
+ },
+ tbitem18: {
+ caption: "Help",
+ tip: "Help",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/task/task_zh_CN.ts b/app_Web/src/locale/lanres/entities/task/task_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..10a03cc5f46fe597b9aef4d0eb50163b130fadf7
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/task/task_zh_CN.ts
@@ -0,0 +1,529 @@
+export default {
+ fields: {
+ canceledby: '由谁取消',
+ left: '预计剩余',
+ openeddate: '创建日期',
+ color: '标题颜色',
+ id: '编号',
+ finishedby: '由谁完成',
+ finishedlist: '完成者列表',
+ realstarted: '实际开始',
+ closedby: '由谁关闭',
+ substatus: '子状态',
+ closedreason: '关闭原因',
+ lastediteddate: '最后修改日期',
+ assigneddate: '指派日期',
+ pri: '优先级',
+ lasteditedby: '最后修改',
+ status: '任务状态',
+ name: '任务名称',
+ closeddate: '关闭时间',
+ type: '任务类型',
+ assignedto: '指派给',
+ desc: '任务描述',
+ eststarted: '预计开始',
+ deadline: '截止日期',
+ deleted: '已删除',
+ mailto: '抄送给',
+ consumed: '总计消耗',
+ estimate: '最初预计',
+ openedby: '由谁创建',
+ canceleddate: '取消时间',
+ finisheddate: '实际完成',
+ modulename: '所属模块',
+ storyname: '相关需求',
+ projectname: '所属项目',
+ product: '产品',
+ storyversion: '需求版本',
+ productname: '产品',
+ parentname: '父任务',
+ project: '所属项目',
+ module: '所属模块',
+ story: '相关需求',
+ parent: '父任务',
+ frombug: '来源Bug',
+ duration: '持续时间',
+ },
+ views: {
+ assigntaskview: {
+ caption: '指派任务',
+ title: '指派任务',
+ },
+ maineditview: {
+ caption: '任务',
+ title: '任务',
+ },
+ maingridview9_child: {
+ caption: '任务',
+ title: '任务',
+ },
+ maininfoview9: {
+ caption: '任务',
+ title: '任务',
+ },
+ gridview: {
+ caption: '任务',
+ title: '任务',
+ },
+ maindashboardview: {
+ caption: '任务',
+ title: '任务',
+ },
+ tasktypeganttview: {
+ caption: '任务',
+ title: '任务',
+ },
+ pivottableview: {
+ caption: '任务',
+ title: '任务',
+ },
+ gridview9_assignedtome: {
+ caption: '任务',
+ title: '任务',
+ },
+ workinfoeditview9: {
+ caption: '工时信息',
+ title: '工时信息',
+ },
+ maingridview: {
+ caption: '任务',
+ title: '任务',
+ },
+ opentaskview: {
+ caption: '开始任务',
+ title: '开始任务',
+ },
+ closepausecancelview: {
+ caption: '任务',
+ title: '任务',
+ },
+ doneview: {
+ caption: '完成任务',
+ title: '完成任务',
+ },
+ editview: {
+ caption: '任务',
+ title: '任务',
+ },
+ maindetailview9: {
+ caption: '任务',
+ title: '任务',
+ },
+ },
+ main_form: {
+ details: {
+ group1: 'task基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ projectname: '所属项目',
+ project: '所属项目',
+ type: '任务类型',
+ module: '所属模块',
+ modulename: '所属模块',
+ formitem: '所有模块',
+ assignedto: '指派给',
+ formitem1: '多人任务',
+ story: '相关需求',
+ storyname: '相关需求',
+ desc: '任务描述',
+ formitem2: '附件',
+ deadline: '截止日期',
+ estsarted: '预计开始',
+ formitemex1: '日程规划',
+ mailto: '抄送给',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ maindetail_form: {
+ details: {
+ grouppanel3: '任务描述',
+ grouppanel2: '需求描述',
+ druipart1: '',
+ grouppanel1: '子任务',
+ group1: 'task基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ parent: '父任务',
+ story: '相关需求',
+ desc: '任务描述',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ assignform_form: {
+ details: {
+ druipart1: '',
+ grouppanel1: '分组面板',
+ group1: '任务基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ assignedto: '指派给',
+ left: '预计剩余',
+ formitem: '备注',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ closepausecancelform_form: {
+ details: {
+ druipart1: '',
+ grouppanel1: '分组面板',
+ group1: '任务基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ formitem: '备注',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ completeform_form: {
+ details: {
+ druipart1: '',
+ grouppanel1: '分组面板',
+ group1: '任务基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ consumed: '之前消耗',
+ consumption: '本次消耗',
+ consumed2: '总计耗时',
+ assignedto: '指派给',
+ finisheddate: '实际完成',
+ formitem: '附件',
+ formitem1: '备注',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ mainedit_form: {
+ details: {
+ grouppanel6: '任务描述',
+ grouppanel7: '备注',
+ druipart1: '',
+ grouppanel2: '分组面板',
+ group1: '任务基本信息',
+ grouppanel1: '基本信息',
+ grouppanel4: '工时信息',
+ grouppanel5: '任务的一生',
+ grouppanel3: '分组面板',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '任务名称',
+ desc: '任务描述',
+ desc1: '备注',
+ formitem: '附件',
+ projectname: '所属项目',
+ project: '所属项目',
+ modulename: '所属模块',
+ module: '所属模块',
+ storyname: '相关需求',
+ story: '相关需求',
+ parentname: '父任务',
+ parent: '父任务',
+ assignedto: '指派给',
+ type: '任务类型',
+ status: '任务状态',
+ eststarted: '预计开始',
+ deadline: '截止日期',
+ estimate: '最初预计',
+ consumed: '总计消耗',
+ left: '预计剩余',
+ openedby: '由谁创建',
+ realstarted: '实际开始',
+ finishedby: '由谁完成',
+ finisheddate: '实际完成',
+ canceledby: '由谁取消',
+ canceleddate: '取消时间',
+ closedby: '由谁关闭',
+ closedreason: '关闭原因',
+ closeddate: '关闭时间',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ maininfo_form: {
+ details: {
+ group1: 'task基本信息',
+ formpage1: '基本信息',
+ grouppanel1: '分组面板',
+ grouppanel5: '分组面板',
+ grouppanel4: '分组面板',
+ grouppanel2: '分组面板',
+ grouppanel3: '分组面板',
+ formpage2: '任务的一生',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '任务名称',
+ projectname: '所属项目',
+ modulename: '所属模块',
+ storyname: '相关需求',
+ assignedto: '指派给',
+ type: '任务类型',
+ status: '任务状态',
+ pri: '优先级',
+ mailto: '抄送给',
+ openedby: '由谁创建',
+ openeddate: '于',
+ finishedby: '由谁完成',
+ finisheddate: '于',
+ canceledby: '由谁取消',
+ canceleddate: '于',
+ closedby: '由谁关闭',
+ closeddate: '于',
+ closedreason: '关闭原因',
+ lasteditedby: '最后修改',
+ lastediteddate: '于',
+ id: '编号',
+ project: '所属项目',
+ },
+ uiactions: {
+ },
+ },
+ workinfoform_form: {
+ details: {
+ group1: '工时信息',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ estimate: '最初预计',
+ consumed: '总计消耗',
+ left: '预计剩余',
+ eststarted: '预计开始',
+ realstarted: '实际开始',
+ deadline: '截止日期',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ startform_form: {
+ details: {
+ druipart1: '',
+ grouppanel1: '分组面板',
+ group1: '任务基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ realstarted: '实际开始',
+ consumed: '总计消耗',
+ left: '预计剩余',
+ formitem: '备注',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ main2_grid: {
+ columns: {
+ id: '编号',
+ pri: 'P',
+ name: '任务名称',
+ status: '任务状态',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ pri: 'P',
+ name: '任务名称',
+ status: '任务状态',
+ assignedto: '指派给',
+ finishedby: '完成者',
+ estimate: '预计',
+ consumed: '消耗',
+ left: '剩余',
+ deadline: '截止日期',
+ uagridcolumn1: '操作',
+ },
+ uiactions: {
+ starttask: '开始',
+ closetask: '关闭',
+ donetask: '完成',
+ mainedit: '编辑',
+ newsubtask: '子任务',
+ },
+ },
+ pivottable_grid: {
+ columns: {
+ id: '编号',
+ pri: 'P',
+ name: '任务名称',
+ status: '任务状态',
+ type: '任务类型',
+ assignedto: '指派给',
+ estimate: '最初预计',
+ left: '预计剩余',
+ consumed: '总计消耗',
+ productname: '产品',
+ projectname: '所属项目',
+ storyname: '相关需求',
+ modulename: '所属模块',
+ parentname: '父任务',
+ },
+ uiactions: {
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ maineditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: '新建',
+ tip: '新建',
+ },
+ tbitem4: {
+ caption: '编辑',
+ tip: '编辑',
+ },
+ tbitem6: {
+ caption: '拷贝',
+ tip: '拷贝',
+ },
+ tbitem7: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem8: {
+ caption: '删除',
+ tip: '删除',
+ },
+ tbitem9: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem13: {
+ caption: '导出',
+ tip: '导出',
+ },
+ tbitem10: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem16: {
+ caption: '其它',
+ tip: '其它',
+ },
+ tbitem21: {
+ caption: '导出数据模型',
+ tip: '导出数据模型',
+ },
+ tbitem23: {
+ caption: '数据导入',
+ tip: '数据导入',
+ },
+ tbitem17: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem19: {
+ caption: '过滤',
+ tip: '过滤',
+ },
+ tbitem18: {
+ caption: '帮助',
+ tip: '帮助',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/test-task/test-task_en_US.ts b/app_Web/src/locale/lanres/entities/test-task/test-task_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bd3d2d2028a6569af7c282dc1aa253e9c5e865ac
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/test-task/test-task_en_US.ts
@@ -0,0 +1,164 @@
+
+export default {
+ fields: {
+ end: '结束日期',
+ begin: '开始日期',
+ mailto: '抄送给',
+ pri: '优先级',
+ substatus: '子状态',
+ report: 'report',
+ desc: '描述',
+ id: '编号',
+ status: '当前状态',
+ owner: '负责人',
+ deleted: '已删除',
+ auto: 'auto',
+ name: '名称',
+ product: '所属产品',
+ build: '版本',
+ project: '所属项目',
+ },
+ views: {
+ gridview9_untested: {
+ caption: "测试版本",
+ title: '测试版本',
+ },
+ editview: {
+ caption: "测试版本",
+ title: '测试版本',
+ },
+ gridview: {
+ caption: "测试版本",
+ title: '测试版本',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "testtask基本信息",
+ formpage1: "基本信息",
+ group2: "操作信息",
+ formpage2: "其它",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "名称",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ product: "所属产品",
+ name: "名称",
+ project: "所属项目",
+ build: "版本",
+ begin: "开始日期",
+ end: "结束日期",
+ },
+ uiactions: {
+ },
+ },
+ main2_grid: {
+ columns: {
+ id: "ID",
+ product: "所属产品",
+ name: "名称",
+ project: "所属项目",
+ build: "版本",
+ begin: "开始日期",
+ end: "结束日期",
+ },
+ uiactions: {
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: "Save",
+ tip: "Save",
+ },
+ tbitem4: {
+ caption: "Save And New",
+ tip: "Save And New",
+ },
+ tbitem5: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ tbitem6: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem7: {
+ caption: "Remove And Close",
+ tip: "Remove And Close Window",
+ },
+ tbitem8: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem12: {
+ caption: "New",
+ tip: "New",
+ },
+ tbitem13: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem14: {
+ caption: "Copy",
+ tip: "Copy {0}",
+ },
+ tbitem16: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem23: {
+ caption: "第一个记录",
+ tip: "第一个记录",
+ },
+ tbitem24: {
+ caption: "上一个记录",
+ tip: "上一个记录",
+ },
+ tbitem25: {
+ caption: "下一个记录",
+ tip: "下一个记录",
+ },
+ tbitem26: {
+ caption: "最后一个记录",
+ tip: "最后一个记录",
+ },
+ tbitem21: {
+ caption: "-",
+ tip: "",
+ },
+ tbitem22: {
+ caption: "Help",
+ tip: "Help",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/test-task/test-task_zh_CN.ts b/app_Web/src/locale/lanres/entities/test-task/test-task_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..901edb6f82c2fd3319a19534b11168fdc0fd7554
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/test-task/test-task_zh_CN.ts
@@ -0,0 +1,163 @@
+export default {
+ fields: {
+ end: '结束日期',
+ begin: '开始日期',
+ mailto: '抄送给',
+ pri: '优先级',
+ substatus: '子状态',
+ report: 'report',
+ desc: '描述',
+ id: '编号',
+ status: '当前状态',
+ owner: '负责人',
+ deleted: '已删除',
+ auto: 'auto',
+ name: '名称',
+ product: '所属产品',
+ build: '版本',
+ project: '所属项目',
+ },
+ views: {
+ gridview9_untested: {
+ caption: '测试版本',
+ title: '测试版本',
+ },
+ editview: {
+ caption: '测试版本',
+ title: '测试版本',
+ },
+ gridview: {
+ caption: '测试版本',
+ title: '测试版本',
+ },
+ },
+ main_form: {
+ details: {
+ group1: 'testtask基本信息',
+ formpage1: '基本信息',
+ group2: '操作信息',
+ formpage2: '其它',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '名称',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ product: '所属产品',
+ name: '名称',
+ project: '所属项目',
+ build: '版本',
+ begin: '开始日期',
+ end: '结束日期',
+ },
+ uiactions: {
+ },
+ },
+ main2_grid: {
+ columns: {
+ id: 'ID',
+ product: '所属产品',
+ name: '名称',
+ project: '所属项目',
+ build: '版本',
+ begin: '开始日期',
+ end: '结束日期',
+ },
+ uiactions: {
+ },
+ },
+ gridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ tbitem3: {
+ caption: '保存',
+ tip: '保存',
+ },
+ tbitem4: {
+ caption: '保存并新建',
+ tip: '保存并新建',
+ },
+ tbitem5: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ tbitem6: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem7: {
+ caption: '删除',
+ tip: '删除',
+ },
+ tbitem8: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem12: {
+ caption: '新建',
+ tip: '新建',
+ },
+ tbitem13: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem14: {
+ caption: '拷贝',
+ tip: '拷贝',
+ },
+ tbitem16: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem23: {
+ caption: '第一个记录',
+ tip: '第一个记录',
+ },
+ tbitem24: {
+ caption: '上一个记录',
+ tip: '上一个记录',
+ },
+ tbitem25: {
+ caption: '下一个记录',
+ tip: '下一个记录',
+ },
+ tbitem26: {
+ caption: '最后一个记录',
+ tip: '最后一个记录',
+ },
+ tbitem21: {
+ caption: '-',
+ tip: '',
+ },
+ tbitem22: {
+ caption: '帮助',
+ tip: '帮助',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/user/user_en_US.ts b/app_Web/src/locale/lanres/entities/user/user_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2ff70e837b002406561bd862438f8c1403be4e05
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/user/user_en_US.ts
@@ -0,0 +1,137 @@
+
+export default {
+ fields: {
+ password: '密码',
+ address: '通讯地址',
+ weixin: '微信',
+ dingding: '钉钉',
+ fails: 'fails',
+ slack: 'slack',
+ ranzhi: 'ranzhi',
+ account: '账户',
+ locked: 'locked',
+ avatar: 'avatar',
+ scorelevel: 'scoreLevel',
+ realname: '真实姓名',
+ zipcode: 'zipcode',
+ dept: '所属部门',
+ commiter: 'commiter',
+ role: '职位',
+ deleted: '逻辑删除标志',
+ last: '最后登录',
+ clientstatus: 'clientStatus',
+ skype: 'skype',
+ whatsapp: 'whatsapp',
+ score: 'score',
+ gender: '性别',
+ mobile: '手机',
+ clientlang: 'clientLang',
+ visits: '访问次数',
+ join: '入职日期',
+ email: '邮箱',
+ ip: 'ip',
+ birthday: 'birthday',
+ nickname: 'nickname',
+ phone: '电话',
+ id: 'ID',
+ qq: 'QQ',
+ },
+ views: {
+ pickupview: {
+ caption: "用户",
+ title: '用户',
+ },
+ editview: {
+ caption: "用户信息",
+ title: '用户信息',
+ },
+ pickupgridview: {
+ caption: "用户",
+ title: '用户',
+ },
+ maingridview: {
+ caption: "用户",
+ title: '用户',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "基本信息",
+ grouppanel1: "账号信息",
+ grouppanel2: "联系信息",
+ grouppanel3: "用户信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "ID",
+ srfmajortext: "真实姓名",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ realname: "真实姓名",
+ join: "入职日期",
+ dept: "所属部门",
+ role: "职位",
+ gender: "性别",
+ account: "账户",
+ email: "邮箱",
+ password: "密码",
+ mobile: "手机",
+ phone: "电话",
+ qq: "QQ",
+ dingding: "钉钉",
+ weixin: "微信",
+ address: "通讯地址",
+ id: "ID",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ realname: "真实姓名",
+ account: "账户",
+ role: "职位",
+ email: "邮箱",
+ gender: "性别",
+ phone: "电话",
+ qq: "QQ",
+ address: "通讯地址",
+ last: "最后登录",
+ visits: "访问次数",
+ uagridcolumn1: "操作",
+ },
+ uiactions: {
+ edit: "Edit",
+ remove: "Remove",
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/entities/user/user_zh_CN.ts b/app_Web/src/locale/lanres/entities/user/user_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e3e6faca56eab930d74ae10a1c1181e088025e75
--- /dev/null
+++ b/app_Web/src/locale/lanres/entities/user/user_zh_CN.ts
@@ -0,0 +1,136 @@
+export default {
+ fields: {
+ password: '密码',
+ address: '通讯地址',
+ weixin: '微信',
+ dingding: '钉钉',
+ fails: 'fails',
+ slack: 'slack',
+ ranzhi: 'ranzhi',
+ account: '账户',
+ locked: 'locked',
+ avatar: 'avatar',
+ scorelevel: 'scoreLevel',
+ realname: '真实姓名',
+ zipcode: 'zipcode',
+ dept: '所属部门',
+ commiter: 'commiter',
+ role: '职位',
+ deleted: '逻辑删除标志',
+ last: '最后登录',
+ clientstatus: 'clientStatus',
+ skype: 'skype',
+ whatsapp: 'whatsapp',
+ score: 'score',
+ gender: '性别',
+ mobile: '手机',
+ clientlang: 'clientLang',
+ visits: '访问次数',
+ join: '入职日期',
+ email: '邮箱',
+ ip: 'ip',
+ birthday: 'birthday',
+ nickname: 'nickname',
+ phone: '电话',
+ id: 'ID',
+ qq: 'QQ',
+ },
+ views: {
+ pickupview: {
+ caption: '用户',
+ title: '用户',
+ },
+ editview: {
+ caption: '用户信息',
+ title: '用户信息',
+ },
+ pickupgridview: {
+ caption: '用户',
+ title: '用户',
+ },
+ maingridview: {
+ caption: '用户',
+ title: '用户',
+ },
+ },
+ main_form: {
+ details: {
+ group1: '基本信息',
+ grouppanel1: '账号信息',
+ grouppanel2: '联系信息',
+ grouppanel3: '用户信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'ID',
+ srfmajortext: '真实姓名',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ realname: '真实姓名',
+ join: '入职日期',
+ dept: '所属部门',
+ role: '职位',
+ gender: '性别',
+ account: '账户',
+ email: '邮箱',
+ password: '密码',
+ mobile: '手机',
+ phone: '电话',
+ qq: 'QQ',
+ dingding: '钉钉',
+ weixin: '微信',
+ address: '通讯地址',
+ id: 'ID',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ realname: '真实姓名',
+ account: '账户',
+ role: '职位',
+ email: '邮箱',
+ gender: '性别',
+ phone: '电话',
+ qq: 'QQ',
+ address: '通讯地址',
+ last: '最后登录',
+ visits: '访问次数',
+ uagridcolumn1: '操作',
+ },
+ uiactions: {
+ edit: '编辑',
+ remove: '删除',
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/group/group_en_US.ts b/app_Web/src/locale/lanres/group/group_en_US.ts
new file mode 100644
index 0000000000000000000000000000000000000000..736af8a95a700c3b6ee876abbd50117e360abd43
--- /dev/null
+++ b/app_Web/src/locale/lanres/group/group_en_US.ts
@@ -0,0 +1,70 @@
+
+export default {
+ fields: {
+ acl: 'acl',
+ desc: '分组描述',
+ id: 'ID',
+ name: '分组名称',
+ role: 'role',
+ },
+ views: {
+ maingridview: {
+ caption: "群组",
+ title: '群组',
+ },
+ editview: {
+ caption: "分组信息",
+ title: '分组信息',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "基本信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "ID",
+ srfmajortext: "分组名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "分组名称",
+ desc: "分组描述",
+ id: "ID",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ name: "分组名称",
+ desc: "分组描述",
+ uagridcolumn1: "操作",
+ },
+ uiactions: {
+ edit: "Edit",
+ remove: "Remove",
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/group/group_zh_CN.ts b/app_Web/src/locale/lanres/group/group_zh_CN.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a2a4ac9239a48f2180c3a1f72913c9d5ace51f8d
--- /dev/null
+++ b/app_Web/src/locale/lanres/group/group_zh_CN.ts
@@ -0,0 +1,69 @@
+export default {
+ fields: {
+ acl: 'acl',
+ desc: '分组描述',
+ id: 'ID',
+ name: '分组名称',
+ role: 'role',
+ },
+ views: {
+ maingridview: {
+ caption: '群组',
+ title: '群组',
+ },
+ editview: {
+ caption: '分组信息',
+ title: '分组信息',
+ },
+ },
+ main_form: {
+ details: {
+ group1: '基本信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'ID',
+ srfmajortext: '分组名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '分组名称',
+ desc: '分组描述',
+ id: 'ID',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ name: '分组名称',
+ desc: '分组描述',
+ uagridcolumn1: '操作',
+ },
+ uiactions: {
+ edit: '编辑',
+ remove: '删除',
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
+};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/product-module/product-module_en_US.ts b/app_Web/src/locale/lanres/product-module/product-module_en_US.ts
index cddf9df9d3a7c4964af7b60211e05672c7986e4c..351640f5fbfc8f0fd7a8acb96eb2a20ce8ba4c25 100644
--- a/app_Web/src/locale/lanres/product-module/product-module_en_US.ts
+++ b/app_Web/src/locale/lanres/product-module/product-module_en_US.ts
@@ -80,27 +80,27 @@ export default {
tip: "Save And Close Window",
},
},
- bugexp_treeview: {
+ exp_treeview: {
nodes: {
+ all: '所有模块',
+ branch: '平台',
root: '默认根节点',
- all: '全部',
},
uiactions: {
},
},
- exp_treeview: {
+ taskexp_treeview: {
nodes: {
all: '所有模块',
- branch: '平台',
root: '默认根节点',
},
uiactions: {
},
},
- taskexp_treeview: {
+ bugexp_treeview: {
nodes: {
- all: '所有模块',
root: '默认根节点',
+ all: '全部',
},
uiactions: {
},
diff --git a/app_Web/src/locale/lanres/product-module/product-module_zh_CN.ts b/app_Web/src/locale/lanres/product-module/product-module_zh_CN.ts
index 679d2f3c9c079943269aac36f256422fb5c258ed..98d167066f9ee7958a19a7afdcbfbccfae3c2af6 100644
--- a/app_Web/src/locale/lanres/product-module/product-module_zh_CN.ts
+++ b/app_Web/src/locale/lanres/product-module/product-module_zh_CN.ts
@@ -79,27 +79,27 @@ export default {
tip: '保存并关闭',
},
},
- bugexp_treeview: {
+ exp_treeview: {
nodes: {
+ all: '所有模块',
+ branch: '平台',
root: '默认根节点',
- all: '全部',
},
uiactions: {
},
},
- exp_treeview: {
+ taskexp_treeview: {
nodes: {
all: '所有模块',
- branch: '平台',
root: '默认根节点',
},
uiactions: {
},
},
- taskexp_treeview: {
+ bugexp_treeview: {
nodes: {
- all: '所有模块',
root: '默认根节点',
+ all: '全部',
},
uiactions: {
},
diff --git a/app_Web/src/locale/lanres/product/product_en_US.ts b/app_Web/src/locale/lanres/product/product_en_US.ts
index fee164ff766b27ff1fae6889cd1425e430c97f03..71450d7cfe1a1549e5b27f9dd0c7f76f68bb5ad9 100644
--- a/app_Web/src/locale/lanres/product/product_en_US.ts
+++ b/app_Web/src/locale/lanres/product/product_en_US.ts
@@ -64,10 +64,18 @@ export default {
},
gridview: {
caption: "产品",
+ title: '产品',
+ },
+ pickupview: {
+ caption: "产品",
title: '产品',
},
leftsidebarlistview: {
caption: "产品",
+ title: '产品',
+ },
+ pickupgridview: {
+ caption: "产品",
title: '产品',
},
dashboardinfomainview9: {
@@ -145,7 +153,7 @@ export default {
uiactions: {
},
},
- test_grid: {
+ main_grid: {
columns: {
name: "产品名称",
code: "产品代号",
@@ -156,7 +164,7 @@ export default {
uiactions: {
},
},
- main_grid: {
+ test_grid: {
columns: {
name: "产品名称",
code: "产品代号",
diff --git a/app_Web/src/locale/lanres/product/product_zh_CN.ts b/app_Web/src/locale/lanres/product/product_zh_CN.ts
index d983f07d7263078f50ccbdf096b28b2e1631ba36..691d6b9de64c6b17bfe98ced05e92936f22a41a4 100644
--- a/app_Web/src/locale/lanres/product/product_zh_CN.ts
+++ b/app_Web/src/locale/lanres/product/product_zh_CN.ts
@@ -63,10 +63,18 @@ export default {
},
gridview: {
caption: '产品',
+ title: '产品',
+ },
+ pickupview: {
+ caption: '产品',
title: '产品',
},
leftsidebarlistview: {
caption: '产品',
+ title: '产品',
+ },
+ pickupgridview: {
+ caption: '产品',
title: '产品',
},
dashboardinfomainview9: {
@@ -144,7 +152,7 @@ export default {
uiactions: {
},
},
- test_grid: {
+ main_grid: {
columns: {
name: '产品名称',
code: '产品代号',
@@ -155,7 +163,7 @@ export default {
uiactions: {
},
},
- main_grid: {
+ test_grid: {
columns: {
name: '产品名称',
code: '产品代号',
diff --git a/app_Web/src/locale/lanres/project/project_en_US.ts b/app_Web/src/locale/lanres/project/project_en_US.ts
index dd7017306f9795f12c34f8b9103bb1d35a33a1b2..1b291d16c57518480e3d514de4d600b6f7b20e16 100644
--- a/app_Web/src/locale/lanres/project/project_en_US.ts
+++ b/app_Web/src/locale/lanres/project/project_en_US.ts
@@ -45,10 +45,18 @@ export default {
},
listexpview: {
caption: "项目",
+ title: '项目',
+ },
+ pickupgridview: {
+ caption: "项目",
title: '项目',
},
curproductgridview: {
caption: "项目",
+ title: '项目',
+ },
+ pickupview: {
+ caption: "项目",
title: '项目',
},
leftsidebarlistview: {
@@ -171,6 +179,13 @@ export default {
uiactions: {
},
},
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
curproductgridviewtoolbar_toolbar: {
deuiaction2: {
caption: "刷新",
diff --git a/app_Web/src/locale/lanres/project/project_zh_CN.ts b/app_Web/src/locale/lanres/project/project_zh_CN.ts
index 95515ee74cd34b43ffffc22358e3a624419e2435..be6bad89b7d7d0001314148da6e50d317be73979 100644
--- a/app_Web/src/locale/lanres/project/project_zh_CN.ts
+++ b/app_Web/src/locale/lanres/project/project_zh_CN.ts
@@ -44,10 +44,18 @@ export default {
},
listexpview: {
caption: '项目',
+ title: '项目',
+ },
+ pickupgridview: {
+ caption: '项目',
title: '项目',
},
curproductgridview: {
caption: '项目',
+ title: '项目',
+ },
+ pickupview: {
+ caption: '项目',
title: '项目',
},
leftsidebarlistview: {
@@ -170,6 +178,13 @@ export default {
uiactions: {
},
},
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
curproductgridviewtoolbar_toolbar: {
deuiaction2: {
caption: '刷新',
diff --git a/app_Web/src/locale/lanres/release/release_zh_CN.ts b/app_Web/src/locale/lanres/release/release_zh_CN.ts
index 48591a27dee15d1992ea16c95c30328a17585aad..b9e649965b46b8ea10926abf3c0a83a6405fa5bf 100644
--- a/app_Web/src/locale/lanres/release/release_zh_CN.ts
+++ b/app_Web/src/locale/lanres/release/release_zh_CN.ts
@@ -92,8 +92,8 @@ export default {
tip: '',
},
tbitem7: {
- caption: '删除并关闭',
- tip: '删除并关闭',
+ caption: '删除',
+ tip: '删除',
},
tbitem8: {
caption: '-',
diff --git a/app_Web/src/locale/lanres/story/story_en_US.ts b/app_Web/src/locale/lanres/story/story_en_US.ts
index dc7bf3145c7488caf0307a4804b581dd97c6db39..cb87363418f922c3d2b8c10ae82e7142c45ad007 100644
--- a/app_Web/src/locale/lanres/story/story_en_US.ts
+++ b/app_Web/src/locale/lanres/story/story_en_US.ts
@@ -102,6 +102,37 @@ export default {
caption: "需求",
title: '需求',
},
+ editview_storychange: {
+ caption: "变更",
+ title: '变更',
+ },
+ },
+ storyspec_editmode_form: {
+ details: {
+ grouppanel1: "分组面板",
+ druipart1: "",
+ grouppanel2: "分组面板",
+ group1: "需求描述信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "需求名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ version: "版本#",
+ reviewedby: "由谁评审",
+ notreview: "不需要评审",
+ title: "需求名称",
+ verify: "验收标准",
+ spec: "需求描述",
+ comment: "备注",
+ files: "附件",
+ id: "编号",
+ },
+ uiactions: {
+ },
},
main_newmode_form: {
details: {
@@ -134,6 +165,29 @@ export default {
uiactions: {
},
},
+ storyspec_form: {
+ details: {
+ grouppanel1: "需求描述",
+ grouppanel2: "验收标准",
+ group1: "需求描述信息",
+ druipart1: "",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "需求名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ parent: "父需求",
+ version: "版本#",
+ spec: "需求描述",
+ verify: "验收标准",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
main_editmode_form: {
details: {
group1: "story基本信息",
@@ -173,27 +227,6 @@ export default {
uiactions: {
},
},
- storyspec_form: {
- details: {
- group1: "需求描述信息",
- druipart1: "",
- formpage1: "基本信息",
- srforikey: "",
- srfkey: "编号",
- srfmajortext: "需求名称",
- srftempmode: "",
- srfuf: "",
- srfdeid: "",
- srfsourcekey: "",
- parent: "父需求",
- version: "版本#",
- spec: "需求描述",
- verify: "验收标准",
- id: "编号",
- },
- uiactions: {
- },
- },
main_form: {
details: {
group1: "story基本信息",
@@ -239,70 +272,70 @@ export default {
uiactions: {
},
},
- main_plansub_grid: {
+ main3_grid: {
columns: {
id: "ID",
pri: "P",
title: "需求名称",
- modulename: "所属模块名称",
+ assignedto: "指派给",
+ estimate: "预计工时",
+ status: "当前状态",
+ uagridcolumn1: "操作",
},
uiactions: {
+ changestorydetail: "变更",
+ closestory: "关闭",
+ openbaseinfoeditview: "编辑",
+ opencasecreateview: "建用例",
},
},
- pickupgrid_grid: {
+ main_grid: {
columns: {
id: "ID",
pri: "P",
title: "需求名称",
modulename: "所属模块名称",
+ uagridcolumn1: "操作",
},
uiactions: {
+ changestorydetail: "变更",
+ closestory: "关闭",
+ openbaseinfoeditview: "编辑",
+ opencasecreateview: "建用例",
},
},
- main3_grid: {
+ main2_grid: {
columns: {
id: "ID",
pri: "P",
title: "需求名称",
- assignedto: "指派给",
- estimate: "预计工时",
- status: "当前状态",
uagridcolumn1: "操作",
},
uiactions: {
- changestorydetail: "变更需求",
+ changestorydetail: "变更",
closestory: "关闭",
openbaseinfoeditview: "编辑",
opencasecreateview: "建用例",
},
},
- main_grid: {
+ pickupgrid_grid: {
columns: {
id: "ID",
pri: "P",
title: "需求名称",
modulename: "所属模块名称",
- uagridcolumn1: "操作",
},
uiactions: {
- changestorydetail: "变更需求",
- closestory: "关闭",
- openbaseinfoeditview: "编辑",
- opencasecreateview: "建用例",
},
},
- main2_grid: {
+ main_plansub_grid: {
columns: {
id: "ID",
pri: "P",
title: "需求名称",
- uagridcolumn1: "操作",
+ modulename: "所属模块名称",
},
uiactions: {
- changestorydetail: "变更需求",
- closestory: "关闭",
- openbaseinfoeditview: "编辑",
- opencasecreateview: "建用例",
},
},
main9_grid: {
@@ -321,33 +354,7 @@ export default {
uiactions: {
},
},
- plansubgridviewtoolbar_toolbar: {
- deuiaction3_planrelationstory: {
- caption: "关联需求",
- tip: "关联需求",
- },
- seperator2: {
- caption: "",
- tip: "",
- },
- deuiaction1: {
- caption: "New",
- tip: "New",
- },
- deuiaction4: {
- caption: "Remove",
- tip: "Remove {0}",
- },
- seperator1: {
- caption: "",
- tip: "",
- },
- deuiaction2: {
- caption: "刷新",
- tip: "刷新",
- },
- },
- plansubeditviewtoolbar_toolbar: {
+ editview_storychangetoolbar_toolbar: {
deuiaction1: {
caption: "Save And Close",
tip: "Save And Close Window",
@@ -431,4 +438,36 @@ export default {
tip: "Help",
},
},
+ plansubgridviewtoolbar_toolbar: {
+ deuiaction3_planrelationstory: {
+ caption: "关联需求",
+ tip: "关联需求",
+ },
+ seperator2: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ deuiaction4: {
+ caption: "Remove",
+ tip: "Remove {0}",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ plansubeditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/story/story_zh_CN.ts b/app_Web/src/locale/lanres/story/story_zh_CN.ts
index 797c1b3b656230375e0fc876c1ac8d76cd3aa6b9..10b0c283e6110f532e7607091ca99c630ed7fb19 100644
--- a/app_Web/src/locale/lanres/story/story_zh_CN.ts
+++ b/app_Web/src/locale/lanres/story/story_zh_CN.ts
@@ -101,6 +101,37 @@ export default {
caption: '需求',
title: '需求',
},
+ editview_storychange: {
+ caption: '变更',
+ title: '变更',
+ },
+ },
+ storyspec_editmode_form: {
+ details: {
+ grouppanel1: '分组面板',
+ druipart1: '',
+ grouppanel2: '分组面板',
+ group1: '需求描述信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '需求名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ version: '版本#',
+ reviewedby: '由谁评审',
+ notreview: '不需要评审',
+ title: '需求名称',
+ verify: '验收标准',
+ spec: '需求描述',
+ comment: '备注',
+ files: '附件',
+ id: '编号',
+ },
+ uiactions: {
+ },
},
main_newmode_form: {
details: {
@@ -133,6 +164,29 @@ export default {
uiactions: {
},
},
+ storyspec_form: {
+ details: {
+ grouppanel1: '需求描述',
+ grouppanel2: '验收标准',
+ group1: '需求描述信息',
+ druipart1: '',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '需求名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ parent: '父需求',
+ version: '版本#',
+ spec: '需求描述',
+ verify: '验收标准',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
main_editmode_form: {
details: {
group1: 'story基本信息',
@@ -172,27 +226,6 @@ export default {
uiactions: {
},
},
- storyspec_form: {
- details: {
- group1: '需求描述信息',
- druipart1: '',
- formpage1: '基本信息',
- srforikey: '',
- srfkey: '编号',
- srfmajortext: '需求名称',
- srftempmode: '',
- srfuf: '',
- srfdeid: '',
- srfsourcekey: '',
- parent: '父需求',
- version: '版本#',
- spec: '需求描述',
- verify: '验收标准',
- id: '编号',
- },
- uiactions: {
- },
- },
main_form: {
details: {
group1: 'story基本信息',
@@ -238,70 +271,70 @@ export default {
uiactions: {
},
},
- main_plansub_grid: {
+ main3_grid: {
columns: {
id: 'ID',
pri: 'P',
title: '需求名称',
- modulename: '所属模块名称',
+ assignedto: '指派给',
+ estimate: '预计工时',
+ status: '当前状态',
+ uagridcolumn1: '操作',
},
uiactions: {
+ changestorydetail: '变更',
+ closestory: '关闭',
+ openbaseinfoeditview: '编辑',
+ opencasecreateview: '建用例',
},
},
- pickupgrid_grid: {
+ main_grid: {
columns: {
id: 'ID',
pri: 'P',
title: '需求名称',
modulename: '所属模块名称',
+ uagridcolumn1: '操作',
},
uiactions: {
+ changestorydetail: '变更',
+ closestory: '关闭',
+ openbaseinfoeditview: '编辑',
+ opencasecreateview: '建用例',
},
},
- main3_grid: {
+ main2_grid: {
columns: {
id: 'ID',
pri: 'P',
title: '需求名称',
- assignedto: '指派给',
- estimate: '预计工时',
- status: '当前状态',
uagridcolumn1: '操作',
},
uiactions: {
- changestorydetail: '变更需求',
+ changestorydetail: '变更',
closestory: '关闭',
openbaseinfoeditview: '编辑',
opencasecreateview: '建用例',
},
},
- main_grid: {
+ pickupgrid_grid: {
columns: {
id: 'ID',
pri: 'P',
title: '需求名称',
modulename: '所属模块名称',
- uagridcolumn1: '操作',
},
uiactions: {
- changestorydetail: '变更需求',
- closestory: '关闭',
- openbaseinfoeditview: '编辑',
- opencasecreateview: '建用例',
},
},
- main2_grid: {
+ main_plansub_grid: {
columns: {
id: 'ID',
pri: 'P',
title: '需求名称',
- uagridcolumn1: '操作',
+ modulename: '所属模块名称',
},
uiactions: {
- changestorydetail: '变更需求',
- closestory: '关闭',
- openbaseinfoeditview: '编辑',
- opencasecreateview: '建用例',
},
},
main9_grid: {
@@ -320,33 +353,7 @@ export default {
uiactions: {
},
},
- plansubgridviewtoolbar_toolbar: {
- deuiaction3_planrelationstory: {
- caption: '关联需求',
- tip: '关联需求',
- },
- seperator2: {
- caption: '',
- tip: '',
- },
- deuiaction1: {
- caption: '新建',
- tip: '新建',
- },
- deuiaction4: {
- caption: '删除',
- tip: '删除',
- },
- seperator1: {
- caption: '',
- tip: '',
- },
- deuiaction2: {
- caption: '刷新',
- tip: '刷新',
- },
- },
- plansubeditviewtoolbar_toolbar: {
+ editview_storychangetoolbar_toolbar: {
deuiaction1: {
caption: '保存并关闭',
tip: '保存并关闭',
@@ -430,4 +437,36 @@ export default {
tip: '帮助',
},
},
+ plansubgridviewtoolbar_toolbar: {
+ deuiaction3_planrelationstory: {
+ caption: '关联需求',
+ tip: '关联需求',
+ },
+ seperator2: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ deuiaction4: {
+ caption: '删除',
+ tip: '删除',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ plansubeditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/sub-product-plan/sub-product-plan_en_US.ts b/app_Web/src/locale/lanres/sub-product-plan/sub-product-plan_en_US.ts
index c38703a5d81bd3f21a69b7fe28bb36f774a12c39..cad8392a2de6a51d138a0638ccb27ae75d0157e9 100644
--- a/app_Web/src/locale/lanres/sub-product-plan/sub-product-plan_en_US.ts
+++ b/app_Web/src/locale/lanres/sub-product-plan/sub-product-plan_en_US.ts
@@ -54,7 +54,7 @@ export default {
},
uiactions: {
saveandexit: "Save And Close",
- exit: "关闭",
+ exit: "返回",
},
},
mainsubplan_grid: {
diff --git a/app_Web/src/locale/lanres/sub-product-plan/sub-product-plan_zh_CN.ts b/app_Web/src/locale/lanres/sub-product-plan/sub-product-plan_zh_CN.ts
index 702c7f1ec40d61a50fbb39dcfc3b945cb998b0c9..080e2d00b6843a73aef3d15df648a829d4042d0f 100644
--- a/app_Web/src/locale/lanres/sub-product-plan/sub-product-plan_zh_CN.ts
+++ b/app_Web/src/locale/lanres/sub-product-plan/sub-product-plan_zh_CN.ts
@@ -53,7 +53,7 @@ export default {
},
uiactions: {
saveandexit: '保存并关闭',
- exit: '关闭',
+ exit: '返回',
},
},
mainsubplan_grid: {
diff --git a/app_Web/src/locale/lanres/task/task_en_US.ts b/app_Web/src/locale/lanres/task/task_en_US.ts
index 3c28387e5db9d4532d817bc7fe680def4837e392..c277e04380ce76c8a1293575becb506f16a4f2b1 100644
--- a/app_Web/src/locale/lanres/task/task_en_US.ts
+++ b/app_Web/src/locale/lanres/task/task_en_US.ts
@@ -46,6 +46,10 @@ export default {
duration: '持续时间',
},
views: {
+ maineditview: {
+ caption: "任务",
+ title: '任务',
+ },
maingridview9_child: {
caption: "任务",
title: '任务',
@@ -60,6 +64,10 @@ export default {
},
tasktypeganttview: {
caption: "任务",
+ title: '任务',
+ },
+ pivottableview: {
+ caption: "任务",
title: '任务',
},
gridview9_assignedtome: {
@@ -69,6 +77,18 @@ export default {
maingridview: {
caption: "任务",
title: '任务',
+ },
+ opentaskview: {
+ caption: "开始任务",
+ title: '开始任务',
+ },
+ closepausecancelview: {
+ caption: "任务",
+ title: '任务',
+ },
+ doneview: {
+ caption: "完成任务",
+ title: '完成任务',
},
editview: {
caption: "任务",
@@ -83,8 +103,6 @@ export default {
details: {
group1: "task基本信息",
formpage1: "基本信息",
- group2: "操作信息",
- formpage2: "其它",
srfupdatedate: "最后修改日期",
srforikey: "",
srfkey: "编号",
@@ -93,7 +111,22 @@ export default {
srfuf: "",
srfdeid: "",
srfsourcekey: "",
- name: "任务名称",
+ projectname: "所属项目",
+ project: "所属项目",
+ type: "任务类型",
+ module: "所属模块",
+ modulename: "所属模块",
+ formitem: "所有模块",
+ assignedto: "指派给",
+ formitem1: "多人任务",
+ story: "相关需求",
+ storyname: "相关需求",
+ desc: "任务描述",
+ formitem2: "附件",
+ deadline: "截止日期",
+ estsarted: "预计开始",
+ formitemex1: "",
+ mailto: "抄送给",
id: "编号",
},
uiactions: {
@@ -123,6 +156,106 @@ export default {
uiactions: {
},
},
+ closepausecancelform_form: {
+ details: {
+ druipart1: "",
+ grouppanel1: "分组面板",
+ group1: "任务基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ formitem: "备注",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ completeform_form: {
+ details: {
+ druipart1: "",
+ grouppanel1: "分组面板",
+ group1: "任务基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ consumed: "之前消耗",
+ consumption: "本次消耗",
+ consumed2: "总计耗时",
+ assignedto: "指派给",
+ finisheddate: "实际完成",
+ formitem: "附件",
+ formitem1: "备注",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
+ mainedit_form: {
+ details: {
+ grouppanel6: "任务描述",
+ grouppanel7: "备注",
+ druipart1: "",
+ grouppanel2: "分组面板",
+ group1: "任务基本信息",
+ grouppanel1: "基本信息",
+ grouppanel4: "工时信息",
+ grouppanel5: "任务的一生",
+ grouppanel3: "分组面板",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ name: "任务名称",
+ desc: "任务描述",
+ desc1: "备注",
+ formitem: "附件",
+ projectname: "所属项目",
+ project: "所属项目",
+ modulename: "所属模块",
+ module: "所属模块",
+ storyname: "相关需求",
+ story: "相关需求",
+ parentname: "父任务",
+ parent: "父任务",
+ assignedto: "指派给",
+ type: "任务类型",
+ status: "任务状态",
+ eststarted: "预计开始",
+ deadline: "截止日期",
+ estimate: "最初预计",
+ consumed: "总计消耗",
+ left: "预计剩余",
+ openedby: "由谁创建",
+ realstarted: "实际开始",
+ finishedby: "由谁完成",
+ finisheddate: "实际完成",
+ canceledby: "由谁取消",
+ canceleddate: "取消时间",
+ closedby: "由谁关闭",
+ closedreason: "关闭原因",
+ closeddate: "关闭时间",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
maininfo_form: {
details: {
group1: "task基本信息",
@@ -167,6 +300,29 @@ export default {
uiactions: {
},
},
+ startform_form: {
+ details: {
+ druipart1: "",
+ grouppanel1: "分组面板",
+ group1: "任务基本信息",
+ formpage1: "基本信息",
+ srfupdatedate: "最后修改日期",
+ srforikey: "",
+ srfkey: "编号",
+ srfmajortext: "任务名称",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ realstarted: "实际开始",
+ consumed: "总计消耗",
+ left: "预计剩余",
+ formitem: "备注",
+ id: "编号",
+ },
+ uiactions: {
+ },
+ },
main2_grid: {
columns: {
id: "编号",
@@ -179,78 +335,55 @@ export default {
},
main_grid: {
columns: {
- id: "编号",
+ id: "ID",
pri: "P",
name: "任务名称",
status: "任务状态",
+ assignedto: "指派给",
+ finishedby: "完成者",
+ estimate: "预计",
+ consumed: "消耗",
+ left: "剩余",
+ deadline: "截止日期",
+ uagridcolumn1: "操作",
},
uiactions: {
+ starttask: "开始",
+ closetask: "关闭",
+ donetask: "完成",
+ mainedit: "编辑",
},
},
- editviewtoolbar_toolbar: {
- tbitem3: {
- caption: "Save",
- tip: "Save",
+ pivottable_grid: {
+ columns: {
+ id: "编号",
+ pri: "P",
+ name: "任务名称",
+ status: "任务状态",
+ type: "任务类型",
+ assignedto: "指派给",
+ estimate: "最初预计",
+ left: "预计剩余",
+ consumed: "总计消耗",
+ productname: "产品",
+ projectname: "所属项目",
+ storyname: "相关需求",
+ modulename: "所属模块",
+ parentname: "父任务",
},
- tbitem4: {
- caption: "Save And New",
- tip: "Save And New",
+ uiactions: {
},
- tbitem5: {
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
caption: "Save And Close",
tip: "Save And Close Window",
},
- tbitem6: {
- caption: "-",
- tip: "",
- },
- tbitem7: {
- caption: "Remove And Close",
- tip: "Remove And Close Window",
- },
- tbitem8: {
- caption: "-",
- tip: "",
- },
- tbitem12: {
- caption: "New",
- tip: "New",
- },
- tbitem13: {
- caption: "-",
- tip: "",
- },
- tbitem14: {
- caption: "Copy",
- tip: "Copy {0}",
- },
- tbitem16: {
- caption: "-",
- tip: "",
- },
- tbitem23: {
- caption: "第一个记录",
- tip: "第一个记录",
- },
- tbitem24: {
- caption: "上一个记录",
- tip: "上一个记录",
- },
- tbitem25: {
- caption: "下一个记录",
- tip: "下一个记录",
- },
- tbitem26: {
- caption: "最后一个记录",
- tip: "最后一个记录",
- },
- tbitem21: {
- caption: "-",
- tip: "",
- },
- tbitem22: {
- caption: "Help",
- tip: "Help",
+ },
+ maineditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
},
},
maingridviewtoolbar_toolbar: {
diff --git a/app_Web/src/locale/lanres/task/task_zh_CN.ts b/app_Web/src/locale/lanres/task/task_zh_CN.ts
index 3d6e5844708199b416e29e283688ad240ed785f4..5bef13a0fe31ffe10a751ee50f33e0e83c986032 100644
--- a/app_Web/src/locale/lanres/task/task_zh_CN.ts
+++ b/app_Web/src/locale/lanres/task/task_zh_CN.ts
@@ -45,6 +45,10 @@ export default {
duration: '持续时间',
},
views: {
+ maineditview: {
+ caption: '任务',
+ title: '任务',
+ },
maingridview9_child: {
caption: '任务',
title: '任务',
@@ -59,6 +63,10 @@ export default {
},
tasktypeganttview: {
caption: '任务',
+ title: '任务',
+ },
+ pivottableview: {
+ caption: '任务',
title: '任务',
},
gridview9_assignedtome: {
@@ -68,6 +76,18 @@ export default {
maingridview: {
caption: '任务',
title: '任务',
+ },
+ opentaskview: {
+ caption: '开始任务',
+ title: '开始任务',
+ },
+ closepausecancelview: {
+ caption: '任务',
+ title: '任务',
+ },
+ doneview: {
+ caption: '完成任务',
+ title: '完成任务',
},
editview: {
caption: '任务',
@@ -82,8 +102,6 @@ export default {
details: {
group1: 'task基本信息',
formpage1: '基本信息',
- group2: '操作信息',
- formpage2: '其它',
srfupdatedate: '最后修改日期',
srforikey: '',
srfkey: '编号',
@@ -92,7 +110,22 @@ export default {
srfuf: '',
srfdeid: '',
srfsourcekey: '',
- name: '任务名称',
+ projectname: '所属项目',
+ project: '所属项目',
+ type: '任务类型',
+ module: '所属模块',
+ modulename: '所属模块',
+ formitem: '所有模块',
+ assignedto: '指派给',
+ formitem1: '多人任务',
+ story: '相关需求',
+ storyname: '相关需求',
+ desc: '任务描述',
+ formitem2: '附件',
+ deadline: '截止日期',
+ estsarted: '预计开始',
+ formitemex1: '',
+ mailto: '抄送给',
id: '编号',
},
uiactions: {
@@ -122,6 +155,106 @@ export default {
uiactions: {
},
},
+ closepausecancelform_form: {
+ details: {
+ druipart1: '',
+ grouppanel1: '分组面板',
+ group1: '任务基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ formitem: '备注',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ completeform_form: {
+ details: {
+ druipart1: '',
+ grouppanel1: '分组面板',
+ group1: '任务基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ consumed: '之前消耗',
+ consumption: '本次消耗',
+ consumed2: '总计耗时',
+ assignedto: '指派给',
+ finisheddate: '实际完成',
+ formitem: '附件',
+ formitem1: '备注',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
+ mainedit_form: {
+ details: {
+ grouppanel6: '任务描述',
+ grouppanel7: '备注',
+ druipart1: '',
+ grouppanel2: '分组面板',
+ group1: '任务基本信息',
+ grouppanel1: '基本信息',
+ grouppanel4: '工时信息',
+ grouppanel5: '任务的一生',
+ grouppanel3: '分组面板',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ name: '任务名称',
+ desc: '任务描述',
+ desc1: '备注',
+ formitem: '附件',
+ projectname: '所属项目',
+ project: '所属项目',
+ modulename: '所属模块',
+ module: '所属模块',
+ storyname: '相关需求',
+ story: '相关需求',
+ parentname: '父任务',
+ parent: '父任务',
+ assignedto: '指派给',
+ type: '任务类型',
+ status: '任务状态',
+ eststarted: '预计开始',
+ deadline: '截止日期',
+ estimate: '最初预计',
+ consumed: '总计消耗',
+ left: '预计剩余',
+ openedby: '由谁创建',
+ realstarted: '实际开始',
+ finishedby: '由谁完成',
+ finisheddate: '实际完成',
+ canceledby: '由谁取消',
+ canceleddate: '取消时间',
+ closedby: '由谁关闭',
+ closedreason: '关闭原因',
+ closeddate: '关闭时间',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
maininfo_form: {
details: {
group1: 'task基本信息',
@@ -166,6 +299,29 @@ export default {
uiactions: {
},
},
+ startform_form: {
+ details: {
+ druipart1: '',
+ grouppanel1: '分组面板',
+ group1: '任务基本信息',
+ formpage1: '基本信息',
+ srfupdatedate: '最后修改日期',
+ srforikey: '',
+ srfkey: '编号',
+ srfmajortext: '任务名称',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ realstarted: '实际开始',
+ consumed: '总计消耗',
+ left: '预计剩余',
+ formitem: '备注',
+ id: '编号',
+ },
+ uiactions: {
+ },
+ },
main2_grid: {
columns: {
id: '编号',
@@ -178,78 +334,55 @@ export default {
},
main_grid: {
columns: {
- id: '编号',
+ id: 'ID',
pri: 'P',
name: '任务名称',
status: '任务状态',
+ assignedto: '指派给',
+ finishedby: '完成者',
+ estimate: '预计',
+ consumed: '消耗',
+ left: '剩余',
+ deadline: '截止日期',
+ uagridcolumn1: '操作',
},
uiactions: {
+ starttask: '开始',
+ closetask: '关闭',
+ donetask: '完成',
+ mainedit: '编辑',
},
},
- editviewtoolbar_toolbar: {
- tbitem3: {
- caption: '保存',
- tip: '保存',
+ pivottable_grid: {
+ columns: {
+ id: '编号',
+ pri: 'P',
+ name: '任务名称',
+ status: '任务状态',
+ type: '任务类型',
+ assignedto: '指派给',
+ estimate: '最初预计',
+ left: '预计剩余',
+ consumed: '总计消耗',
+ productname: '产品',
+ projectname: '所属项目',
+ storyname: '相关需求',
+ modulename: '所属模块',
+ parentname: '父任务',
},
- tbitem4: {
- caption: '保存并新建',
- tip: '保存并新建',
+ uiactions: {
},
- tbitem5: {
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
caption: '保存并关闭',
tip: '保存并关闭',
},
- tbitem6: {
- caption: '-',
- tip: '',
- },
- tbitem7: {
- caption: '删除并关闭',
- tip: '删除并关闭',
- },
- tbitem8: {
- caption: '-',
- tip: '',
- },
- tbitem12: {
- caption: '新建',
- tip: '新建',
- },
- tbitem13: {
- caption: '-',
- tip: '',
- },
- tbitem14: {
- caption: '拷贝',
- tip: '拷贝',
- },
- tbitem16: {
- caption: '-',
- tip: '',
- },
- tbitem23: {
- caption: '第一个记录',
- tip: '第一个记录',
- },
- tbitem24: {
- caption: '上一个记录',
- tip: '上一个记录',
- },
- tbitem25: {
- caption: '下一个记录',
- tip: '下一个记录',
- },
- tbitem26: {
- caption: '最后一个记录',
- tip: '最后一个记录',
- },
- tbitem21: {
- caption: '-',
- tip: '',
- },
- tbitem22: {
- caption: '帮助',
- tip: '帮助',
+ },
+ maineditviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
},
},
maingridviewtoolbar_toolbar: {
diff --git a/app_Web/src/locale/lanres/test-task/test-task_zh_CN.ts b/app_Web/src/locale/lanres/test-task/test-task_zh_CN.ts
index 7db9f79d1aecb559550bb1ba4e1fc5a29d1ed93f..901edb6f82c2fd3319a19534b11168fdc0fd7554 100644
--- a/app_Web/src/locale/lanres/test-task/test-task_zh_CN.ts
+++ b/app_Web/src/locale/lanres/test-task/test-task_zh_CN.ts
@@ -112,8 +112,8 @@ export default {
tip: '',
},
tbitem7: {
- caption: '删除并关闭',
- tip: '删除并关闭',
+ caption: '删除',
+ tip: '删除',
},
tbitem8: {
caption: '-',
diff --git a/app_Web/src/locale/lanres/user/user_en_US.ts b/app_Web/src/locale/lanres/user/user_en_US.ts
index 90d1212217f515b413700930c8ccf1f9209c6d6d..2ff70e837b002406561bd862438f8c1403be4e05 100644
--- a/app_Web/src/locale/lanres/user/user_en_US.ts
+++ b/app_Web/src/locale/lanres/user/user_en_US.ts
@@ -1,39 +1,137 @@
export default {
fields: {
- password: 'password',
- address: 'address',
- weixin: 'weixin',
- dingding: 'dingding',
+ password: '密码',
+ address: '通讯地址',
+ weixin: '微信',
+ dingding: '钉钉',
fails: 'fails',
slack: 'slack',
ranzhi: 'ranzhi',
- account: 'account',
+ account: '账户',
locked: 'locked',
avatar: 'avatar',
scorelevel: 'scoreLevel',
- realname: 'realname',
+ realname: '真实姓名',
zipcode: 'zipcode',
- dept: 'dept',
+ dept: '所属部门',
commiter: 'commiter',
- role: 'role',
+ role: '职位',
deleted: '逻辑删除标志',
- last: 'last',
+ last: '最后登录',
clientstatus: 'clientStatus',
skype: 'skype',
whatsapp: 'whatsapp',
score: 'score',
- gender: 'gender',
- mobile: 'mobile',
+ gender: '性别',
+ mobile: '手机',
clientlang: 'clientLang',
- visits: 'visits',
- join: 'join',
- email: 'email',
+ visits: '访问次数',
+ join: '入职日期',
+ email: '邮箱',
ip: 'ip',
birthday: 'birthday',
nickname: 'nickname',
- phone: 'phone',
- id: 'id',
- qq: 'qq',
+ phone: '电话',
+ id: 'ID',
+ qq: 'QQ',
},
+ views: {
+ pickupview: {
+ caption: "用户",
+ title: '用户',
+ },
+ editview: {
+ caption: "用户信息",
+ title: '用户信息',
+ },
+ pickupgridview: {
+ caption: "用户",
+ title: '用户',
+ },
+ maingridview: {
+ caption: "用户",
+ title: '用户',
+ },
+ },
+ main_form: {
+ details: {
+ group1: "基本信息",
+ grouppanel1: "账号信息",
+ grouppanel2: "联系信息",
+ grouppanel3: "用户信息",
+ formpage1: "基本信息",
+ srforikey: "",
+ srfkey: "ID",
+ srfmajortext: "真实姓名",
+ srftempmode: "",
+ srfuf: "",
+ srfdeid: "",
+ srfsourcekey: "",
+ realname: "真实姓名",
+ join: "入职日期",
+ dept: "所属部门",
+ role: "职位",
+ gender: "性别",
+ account: "账户",
+ email: "邮箱",
+ password: "密码",
+ mobile: "手机",
+ phone: "电话",
+ qq: "QQ",
+ dingding: "钉钉",
+ weixin: "微信",
+ address: "通讯地址",
+ id: "ID",
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: "ID",
+ realname: "真实姓名",
+ account: "账户",
+ role: "职位",
+ email: "邮箱",
+ gender: "性别",
+ phone: "电话",
+ qq: "QQ",
+ address: "通讯地址",
+ last: "最后登录",
+ visits: "访问次数",
+ uagridcolumn1: "操作",
+ },
+ uiactions: {
+ edit: "Edit",
+ remove: "Remove",
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: "常规条件",
+ },
+ uiactions: {
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "New",
+ tip: "New",
+ },
+ seperator1: {
+ caption: "",
+ tip: "",
+ },
+ deuiaction2: {
+ caption: "刷新",
+ tip: "刷新",
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: "Save And Close",
+ tip: "Save And Close Window",
+ },
+ },
};
\ No newline at end of file
diff --git a/app_Web/src/locale/lanres/user/user_zh_CN.ts b/app_Web/src/locale/lanres/user/user_zh_CN.ts
index 59d4e7f4ea6cfeb15e275b8bed04d0dbe4e32fa3..e3e6faca56eab930d74ae10a1c1181e088025e75 100644
--- a/app_Web/src/locale/lanres/user/user_zh_CN.ts
+++ b/app_Web/src/locale/lanres/user/user_zh_CN.ts
@@ -1,38 +1,136 @@
export default {
fields: {
- password: 'password',
- address: 'address',
- weixin: 'weixin',
- dingding: 'dingding',
+ password: '密码',
+ address: '通讯地址',
+ weixin: '微信',
+ dingding: '钉钉',
fails: 'fails',
slack: 'slack',
ranzhi: 'ranzhi',
- account: 'account',
+ account: '账户',
locked: 'locked',
avatar: 'avatar',
scorelevel: 'scoreLevel',
- realname: 'realname',
+ realname: '真实姓名',
zipcode: 'zipcode',
- dept: 'dept',
+ dept: '所属部门',
commiter: 'commiter',
- role: 'role',
+ role: '职位',
deleted: '逻辑删除标志',
- last: 'last',
+ last: '最后登录',
clientstatus: 'clientStatus',
skype: 'skype',
whatsapp: 'whatsapp',
score: 'score',
- gender: 'gender',
- mobile: 'mobile',
+ gender: '性别',
+ mobile: '手机',
clientlang: 'clientLang',
- visits: 'visits',
- join: 'join',
- email: 'email',
+ visits: '访问次数',
+ join: '入职日期',
+ email: '邮箱',
ip: 'ip',
birthday: 'birthday',
nickname: 'nickname',
- phone: 'phone',
- id: 'id',
- qq: 'qq',
+ phone: '电话',
+ id: 'ID',
+ qq: 'QQ',
},
+ views: {
+ pickupview: {
+ caption: '用户',
+ title: '用户',
+ },
+ editview: {
+ caption: '用户信息',
+ title: '用户信息',
+ },
+ pickupgridview: {
+ caption: '用户',
+ title: '用户',
+ },
+ maingridview: {
+ caption: '用户',
+ title: '用户',
+ },
+ },
+ main_form: {
+ details: {
+ group1: '基本信息',
+ grouppanel1: '账号信息',
+ grouppanel2: '联系信息',
+ grouppanel3: '用户信息',
+ formpage1: '基本信息',
+ srforikey: '',
+ srfkey: 'ID',
+ srfmajortext: '真实姓名',
+ srftempmode: '',
+ srfuf: '',
+ srfdeid: '',
+ srfsourcekey: '',
+ realname: '真实姓名',
+ join: '入职日期',
+ dept: '所属部门',
+ role: '职位',
+ gender: '性别',
+ account: '账户',
+ email: '邮箱',
+ password: '密码',
+ mobile: '手机',
+ phone: '电话',
+ qq: 'QQ',
+ dingding: '钉钉',
+ weixin: '微信',
+ address: '通讯地址',
+ id: 'ID',
+ },
+ uiactions: {
+ },
+ },
+ main_grid: {
+ columns: {
+ id: 'ID',
+ realname: '真实姓名',
+ account: '账户',
+ role: '职位',
+ email: '邮箱',
+ gender: '性别',
+ phone: '电话',
+ qq: 'QQ',
+ address: '通讯地址',
+ last: '最后登录',
+ visits: '访问次数',
+ uagridcolumn1: '操作',
+ },
+ uiactions: {
+ edit: '编辑',
+ remove: '删除',
+ },
+ },
+ default_searchform: {
+ details: {
+ formpage1: '常规条件',
+ },
+ uiactions: {
+ },
+ },
+ maingridviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '新建',
+ tip: '新建',
+ },
+ seperator1: {
+ caption: '',
+ tip: '',
+ },
+ deuiaction2: {
+ caption: '刷新',
+ tip: '刷新',
+ },
+ },
+ editviewtoolbar_toolbar: {
+ deuiaction1: {
+ caption: '保存并关闭',
+ tip: '保存并关闭',
+ },
+ },
};
\ No newline at end of file
diff --git a/app_Web/src/mock/app/zentao-appmenu/zentao-appmenu.ts b/app_Web/src/mock/app/zentao-appmenu/zentao-appmenu.ts
index 84274f1db90b0dbc518ab8aeb611346beb80da55..79214c63014423fbeff0777b8d63349812f5862e 100644
--- a/app_Web/src/mock/app/zentao-appmenu/zentao-appmenu.ts
+++ b/app_Web/src/mock/app/zentao-appmenu/zentao-appmenu.ts
@@ -79,7 +79,7 @@ mock.onGet('v7/zentaoappmenu').reply((config: any) => {
iconcls: '',
icon: '',
textcls: '',
- appfunctag: '_4',
+ appfunctag: '_5',
resourcetag: '',
},
{
@@ -97,7 +97,7 @@ mock.onGet('v7/zentaoappmenu').reply((config: any) => {
iconcls: '',
icon: '',
textcls: '',
- appfunctag: '_3',
+ appfunctag: '_4',
resourcetag: '',
},
],
@@ -171,7 +171,7 @@ mock.onGet('v7/zentaoappmenu').reply((config: any) => {
iconcls: 'fa fa-cogs',
icon: '',
textcls: '',
- appfunctag: '_5',
+ appfunctag: '_6',
resourcetag: '',
},
],
diff --git a/app_Web/src/mock/codelist/codelist.ts b/app_Web/src/mock/codelist/codelist.ts
index c6847f216f074d828bb7c390f25cebab35275611..13c911fc9fb755cc66da9effc2d69d1504a60e2f 100644
--- a/app_Web/src/mock/codelist/codelist.ts
+++ b/app_Web/src/mock/codelist/codelist.ts
@@ -46,6 +46,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
text: '激活',
"data":"",
"codename":"Active",
+ "color": "rgba(0, 157, 255, 1)",
value: 'active',
disabled: false,
@@ -56,6 +57,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
text: '已解决',
"data":"",
"codename":"Resolved",
+ "color": "rgba(1, 217, 19, 1)",
value: 'resolved',
disabled: false,
@@ -66,6 +68,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
text: '已关闭',
"data":"",
"codename":"Closed",
+ "color": "rgba(151, 152, 141, 1)",
value: 'closed',
disabled: false,
@@ -284,6 +287,130 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
},
]
},
+ {
+ srfkey: 'ProjectTimeType',
+ emptytext: '',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'CONSUMED',
+ label: '消耗时间',
+ text: '消耗时间',
+ "data":"",
+ "codename":"Consumed",
+ value: 'CONSUMED',
+
+ disabled: false,
+ },
+ {
+ id: 'LEFT',
+ label: '剩余时间',
+ text: '剩余时间',
+ "data":"",
+ "codename":"Left",
+ value: 'LEFT',
+
+ disabled: false,
+ },
+ ]
+ },
+ {
+ srfkey: 'Bug__type',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'codeerror',
+ label: '代码错误',
+ text: '代码错误',
+ "data":"",
+ "codename":"Codeerror",
+ value: 'codeerror',
+
+ disabled: false,
+ },
+ {
+ id: 'config',
+ label: '配置相关',
+ text: '配置相关',
+ "data":"",
+ "codename":"Config",
+ value: 'config',
+
+ disabled: false,
+ },
+ {
+ id: 'install',
+ label: '安装部署',
+ text: '安装部署',
+ "data":"",
+ "codename":"Install",
+ value: 'install',
+
+ disabled: false,
+ },
+ {
+ id: 'security',
+ label: '安全相关',
+ text: '安全相关',
+ "data":"",
+ "codename":"Security",
+ value: 'security',
+
+ disabled: false,
+ },
+ {
+ id: 'performance',
+ label: '性能问题',
+ text: '性能问题',
+ "data":"",
+ "codename":"Performance",
+ value: 'performance',
+
+ disabled: false,
+ },
+ {
+ id: 'standard',
+ label: '标准规范',
+ text: '标准规范',
+ "data":"",
+ "codename":"Standard",
+ value: 'standard',
+
+ disabled: false,
+ },
+ {
+ id: 'automation',
+ label: '测试脚本',
+ text: '测试脚本',
+ "data":"",
+ "codename":"Automation",
+ value: 'automation',
+
+ disabled: false,
+ },
+ {
+ id: 'designdefect',
+ label: '设计缺陷',
+ text: '设计缺陷',
+ "data":"",
+ "codename":"Designdefect",
+ value: 'designdefect',
+
+ disabled: false,
+ },
+ {
+ id: 'others',
+ label: '其他',
+ text: '其他',
+ "data":"",
+ "codename":"Others",
+ value: 'others',
+
+ disabled: false,
+ },
+ ]
+ },
{
srfkey: 'Product__acl',
emptytext: '未定义',
@@ -1048,6 +1175,33 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
},
]
},
+ {
+ srfkey: 'User__gender',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'f',
+ label: '女',
+ text: '女',
+ "data":"",
+ "codename":"F",
+ value: 'f',
+
+ disabled: false,
+ },
+ {
+ id: 'm',
+ label: '男',
+ text: '男',
+ "data":"",
+ "codename":"M",
+ value: 'm',
+
+ disabled: false,
+ },
+ ]
+ },
{
srfkey: 'Action__object_type',
emptytext: '未定义',
@@ -1416,137 +1570,134 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
]
},
{
- srfkey: 'Task__closed_reason',
+ srfkey: 'Task_quickpacket',
emptytext: '未定义',
"codelisttype":"static",
items: [
{
- id: 'done',
- label: '已完成',
- text: '已完成',
- "data":"",
- "codename":"Done",
- value: 'done',
+ id: 'All',
+ label: '所有',
+ text: '所有',
+ "data":{},
+ "codename":"All",
+ value: 'All',
disabled: false,
},
{
- id: 'cancel',
- label: '已取消',
- text: '已取消',
- "data":"",
- "codename":"Cancel",
- value: 'cancel',
+ id: 'UNCLOSED',
+ label: '未关闭',
+ text: '未关闭',
+ "data":{"n_status_noteq":"closed"},
+ "codename":"Unclosed",
+ value: 'UNCLOSED',
disabled: false,
},
- ]
- },
- {
- "srfkey": "UserRealName",
- "emptytext": "未定义",
- "codelisttype":"dynamic",
- "appdataentity":"User",
- "appdedataset":"FetchDefault",
- "items": []
- },
- {
- srfkey: 'Product__type',
- emptytext: '未定义',
- "codelisttype":"static",
- items: [
{
- id: 'normal',
- label: '正常',
- text: '正常',
- "data":"",
- "codename":"Normal",
- "color": "blue",
- value: 'normal',
+ id: 'TOME',
+ label: '指派给我',
+ text: '指派给我',
+ "data":{"n_assignedto_eq":"%srfloginname%"},
+ "codename":"Tome",
+ value: 'TOME',
disabled: false,
},
{
- id: 'branch',
- label: '多分支',
- text: '多分支',
+ id: 'MORE',
+ label: '更多',
+ text: '更多',
"data":"",
- "codename":"Branch",
- value: 'branch',
+ "codename":"More",
+ value: 'MORE',
disabled: false,
},
{
- id: 'platform',
- label: '多平台',
- text: '多平台',
- "data":"",
- "codename":"Platform",
- value: 'platform',
-
+ id: 'NOTSTARTED',
+ label: '未开始',
+ text: '未开始',
+ "data":{"n_status_eq":"wait"},
+ "codename":"Notstarted",
+ value: 'NOTSTARTED',
+ "pvalue": "MORE",
disabled: false,
},
- ]
- },
- {
- srfkey: 'Testcase__status',
- emptytext: '未定义',
- "codelisttype":"static",
- items: [
{
- id: 'wait',
- label: '待评审',
- text: '待评审',
- "data":"",
- "codename":"Wait",
- value: 'wait',
-
+ id: 'INPROGRESS',
+ label: '进行中',
+ text: '进行中',
+ "data":{"n_status_eq":"doing"},
+ "codename":"Inprogress",
+ value: 'INPROGRESS',
+ "pvalue": "MORE",
disabled: false,
},
{
- id: 'normal',
- label: '正常',
- text: '正常',
- "data":"",
- "codename":"Normal",
- value: 'normal',
-
+ id: 'UNACCOMPLISHED',
+ label: '未完成',
+ text: '未完成',
+ "data":{"n_status_noteq":"done"},
+ "codename":"Unaccomplished",
+ value: 'UNACCOMPLISHED',
+ "pvalue": "MORE",
disabled: false,
},
{
- id: 'blocked',
- label: '被阻塞',
- text: '被阻塞',
- "data":"",
- "codename":"Blocked",
- value: 'blocked',
-
+ id: 'IFINISHED',
+ label: '我完成',
+ text: '我完成',
+ "data":{"n_finishedby_eq":"%srfloginname%"},
+ "codename":"Ifinished",
+ value: 'IFINISHED',
+ "pvalue": "MORE",
disabled: false,
},
{
- id: 'investigate',
- label: '研究中',
- text: '研究中',
- "data":"",
- "codename":"Investigate",
- value: 'investigate',
-
+ id: 'COMPLETED',
+ label: '已完成',
+ text: '已完成',
+ "data":{"n_status_eq":"done"},
+ "codename":"Completed",
+ value: 'COMPLETED',
+ "pvalue": "MORE",
+ disabled: false,
+ },
+ {
+ id: 'CLOSED',
+ label: '已关闭',
+ text: '已关闭',
+ "data":{"n_status_eq":"closed"},
+ "codename":"Closed",
+ value: 'CLOSED',
+ "pvalue": "MORE",
+ disabled: false,
+ },
+ {
+ id: 'CANCELLED',
+ label: '已取消',
+ text: '已取消',
+ "data":{"n_status_eq":"cancel"},
+ "codename":"Cancelled",
+ value: 'CANCELLED',
+ "pvalue": "MORE",
disabled: false,
},
]
},
{
- srfkey: 'Story__quickpacket',
+ srfkey: 'Bug__quickpacket',
emptytext: '未定义',
"codelisttype":"static",
items: [
{
- id: 'ALL',
+ id: 'All',
label: '所有',
text: '所有',
- "data":"",
+ "data":{},
"codename":"All",
- value: 'ALL',
+ value: 'All',
disabled: false,
},
@@ -1554,16 +1705,26 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
id: 'UNCLOSED',
label: '未关闭',
text: '未关闭',
- "data":{"n_stage_noteq":"closed"},
+ "data":{"n_status_noteq":"closed"},
"codename":"Unclosed",
value: 'UNCLOSED',
disabled: false,
},
+ {
+ id: 'ICREATE',
+ label: '由我创建',
+ text: '由我创建',
+ "data":{"n_openedby_eq":"%SRFUSERID%"},
+ "codename":"Icreate",
+ value: 'ICREATE',
+
+ disabled: false,
+ },
{
id: 'TOME',
- label: '指给我',
- text: '指给我',
+ label: '指派给我',
+ text: '指派给我',
"data":{"n_assignedto_eq":"%SRFUSERID%"},
"codename":"Tome",
value: 'TOME',
@@ -1571,32 +1732,32 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
disabled: false,
},
{
- id: 'ICREATE',
- label: '我创建',
- text: '我创建',
- "data":{"n_openedby_eq":"%SRFUSERID%"},
- "codename":"Icreate",
- value: 'ICREATE',
+ id: 'BYME',
+ label: '由我解决',
+ text: '由我解决',
+ "data":{"n_resolvedby_eq":"%SRFUSERID%"},
+ "codename":"Byme",
+ value: 'BYME',
disabled: false,
},
{
- id: 'IREVIEW',
- label: '我评审',
- text: '我评审',
- "data":{"n_reviewedby_eq":"%SRFUSERID%"},
- "codename":"Ireview",
- value: 'IREVIEW',
+ id: 'WAITCLOSED',
+ label: '待关闭',
+ text: '待关闭',
+ "data":{"n_status_eq":"closed"},
+ "codename":"Waitclosed",
+ value: 'WAITCLOSED',
disabled: false,
},
{
- id: 'DRAFT',
- label: '草稿',
- text: '草稿',
- "data":{"n_status_eq":"draft"},
- "codename":"Draft",
- value: 'DRAFT',
+ id: 'UNRESOLVED',
+ label: '未解决',
+ text: '未解决',
+ "data":{"n_status_eq":"resolved"},
+ "codename":"Unresolved",
+ value: 'UNRESOLVED',
disabled: false,
},
@@ -1611,21 +1772,599 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
disabled: false,
},
{
- id: 'ICLOSE',
- label: '我关闭',
- text: '我关闭',
- "data":{"n_closedby_eq":"%SRFUSERID%"},
- "codename":"Iclose",
- value: 'ICLOSE',
+ id: 'UNCONFIRMED',
+ label: '未确认',
+ text: '未确认',
+ "data":{"n_confirmed_eq": 0},
+ "codename":"Unconfirmed",
+ value: 'UNCONFIRMED',
"pvalue": "MORE",
disabled: false,
},
{
- id: 'ACTIVED',
- label: '激活',
- text: '激活',
- "data":{"n_status_eq":"active"},
- "codename":"Actived",
+ id: 'UNASSIGNED',
+ label: '未指派',
+ text: '未指派',
+ "data":{"n_assignedto_eq":""},
+ "codename":"Unassigned",
+ value: 'UNASSIGNED',
+ "pvalue": "MORE",
+ disabled: false,
+ },
+ {
+ id: 'EXPIREDBUG',
+ label: '过期Bug',
+ text: '过期Bug',
+ "data":{"n_deadline_lt": "%srfcurdate%"},
+ "codename":"Expiredbug",
+ value: 'EXPIREDBUG',
+ "pvalue": "MORE",
+ disabled: false,
+ },
+ ]
+ },
+ {
+ srfkey: 'Task__closed_reason',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'done',
+ label: '已完成',
+ text: '已完成',
+ "data":"",
+ "codename":"Done",
+ value: 'done',
+
+ disabled: false,
+ },
+ {
+ id: 'cancel',
+ label: '已取消',
+ text: '已取消',
+ "data":"",
+ "codename":"Cancel",
+ value: 'cancel',
+
+ disabled: false,
+ },
+ ]
+ },
+ {
+ srfkey: 'Bug__os',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'all',
+ label: '全部',
+ text: '全部',
+ "data":"",
+ "codename":"All",
+ value: 'all',
+
+ disabled: false,
+ },
+ {
+ id: 'windows',
+ label: 'Windows',
+ text: 'Windows',
+ "data":"",
+ "codename":"Windows",
+ value: 'windows',
+
+ disabled: false,
+ },
+ {
+ id: 'win10',
+ label: 'Windows 10',
+ text: 'Windows 10',
+ "data":"",
+ "codename":"Win10",
+ value: 'win10',
+
+ disabled: false,
+ },
+ {
+ id: 'win8',
+ label: 'Windows 8',
+ text: 'Windows 8',
+ "data":"",
+ "codename":"Win8",
+ value: 'win8',
+
+ disabled: false,
+ },
+ {
+ id: 'win7',
+ label: 'Windows 7',
+ text: 'Windows 7',
+ "data":"",
+ "codename":"Win7",
+ value: 'win7',
+
+ disabled: false,
+ },
+ {
+ id: 'vista',
+ label: 'Windows Vista',
+ text: 'Windows Vista',
+ "data":"",
+ "codename":"Vista",
+ value: 'vista',
+
+ disabled: false,
+ },
+ {
+ id: 'winxp',
+ label: 'Windows XP',
+ text: 'Windows XP',
+ "data":"",
+ "codename":"Winxp",
+ value: 'winxp',
+
+ disabled: false,
+ },
+ {
+ id: 'win2012',
+ label: 'Windows 2012',
+ text: 'Windows 2012',
+ "data":"",
+ "codename":"Win2012",
+ value: 'win2012',
+
+ disabled: false,
+ },
+ {
+ id: 'win2008',
+ label: 'Windows 2008',
+ text: 'Windows 2008',
+ "data":"",
+ "codename":"Win2008",
+ value: 'win2008',
+
+ disabled: false,
+ },
+ {
+ id: 'win2003',
+ label: 'Windows 2003',
+ text: 'Windows 2003',
+ "data":"",
+ "codename":"Win2003",
+ value: 'win2003',
+
+ disabled: false,
+ },
+ {
+ id: 'win2000',
+ label: 'Windows 2000',
+ text: 'Windows 2000',
+ "data":"",
+ "codename":"Win2000",
+ value: 'win2000',
+
+ disabled: false,
+ },
+ {
+ id: 'android',
+ label: 'Android',
+ text: 'Android',
+ "data":"",
+ "codename":"Android",
+ value: 'android',
+
+ disabled: false,
+ },
+ {
+ id: 'ios',
+ label: 'IOS',
+ text: 'IOS',
+ "data":"",
+ "codename":"Ios",
+ value: 'ios',
+
+ disabled: false,
+ },
+ {
+ id: 'wp8',
+ label: 'WP8',
+ text: 'WP8',
+ "data":"",
+ "codename":"Wp8",
+ value: 'wp8',
+
+ disabled: false,
+ },
+ {
+ id: 'wp7',
+ label: 'WP7',
+ text: 'WP7',
+ "data":"",
+ "codename":"Wp7",
+ value: 'wp7',
+
+ disabled: false,
+ },
+ {
+ id: 'symbian',
+ label: 'Symbian',
+ text: 'Symbian',
+ "data":"",
+ "codename":"Symbian",
+ value: 'symbian',
+
+ disabled: false,
+ },
+ {
+ id: 'linux',
+ label: 'Linux',
+ text: 'Linux',
+ "data":"",
+ "codename":"Linux",
+ value: 'linux',
+
+ disabled: false,
+ },
+ {
+ id: 'freebsd',
+ label: 'FreeBSD',
+ text: 'FreeBSD',
+ "data":"",
+ "codename":"Freebsd",
+ value: 'freebsd',
+
+ disabled: false,
+ },
+ {
+ id: 'osx',
+ label: 'OS X',
+ text: 'OS X',
+ "data":"",
+ "codename":"Osx",
+ value: 'osx',
+
+ disabled: false,
+ },
+ {
+ id: 'unix',
+ label: 'Unix',
+ text: 'Unix',
+ "data":"",
+ "codename":"Unix",
+ value: 'unix',
+
+ disabled: false,
+ },
+ {
+ id: 'others',
+ label: '其他',
+ text: '其他',
+ "data":"",
+ "codename":"Others",
+ value: 'others',
+
+ disabled: false,
+ },
+ ]
+ },
+ {
+ "srfkey": "UserRealName",
+ "emptytext": "未定义",
+ "codelisttype":"dynamic",
+ "appdataentity":"User",
+ "appdedataset":"FetchDefault",
+ "items": []
+ },
+ {
+ srfkey: 'Product__type',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'normal',
+ label: '正常',
+ text: '正常',
+ "data":"",
+ "codename":"Normal",
+ "color": "blue",
+ value: 'normal',
+
+ disabled: false,
+ },
+ {
+ id: 'branch',
+ label: '多分支',
+ text: '多分支',
+ "data":"",
+ "codename":"Branch",
+ value: 'branch',
+
+ disabled: false,
+ },
+ {
+ id: 'platform',
+ label: '多平台',
+ text: '多平台',
+ "data":"",
+ "codename":"Platform",
+ value: 'platform',
+
+ disabled: false,
+ },
+ ]
+ },
+ {
+ srfkey: 'Testcase__type',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'feature',
+ label: '功能测试',
+ text: '功能测试',
+ "data":"",
+ "codename":"Feature",
+ value: 'feature',
+
+ disabled: false,
+ },
+ {
+ id: 'performance',
+ label: '性能测试',
+ text: '性能测试',
+ "data":"",
+ "codename":"Performance",
+ value: 'performance',
+
+ disabled: false,
+ },
+ {
+ id: 'config',
+ label: '配置相关',
+ text: '配置相关',
+ "data":"",
+ "codename":"Config",
+ value: 'config',
+
+ disabled: false,
+ },
+ {
+ id: 'install',
+ label: '安装部署',
+ text: '安装部署',
+ "data":"",
+ "codename":"Install",
+ value: 'install',
+
+ disabled: false,
+ },
+ {
+ id: 'security',
+ label: '安全相关',
+ text: '安全相关',
+ "data":"",
+ "codename":"Security",
+ value: 'security',
+
+ disabled: false,
+ },
+ {
+ id: 'interface',
+ label: '接口测试',
+ text: '接口测试',
+ "data":"",
+ "codename":"Interface",
+ value: 'interface',
+
+ disabled: false,
+ },
+ {
+ id: 'unit',
+ label: '单元测试',
+ text: '单元测试',
+ "data":"",
+ "codename":"Unit",
+ value: 'unit',
+
+ disabled: false,
+ },
+ {
+ id: 'other',
+ label: '其他',
+ text: '其他',
+ "data":"",
+ "codename":"Other",
+ value: 'other',
+
+ disabled: false,
+ },
+ ]
+ },
+ {
+ srfkey: 'Bug__severity',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: '1',
+ label: '1',
+ text: '1',
+ "data":"",
+ "codename":"Item_1",
+ value: 1,
+
+ disabled: false,
+ },
+ {
+ id: '2',
+ label: '2',
+ text: '2',
+ "data":"",
+ "codename":"Item_2",
+ value: 2,
+
+ disabled: false,
+ },
+ {
+ id: '3',
+ label: '3',
+ text: '3',
+ "data":"",
+ "codename":"Item_3",
+ value: 3,
+
+ disabled: false,
+ },
+ {
+ id: '4',
+ label: '4',
+ text: '4',
+ "data":"",
+ "codename":"Item_4",
+ value: 4,
+
+ disabled: false,
+ },
+ ]
+ },
+ {
+ srfkey: 'Testcase__status',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'wait',
+ label: '待评审',
+ text: '待评审',
+ "data":"",
+ "codename":"Wait",
+ value: 'wait',
+
+ disabled: false,
+ },
+ {
+ id: 'normal',
+ label: '正常',
+ text: '正常',
+ "data":"",
+ "codename":"Normal",
+ value: 'normal',
+
+ disabled: false,
+ },
+ {
+ id: 'blocked',
+ label: '被阻塞',
+ text: '被阻塞',
+ "data":"",
+ "codename":"Blocked",
+ value: 'blocked',
+
+ disabled: false,
+ },
+ {
+ id: 'investigate',
+ label: '研究中',
+ text: '研究中',
+ "data":"",
+ "codename":"Investigate",
+ value: 'investigate',
+
+ disabled: false,
+ },
+ ]
+ },
+ {
+ srfkey: 'Story__quickpacket',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'ALL',
+ label: '所有',
+ text: '所有',
+ "data":"",
+ "codename":"All",
+ value: 'ALL',
+
+ disabled: false,
+ },
+ {
+ id: 'UNCLOSED',
+ label: '未关闭',
+ text: '未关闭',
+ "data":{"n_stage_noteq":"closed"},
+ "codename":"Unclosed",
+ value: 'UNCLOSED',
+
+ disabled: false,
+ },
+ {
+ id: 'TOME',
+ label: '指给我',
+ text: '指给我',
+ "data":{"n_assignedto_eq":"%SRFUSERID%"},
+ "codename":"Tome",
+ value: 'TOME',
+
+ disabled: false,
+ },
+ {
+ id: 'ICREATE',
+ label: '我创建',
+ text: '我创建',
+ "data":{"n_openedby_eq":"%SRFUSERID%"},
+ "codename":"Icreate",
+ value: 'ICREATE',
+
+ disabled: false,
+ },
+ {
+ id: 'IREVIEW',
+ label: '我评审',
+ text: '我评审',
+ "data":{"n_reviewedby_eq":"%SRFUSERID%"},
+ "codename":"Ireview",
+ value: 'IREVIEW',
+
+ disabled: false,
+ },
+ {
+ id: 'DRAFT',
+ label: '草稿',
+ text: '草稿',
+ "data":{"n_status_eq":"draft"},
+ "codename":"Draft",
+ value: 'DRAFT',
+
+ disabled: false,
+ },
+ {
+ id: 'MORE',
+ label: '更多',
+ text: '更多',
+ "data":"",
+ "codename":"More",
+ value: 'MORE',
+
+ disabled: false,
+ },
+ {
+ id: 'ICLOSE',
+ label: '我关闭',
+ text: '我关闭',
+ "data":{"n_closedby_eq":"%SRFUSERID%"},
+ "codename":"Iclose",
+ value: 'ICLOSE',
+ "pvalue": "MORE",
+ disabled: false,
+ },
+ {
+ id: 'ACTIVED',
+ label: '激活',
+ text: '激活',
+ "data":{"n_status_eq":"active"},
+ "codename":"Actived",
value: 'ACTIVED',
"pvalue": "MORE",
disabled: false,
@@ -1662,6 +2401,223 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
},
]
},
+ {
+ srfkey: 'Bug__browser',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'all',
+ label: '全部',
+ text: '全部',
+ "data":"",
+ "codename":"All",
+ value: 'all',
+
+ disabled: false,
+ },
+ {
+ id: 'ie',
+ label: 'IE系列',
+ text: 'IE系列',
+ "data":"",
+ "codename":"Ie",
+ value: 'ie',
+
+ disabled: false,
+ },
+ {
+ id: 'ie11',
+ label: 'IE11',
+ text: 'IE11',
+ "data":"",
+ "codename":"Ie11",
+ value: 'ie11',
+
+ disabled: false,
+ },
+ {
+ id: 'ie10',
+ label: 'IE10',
+ text: 'IE10',
+ "data":"",
+ "codename":"Ie10",
+ value: 'ie10',
+
+ disabled: false,
+ },
+ {
+ id: 'ie9',
+ label: 'IE9',
+ text: 'IE9',
+ "data":"",
+ "codename":"Ie9",
+ value: 'ie9',
+
+ disabled: false,
+ },
+ {
+ id: 'ie8',
+ label: 'IE8',
+ text: 'IE8',
+ "data":"",
+ "codename":"Ie8",
+ value: 'ie8',
+
+ disabled: false,
+ },
+ {
+ id: 'ie7',
+ label: 'IE7',
+ text: 'IE7',
+ "data":"",
+ "codename":"Ie7",
+ value: 'ie7',
+
+ disabled: false,
+ },
+ {
+ id: 'ie6',
+ label: 'IE6',
+ text: 'IE6',
+ "data":"",
+ "codename":"Ie6",
+ value: 'ie6',
+
+ disabled: false,
+ },
+ {
+ id: 'chrome',
+ label: 'chrome',
+ text: 'chrome',
+ "data":"",
+ "codename":"Chrome",
+ value: 'chrome',
+
+ disabled: false,
+ },
+ {
+ id: 'firefox',
+ label: 'firefox系列',
+ text: 'firefox系列',
+ "data":"",
+ "codename":"Firefox",
+ value: 'firefox',
+
+ disabled: false,
+ },
+ {
+ id: 'firefox4',
+ label: 'firefox4',
+ text: 'firefox4',
+ "data":"",
+ "codename":"Firefox4",
+ value: 'firefox4',
+
+ disabled: false,
+ },
+ {
+ id: 'firefox3',
+ label: 'firefox3',
+ text: 'firefox3',
+ "data":"",
+ "codename":"Firefox3",
+ value: 'firefox3',
+
+ disabled: false,
+ },
+ {
+ id: 'firefox2',
+ label: 'firefox2',
+ text: 'firefox2',
+ "data":"",
+ "codename":"Firefox2",
+ value: 'firefox2',
+
+ disabled: false,
+ },
+ {
+ id: 'opera',
+ label: 'opera系列',
+ text: 'opera系列',
+ "data":"",
+ "codename":"Opera",
+ value: 'opera',
+
+ disabled: false,
+ },
+ {
+ id: 'opera11',
+ label: 'opera11',
+ text: 'opera11',
+ "data":"",
+ "codename":"Opera11",
+ value: 'opera11',
+
+ disabled: false,
+ },
+ {
+ id: 'oprea10',
+ label: 'oprea10',
+ text: 'oprea10',
+ "data":"",
+ "codename":"Oprea10",
+ value: 'oprea10',
+
+ disabled: false,
+ },
+ {
+ id: 'opera9',
+ label: 'opera9',
+ text: 'opera9',
+ "data":"",
+ "codename":"Opera9",
+ value: 'opera9',
+
+ disabled: false,
+ },
+ {
+ id: 'safari',
+ label: 'safari',
+ text: 'safari',
+ "data":"",
+ "codename":"Safari",
+ value: 'safari',
+
+ disabled: false,
+ },
+ {
+ id: 'maxthon',
+ label: '傲游',
+ text: '傲游',
+ "data":"",
+ "codename":"Maxthon",
+ value: 'maxthon',
+
+ disabled: false,
+ },
+ {
+ id: 'uc',
+ label: 'UC',
+ text: 'UC',
+ "data":"",
+ "codename":"Uc",
+ value: 'uc',
+
+ disabled: false,
+ },
+ {
+ id: 'others',
+ label: '其他',
+ text: '其他',
+ "data":"",
+ "codename":"Others",
+ value: 'others',
+
+ disabled: false,
+ },
+ ]
+ },
{
srfkey: 'Project__type',
emptytext: '未定义',
@@ -1806,6 +2762,33 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
},
]
},
+ {
+ srfkey: 'Company__guest',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: '1',
+ label: '允许',
+ text: '允许',
+ "data":"",
+ "codename":"Item_1",
+ value: '1',
+
+ disabled: false,
+ },
+ {
+ id: '0',
+ label: '不允许',
+ text: '不允许',
+ "data":"",
+ "codename":"Item_0",
+ value: '0',
+
+ disabled: false,
+ },
+ ]
+ },
{
srfkey: 'Story__status',
emptytext: '未定义',
@@ -2065,6 +3048,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
text: '未开始',
"data":"",
"codename":"Wait",
+ "color": "rgba(131, 138, 157, 1)",
value: 'wait',
disabled: false,
@@ -2075,6 +3059,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
text: '进行中',
"data":"",
"codename":"Doing",
+ "color": "rgba(255, 93, 93, 1)",
value: 'doing',
disabled: false,
@@ -2085,6 +3070,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
text: '已完成',
"data":"",
"codename":"Done",
+ "color": "rgba(67, 160, 71, 1)",
value: 'done',
disabled: false,
@@ -2095,6 +3081,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
text: '已暂停',
"data":"",
"codename":"Pause",
+ "color": "rgba(255, 152, 0, 1)",
value: 'pause',
disabled: false,
@@ -2105,6 +3092,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
text: '已取消',
"data":"",
"codename":"Cancel",
+ "color": "rgba(131, 138, 157, 1)",
value: 'cancel',
disabled: false,
@@ -2115,6 +3103,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
text: '已关闭',
"data":"",
"codename":"Closed",
+ "color": "rgba(131, 138, 157, 1)",
value: 'closed',
disabled: false,
@@ -2195,6 +3184,61 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
},
]
},
+ {
+ "srfkey": "Role",
+ "emptytext": "未定义",
+ "codelisttype":"dynamic",
+ "appdataentity":"Group",
+ "appdedataset":"FetchDefault",
+ "items": []
+ },
+ {
+ srfkey: 'Testcase__result',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'n/a',
+ label: '忽略',
+ text: '忽略',
+ "data":"",
+ "codename":"N_a",
+ value: 'n/a',
+
+ disabled: false,
+ },
+ {
+ id: 'pass',
+ label: '通过',
+ text: '通过',
+ "data":"",
+ "codename":"Pass",
+ value: 'pass',
+
+ disabled: false,
+ },
+ {
+ id: 'fail',
+ label: '失败',
+ text: '失败',
+ "data":"",
+ "codename":"Fail",
+ value: 'fail',
+
+ disabled: false,
+ },
+ {
+ id: 'blocked',
+ label: '阻塞',
+ text: '阻塞',
+ "data":"",
+ "codename":"Blocked",
+ value: 'blocked',
+
+ disabled: false,
+ },
+ ]
+ },
{
srfkey: 'Bug__pri',
emptytext: '未定义',
@@ -2238,6 +3282,93 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
"codename":"Item_4",
value: 4,
+ disabled: false,
+ },
+ ]
+ },
+ {
+ srfkey: 'Bug__resolution',
+ emptytext: '未定义',
+ "codelisttype":"static",
+ items: [
+ {
+ id: 'bydesign',
+ label: '设计如此',
+ text: '设计如此',
+ "data":"",
+ "codename":"Bydesign",
+ value: 'bydesign',
+
+ disabled: false,
+ },
+ {
+ id: 'duplicate',
+ label: '重复Bug',
+ text: '重复Bug',
+ "data":"",
+ "codename":"Duplicate",
+ value: 'duplicate',
+
+ disabled: false,
+ },
+ {
+ id: 'external',
+ label: '外部原因',
+ text: '外部原因',
+ "data":"",
+ "codename":"External",
+ value: 'external',
+
+ disabled: false,
+ },
+ {
+ id: 'fixed',
+ label: '已解决',
+ text: '已解决',
+ "data":"",
+ "codename":"Fixed",
+ value: 'fixed',
+
+ disabled: false,
+ },
+ {
+ id: 'notrepro',
+ label: '无法重现',
+ text: '无法重现',
+ "data":"",
+ "codename":"Notrepro",
+ value: 'notrepro',
+
+ disabled: false,
+ },
+ {
+ id: 'postponed',
+ label: '延期处理',
+ text: '延期处理',
+ "data":"",
+ "codename":"Postponed",
+ value: 'postponed',
+
+ disabled: false,
+ },
+ {
+ id: 'willnotfix',
+ label: '不予解决',
+ text: '不予解决',
+ "data":"",
+ "codename":"Willnotfix",
+ value: 'willnotfix',
+
+ disabled: false,
+ },
+ {
+ id: 'tostory',
+ label: '转为需求',
+ text: '转为需求',
+ "data":"",
+ "codename":"Tostory",
+ value: 'tostory',
+
disabled: false,
},
]
diff --git a/app_Web/src/mock/entity/companys/companys.ts b/app_Web/src/mock/entity/companys/companys.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6f59c898cae0d096e45da5201a6fa35a711d1e51
--- /dev/null
+++ b/app_Web/src/mock/entity/companys/companys.ts
@@ -0,0 +1,380 @@
+import qs from 'qs';
+import { MockAdapter } from '@/mock/mock-adapter';
+const mock = MockAdapter.getInstance();
+
+// 模拟数据
+const mockDatas: Array = [
+];
+
+
+//getwflink
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/companies\/[a-zA-Z0-9\-\;]+\/usertasks\/[a-zA-Z0-9\-\;]+\/ways$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: getwflink");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status,[
+ {"sequenceFlowId":"dfdsfdsfdsfdsfds","sequenceFlowName":"同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddlfldldfldsfds","refViewKey":""},
+ {"sequenceFlowId":"ddssdfdfdfdfsfdf","sequenceFlowName":"不同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddfdsldlfdlldsf","refViewKey":"workorder_ltform_editview"}
+ ]];
+});
+
+// getwfstep
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/companies\/process-definitions-nodes$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: getwfstep");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, [
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-dfdfd",
+ "userTaskName":"待审",
+ "cnt":0,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"
+ },
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-87927",
+ "userTaskName":"待分配",
+ "cnt":3,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"}
+ ]];
+});
+
+// createBatch
+mock.onPost(new RegExp(/^\/companies\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: createBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// updateBatch
+mock.onPut(new RegExp(/^\/companies\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: updateBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// removeBatch
+mock.onDelete(new RegExp(/^\/companies\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: removeBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+
+// Select
+mock.onGet(new RegExp(/^\/companies\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: Select");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/companies\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items];
+});
+
+// GetDraft
+mock.onGet(new RegExp(/^\/companies\/getdraft$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: GetDraft");
+ console.table({url:config.url, method: config.method, data:config.data});
+ // GetDraft
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// CheckKey
+mock.onPost(new RegExp(/^\/companies\/?([a-zA-Z0-9\-\;]{0,35})\/checkkey$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: CheckKey");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/companies\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// Update
+mock.onPut(new RegExp(/^\/companies\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: Update");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/companies\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// Save
+mock.onPost(new RegExp(/^\/companies\/?([a-zA-Z0-9\-\;]{0,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/companies\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// Create
+mock.onPost(new RegExp(/^\/companies\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: Create");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/companies\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas[0]);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas[0]];
+});
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/companies\/fetchdefault$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas ? mockDatas : []];
+});
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/companies\/fetchdefault(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ if(config.url.includes('page')){
+ let url = config.url.split('?')[1];
+ let params = qs.parse(url);
+ Object.assign(config, params);
+ }
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ let total = mockDatas.length;
+ let records: Array = [];
+ if(!config.page || !config.size){
+ records = mockDatas;
+ }else{
+ if((config.page-1)*config.size < total){
+ records = mockDatas.slice(config.page,config.size);
+ }
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(records ? records : []);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, records ? records : []];
+});
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+
+
+// Get
+mock.onGet(new RegExp(/^\/companies\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: Get");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/companies\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Remove
+mock.onDelete(new RegExp(/^\/companies\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:company 方法: Remove");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/companies\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
diff --git a/app_Web/src/mock/entity/depts/depts.ts b/app_Web/src/mock/entity/depts/depts.ts
new file mode 100644
index 0000000000000000000000000000000000000000..85dce07f91ed869e15951f62b468943022a6e6e0
--- /dev/null
+++ b/app_Web/src/mock/entity/depts/depts.ts
@@ -0,0 +1,424 @@
+import qs from 'qs';
+import { MockAdapter } from '@/mock/mock-adapter';
+const mock = MockAdapter.getInstance();
+
+// 模拟数据
+const mockDatas: Array = [
+];
+
+
+//getwflink
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/depts\/[a-zA-Z0-9\-\;]+\/usertasks\/[a-zA-Z0-9\-\;]+\/ways$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: getwflink");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status,[
+ {"sequenceFlowId":"dfdsfdsfdsfdsfds","sequenceFlowName":"同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddlfldldfldsfds","refViewKey":""},
+ {"sequenceFlowId":"ddssdfdfdfdfsfdf","sequenceFlowName":"不同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddfdsldlfdlldsf","refViewKey":"workorder_ltform_editview"}
+ ]];
+});
+
+// getwfstep
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/depts\/process-definitions-nodes$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: getwfstep");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, [
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-dfdfd",
+ "userTaskName":"待审",
+ "cnt":0,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"
+ },
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-87927",
+ "userTaskName":"待分配",
+ "cnt":3,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"}
+ ]];
+});
+
+// createBatch
+mock.onPost(new RegExp(/^\/depts\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: createBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// updateBatch
+mock.onPut(new RegExp(/^\/depts\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: updateBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// removeBatch
+mock.onDelete(new RegExp(/^\/depts\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: removeBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+
+// Select
+mock.onGet(new RegExp(/^\/depts\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: Select");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/depts\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items];
+});
+
+// Save
+mock.onPost(new RegExp(/^\/depts\/?([a-zA-Z0-9\-\;]{0,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/depts\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// Create
+mock.onPost(new RegExp(/^\/depts\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: Create");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/depts\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas[0]);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas[0]];
+});
+
+// Update
+mock.onPut(new RegExp(/^\/depts\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: Update");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/depts\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// GetDraft
+mock.onGet(new RegExp(/^\/depts\/getdraft$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: GetDraft");
+ console.table({url:config.url, method: config.method, data:config.data});
+ // GetDraft
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// CheckKey
+mock.onPost(new RegExp(/^\/depts\/?([a-zA-Z0-9\-\;]{0,35})\/checkkey$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: CheckKey");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/depts\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/depts\/fetchdefault$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas ? mockDatas : []];
+});
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/depts\/fetchdefault(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ if(config.url.includes('page')){
+ let url = config.url.split('?')[1];
+ let params = qs.parse(url);
+ Object.assign(config, params);
+ }
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ let total = mockDatas.length;
+ let records: Array = [];
+ if(!config.page || !config.size){
+ records = mockDatas;
+ }else{
+ if((config.page-1)*config.size < total){
+ records = mockDatas.slice(config.page,config.size);
+ }
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(records ? records : []);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, records ? records : []];
+});
+
+// FetchRoot
+mock.onGet(new RegExp(/^\/depts\/fetchroot$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: FetchRoot");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas ? mockDatas : []];
+});
+
+// FetchRoot
+mock.onGet(new RegExp(/^\/depts\/fetchroot(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: FetchRoot");
+ console.table({url:config.url, method: config.method, data:config.data});
+ if(config.url.includes('page')){
+ let url = config.url.split('?')[1];
+ let params = qs.parse(url);
+ Object.assign(config, params);
+ }
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ let total = mockDatas.length;
+ let records: Array = [];
+ if(!config.page || !config.size){
+ records = mockDatas;
+ }else{
+ if((config.page-1)*config.size < total){
+ records = mockDatas.slice(config.page,config.size);
+ }
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(records ? records : []);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, records ? records : []];
+});
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+
+
+// Remove
+mock.onDelete(new RegExp(/^\/depts\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: Remove");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/depts\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Get
+mock.onGet(new RegExp(/^\/depts\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:dept 方法: Get");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/depts\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
diff --git a/app_Web/src/mock/entity/groups/groups.ts b/app_Web/src/mock/entity/groups/groups.ts
new file mode 100644
index 0000000000000000000000000000000000000000..30acac35897232011ae9f11908b7bb272b0a4d1f
--- /dev/null
+++ b/app_Web/src/mock/entity/groups/groups.ts
@@ -0,0 +1,380 @@
+import qs from 'qs';
+import { MockAdapter } from '@/mock/mock-adapter';
+const mock = MockAdapter.getInstance();
+
+// 模拟数据
+const mockDatas: Array = [
+];
+
+
+//getwflink
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/groups\/[a-zA-Z0-9\-\;]+\/usertasks\/[a-zA-Z0-9\-\;]+\/ways$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: getwflink");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status,[
+ {"sequenceFlowId":"dfdsfdsfdsfdsfds","sequenceFlowName":"同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddlfldldfldsfds","refViewKey":""},
+ {"sequenceFlowId":"ddssdfdfdfdfsfdf","sequenceFlowName":"不同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddfdsldlfdlldsf","refViewKey":"workorder_ltform_editview"}
+ ]];
+});
+
+// getwfstep
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/groups\/process-definitions-nodes$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: getwfstep");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, [
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-dfdfd",
+ "userTaskName":"待审",
+ "cnt":0,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"
+ },
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-87927",
+ "userTaskName":"待分配",
+ "cnt":3,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"}
+ ]];
+});
+
+// createBatch
+mock.onPost(new RegExp(/^\/groups\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: createBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// updateBatch
+mock.onPut(new RegExp(/^\/groups\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: updateBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// removeBatch
+mock.onDelete(new RegExp(/^\/groups\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: removeBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+
+// Select
+mock.onGet(new RegExp(/^\/groups\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: Select");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/groups\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items];
+});
+
+// Create
+mock.onPost(new RegExp(/^\/groups\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: Create");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/groups\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas[0]);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas[0]];
+});
+
+// Save
+mock.onPost(new RegExp(/^\/groups\/?([a-zA-Z0-9\-\;]{0,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/groups\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// GetDraft
+mock.onGet(new RegExp(/^\/groups\/getdraft$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: GetDraft");
+ console.table({url:config.url, method: config.method, data:config.data});
+ // GetDraft
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// Update
+mock.onPut(new RegExp(/^\/groups\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: Update");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/groups\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// CheckKey
+mock.onPost(new RegExp(/^\/groups\/?([a-zA-Z0-9\-\;]{0,35})\/checkkey$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: CheckKey");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/groups\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/groups\/fetchdefault$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas ? mockDatas : []];
+});
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/groups\/fetchdefault(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ if(config.url.includes('page')){
+ let url = config.url.split('?')[1];
+ let params = qs.parse(url);
+ Object.assign(config, params);
+ }
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ let total = mockDatas.length;
+ let records: Array = [];
+ if(!config.page || !config.size){
+ records = mockDatas;
+ }else{
+ if((config.page-1)*config.size < total){
+ records = mockDatas.slice(config.page,config.size);
+ }
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(records ? records : []);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, records ? records : []];
+});
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+
+
+// Remove
+mock.onDelete(new RegExp(/^\/groups\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: Remove");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/groups\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Get
+mock.onGet(new RegExp(/^\/groups\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:group 方法: Get");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/groups\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
diff --git a/app_Web/src/mock/entity/ibz-subtasks/ibz-subtasks.ts b/app_Web/src/mock/entity/ibz-subtasks/ibz-subtasks.ts
new file mode 100644
index 0000000000000000000000000000000000000000..991dff5bfca0ba6a52903ebe954db9aba98ec3ee
--- /dev/null
+++ b/app_Web/src/mock/entity/ibz-subtasks/ibz-subtasks.ts
@@ -0,0 +1,811 @@
+import qs from 'qs';
+import { MockAdapter } from '@/mock/mock-adapter';
+const mock = MockAdapter.getInstance();
+
+// 模拟数据
+const mockDatas: Array = [
+];
+
+
+//getwflink
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/ibz_subtasks\/[a-zA-Z0-9\-\;]+\/usertasks\/[a-zA-Z0-9\-\;]+\/ways$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: getwflink");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status,[
+ {"sequenceFlowId":"dfdsfdsfdsfdsfds","sequenceFlowName":"同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddlfldldfldsfds","refViewKey":""},
+ {"sequenceFlowId":"ddssdfdfdfdfsfdf","sequenceFlowName":"不同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddfdsldlfdlldsf","refViewKey":"workorder_ltform_editview"}
+ ]];
+});
+
+// getwfstep
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/ibz_subtasks\/process-definitions-nodes$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: getwfstep");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, [
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-dfdfd",
+ "userTaskName":"待审",
+ "cnt":0,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"
+ },
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-87927",
+ "userTaskName":"待分配",
+ "cnt":3,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"}
+ ]];
+});
+
+// createBatch
+mock.onPost(new RegExp(/^\/ibz_subtasks\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: createBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// updateBatch
+mock.onPut(new RegExp(/^\/ibz_subtasks\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: updateBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// removeBatch
+mock.onDelete(new RegExp(/^\/ibz_subtasks\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: removeBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+
+
+// Select
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Select");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items];
+});
+
+
+// Select
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Select");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items];
+});
+
+
+// GetDraft
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/getdraft$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: GetDraft");
+ console.table({url:config.url, method: config.method, data:config.data});
+ // GetDraft
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// GetDraft
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/getdraft$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: GetDraft");
+ console.table({url:config.url, method: config.method, data:config.data});
+ // GetDraft
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+
+
+// Update
+mock.onPut(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Update");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// Update
+mock.onPut(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Update");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// Save
+mock.onPost(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// Save
+mock.onPost(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+
+
+// CheckKey
+mock.onPost(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: CheckKey");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// CheckKey
+mock.onPost(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: CheckKey");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// Create
+mock.onPost(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Create");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// Create
+mock.onPost(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Create");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// FetchRootTask
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchroottask$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: FetchRootTask");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchroottask$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+
+// FetchRootTask
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchroottask$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: FetchRootTask");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchroottask$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+
+// FetchTypeGroup
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchtypegroup$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: FetchTypeGroup");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchtypegroup$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+
+// FetchTypeGroup
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchtypegroup$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: FetchTypeGroup");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchtypegroup$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchdefault$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchdefault$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchdefault$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/fetchdefault$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+
+// Remove
+mock.onDelete(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Remove");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Remove
+mock.onDelete(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Remove");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Get
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Get");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Get
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:ibz_subtask 方法: Get");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/ibz_subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
diff --git a/app_Web/src/mock/entity/product-statss/product-statss.ts b/app_Web/src/mock/entity/product-statss/product-statss.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d855fea6fc50f96512be2b800c417aaa5b5033d5
--- /dev/null
+++ b/app_Web/src/mock/entity/product-statss/product-statss.ts
@@ -0,0 +1,380 @@
+import qs from 'qs';
+import { MockAdapter } from '@/mock/mock-adapter';
+const mock = MockAdapter.getInstance();
+
+// 模拟数据
+const mockDatas: Array = [
+];
+
+
+//getwflink
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/productstats\/[a-zA-Z0-9\-\;]+\/usertasks\/[a-zA-Z0-9\-\;]+\/ways$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: getwflink");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status,[
+ {"sequenceFlowId":"dfdsfdsfdsfdsfds","sequenceFlowName":"同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddlfldldfldsfds","refViewKey":""},
+ {"sequenceFlowId":"ddssdfdfdfdfsfdf","sequenceFlowName":"不同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddfdsldlfdlldsf","refViewKey":"workorder_ltform_editview"}
+ ]];
+});
+
+// getwfstep
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/productstats\/process-definitions-nodes$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: getwfstep");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, [
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-dfdfd",
+ "userTaskName":"待审",
+ "cnt":0,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"
+ },
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-87927",
+ "userTaskName":"待分配",
+ "cnt":3,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"}
+ ]];
+});
+
+// createBatch
+mock.onPost(new RegExp(/^\/productstats\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: createBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// updateBatch
+mock.onPut(new RegExp(/^\/productstats\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: updateBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// removeBatch
+mock.onDelete(new RegExp(/^\/productstats\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: removeBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+
+// Select
+mock.onGet(new RegExp(/^\/productstats\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: Select");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/productstats\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items];
+});
+
+// Update
+mock.onPut(new RegExp(/^\/productstats\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: Update");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/productstats\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// GetDraft
+mock.onGet(new RegExp(/^\/productstats\/getdraft$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: GetDraft");
+ console.table({url:config.url, method: config.method, data:config.data});
+ // GetDraft
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// Save
+mock.onPost(new RegExp(/^\/productstats\/?([a-zA-Z0-9\-\;]{0,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/productstats\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// Create
+mock.onPost(new RegExp(/^\/productstats\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: Create");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/productstats\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas[0]);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas[0]];
+});
+
+// CheckKey
+mock.onPost(new RegExp(/^\/productstats\/?([a-zA-Z0-9\-\;]{0,35})\/checkkey$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: CheckKey");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/productstats\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/productstats\/fetchdefault$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas ? mockDatas : []];
+});
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/productstats\/fetchdefault(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ if(config.url.includes('page')){
+ let url = config.url.split('?')[1];
+ let params = qs.parse(url);
+ Object.assign(config, params);
+ }
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ let total = mockDatas.length;
+ let records: Array = [];
+ if(!config.page || !config.size){
+ records = mockDatas;
+ }else{
+ if((config.page-1)*config.size < total){
+ records = mockDatas.slice(config.page,config.size);
+ }
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(records ? records : []);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, records ? records : []];
+});
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+
+
+// Get
+mock.onGet(new RegExp(/^\/productstats\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: Get");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/productstats\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Remove
+mock.onDelete(new RegExp(/^\/productstats\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:productstats 方法: Remove");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/productstats\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
diff --git a/app_Web/src/mock/entity/products/products.ts b/app_Web/src/mock/entity/products/products.ts
index a325bd7d6362390e6921059732d765da15280b46..622e79f5261146cc9c3e13a3067c6f9ef60fe8d6 100644
--- a/app_Web/src/mock/entity/products/products.ts
+++ b/app_Web/src/mock/entity/products/products.ts
@@ -245,6 +245,44 @@ mock.onPut(new RegExp(/^\/products\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config:
return [status, data];
});
+// Close
+mock.onPost(new RegExp(/^\/products\/?([a-zA-Z0-9\-\;]{0,35})\/close$/)).reply((config: any) => {
+ console.groupCollapsed("实体:product 方法: Close");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/close$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
// Create
mock.onPost(new RegExp(/^\/products\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
console.groupCollapsed("实体:product 方法: Create");
diff --git a/app_Web/src/mock/entity/project-statss/project-statss.ts b/app_Web/src/mock/entity/project-statss/project-statss.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4288cab4cb4df512b13422681f01c4c621ce04c2
--- /dev/null
+++ b/app_Web/src/mock/entity/project-statss/project-statss.ts
@@ -0,0 +1,424 @@
+import qs from 'qs';
+import { MockAdapter } from '@/mock/mock-adapter';
+const mock = MockAdapter.getInstance();
+
+// 模拟数据
+const mockDatas: Array = [
+];
+
+
+//getwflink
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/projectstats\/[a-zA-Z0-9\-\;]+\/usertasks\/[a-zA-Z0-9\-\;]+\/ways$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: getwflink");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status,[
+ {"sequenceFlowId":"dfdsfdsfdsfdsfds","sequenceFlowName":"同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddlfldldfldsfds","refViewKey":""},
+ {"sequenceFlowId":"ddssdfdfdfdfsfdf","sequenceFlowName":"不同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddfdsldlfdlldsf","refViewKey":"workorder_ltform_editview"}
+ ]];
+});
+
+// getwfstep
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/projectstats\/process-definitions-nodes$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: getwfstep");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, [
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-dfdfd",
+ "userTaskName":"待审",
+ "cnt":0,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"
+ },
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-87927",
+ "userTaskName":"待分配",
+ "cnt":3,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"}
+ ]];
+});
+
+// createBatch
+mock.onPost(new RegExp(/^\/projectstats\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: createBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// updateBatch
+mock.onPut(new RegExp(/^\/projectstats\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: updateBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// removeBatch
+mock.onDelete(new RegExp(/^\/projectstats\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: removeBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+
+// Select
+mock.onGet(new RegExp(/^\/projectstats\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: Select");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/projectstats\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items];
+});
+
+// Update
+mock.onPut(new RegExp(/^\/projectstats\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: Update");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/projectstats\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// Save
+mock.onPost(new RegExp(/^\/projectstats\/?([a-zA-Z0-9\-\;]{0,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/projectstats\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// Create
+mock.onPost(new RegExp(/^\/projectstats\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: Create");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/projectstats\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas[0]);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas[0]];
+});
+
+// CheckKey
+mock.onPost(new RegExp(/^\/projectstats\/?([a-zA-Z0-9\-\;]{0,35})\/checkkey$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: CheckKey");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/projectstats\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+// GetDraft
+mock.onGet(new RegExp(/^\/projectstats\/getdraft$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: GetDraft");
+ console.table({url:config.url, method: config.method, data:config.data});
+ // GetDraft
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// FetchTaskTime
+mock.onGet(new RegExp(/^\/projectstats\/fetchtasktime$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: FetchTaskTime");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas ? mockDatas : []];
+});
+
+// FetchTaskTime
+mock.onGet(new RegExp(/^\/projectstats\/fetchtasktime(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: FetchTaskTime");
+ console.table({url:config.url, method: config.method, data:config.data});
+ if(config.url.includes('page')){
+ let url = config.url.split('?')[1];
+ let params = qs.parse(url);
+ Object.assign(config, params);
+ }
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ let total = mockDatas.length;
+ let records: Array = [];
+ if(!config.page || !config.size){
+ records = mockDatas;
+ }else{
+ if((config.page-1)*config.size < total){
+ records = mockDatas.slice(config.page,config.size);
+ }
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(records ? records : []);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, records ? records : []];
+});
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/projectstats\/fetchdefault$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(mockDatas);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, mockDatas ? mockDatas : []];
+});
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/projectstats\/fetchdefault(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ if(config.url.includes('page')){
+ let url = config.url.split('?')[1];
+ let params = qs.parse(url);
+ Object.assign(config, params);
+ }
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ let total = mockDatas.length;
+ let records: Array = [];
+ if(!config.page || !config.size){
+ records = mockDatas;
+ }else{
+ if((config.page-1)*config.size < total){
+ records = mockDatas.slice(config.page,config.size);
+ }
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(records ? records : []);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, records ? records : []];
+});
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+// URI参数传递情况未实现
+
+
+// Get
+mock.onGet(new RegExp(/^\/projectstats\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: Get");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/projectstats\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Remove
+mock.onDelete(new RegExp(/^\/projectstats\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:projectstats 方法: Remove");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/projectstats\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
diff --git a/app_Web/src/mock/entity/storys/storys.ts b/app_Web/src/mock/entity/storys/storys.ts
index 6a5dbf36a7906a86e3336d4cbadb1bd18eac349c..80d71cfdaf21bff6f59b2aae04ce0d20fd465e5b 100644
--- a/app_Web/src/mock/entity/storys/storys.ts
+++ b/app_Web/src/mock/entity/storys/storys.ts
@@ -231,6 +231,266 @@ mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config:
});
+// BatchChangeStage
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangestage$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchChangeStage");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangestage$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// BatchChangeStage
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/batchchangestage$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchChangeStage");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangestage$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
+// BatchChangePlan
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangeplan$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchChangePlan");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangeplan$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// BatchChangePlan
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/batchchangeplan$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchChangePlan");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangeplan$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
+// BatchClose
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchclose$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchClose");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchclose$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// BatchClose
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/batchclose$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchClose");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchclose$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
+// Change
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/change$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: Change");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/change$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// Change
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/change$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: Change");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/change$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
// CheckKey
mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/)).reply((config: any) => {
console.groupCollapsed("实体:story 方法: CheckKey");
@@ -361,18 +621,17 @@ mock.onPut(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((config: a
return [status, data];
});
-
-// Save
-mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/save$/)).reply((config: any) => {
- console.groupCollapsed("实体:story 方法: Save");
+// BatchChangeBranch
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangebranch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchChangeBranch");
console.table({url:config.url, method: config.method, data:config.data});
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
const paramArray:Array = ['id','id'];
- const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangebranch$/).exec(config.url);
let tempValue: any = {};
if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
paramArray.forEach((item: any, index: number) => {
@@ -389,16 +648,472 @@ mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0
return [status, {}];
});
-// Save
-mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/save$/)).reply((config: any) => {
- console.groupCollapsed("实体:story 方法: Save");
+// BatchChangeBranch
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/batchchangebranch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchChangeBranch");
console.table({url:config.url, method: config.method, data:config.data});
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
const paramArray:Array = ['id'];
- const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangebranch$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
+// BatchReview
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchreview$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchReview");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchreview$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// BatchReview
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/batchreview$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchReview");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchreview$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
+// Review
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/review$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: Review");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/review$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// Review
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/review$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: Review");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/review$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
+// AssignTo
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/assignto$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: AssignTo");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/assignto$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// AssignTo
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/assignto$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: AssignTo");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/assignto$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
+// BatchAssignTo
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchassignto$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchAssignTo");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchassignto$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// BatchAssignTo
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/batchassignto$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchAssignTo");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchassignto$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
+
+// Save
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// Save
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
+// BatchChangeModule
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangemodule$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchChangeModule");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangemodule$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// BatchChangeModule
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/batchchangemodule$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: BatchChangeModule");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/batchchangemodule$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ //let items = mockDatas ? mockDatas : [];
+ //let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ let data = JSON.parse(config.data);
+ mockDatas.forEach((item)=>{
+ if(item['id'] == tempValue['id'] ){
+ for(let value in data){
+ if(item.hasOwnProperty(value)){
+ item[value] = data[value];
+ }
+ }
+ }
+ })
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(data);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, data];
+});
+
+
+// Close
+mock.onPost(new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/close$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: Close");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/products\/([a-zA-Z0-9\-\;]{1,35})\/stories\/([a-zA-Z0-9\-\;]{1,35})\/close$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+// Close
+mock.onPost(new RegExp(/^\/stories\/?([a-zA-Z0-9\-\;]{0,35})\/close$/)).reply((config: any) => {
+ console.groupCollapsed("实体:story 方法: Close");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ const matchArray:any = new RegExp(/^\/stories\/([a-zA-Z0-9\-\;]{1,35})\/close$/).exec(config.url);
let tempValue: any = {};
if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
paramArray.forEach((item: any, index: number) => {
diff --git a/app_Web/src/mock/entity/sub-tasks/sub-tasks.ts b/app_Web/src/mock/entity/sub-tasks/sub-tasks.ts
new file mode 100644
index 0000000000000000000000000000000000000000..971c771814043c38fdf4f340bd4cd970c96843a4
--- /dev/null
+++ b/app_Web/src/mock/entity/sub-tasks/sub-tasks.ts
@@ -0,0 +1,811 @@
+import qs from 'qs';
+import { MockAdapter } from '@/mock/mock-adapter';
+const mock = MockAdapter.getInstance();
+
+// 模拟数据
+const mockDatas: Array = [
+];
+
+
+//getwflink
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/subtasks\/[a-zA-Z0-9\-\;]+\/usertasks\/[a-zA-Z0-9\-\;]+\/ways$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: getwflink");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status,[
+ {"sequenceFlowId":"dfdsfdsfdsfdsfds","sequenceFlowName":"同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddlfldldfldsfds","refViewKey":""},
+ {"sequenceFlowId":"ddssdfdfdfdfsfdf","sequenceFlowName":"不同意",
+ "taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
+ "processInstanceId":"ddfdsldlfdlldsf","refViewKey":"workorder_ltform_editview"}
+ ]];
+});
+
+// getwfstep
+mock.onGet(new RegExp(/^\/wfcore\/pms-app-web\/subtasks\/process-definitions-nodes$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: getwfstep");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, [
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-dfdfd",
+ "userTaskName":"待审",
+ "cnt":0,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"
+ },
+ {"userTaskId":"sddfddfd-dfdf-fdfd-fdf-87927",
+ "userTaskName":"待分配",
+ "cnt":3,
+ "processDefinitionKey":"support-workorders-approve-v1",
+ "processDefinitionName":"工单审批流程v1"}
+ ]];
+});
+
+// createBatch
+mock.onPost(new RegExp(/^\/subtasks\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: createBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// updateBatch
+mock.onPut(new RegExp(/^\/subtasks\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: updateBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+// removeBatch
+mock.onDelete(new RegExp(/^\/subtasks\/batch$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: removeBatch");
+ console.table({url:config.url, method: config.method, data:config.data});
+ console.groupEnd();
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, {}];
+ }
+ return [status, {}];
+});
+
+
+
+// Select
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Select");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items];
+});
+
+
+// Select
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Select");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items];
+});
+
+
+// GetDraft
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/getdraft$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: GetDraft");
+ console.table({url:config.url, method: config.method, data:config.data});
+ // GetDraft
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// GetDraft
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/getdraft$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: GetDraft");
+ console.table({url:config.url, method: config.method, data:config.data});
+ // GetDraft
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+
+
+// Update
+mock.onPut(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Update");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// Update
+mock.onPut(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Update");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// Save
+mock.onPost(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// Save
+mock.onPost(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/save$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Save");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/save$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+
+
+// CheckKey
+mock.onPost(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: CheckKey");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// CheckKey
+mock.onPost(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: CheckKey");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})\/checkkey$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// Create
+mock.onPost(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Create");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// Create
+mock.onPost(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Create");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table({});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, {}];
+});
+
+
+// FetchRootTask
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchroottask$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: FetchRootTask");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchroottask$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+
+// FetchRootTask
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchroottask$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: FetchRootTask");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchroottask$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+
+// FetchTypeGroup
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchtypegroup$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: FetchTypeGroup");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchtypegroup$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+
+// FetchTypeGroup
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchtypegroup$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: FetchTypeGroup");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchtypegroup$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchdefault$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchdefault$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+
+// FetchDefault
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchdefault$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: FetchDefault");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id'];
+ let tempValue: any = {};
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/fetchdefault$/).exec(config.url);
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ if (items.length > 0 && paramArray.length > 0) {
+ paramArray.forEach((paramkey: any) => {
+ if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
+ let keysGrounp: Array = tempValue[paramkey].split(new RegExp(/[\;]/));
+ let tempArray: Array = [];
+ keysGrounp.forEach((singlekey: any) => {
+ let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
+ if(_items.length >0){
+ tempArray.push(..._items);
+ }
+ })
+ items = tempArray;
+ } else {
+ items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
+ }
+ })
+ }
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(items);
+ console.groupEnd();
+ console.groupEnd();
+ return [status, items];
+});
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+// URI参数传递情况未实现
+
+
+// Remove
+mock.onDelete(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Remove");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Remove
+mock.onDelete(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Remove");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Get
+mock.onGet(new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Get");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id','id'];
+ const matchArray:any = new RegExp(/^\/projects\/([a-zA-Z0-9\-\;]{1,35})\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
+
+// Get
+mock.onGet(new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/)).reply((config: any) => {
+ console.groupCollapsed("实体:subtask 方法: Get");
+ console.table({url:config.url, method: config.method, data:config.data});
+ let status = MockAdapter.mockStatus(config);
+ if (status !== 200) {
+ return [status, null];
+ }
+ const paramArray:Array = ['id','id'];
+ const matchArray:any = new RegExp(/^\/tasks\/([a-zA-Z0-9\-\;]{1,35})\/subtasks\/([a-zA-Z0-9\-\;]{1,35})$/).exec(config.url);
+ let tempValue: any = {};
+ if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
+ paramArray.forEach((item: any, index: number) => {
+ Object.defineProperty(tempValue, item, {
+ enumerable: true,
+ value: matchArray[index + 1]
+ });
+ });
+ }
+ let items = mockDatas ? mockDatas : [];
+ let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
+ console.groupCollapsed("response数据 status: "+status+" data: ");
+ console.table(_items?_items:{});
+ console.groupEnd();
+ console.groupEnd();
+ return [status, _items?_items:{}];
+});
diff --git a/app_Web/src/mock/index.ts b/app_Web/src/mock/index.ts
index c2945eee9e752d2e4e2f671931220c40e6e14a86..1dd78f9a47e7c830c0c627a5a266301464395ff3 100644
--- a/app_Web/src/mock/index.ts
+++ b/app_Web/src/mock/index.ts
@@ -14,9 +14,14 @@ import './entity/products/products';
import './entity/sub-product-plans/sub-product-plans';
import './entity/story-specs/story-specs';
import './entity/branchs/branchs';
+import './entity/product-statss/product-statss';
import './entity/actions/actions';
+import './entity/groups/groups';
import './entity/case-steps/case-steps';
+import './entity/depts/depts';
+import './entity/companys/companys';
import './entity/storys/storys';
+import './entity/sub-tasks/sub-tasks';
import './entity/projects/projects';
import './entity/historys/historys';
import './entity/users/users';
@@ -26,6 +31,7 @@ import './entity/product-lifes/product-lifes';
import './entity/tasks/tasks';
import './entity/builds/builds';
import './entity/test-tasks/test-tasks';
+import './entity/project-statss/project-statss';
import './entity/bugs/bugs';
import './entity/ibz-docs/ibz-docs';
import './entity/releases/releases';
diff --git a/app_Web/src/mock/viewconfig/viewconfig.ts b/app_Web/src/mock/viewconfig/viewconfig.ts
index f7d1724fa53e46c9618a95d8ade2aae6d38ff069..719b121b1b2e789ae03e1fe4df81ad753e5bf39e 100644
--- a/app_Web/src/mock/viewconfig/viewconfig.ts
+++ b/app_Web/src/mock/viewconfig/viewconfig.ts
@@ -23,6 +23,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductExpEditView",
"viewtag": "00ac056d598228619b6c0dbfcd603e4c"
},
+ "companydepttreeexpview": {
+ "title": "组织部门树导航视图",
+ "caption": "公司",
+ "viewtype": "DETREEEXPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CompanyDeptTreeExpView",
+ "viewtag": "025443fdc6ac693e261108fbdf1b40ab"
+ },
"caseeditview": {
"title": "case编辑视图",
"caption": "测试用例",
@@ -79,6 +87,22 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProjectTaskTreeExpView",
"viewtag": "103bc77ad54de2476db1d4e9c788cd4e"
},
+ "bugmaineditview": {
+ "title": "Bug编辑",
+ "caption": "Bug编辑",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "BugMainEditView",
+ "viewtag": "122af527bf38b47ddc53c882847b490e"
+ },
+ "taskassigntaskview": {
+ "title": "指派任务",
+ "caption": "指派任务",
+ "viewtype": "DEOPTVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskAssignTaskView",
+ "viewtag": "12661bdb476cd339554799b417c6ea48"
+ },
"bugmaindashboardview": {
"title": "Bug数据看板视图",
"caption": "Bug",
@@ -87,6 +111,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "BugMainDashboardView",
"viewtag": "1540523a668e920d831510cfbec2c5e2"
},
+ "deptpickupview": {
+ "title": "dept数据选择视图",
+ "caption": "部门",
+ "viewtype": "DEPICKUPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "DeptPickupView",
+ "viewtag": "16b54862dad958907853dc7eb084a0c0"
+ },
"productplansubplancreateview": {
"title": "计划",
"caption": "产品计划",
@@ -143,6 +175,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "BugMPickupView",
"viewtag": "21d716ac12c793af54b112a5a3599674"
},
+ "taskmaineditview": {
+ "title": "任务",
+ "caption": "任务",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskMainEditView",
+ "viewtag": "21e00a7239d9737bbfda5c1608b4129c"
+ },
"moduleeditview": {
"title": "模块",
"caption": "模块",
@@ -183,6 +223,22 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "TaskMainInfoView9",
"viewtag": "321ab2e4e87a29fef8eed086e951a006"
},
+ "tasksubtasknewview": {
+ "title": "子任务",
+ "caption": "子任务",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskSubTaskNewView",
+ "viewtag": "35ba93bac795e0deb7297d2d471b7180"
+ },
+ "projectstatsmaindashboardview": {
+ "title": "项目统计数据看板视图",
+ "caption": "项目统计",
+ "viewtype": "DEPORTALVIEW",
+ "viewmodule": "ibiz",
+ "viewname": "ProjectStatsMainDashboardView",
+ "viewtag": "37df93bfc6d8126c9303eab0c5363df8"
+ },
"projectburndownchartview": {
"title": "燃尽图",
"caption": "项目",
@@ -199,6 +255,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProjectListExpView",
"viewtag": "3aafb12bb0db2be013c0f5ced8c7dc50"
},
+ "projectpickupgridview": {
+ "title": "project选择表格视图",
+ "caption": "项目",
+ "viewtype": "DEPICKUPGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ProjectPickupGridView",
+ "viewtag": "3b346aee2b79b7b6b59bc870b4c67f72"
+ },
"storymainview": {
"title": "需求数据看板视图",
"caption": "需求",
@@ -207,8 +271,24 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "StoryMainView",
"viewtag": "3f2ca3e560d9082bb56fbf7667a57a66"
},
+ "casemaingridview": {
+ "title": "功能测试",
+ "caption": "测试用例",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CaseMainGridView",
+ "viewtag": "417541fa331fc089b84936b8359403fa"
+ },
+ "bugbuglifeeditview9": {
+ "title": "Bug的一生",
+ "caption": "Bug",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "zentao",
+ "viewname": "BugBugLifeEditView9",
+ "viewtag": "443935a0b9d0fa8daf3131956a8bacc9"
+ },
"bugeditview": {
- "title": "bug编辑视图",
+ "title": "Bug",
"caption": "Bug",
"viewtype": "DEEDITVIEW",
"viewmodule": "zentao",
@@ -223,6 +303,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "StoryEditView",
"viewtag": "4863a523ac490ebce771717756f0c6a8"
},
+ "taskgridview": {
+ "title": "task表格视图",
+ "caption": "任务",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskGridView",
+ "viewtag": "4b01c8ae7e7e23b9c67dbca2ee90e41b"
+ },
"storygridview9_assignedtome": {
"title": "需求表格视图",
"caption": "需求",
@@ -231,6 +319,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "StoryGridView9_AssignedToMe",
"viewtag": "4b82e9acf6c784b138b365d6011b296b"
},
+ "companydeptusertreeexpview": {
+ "title": "组织部门人员树导航视图",
+ "caption": "公司",
+ "viewtype": "DETREEEXPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CompanyDeptUserTreeExpView",
+ "viewtag": "4cb497e84dfabd873bc62d5386d5551f"
+ },
"productplansubplangridview": {
"title": "子计划",
"caption": "产品计划",
@@ -295,6 +391,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductPlanSubPlanEditView",
"viewtag": "54c7ba4afb6222c4c0af04a78a0592df"
},
+ "companymaintabexpview": {
+ "title": "组织权限",
+ "caption": "组织权限",
+ "viewtype": "DETABEXPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CompanyMainTabExpView",
+ "viewtag": "56084e37dc061358abd4a3f5340b27e9"
+ },
"storypickupgridview": {
"title": "需求",
"caption": "需求",
@@ -311,6 +415,22 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "TaskMainDashboardView",
"viewtag": "575fecad655143bbd28f17c581725a4e"
},
+ "userpickupview": {
+ "title": "user数据选择视图",
+ "caption": "用户",
+ "viewtype": "DEPICKUPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "UserPickupView",
+ "viewtag": "57e77f1cea8cff268fbd744f326867fb"
+ },
+ "casemainnewview": {
+ "title": "功能测试",
+ "caption": "功能测试",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CaseMainNewView",
+ "viewtag": "5890a810365fec51e801d2cffce44fde"
+ },
"productstorytreeexpview": {
"title": "产品需求导航视图",
"caption": "产品",
@@ -319,6 +439,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductStoryTreeExpView",
"viewtag": "58a943454a652d4f4ce2702d6447c079"
},
+ "projectpickupview": {
+ "title": "project数据选择视图",
+ "caption": "项目",
+ "viewtype": "DEPICKUPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ProjectPickupView",
+ "viewtag": "5a8a29268a7563b62fc0160233958830"
+ },
"testtaskeditview": {
"title": "testtask编辑视图",
"caption": "测试版本",
@@ -327,6 +455,22 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "TestTaskEditView",
"viewtag": "5b139a407fa34f386f3f784f33841184"
},
+ "deptmaingridview": {
+ "title": "dept表格视图",
+ "caption": "部门",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "DeptMainGridView",
+ "viewtag": "5c2b20935d511794aeca60376bd81fef"
+ },
+ "productstatseditview9": {
+ "title": "产品统计编辑视图",
+ "caption": "产品统计",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "ibiz",
+ "viewname": "ProductStatsEditView9",
+ "viewtag": "5d468f620cc30181773d875b3bb8be6e"
+ },
"tasktasktypeganttview": {
"title": "任务甘特视图",
"caption": "任务",
@@ -343,6 +487,38 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "StoryMainView9_StorySpec",
"viewtag": "61f32b2b422e8f1a9825e1f704464a8c"
},
+ "productcasetreeexpview": {
+ "title": "产品需求导航视图",
+ "caption": "产品",
+ "viewtype": "DETREEEXPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ProductCaseTreeExpView",
+ "viewtag": "63b82c8ee288130faca83833ec1f837c"
+ },
+ "taskpivottableview": {
+ "title": "任务表格视图",
+ "caption": "任务",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskPivotTableView",
+ "viewtag": "64204774cc4b97f20aa3becb41b184d5"
+ },
+ "bugstepsinfoeditview": {
+ "title": "Bug编辑视图",
+ "caption": "重现步骤",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "BugStepsInfoEditView",
+ "viewtag": "6558930042f15c2297572f51d7e77df5"
+ },
+ "casebatchnewgridview": {
+ "title": "测试用例",
+ "caption": "测试用例",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CaseBatchNewGridView",
+ "viewtag": "66769499a681f12bd2ebff8859f1d4ea"
+ },
"productmaintabexpview": {
"title": "产品",
"caption": "产品",
@@ -351,6 +527,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductMainTabExpView",
"viewtag": "6c7b582273d0726bcf77214807cfe40c"
},
+ "casemaindashboardview": {
+ "title": "功能测试",
+ "caption": "功能测试",
+ "viewtype": "DEPORTALVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CaseMainDashboardView",
+ "viewtag": "6f78b25e86923ab600a2141d50fe49fd"
+ },
"actionhistroylistview": {
"title": "历史记录",
"caption": "系统日志",
@@ -415,6 +599,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ActionProjectTrendsListView",
"viewtag": "7d34636d1c24d613abf8d3fdc64ec7ba"
},
+ "productpickupview": {
+ "title": "product数据选择视图",
+ "caption": "产品",
+ "viewtype": "DEPICKUPVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ProductPickupView",
+ "viewtag": "7df0f0deee91304e0350f00baa8a92d6"
+ },
"storymainview_editmode": {
"title": "需求数据看板视图",
"caption": "需求",
@@ -447,6 +639,22 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductPlanGridView",
"viewtag": "81b0cee2fedff8f4902c0d735714e5af"
},
+ "groupmaingridview": {
+ "title": "group表格视图",
+ "caption": "群组",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "GroupMainGridView",
+ "viewtag": "8399a93b13ffd4ecea6c65e7804a1353"
+ },
+ "usereditview": {
+ "title": "user编辑视图",
+ "caption": "用户信息",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "UserEditView",
+ "viewtag": "83b1f6c353e9383e36b8d58eec845267"
+ },
"projectgridview": {
"title": "项目",
"caption": "项目",
@@ -463,6 +671,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProjectMainDashboardView",
"viewtag": "85ee867b09a2d6303c061d91374ec975"
},
+ "taskworkinfoeditview9": {
+ "title": "工时信息",
+ "caption": "工时信息",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "zentao",
+ "viewname": "TaskWorkInfoEditView9",
+ "viewtag": "8ca35f54383cecb05da77cdb1a6588fd"
+ },
"productleftsidebarlistview": {
"title": "所有产品",
"caption": "产品",
@@ -471,6 +687,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductLeftSidebarListView",
"viewtag": "8ca39819b87c5e3e8669fcd7409cf9a2"
},
+ "productpickupgridview": {
+ "title": "product选择表格视图",
+ "caption": "产品",
+ "viewtype": "DEPICKUPGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ProductPickupGridView",
+ "viewtag": "8d53a973712c13f448efb8e2182ccc0b"
+ },
"storymainview9": {
"title": "需求编辑视图",
"caption": "需求",
@@ -583,6 +807,30 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "TestTaskGridView",
"viewtag": "aae1ade339fe6a2ebe367489f6393db1"
},
+ "companymainview": {
+ "title": "公司数据看板视图",
+ "caption": "公司信息",
+ "viewtype": "DEPORTALVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CompanyMainView",
+ "viewtag": "abc58a7e8f6c6860ef5ea3ead20e5ffd"
+ },
+ "taskopentaskview": {
+ "title": "开始任务",
+ "caption": "开始任务",
+ "viewtype": "DEOPTVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskOpenTaskView",
+ "viewtag": "abca63015fc84466991c6479f955f6d0"
+ },
+ "companyeditview": {
+ "title": "company编辑视图",
+ "caption": "公司信息",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "CompanyEditView",
+ "viewtag": "b39a7a76c2175803831235ae3aeef05b"
+ },
"productdashboardinfomainview9": {
"title": "产品信息",
"caption": "产品",
@@ -591,6 +839,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductDashboardInfoMainView9",
"viewtag": "b5d2389c0dd12ae614b319090ecc2361"
},
+ "taskclosepausecancelview": {
+ "title": "任务选项操作视图",
+ "caption": "任务",
+ "viewtype": "DEOPTVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskClosePauseCancelView",
+ "viewtag": "b78229d8342c2c13ddd8e403a7d853bc"
+ },
"storympickupview": {
"title": "关联需求",
"caption": "关联需求",
@@ -607,6 +863,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "StoryPlanSubGridView",
"viewtag": "b9e94e3713c82ebab002631bda872b94"
},
+ "depteditview": {
+ "title": "dept编辑视图",
+ "caption": "部门信息",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "DeptEditView",
+ "viewtag": "bae11f9447355ecc9e2cdff2490e6d11"
+ },
"productmaindashboardview": {
"title": "产品数据看板视图",
"caption": "产品",
@@ -615,6 +879,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductMainDashboardView",
"viewtag": "bc36be2ee4a78e69c13665a8ad03ab6a"
},
+ "userpickupgridview": {
+ "title": "user选择表格视图",
+ "caption": "用户",
+ "viewtype": "DEPICKUPGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "UserPickupGridView",
+ "viewtag": "bd3043a0eb4bed8abd005228a4e729af"
+ },
"modulepickupgridview": {
"title": "模块选择",
"caption": "模块",
@@ -631,6 +903,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "BugGridView",
"viewtag": "c9410c9f72535adf1fff569d5243edd1"
},
+ "taskdoneview": {
+ "title": "完成任务",
+ "caption": "完成任务",
+ "viewtype": "DEOPTVIEW",
+ "viewmodule": "zentao",
+ "viewname": "TaskDoneView",
+ "viewtag": "c9c256aef78723e1bf9ddc1d38667c3f"
+ },
"modulepickupview": {
"title": "模块选择",
"caption": "模块",
@@ -671,6 +951,22 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "TestPortalView",
"viewtag": "D1283E46-401A-4CFD-A7A1-BF5B90197463"
},
+ "groupeditview": {
+ "title": "group编辑视图",
+ "caption": "分组信息",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "GroupEditView",
+ "viewtag": "d2de1e2449f8c1cf2e0310f5477eef4b"
+ },
+ "usermaingridview": {
+ "title": "user表格视图",
+ "caption": "用户",
+ "viewtype": "DEGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "UserMainGridView",
+ "viewtag": "d364bfbf7092ee45cd0acae49fac77ab"
+ },
"branchpmeditview": {
"title": "平台管理",
"caption": "产品的分支和平台信息",
@@ -679,6 +975,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "BranchPMEditView",
"viewtag": "d4cb26555e6d81a172652580cf7d9f7f"
},
+ "companymainview9": {
+ "title": "公司编辑视图",
+ "caption": "公司",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "zentao",
+ "viewname": "CompanyMainView9",
+ "viewtag": "d7f401156de51eb49cdb10a6fb9263ee"
+ },
"storymain2gridview": {
"title": "story表格视图",
"caption": "需求",
@@ -687,6 +991,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "StoryMain2GridView",
"viewtag": "dea346284a2fbb66467c4838c1b3f577"
},
+ "actionalltrendslistview": {
+ "title": "系统日志列表视图",
+ "caption": "系统日志",
+ "viewtype": "DELISTVIEW",
+ "viewmodule": "zentao",
+ "viewname": "ActionAllTrendsListView",
+ "viewtag": "df57be69540a2e80fee7f3575162b93a"
+ },
"producteditview": {
"title": "product编辑视图",
"caption": "产品",
@@ -703,6 +1015,30 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductListExpView",
"viewtag": "e396b6f39451e3bf963aec602106adf0"
},
+ "projectstatseditview9": {
+ "title": "项目统计编辑视图",
+ "caption": "项目统计",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "ibiz",
+ "viewname": "ProjectStatsEditView9",
+ "viewtag": "e444135470a806822b9b950e15c42a3e"
+ },
+ "storyeditview_storychange": {
+ "title": "需求编辑视图",
+ "caption": "变更",
+ "viewtype": "DEEDITVIEW",
+ "viewmodule": "zentao",
+ "viewname": "StoryEditView_StoryChange",
+ "viewtag": "e54598b1e6d38d7c6ce8231b531b46bd"
+ },
+ "deptpickupgridview": {
+ "title": "dept选择表格视图",
+ "caption": "部门",
+ "viewtype": "DEPICKUPGRIDVIEW",
+ "viewmodule": "zentao",
+ "viewname": "DeptPickupGridView",
+ "viewtag": "e644f7976b08c3d7f14fd7e1d5329da8"
+ },
"taskeditview": {
"title": "task编辑视图",
"caption": "任务",
@@ -711,6 +1047,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "TaskEditView",
"viewtag": "ea141fddc78fd1af4d06e494baf12cc1"
},
+ "bugdashboardmaineditview9": {
+ "title": "主信息",
+ "caption": "Bug",
+ "viewtype": "DEEDITVIEW9",
+ "viewmodule": "zentao",
+ "viewname": "BugDashboardMainEditView9",
+ "viewtag": "ec9a5987de12c718961f243f4034efea"
+ },
"casestepgridview": {
"title": "casestep表格视图",
"caption": "用例步骤",
diff --git a/app_Web/src/model/chart-detail/chart-series.ts b/app_Web/src/model/chart-detail/chart-series.ts
index a514988b0fc05329072ed3947f85439fec362c3a..8e2a8632ed242ea8def2805d968b38ddce43802e 100644
--- a/app_Web/src/model/chart-detail/chart-series.ts
+++ b/app_Web/src/model/chart-detail/chart-series.ts
@@ -122,6 +122,14 @@ export class ChartSeries {
*/
public seriesLayoutBy:string = "column";
+ /**
+ * 序列代码表
+ *
+ * @type {*}
+ * @memberof ChartSeries
+ */
+ public seriesCodeList:any;
+
/**
* Creates an instance of ChartSeries.
* ChartSeries 实例
@@ -144,6 +152,7 @@ export class ChartSeries {
this.dataSetFields = opts.dataSetFields ? opts.dataSetFields:[];
this.seriesMap = opts.seriesMap ? opts.seriesMap:null;
this.seriesIndex = opts.seriesIndex? opts.seriesIndex:0;
+ this.seriesCodeList = opts.seriesCodeList?opts.seriesCodeList:null;
}
/**
@@ -285,4 +294,14 @@ export class ChartSeries {
public setSeriesIndex(state: number): void {
this.seriesIndex = state;
}
+
+ /**
+ * 设置序列代码表
+ *
+ * @param {any} state
+ * @memberof ChartSeries
+ */
+ public setSeriesCodeList(state: any): void {
+ this.seriesCodeList = state;
+ }
}
\ No newline at end of file
diff --git a/app_Web/src/pages/ibiz/product-life-road-map-list-view/product-life-road-map-list-view-base.vue b/app_Web/src/pages/ibiz/product-life-road-map-list-view/product-life-road-map-list-view-base.vue
index 42df74d92959e32dcda2f523aea182b83940a9fd..dc2003ee59e595d16ece78a97294b24606feedfd 100644
--- a/app_Web/src/pages/ibiz/product-life-road-map-list-view/product-life-road-map-list-view-base.vue
+++ b/app_Web/src/pages/ibiz/product-life-road-map-list-view/product-life-road-map-list-view-base.vue
@@ -164,10 +164,12 @@ export default class ProductLifeRoadMapListViewBase extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -273,6 +275,9 @@ export default class ProductLifeRoadMapListViewBase extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
diff --git a/app_Web/src/pages/ibiz/product-life-road-map-list-view9/product-life-road-map-list-view9-base.vue b/app_Web/src/pages/ibiz/product-life-road-map-list-view9/product-life-road-map-list-view9-base.vue
index 462f4ae59d6de2785d0b556cad777b2f5ee9ba36..9642241b7596023161e0e3982dcbe5ec90744982 100644
--- a/app_Web/src/pages/ibiz/product-life-road-map-list-view9/product-life-road-map-list-view9-base.vue
+++ b/app_Web/src/pages/ibiz/product-life-road-map-list-view9/product-life-road-map-list-view9-base.vue
@@ -160,10 +160,12 @@ export default class ProductLifeRoadMapListView9Base extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -268,6 +270,9 @@ export default class ProductLifeRoadMapListView9Base extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
diff --git a/app_Web/src/pages/ibiz/product-stats-edit-view9/product-stats-edit-view9-base.vue b/app_Web/src/pages/ibiz/product-stats-edit-view9/product-stats-edit-view9-base.vue
new file mode 100644
index 0000000000000000000000000000000000000000..0a0da526edc046450b6839e1a73a5983c7b2f961
--- /dev/null
+++ b/app_Web/src/pages/ibiz/product-stats-edit-view9/product-stats-edit-view9-base.vue
@@ -0,0 +1,536 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_Web/src/pages/ibiz/product-stats-edit-view9/product-stats-edit-view9.less b/app_Web/src/pages/ibiz/product-stats-edit-view9/product-stats-edit-view9.less
new file mode 100644
index 0000000000000000000000000000000000000000..08bbb2ba53d30e71b1045a5fe27aaba3cf0f4db1
--- /dev/null
+++ b/app_Web/src/pages/ibiz/product-stats-edit-view9/product-stats-edit-view9.less
@@ -0,0 +1,6 @@
+// 避免空文件,后台不让空文件过
+.product-stats-edit-view9 {
+ --product-stats-edit-view9: 0;
+}
+
+
diff --git a/app_Web/src/pages/ibiz/product-stats-edit-view9/product-stats-edit-view9.vue b/app_Web/src/pages/ibiz/product-stats-edit-view9/product-stats-edit-view9.vue
new file mode 100644
index 0000000000000000000000000000000000000000..85c2c739655d755ea973699e6f01229dd7a61280
--- /dev/null
+++ b/app_Web/src/pages/ibiz/product-stats-edit-view9/product-stats-edit-view9.vue
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app_Web/src/pages/ibiz/project-stats-edit-view9/project-stats-edit-view9-base.vue b/app_Web/src/pages/ibiz/project-stats-edit-view9/project-stats-edit-view9-base.vue
new file mode 100644
index 0000000000000000000000000000000000000000..2500d0cb6310223486e909fb6f8ed2d63249aa1f
--- /dev/null
+++ b/app_Web/src/pages/ibiz/project-stats-edit-view9/project-stats-edit-view9-base.vue
@@ -0,0 +1,535 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_Web/src/pages/ibiz/project-stats-edit-view9/project-stats-edit-view9.less b/app_Web/src/pages/ibiz/project-stats-edit-view9/project-stats-edit-view9.less
new file mode 100644
index 0000000000000000000000000000000000000000..87c6714e653ba8a95baf86f3bfd884b3755eb64a
--- /dev/null
+++ b/app_Web/src/pages/ibiz/project-stats-edit-view9/project-stats-edit-view9.less
@@ -0,0 +1,6 @@
+// 避免空文件,后台不让空文件过
+.project-stats-edit-view9 {
+ --project-stats-edit-view9: 0;
+}
+
+
diff --git a/app_Web/src/pages/ibiz/project-stats-edit-view9/project-stats-edit-view9.vue b/app_Web/src/pages/ibiz/project-stats-edit-view9/project-stats-edit-view9.vue
new file mode 100644
index 0000000000000000000000000000000000000000..12dd095be150d5d4369794fc89bcce4f3cdf32ad
--- /dev/null
+++ b/app_Web/src/pages/ibiz/project-stats-edit-view9/project-stats-edit-view9.vue
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app_Web/src/pages/ibiz/project-stats-main-dashboard-view/project-stats-main-dashboard-view-base.vue b/app_Web/src/pages/ibiz/project-stats-main-dashboard-view/project-stats-main-dashboard-view-base.vue
new file mode 100644
index 0000000000000000000000000000000000000000..f1de4e5b9efe9adfc5e9094336af9ffcda91f5eb
--- /dev/null
+++ b/app_Web/src/pages/ibiz/project-stats-main-dashboard-view/project-stats-main-dashboard-view-base.vue
@@ -0,0 +1,479 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_Web/src/pages/ibiz/project-stats-main-dashboard-view/project-stats-main-dashboard-view.less b/app_Web/src/pages/ibiz/project-stats-main-dashboard-view/project-stats-main-dashboard-view.less
new file mode 100644
index 0000000000000000000000000000000000000000..a561a0cde391b12a470f3075275609184a13460d
--- /dev/null
+++ b/app_Web/src/pages/ibiz/project-stats-main-dashboard-view/project-stats-main-dashboard-view.less
@@ -0,0 +1,6 @@
+// 避免空文件,后台不让空文件过
+.project-stats-main-dashboard-view {
+ --project-stats-main-dashboard-view: 0;
+}
+
+
diff --git a/app_Web/src/pages/ibiz/project-stats-main-dashboard-view/project-stats-main-dashboard-view.vue b/app_Web/src/pages/ibiz/project-stats-main-dashboard-view/project-stats-main-dashboard-view.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7a69105a04983263fcceb6a6d3c9296f36672194
--- /dev/null
+++ b/app_Web/src/pages/ibiz/project-stats-main-dashboard-view/project-stats-main-dashboard-view.vue
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app_Web/src/pages/ungroup/test-portal-view/test-portal-view-base.vue b/app_Web/src/pages/ungroup/test-portal-view/test-portal-view-base.vue
index 96a11dfaa1a5fa6045ca1c405651da5b7d186dea..23dfe101f5fcf720b95a2c5282d82ec552b8fdc5 100644
--- a/app_Web/src/pages/ungroup/test-portal-view/test-portal-view-base.vue
+++ b/app_Web/src/pages/ungroup/test-portal-view/test-portal-view-base.vue
@@ -143,10 +143,12 @@ export default class TestPortalViewBase extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -229,6 +231,9 @@ export default class TestPortalViewBase extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
diff --git a/app_Web/src/pages/zentao/action-all-trends-list-view/action-all-trends-list-view-base.vue b/app_Web/src/pages/zentao/action-all-trends-list-view/action-all-trends-list-view-base.vue
new file mode 100644
index 0000000000000000000000000000000000000000..34575c3f2eea1d8f0acd665104ba12994c4bc8a3
--- /dev/null
+++ b/app_Web/src/pages/zentao/action-all-trends-list-view/action-all-trends-list-view-base.vue
@@ -0,0 +1,642 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_Web/src/pages/zentao/action-all-trends-list-view/action-all-trends-list-view.less b/app_Web/src/pages/zentao/action-all-trends-list-view/action-all-trends-list-view.less
new file mode 100644
index 0000000000000000000000000000000000000000..240fa5775b59c0dce1d2c150081b4930ebffa506
--- /dev/null
+++ b/app_Web/src/pages/zentao/action-all-trends-list-view/action-all-trends-list-view.less
@@ -0,0 +1,6 @@
+// 避免空文件,后台不让空文件过
+.action-all-trends-list-view {
+ --action-all-trends-list-view: 0;
+}
+
+
diff --git a/app_Web/src/pages/zentao/action-all-trends-list-view/action-all-trends-list-view.vue b/app_Web/src/pages/zentao/action-all-trends-list-view/action-all-trends-list-view.vue
new file mode 100644
index 0000000000000000000000000000000000000000..b08e99a3e4325db450b5d11b537bcd18c9ca9b07
--- /dev/null
+++ b/app_Web/src/pages/zentao/action-all-trends-list-view/action-all-trends-list-view.vue
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app_Web/src/pages/zentao/action-edit-view/action-edit-view-base.vue b/app_Web/src/pages/zentao/action-edit-view/action-edit-view-base.vue
index 21f02cfef9e5e36d5f19bfd5a14c41e4f998d727..4eacdd4576ffcd3fd53a47776dd574d6b67fa019 100644
--- a/app_Web/src/pages/zentao/action-edit-view/action-edit-view-base.vue
+++ b/app_Web/src/pages/zentao/action-edit-view/action-edit-view-base.vue
@@ -213,10 +213,12 @@ export default class ActionEditViewBase extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -268,7 +270,7 @@ export default class ActionEditViewBase extends Vue {
tbitem5: { name: 'tbitem5', caption: '保存并关闭', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'SaveAndExit', target: '' } },
tbitem6: { name: 'tbitem6', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
- tbitem7: { name: 'tbitem7', caption: '删除并关闭', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'RemoveAndExit', target: 'SINGLEKEY' } },
+ tbitem7: { name: 'tbitem7', caption: '删除', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'RemoveAndExit', target: 'SINGLEKEY' } },
tbitem8: { name: 'tbitem8', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem12: { name: 'tbitem12', caption: '新建', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'New', target: '' } },
@@ -353,6 +355,9 @@ export default class ActionEditViewBase extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
@@ -1091,7 +1096,7 @@ export default class ActionEditViewBase extends Vue {
}
}
/**
- * 删除并关闭
+ * 删除
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
diff --git a/app_Web/src/pages/zentao/action-histroy-list-view/action-histroy-list-view-base.vue b/app_Web/src/pages/zentao/action-histroy-list-view/action-histroy-list-view-base.vue
index 7b9575a164d789bcb5f36bc456ddf4298223efaf..ca2899767d070b421dbb7ff288ef9bac4077814f 100644
--- a/app_Web/src/pages/zentao/action-histroy-list-view/action-histroy-list-view-base.vue
+++ b/app_Web/src/pages/zentao/action-histroy-list-view/action-histroy-list-view-base.vue
@@ -10,6 +10,8 @@
updateAction="Update"
fetchAction="FetchType"
:showBusyIndicator="true"
+ :newdata="newdata"
+ :opendata="opendata"
name="list"
ref='list'
@selectionchange="list_selectionchange($event)"
@@ -163,10 +165,12 @@ export default class ActionHistroyListViewBase extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -272,6 +276,9 @@ export default class ActionHistroyListViewBase extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
@@ -505,6 +512,7 @@ export default class ActionHistroyListViewBase extends Vue {
data.srfsourcekey = args[0].srfsourcekey;
}
let curViewParam = JSON.parse(JSON.stringify(this.context));
+ delete curViewParam.action;
if(args.length >0){
Object.assign(curViewParam,args[0]);
}
diff --git a/app_Web/src/pages/zentao/action-product-trends-list-view/action-product-trends-list-view-base.vue b/app_Web/src/pages/zentao/action-product-trends-list-view/action-product-trends-list-view-base.vue
index 1d27421483468cf51c8f450abd31705bcaa73bd5..1d6b28a54760b13f71a1deb5b0160386ae719356 100644
--- a/app_Web/src/pages/zentao/action-product-trends-list-view/action-product-trends-list-view-base.vue
+++ b/app_Web/src/pages/zentao/action-product-trends-list-view/action-product-trends-list-view-base.vue
@@ -10,6 +10,8 @@
updateAction="Update"
fetchAction="FetchProductTrends"
:showBusyIndicator="true"
+ :newdata="newdata"
+ :opendata="opendata"
name="list"
ref='list'
@selectionchange="list_selectionchange($event)"
@@ -162,10 +164,12 @@ export default class ActionProductTrendsListViewBase extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -270,6 +274,9 @@ export default class ActionProductTrendsListViewBase extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
@@ -503,6 +510,7 @@ export default class ActionProductTrendsListViewBase extends Vue {
data.srfsourcekey = args[0].srfsourcekey;
}
let curViewParam = JSON.parse(JSON.stringify(this.context));
+ delete curViewParam.action;
if(args.length >0){
Object.assign(curViewParam,args[0]);
}
diff --git a/app_Web/src/pages/zentao/action-product-trends-list-view9/action-product-trends-list-view9-base.vue b/app_Web/src/pages/zentao/action-product-trends-list-view9/action-product-trends-list-view9-base.vue
index 7c69bac64f30238e00b2f336f2b2bc2768972484..e2d33638d72e7e36152e828ea37f524bd22bd4b7 100644
--- a/app_Web/src/pages/zentao/action-product-trends-list-view9/action-product-trends-list-view9-base.vue
+++ b/app_Web/src/pages/zentao/action-product-trends-list-view9/action-product-trends-list-view9-base.vue
@@ -10,6 +10,8 @@
updateAction="Update"
fetchAction="FetchProductTrends"
:showBusyIndicator="true"
+ :newdata="newdata"
+ :opendata="opendata"
name="list"
ref='list'
@selectionchange="list_selectionchange($event)"
@@ -159,10 +161,12 @@ export default class ActionProductTrendsListView9Base extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -266,6 +270,9 @@ export default class ActionProductTrendsListView9Base extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
@@ -506,6 +513,7 @@ export default class ActionProductTrendsListView9Base extends Vue {
data.srfsourcekey = args[0].srfsourcekey;
}
let curViewParam = JSON.parse(JSON.stringify(this.context));
+ delete curViewParam.action;
if(args.length >0){
Object.assign(curViewParam,args[0]);
}
diff --git a/app_Web/src/pages/zentao/action-project-trends-list-view/action-project-trends-list-view-base.vue b/app_Web/src/pages/zentao/action-project-trends-list-view/action-project-trends-list-view-base.vue
index 67ce18a7716c59324832ffc810b06504d1a4e8a4..0c5fa336eba96389ba5033d97b72c720283153e5 100644
--- a/app_Web/src/pages/zentao/action-project-trends-list-view/action-project-trends-list-view-base.vue
+++ b/app_Web/src/pages/zentao/action-project-trends-list-view/action-project-trends-list-view-base.vue
@@ -10,6 +10,8 @@
updateAction="Update"
fetchAction="FetchProjectTrends"
:showBusyIndicator="true"
+ :newdata="newdata"
+ :opendata="opendata"
name="list"
ref='list'
@selectionchange="list_selectionchange($event)"
@@ -162,10 +164,12 @@ export default class ActionProjectTrendsListViewBase extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -270,6 +274,9 @@ export default class ActionProjectTrendsListViewBase extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
@@ -503,6 +510,7 @@ export default class ActionProjectTrendsListViewBase extends Vue {
data.srfsourcekey = args[0].srfsourcekey;
}
let curViewParam = JSON.parse(JSON.stringify(this.context));
+ delete curViewParam.action;
if(args.length >0){
Object.assign(curViewParam,args[0]);
}
diff --git a/app_Web/src/pages/zentao/action-project-trends-list-view9/action-project-trends-list-view9-base.vue b/app_Web/src/pages/zentao/action-project-trends-list-view9/action-project-trends-list-view9-base.vue
index e65d4ef6fdbc20926c4213b291832fe9d5108610..586f4b5afbf8672b685c4108a60ca48f68bc62ff 100644
--- a/app_Web/src/pages/zentao/action-project-trends-list-view9/action-project-trends-list-view9-base.vue
+++ b/app_Web/src/pages/zentao/action-project-trends-list-view9/action-project-trends-list-view9-base.vue
@@ -10,6 +10,8 @@
updateAction="Update"
fetchAction="FetchProjectTrends"
:showBusyIndicator="true"
+ :newdata="newdata"
+ :opendata="opendata"
name="list"
ref='list'
@selectionchange="list_selectionchange($event)"
@@ -159,10 +161,12 @@ export default class ActionProjectTrendsListView9Base extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -266,6 +270,9 @@ export default class ActionProjectTrendsListView9Base extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
@@ -506,6 +513,7 @@ export default class ActionProjectTrendsListView9Base extends Vue {
data.srfsourcekey = args[0].srfsourcekey;
}
let curViewParam = JSON.parse(JSON.stringify(this.context));
+ delete curViewParam.action;
if(args.length >0){
Object.assign(curViewParam,args[0]);
}
diff --git a/app_Web/src/pages/zentao/branch-pmedit-view/branch-pmedit-view-base.vue b/app_Web/src/pages/zentao/branch-pmedit-view/branch-pmedit-view-base.vue
index e5463faa52e6810b2660ea7af06e923a9772a1a8..665bb1ecc511ef2c216174eeff151111cbf7128f 100644
--- a/app_Web/src/pages/zentao/branch-pmedit-view/branch-pmedit-view-base.vue
+++ b/app_Web/src/pages/zentao/branch-pmedit-view/branch-pmedit-view-base.vue
@@ -173,10 +173,12 @@ export default class BranchPMEditViewBase extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -288,6 +290,9 @@ export default class BranchPMEditViewBase extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
diff --git a/app_Web/src/pages/zentao/branch-pmgrid-view/branch-pmgrid-view-base.vue b/app_Web/src/pages/zentao/branch-pmgrid-view/branch-pmgrid-view-base.vue
index a28d050c5f2fa30f8535842a880e9d671790a403..059aef49b54ff87d21e15a001c0ee3b91dd951f9 100644
--- a/app_Web/src/pages/zentao/branch-pmgrid-view/branch-pmgrid-view-base.vue
+++ b/app_Web/src/pages/zentao/branch-pmgrid-view/branch-pmgrid-view-base.vue
@@ -203,10 +203,12 @@ export default class BranchPMGridViewBase extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -329,6 +331,9 @@ export default class BranchPMGridViewBase extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
@@ -684,6 +689,7 @@ export default class BranchPMGridViewBase extends Vue {
data.srfsourcekey = args[0].srfsourcekey;
}
let curViewParam = JSON.parse(JSON.stringify(this.context));
+ delete curViewParam.branch;
if(args.length >0){
Object.assign(curViewParam,args[0]);
}
diff --git a/app_Web/src/pages/zentao/bug-bug-life-edit-view9/bug-bug-life-edit-view9-base.vue b/app_Web/src/pages/zentao/bug-bug-life-edit-view9/bug-bug-life-edit-view9-base.vue
new file mode 100644
index 0000000000000000000000000000000000000000..c22fc1dbeddf23e348b04a48ed23680e0e10f728
--- /dev/null
+++ b/app_Web/src/pages/zentao/bug-bug-life-edit-view9/bug-bug-life-edit-view9-base.vue
@@ -0,0 +1,536 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_Web/src/pages/zentao/bug-bug-life-edit-view9/bug-bug-life-edit-view9.less b/app_Web/src/pages/zentao/bug-bug-life-edit-view9/bug-bug-life-edit-view9.less
new file mode 100644
index 0000000000000000000000000000000000000000..9375538a0a53416b1c15983eaf0dd6e4eca77b01
--- /dev/null
+++ b/app_Web/src/pages/zentao/bug-bug-life-edit-view9/bug-bug-life-edit-view9.less
@@ -0,0 +1,6 @@
+// 避免空文件,后台不让空文件过
+.bug-bug-life-edit-view9 {
+ --bug-bug-life-edit-view9: 0;
+}
+
+
diff --git a/app_Web/src/pages/zentao/bug-bug-life-edit-view9/bug-bug-life-edit-view9.vue b/app_Web/src/pages/zentao/bug-bug-life-edit-view9/bug-bug-life-edit-view9.vue
new file mode 100644
index 0000000000000000000000000000000000000000..89bf98bb2ce3a322db30147ce20f3c16bc05ece3
--- /dev/null
+++ b/app_Web/src/pages/zentao/bug-bug-life-edit-view9/bug-bug-life-edit-view9.vue
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app_Web/src/pages/zentao/bug-dashboard-main-edit-view9/bug-dashboard-main-edit-view9-base.vue b/app_Web/src/pages/zentao/bug-dashboard-main-edit-view9/bug-dashboard-main-edit-view9-base.vue
new file mode 100644
index 0000000000000000000000000000000000000000..6532d85fe43e2cf911e22e1445e2edc81cb2a7bd
--- /dev/null
+++ b/app_Web/src/pages/zentao/bug-dashboard-main-edit-view9/bug-dashboard-main-edit-view9-base.vue
@@ -0,0 +1,536 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_Web/src/pages/zentao/bug-dashboard-main-edit-view9/bug-dashboard-main-edit-view9.less b/app_Web/src/pages/zentao/bug-dashboard-main-edit-view9/bug-dashboard-main-edit-view9.less
new file mode 100644
index 0000000000000000000000000000000000000000..dd1cd18a47ac65179ecf899aec00c19b8dc1ce41
--- /dev/null
+++ b/app_Web/src/pages/zentao/bug-dashboard-main-edit-view9/bug-dashboard-main-edit-view9.less
@@ -0,0 +1,6 @@
+// 避免空文件,后台不让空文件过
+.bug-dashboard-main-edit-view9 {
+ --bug-dashboard-main-edit-view9: 0;
+}
+
+
diff --git a/app_Web/src/pages/zentao/bug-dashboard-main-edit-view9/bug-dashboard-main-edit-view9.vue b/app_Web/src/pages/zentao/bug-dashboard-main-edit-view9/bug-dashboard-main-edit-view9.vue
new file mode 100644
index 0000000000000000000000000000000000000000..f7f51f82a9d505c8dc90077ffd1129ad4f6726ce
--- /dev/null
+++ b/app_Web/src/pages/zentao/bug-dashboard-main-edit-view9/bug-dashboard-main-edit-view9.vue
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app_Web/src/pages/zentao/bug-edit-view/bug-edit-view-base.vue b/app_Web/src/pages/zentao/bug-edit-view/bug-edit-view-base.vue
index fa3ba6af71ac5af379df1da087266283d9bc3e11..a10d3f3e859b122fb8739122cef94bf905cf5834 100644
--- a/app_Web/src/pages/zentao/bug-edit-view/bug-edit-view-base.vue
+++ b/app_Web/src/pages/zentao/bug-edit-view/bug-edit-view-base.vue
@@ -1,50 +1,13 @@
-
+
+
+ {{$t(model.srfTitle)}}
+
-
-
- {{$t('entities.bug.editviewtoolbar_toolbar.tbitem3.caption')}}
-
-
-
- {{$t('entities.bug.editviewtoolbar_toolbar.tbitem4.caption')}}
-
-
+
- {{$t('entities.bug.editviewtoolbar_toolbar.tbitem5.caption')}}
-
- |
-
- {{$t('entities.bug.editviewtoolbar_toolbar.tbitem7.caption')}}
-
- |
-
- {{$t('entities.bug.editviewtoolbar_toolbar.tbitem12.caption')}}
-
- |
-
- {{$t('entities.bug.editviewtoolbar_toolbar.tbitem14.caption')}}
-
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
- {{$t('entities.bug.editviewtoolbar_toolbar.tbitem22.caption')}}
+ {{$t('entities.bug.editviewtoolbar_toolbar.deuiaction1.caption')}}
@@ -210,10 +173,12 @@ export default class BugEditViewBase extends Vue {
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
- _this.parseViewParam();
- _this.engine.load();
+ this.$nextTick(()=>{
+ _this.parseViewParam();
+ _this.engine.load();
+
+ });
}
-
}
/**
@@ -258,32 +223,7 @@ export default class BugEditViewBase extends Vue {
* @memberof BugEditView
*/
public toolBarModels: any = {
- tbitem3: { name: 'tbitem3', caption: '保存', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Save', target: '' } },
-
- tbitem4: { name: 'tbitem4', caption: '保存并新建', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'SaveAndNew', target: '' } },
-
- tbitem5: { name: 'tbitem5', caption: '保存并关闭', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'SaveAndExit', target: '' } },
-
- tbitem6: { name: 'tbitem6', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
- tbitem7: { name: 'tbitem7', caption: '删除并关闭', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'RemoveAndExit', target: 'SINGLEKEY' } },
-
- tbitem8: { name: 'tbitem8', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
- tbitem12: { name: 'tbitem12', caption: '新建', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'New', target: '' } },
-
- tbitem13: { name: 'tbitem13', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
- tbitem14: { name: 'tbitem14', caption: '拷贝', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Copy', target: 'SINGLEKEY' } },
-
- tbitem16: { name: 'tbitem16', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
- tbitem23: { name: 'tbitem23', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'FirstRecord', target: 'SINGLEKEY' } },
-
- tbitem24: { name: 'tbitem24', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'PrevRecord', target: 'SINGLEKEY' } },
-
- tbitem25: { name: 'tbitem25', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'NextRecord', target: 'SINGLEKEY' } },
-
- tbitem26: { name: 'tbitem26', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'LastRecord', target: 'SINGLEKEY' } },
-
- tbitem21: { name: 'tbitem21', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
- tbitem22: { name: 'tbitem22', caption: '帮助', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Help', target: '' } },
+ deuiaction1: { name: 'deuiaction1', caption: '保存并关闭', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'SaveAndExit', target: '' } },
};
@@ -350,6 +290,9 @@ export default class BugEditViewBase extends Vue {
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
+ if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
+ Object.assign(this.context,this.$store.getters.getAppData().context);
+ }
this.handleCustomViewData();
return;
}
@@ -513,47 +456,8 @@ export default class BugEditViewBase extends Vue {
* @memberof BugEditViewBase
*/
public toolbar_click($event: any, $event2?: any) {
- if (Object.is($event.tag, 'tbitem3')) {
- this.toolbar_tbitem3_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem4')) {
- this.toolbar_tbitem4_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem5')) {
- this.toolbar_tbitem5_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem7')) {
- this.toolbar_tbitem7_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem9')) {
- this.toolbar_tbitem9_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem10')) {
- this.toolbar_tbitem10_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem12')) {
- this.toolbar_tbitem12_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem14')) {
- this.toolbar_tbitem14_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem15')) {
- this.toolbar_tbitem15_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem23')) {
- this.toolbar_tbitem23_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem24')) {
- this.toolbar_tbitem24_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem25')) {
- this.toolbar_tbitem25_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem26')) {
- this.toolbar_tbitem26_click(null, '', $event2);
- }
- if (Object.is($event.tag, 'tbitem22')) {
- this.toolbar_tbitem22_click(null, '', $event2);
+ if (Object.is($event.tag, 'deuiaction1')) {
+ this.toolbar_deuiaction1_click(null, '', $event2);
}
}
@@ -603,65 +507,7 @@ export default class BugEditViewBase extends Vue {
* @param {*} [$event]
* @memberof
*/
- public toolbar_tbitem3_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.Save(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem4_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.SaveAndNew(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem5_click(params: any = {}, tag?: any, $event?: any) {
+ public toolbar_deuiaction1_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
@@ -683,646 +529,37 @@ export default class BugEditViewBase extends Vue {
}
/**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem7_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.RemoveAndExit(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem9_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.SaveAndStart(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem10_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.ViewWFStep(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem12_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.New(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
+ * 保存并关闭
*
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
+ * @param {any[]} args 当前数据
+ * @param {any} contextJO 行为附加上下文
+ * @param {*} [params] 附加参数
+ * @param {*} [$event] 事件源
+ * @param {*} [xData] 执行行为所需当前部件
+ * @param {*} [actionContext] 执行行为上下文
+ * @memberof BugEditViewBase
*/
- public toolbar_tbitem14_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
+ public SaveAndExit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
+ if (xData && xData.saveAndExit instanceof Function) {
+ xData.saveAndExit().then((response: any) => {
+ if (!response || response.status !== 200) {
+ return;
+ }
+ if(window.parent){
+ window.parent.postMessage([{ ...response.data }],'*');
+ }
+ });
+ } else if (_this.saveAndExit && _this.saveAndExit instanceof Function) {
+ _this.saveAndExit().then((response: any) => {
+ if (!response || response.status !== 200) {
+ return;
+ }
+ if(window.parent){
+ window.parent.postMessage([{ ...response.data }],'*');
+ }
+ });
}
- // 界面行为
- this.Copy(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem15_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.Print(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem23_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.FirstRecord(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem24_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.PrevRecord(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem25_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.NextRecord(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem26_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.LastRecord(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 逻辑事件
- *
- * @param {*} [params={}]
- * @param {*} [tag]
- * @param {*} [$event]
- * @memberof
- */
- public toolbar_tbitem22_click(params: any = {}, tag?: any, $event?: any) {
- // 参数
- // 取数
- let datas: any[] = [];
- let xData: any = null;
- // _this 指向容器对象
- const _this: any = this;
- let paramJO:any = {};
-
- let contextJO:any = {};
- xData = this.$refs.form;
- if (xData.getDatas && xData.getDatas instanceof Function) {
- datas = [...xData.getDatas()];
- }
- if(params){
- datas = [params];
- }
- // 界面行为
- this.Help(datas, contextJO,paramJO, $event, xData,this,"Bug");
- }
-
- /**
- * 保存
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public Save(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- // 界面行为容器对象 _this
- const _this: any = this;
- if (xData && xData.save instanceof Function) {
- xData.save().then((response: any) => {
- if (!response || response.status !== 200) {
- return;
- }
- _this.$emit('viewdataschange', [{ ...response.data }]);
- });
- } else if (_this.save && _this.save instanceof Function) {
- _this.save();
- }
- }
-
- /**
- * 保存并新建
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public SaveAndNew(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- const _this: any = this;
- if (!xData || !(xData.saveAndNew instanceof Function)) {
- return;
- }
- xData.saveAndNew().then((response: any) => {
- if (!response || response.status !== 200) {
- _this.$emit('viewdataschange', JSON.stringify({status:'error',action:'saveAndNew'}));
- return;
- }
- _this.$emit('viewdataschange', JSON.stringify({status:'success',action:'saveAndNew',data:response.data}));
- if (xData.autoLoad instanceof Function) {
- xData.autoLoad();
- }
- });
- }
- /**
- * 保存并关闭
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public SaveAndExit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- const _this: any = this;
- if (xData && xData.saveAndExit instanceof Function) {
- xData.saveAndExit().then((response: any) => {
- if (!response || response.status !== 200) {
- return;
- }
- if(window.parent){
- window.parent.postMessage([{ ...response.data }],'*');
- }
- });
- } else if (_this.saveAndExit && _this.saveAndExit instanceof Function) {
- _this.saveAndExit().then((response: any) => {
- if (!response || response.status !== 200) {
- return;
- }
- if(window.parent){
- window.parent.postMessage([{ ...response.data }],'*');
- }
- });
- }
- }
- /**
- * 删除并关闭
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public RemoveAndExit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- const _this: any = this;
- if (xData && xData.removeAndExit instanceof Function) {
- xData.removeAndExit().then((response: any) => {
- if (!response || response.status !== 200) {
- return;
- }
- if(window.parent){
- window.parent.postMessage([{ ...response.data }],'*');
- }
- });
- } else if (_this.removeAndExit && _this.removeAndExit instanceof Function) {
- _this.removeAndExit().then((response: any) => {
- if (!response || response.status !== 200) {
- return;
- }
- if(window.parent){
- window.parent.postMessage([{ ...response.data }],'*');
- }
- });
- }
- }
- /**
- * 开始流程
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public SaveAndStart(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- const _this: any = this;
- if (!xData || !(xData.wfstart instanceof Function)) {
- return;
- }
- xData.wfstart(args).then((response: any) => {
- if (!response || response.status !== 200) {
- return;
- }
- const { data: _data } = response;
- if(window.parent){
- window.parent.postMessage({ ..._data },'*');
- }
- if (_this.viewdata) {
- _this.$emit('viewdataschange', [{ ..._data }]);
- _this.$emit('close');
- }else if (this.$tabPageExp) {
- this.$tabPageExp.onClose(this.$route.fullPath);
- }
- });
- }
- /**
- * 当前流程步骤
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public ViewWFStep(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- let _this:any = this;
- if (!xData || !(xData.wfsubmit instanceof Function)) {
- return;
- }
- xData.wfsubmit(args).then((response: any) => {
- if (!response || response.status !== 200) {
- return;
- }
- const { data: _data } = response;
-
- if (_this.viewdata) {
- _this.$emit('viewdataschange', [{ ..._data }]);
- _this.$emit('close');
- } else if (_this.$tabPageExp) {
- _this.$tabPageExp.onClose(_this.$route.fullPath);
- }
- });
- }
- /**
- * 新建
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public New(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- const _this: any = this;
- if (_this.newdata && _this.newdata instanceof Function) {
- const data: any = {};
- _this.newdata([{ ...data }],[{ ...data }], params, $event, xData);
- } else {
- _this.$Notice.error({ title: '错误', desc: 'newdata 视图处理逻辑不存在,请添加!' });
- }
- }
- /**
- * 拷贝
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public Copy(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- if (args.length === 0) {
- return;
- }
- const _this: any = this;
- if (_this.newdata && _this.newdata instanceof Function) {
- const data: any = {};
- if (args.length > 0) {
- Object.assign(data, { srfsourcekey: args[0].srfkey })
- actionContext.$store.commit('addCopyData', { srfkey: args[0].srfkey, copyData: args[0] });
- }
- _this.newdata([{ ...data }],[{ ...data }],params, $event, xData);
- } else if (xData && xData.copy instanceof Function) {
- if (args.length > 0) {
- actionContext.$store.commit('addCopyData', { srfkey: args[0].srfkey, copyData: args[0] });
- }
- xData.copy(args[0].srfkey);
- } else {
- _this.$Notice.error({ title: '错误', desc: 'opendata 视图处理逻辑不存在,请添加!' });
- }
- }
- /**
- * 打印
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public Print(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- let _this:any = this;
- if (!xData || !(xData.print instanceof Function) || !$event) {
- return ;
- }
- xData.print();
- }
- /**
- * 第一个记录
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public FirstRecord(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- this.$Notice.error({ title: '错误', desc: '暂不支持此项操作' });
- }
- /**
- * 上一个记录
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public PrevRecord(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- this.$Notice.error({ title: '错误', desc: '暂不支持此项操作' });
- }
-
- /**
- * 下一个记录
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public NextRecord(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- this.$Notice.error({ title: '错误', desc: '暂不支持此项操作' });
- }
-
- /**
- * 最后一个记录
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public LastRecord(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- this.$Notice.error({ title: '错误', desc: '暂不支持此项操作' });
- }
- /**
- * 帮助
- *
- * @param {any[]} args 当前数据
- * @param {any} contextJO 行为附加上下文
- * @param {*} [params] 附加参数
- * @param {*} [$event] 事件源
- * @param {*} [xData] 执行行为所需当前部件
- * @param {*} [actionContext] 执行行为上下文
- * @memberof BugEditViewBase
- */
- public Help(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
- this.$Notice.error({ title: '错误', desc: '帮助未支持' });
}
/**
diff --git a/app_Web/src/pages/zentao/bug-grid-view/bug-grid-view-base.vue b/app_Web/src/pages/zentao/bug-grid-view/bug-grid-view-base.vue
index 90e28e03401b4da30eacd08901f088b0ed063d29..ff182a07c9befe2c1d020d9654a0db6184dbcb8c 100644
--- a/app_Web/src/pages/zentao/bug-grid-view/bug-grid-view-base.vue
+++ b/app_Web/src/pages/zentao/bug-grid-view/bug-grid-view-base.vue
@@ -1,6 +1,9 @@
+
+
+