Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz企业中心
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz企业套件
iBiz企业中心
提交
85afcae4
提交
85afcae4
编写于
7月 02, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lab_gzf 发布系统代码
上级
0a774c2a
变更
59
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
59 个修改的文件
包含
4343 行增加
和
547 行删除
+4343
-547
data-dictionary.json
app_CRM/public/assets/json/data-dictionary.json
+174
-0
view-config.json
app_CRM/public/assets/json/view-config.json
+70
-0
filter-mode.vue
app_CRM/src/components/filter-tree/filter-mode.vue
+86
-0
filter-tree.less
app_CRM/src/components/filter-tree/filter-tree.less
+31
-0
filter-tree.vue
app_CRM/src/components/filter-tree/filter-tree.vue
+171
-0
knowledge-article-incident.ts
app_CRM/src/interface/entity/knowledge-article-incident.ts
+184
-0
knowledge-article.ts
app_CRM/src/interface/entity/knowledge-article.ts
+49
-1
en-US.ts
app_CRM/src/locale/lang/en-US.ts
+2
-0
zh-CN.ts
app_CRM/src/locale/lang/zh-CN.ts
+2
-0
codelist_en_US.ts
app_CRM/src/locale/lanres/codelist/codelist_en_US.ts
+22
-0
codelist_zh_CN.ts
app_CRM/src/locale/lanres/codelist/codelist_zh_CN.ts
+22
-0
incident_en_US.ts
...CRM/src/locale/lanres/entities/incident/incident_en_US.ts
+4
-0
incident_zh_CN.ts
...CRM/src/locale/lanres/entities/incident/incident_zh_CN.ts
+4
-0
knowledge-article-incident_en_US.ts
...edge-article-incident/knowledge-article-incident_en_US.ts
+120
-0
knowledge-article-incident_zh_CN.ts
...edge-article-incident/knowledge-article-incident_zh_CN.ts
+119
-0
knowledge-article_en_US.ts
...res/entities/knowledge-article/knowledge-article_en_US.ts
+75
-1
knowledge-article_zh_CN.ts
...res/entities/knowledge-article/knowledge-article_zh_CN.ts
+75
-1
codelist.ts
app_CRM/src/mock/codelist/codelist.ts
+174
-0
knowledge-article-incidents.ts
...nowledge-article-incidents/knowledge-article-incidents.ts
+651
-0
index.ts
app_CRM/src/mock/index.ts
+1
-0
viewconfig.ts
app_CRM/src/mock/viewconfig/viewconfig.ts
+56
-0
invoice-summary-view-base.tsx
...inance/invoice-summary-view/invoice-summary-view-base.tsx
+12
-0
sales-order-summary-view-base.tsx
...ales-order-summary-view/sales-order-summary-view-base.tsx
+12
-0
contact-service-base.ts
app_CRM/src/service/contact/contact-service-base.ts
+115
-115
entity-service-register.ts
app_CRM/src/service/entity-service-register.ts
+1
-0
ibiz-list-service-base.ts
app_CRM/src/service/ibiz-list/ibiz-list-service-base.ts
+82
-82
knowledge-article-incident-service-base.ts
...ticle-incident/knowledge-article-incident-service-base.ts
+227
-0
knowledge-article-incident-service.ts
...ge-article-incident/knowledge-article-incident-service.ts
+25
-0
knowledge-article-service-base.ts
...rvice/knowledge-article/knowledge-article-service-base.ts
+50
-0
opportunity-service-base.ts
app_CRM/src/service/opportunity/opportunity-service-base.ts
+194
-194
product-service-base.ts
app_CRM/src/service/product/product-service-base.ts
+50
-50
sales-literature-service-base.ts
...service/sales-literature/sales-literature-service-base.ts
+50
-50
html-container.vue
.../studio-core/components/html-container/html-container.vue
+6
-2
studio-drawer.less
...RM/src/studio-core/utils/studio-drawer/studio-drawer.less
+13
-0
studio-drawer.tsx
...CRM/src/studio-core/utils/studio-drawer/studio-drawer.tsx
+4
-0
MDViewBase.tsx
app_CRM/src/studio-core/view/MDViewBase.tsx
+4
-2
EditFormControlBase.tsx
app_CRM/src/studio-core/widgets/EditFormControlBase.tsx
+3
-4
default.less
app_CRM/src/styles/default.less
+1
-1
incident-ui-service-base.ts
app_CRM/src/uiservice/incident/incident-ui-service-base.ts
+1
-0
knowledge-article-incident-ui-service-base.ts
...le-incident/knowledge-article-incident-ui-service-base.ts
+212
-0
knowledge-article-incident-ui-service.ts
...article-incident/knowledge-article-incident-ui-service.ts
+21
-0
knowledge-article-ui-service-base.ts
...ce/knowledge-article/knowledge-article-ui-service-base.ts
+4
-0
ui-service-register.ts
app_CRM/src/uiservice/ui-service-register.ts
+1
-0
soinfo-dashboard.html
...idgets/sales-order/soinfo-dashboard/soinfo-dashboard.html
+1
-1
application-crm-prod.yml
...ntral-app-crm/src/main/resources/application-crm-prod.yml
+4
-0
KnowledgeArticle.java
...ab/businesscentral/core/base/domain/KnowledgeArticle.java
+92
-2
KnowledgeArticleSearchContext.java
...ntral/core/base/filter/KnowledgeArticleSearchContext.java
+85
-1
KnowledgeArticleServiceImpl.java
...l/core/base/service/impl/KnowledgeArticleServiceImpl.java
+73
-0
KnowledgeArticleIncident.java
...central/core/service/domain/KnowledgeArticleIncident.java
+30
-0
KnowledgeArticleIncidentSearchContext.java
...service/filter/KnowledgeArticleIncidentSearchContext.java
+28
-0
KnowledgeArticleIncidentServiceImpl.java
...ice/service/impl/KnowledgeArticleIncidentServiceImpl.java
+33
-0
h2_table.xml
...esscentral-core/src/main/resources/liquibase/h2_table.xml
+50
-34
KnowledgeArticleMapper.xml
...s/mapper/base/knowledgearticle/KnowledgeArticleMapper.xml
+3
-3
KnowledgeArticleIncidentMapper.xml
...owledgearticleincident/KnowledgeArticleIncidentMapper.xml
+3
-3
systemResource.json
...al-core/src/main/resources/permission/systemResource.json
+8
-0
KnowledgeArticleDTO.java
...b/businesscentral/centralapi/dto/KnowledgeArticleDTO.java
+96
-0
KnowledgeArticleIncidentDTO.java
...sscentral/centralapi/dto/KnowledgeArticleIncidentDTO.java
+344
-0
KnowledgeArticleIncidentMapping.java
...l/centralapi/mapping/KnowledgeArticleIncidentMapping.java
+16
-0
KnowledgeArticleIncidentResource.java
...ral/centralapi/rest/KnowledgeArticleIncidentResource.java
+297
-0
未找到文件。
app_CRM/public/assets/json/data-dictionary.json
浏览文件 @
85afcae4
...
...
@@ -1023,6 +1023,153 @@
}
]
},
{
"srfkey"
:
"Knowledgearticle__StatusCode"
,
"emptytext"
:
"未定义"
,
"codelisttype"
:
"static"
,
"items"
:
[
{
"id"
:
"4"
,
"label"
:
"审阅中"
,
"text"
:
"审阅中"
,
"data"
:
""
,
"codename"
:
"Item_4"
,
"value"
:
"4"
,
"disabled"
:
false
}
,
{
"id"
:
"7"
,
"label"
:
"已发布"
,
"text"
:
"已发布"
,
"data"
:
""
,
"codename"
:
"Item_7"
,
"value"
:
"7"
,
"disabled"
:
false
}
,
{
"id"
:
"12"
,
"label"
:
"已存档"
,
"text"
:
"已存档"
,
"data"
:
""
,
"codename"
:
"Item_12"
,
"value"
:
"12"
,
"disabled"
:
false
}
,
{
"id"
:
"5"
,
"label"
:
"已审批"
,
"text"
:
"已审批"
,
"data"
:
""
,
"codename"
:
"Item_5"
,
"value"
:
"5"
,
"disabled"
:
false
}
,
{
"id"
:
"11"
,
"label"
:
"已拒绝"
,
"text"
:
"已拒绝"
,
"data"
:
""
,
"codename"
:
"Item_11"
,
"value"
:
"11"
,
"disabled"
:
false
}
,
{
"id"
:
"14"
,
"label"
:
"已拒绝"
,
"text"
:
"已拒绝"
,
"data"
:
""
,
"codename"
:
"Item_14"
,
"value"
:
"14"
,
"disabled"
:
false
}
,
{
"id"
:
"1"
,
"label"
:
"已拟定"
,
"text"
:
"已拟定"
,
"data"
:
""
,
"codename"
:
"Item_1"
,
"value"
:
"1"
,
"disabled"
:
false
}
,
{
"id"
:
"13"
,
"label"
:
"已放弃"
,
"text"
:
"已放弃"
,
"data"
:
""
,
"codename"
:
"Item_13"
,
"value"
:
"13"
,
"disabled"
:
false
}
,
{
"id"
:
"6"
,
"label"
:
"已计划"
,
"text"
:
"已计划"
,
"data"
:
""
,
"codename"
:
"Item_6"
,
"value"
:
"6"
,
"disabled"
:
false
}
,
{
"id"
:
"10"
,
"label"
:
"已过期"
,
"text"
:
"已过期"
,
"data"
:
""
,
"codename"
:
"Item_10"
,
"value"
:
"10"
,
"disabled"
:
false
}
,
{
"id"
:
"9"
,
"label"
:
"正在更新"
,
"text"
:
"正在更新"
,
"data"
:
""
,
"codename"
:
"Item_9"
,
"value"
:
"9"
,
"disabled"
:
false
}
,
{
"id"
:
"2"
,
"label"
:
"草稿"
,
"text"
:
"草稿"
,
"data"
:
""
,
"codename"
:
"Item_2"
,
"value"
:
"2"
,
"disabled"
:
false
}
,
{
"id"
:
"3"
,
"label"
:
"需要审阅"
,
"text"
:
"需要审阅"
,
"data"
:
""
,
"codename"
:
"Item_3"
,
"value"
:
"3"
,
"disabled"
:
false
}
,
{
"id"
:
"8"
,
"label"
:
"需要审阅"
,
"text"
:
"需要审阅"
,
"data"
:
""
,
"codename"
:
"Item_8"
,
"value"
:
"8"
,
"disabled"
:
false
}
]
},
{
"srfkey"
:
"YesNo"
,
"emptytext"
:
"未定义"
,
...
...
@@ -3046,6 +3193,33 @@
}
]
},
{
"srfkey"
:
"Knowledgearticleincident__StatusCode"
,
"emptytext"
:
"未定义"
,
"codelisttype"
:
"static"
,
"items"
:
[
{
"id"
:
"2"
,
"label"
:
"停用"
,
"text"
:
"停用"
,
"data"
:
""
,
"codename"
:
"Item_2"
,
"value"
:
"2"
,
"disabled"
:
false
}
,
{
"id"
:
"1"
,
"label"
:
"有效"
,
"text"
:
"有效"
,
"data"
:
""
,
"codename"
:
"Item_1"
,
"value"
:
"1"
,
"disabled"
:
false
}
]
},
{
"srfkey"
:
"Account__Address1_ShippingMethodCode"
,
"emptytext"
:
"未定义"
,
...
...
app_CRM/public/assets/json/view-config.json
浏览文件 @
85afcae4
...
...
@@ -959,6 +959,16 @@
"viewtag"
:
"6978259896338a7ace85a9fbc5d70395"
,
"memo"
:
""
},
"knowledgearticleincidentgridview"
:
{
"title"
:
"知识文章事件表格视图"
,
"caption"
:
"知识文章事件"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"Service"
,
"viewname"
:
"KnowledgeArticleIncidentGridView"
,
"viewfilename"
:
"knowledge-article-incident-grid-view"
,
"viewtag"
:
"6c17740cc21fd25906f3feeec10a454a"
,
"memo"
:
"系统自动添加"
},
"opportunityproductopp_oppprogridview"
:
{
"title"
:
"商机产品表格视图"
,
"caption"
:
"商机产品"
,
...
...
@@ -1139,6 +1149,16 @@
"viewtag"
:
"7decb196037249b909762c9142adfe91"
,
"memo"
:
"系统自动添加"
},
"knowledgearticleincidenteditview"
:
{
"title"
:
"知识文章事件编辑视图"
,
"caption"
:
"知识文章事件"
,
"viewtype"
:
"DEEDITVIEW"
,
"viewmodule"
:
"Service"
,
"viewname"
:
"KnowledgeArticleIncidentEditView"
,
"viewfilename"
:
"knowledge-article-incident-edit-view"
,
"viewtag"
:
"7e6f9ab9d51be22efda1567e58cb29a2"
,
"memo"
:
"系统自动添加"
},
"centeralportal"
:
{
"title"
:
"仪表盘"
,
"caption"
:
"仪表盘"
,
...
...
@@ -1309,6 +1329,26 @@
"viewtag"
:
"9224b0b14d2d99014e051f8035ba5cbf"
,
"memo"
:
"系统自动添加"
},
"incidentpickupview"
:
{
"title"
:
"案例数据选择视图"
,
"caption"
:
"案例"
,
"viewtype"
:
"DEPICKUPVIEW"
,
"viewmodule"
:
"Service"
,
"viewname"
:
"IncidentPickupView"
,
"viewfilename"
:
"incident-pickup-view"
,
"viewtag"
:
"922d0c8c2262ba83063f6cb3557a450b"
,
"memo"
:
"系统自动添加"
},
"knowledgearticleinfoview"
:
{
"title"
:
"知识文章信息"
,
"caption"
:
"知识文章"
,
"viewtype"
:
"DETABEXPVIEW"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"KnowledgeArticleInfoView"
,
"viewfilename"
:
"knowledge-article-info-view"
,
"viewtag"
:
"944ca8c467899704e43230c16ceb650d"
,
"memo"
:
""
},
"contactinfo_address"
:
{
"title"
:
"联系人编辑视图"
,
"caption"
:
"联系人"
,
...
...
@@ -1399,6 +1439,16 @@
"viewtag"
:
"9af073dea1ea05903d52e8bdc5a03dd5"
,
"memo"
:
""
},
"knowledgearticlequickcreateview"
:
{
"title"
:
"快速新建"
,
"caption"
:
"知识文章"
,
"viewtype"
:
"DEOPTVIEW"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"KnowledgeArticleQuickCreateView"
,
"viewfilename"
:
"knowledge-article-quick-create-view"
,
"viewtag"
:
"9ba060dce370154a467bf1d804420e64"
,
"memo"
:
""
},
"goaledit_childgoalview"
:
{
"title"
:
"子目标信息"
,
"caption"
:
"目标"
,
...
...
@@ -1679,6 +1729,16 @@
"viewtag"
:
"b38bc0256ecd5be1a58a3c2210a98d05"
,
"memo"
:
""
},
"knowledgearticlesummaryview"
:
{
"title"
:
"知识文章数据看板视图"
,
"caption"
:
"知识文章"
,
"viewtype"
:
"DEPORTALVIEW"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"KnowledgeArticleSummaryView"
,
"viewfilename"
:
"knowledge-article-summary-view"
,
"viewtag"
:
"b3c480644c68d29d431273a2ad61423a"
,
"memo"
:
""
},
"campaignresponseeditview"
:
{
"title"
:
"市场活动响应编辑视图"
,
"caption"
:
"市场活动响应"
,
...
...
@@ -1789,6 +1849,16 @@
"viewtag"
:
"c0f2529b17654edda5f85a28635e353c"
,
"memo"
:
""
},
"knowledgearticleinfo_klartview"
:
{
"title"
:
"知识文章信息视图"
,
"caption"
:
"知识文章"
,
"viewtype"
:
"DEEDITVIEW"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"KnowledgeArticleInfo_KlArtView"
,
"viewfilename"
:
"knowledge-article-info-kl-art-view"
,
"viewtag"
:
"c2aef858dbad7f779c97642ab7144137"
,
"memo"
:
""
},
"opportunitycompetitoreditview"
:
{
"title"
:
"商机对手编辑视图"
,
"caption"
:
"商机对手"
,
...
...
app_CRM/src/components/filter-tree/filter-mode.vue
0 → 100755
浏览文件 @
85afcae4
<
template
>
<el-select
size=
"small"
class=
"filter-mode"
placeholder=
"条件逻辑"
v-model=
"curVal"
@
change=
"onChange"
>
<el-option
v-for=
"mode in filterMode"
:key=
"mode.value"
:label=
"getLabel(mode)"
:value=
"mode.value"
>
</el-option>
</el-select>
</
template
>
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Model
}
from
"vue-property-decorator"
;
@
Component
({})
export
default
class
FilterMode
extends
Vue
{
/**
* 值属性
*
* @type {*}
* @memberof FilterMode
*/
@
Model
(
'change'
)
readonly
value
:
any
;
get
curVal
()
{
return
this
.
value
;
}
set
curVal
(
val
:
any
)
{
const
type
:
string
=
this
.
$util
.
typeOf
(
val
);
val
=
Object
.
is
(
type
,
'null'
)
||
Object
.
is
(
type
,
'undefined'
)
?
undefined
:
val
;
this
.
$emit
(
'change'
,
val
);
}
/**
* 过滤模式
*
* @type {*}
* @memberof FilterMode
*/
public
filterMode
:
any
[]
=
[
// { name: 'AND', value: '$and' },
// { name: 'OR', value: '$or' },
{
'zh-CN'
:
'等于(=)'
,
'en-US'
:
'EQ'
,
value
:
'$eq'
},
{
'zh-CN'
:
'不等于(<>)'
,
'en-US'
:
'NE'
,
value
:
'$ne'
},
{
'zh-CN'
:
'大于(>)'
,
'en-US'
:
'GT'
,
value
:
'$gt'
},
{
'zh-CN'
:
'大于等于(>=)'
,
'en-US'
:
'GE'
,
value
:
'$gte'
},
{
'zh-CN'
:
'小于(<)'
,
'en-US'
:
'LT'
,
value
:
'$lt'
},
{
'zh-CN'
:
'小于(<=)'
,
'en-US'
:
'LE'
,
value
:
'$lte'
},
{
'zh-CN'
:
'值为空(Nil)'
,
'en-US'
:
'IS_NULL'
,
value
:
'$null'
},
{
'zh-CN'
:
'值不为空(NotNil)'
,
'en-US'
:
'IS_NOT_NULL'
,
value
:
'$notNull'
},
{
'zh-CN'
:
'值在范围中(In)'
,
'en-US'
:
'IN'
,
value
:
'$in'
},
{
'zh-CN'
:
'值不在范围中(NotIn)'
,
'en-US'
:
'NOTIN'
,
value
:
'$notIn'
},
{
'zh-CN'
:
'文本包含(%)'
,
'en-US'
:
'LIKE'
,
value
:
'$like'
},
{
'zh-CN'
:
'文本左包含(%#)'
,
'en-US'
:
'LIFTLIKE'
,
value
:
'$startsWith'
},
{
'zh-CN'
:
'文本右包含(#%)'
,
'en-US'
:
'RIGHTLIKE'
,
value
:
'$endsWith'
},
// { 'zh-CN': '', en: 'EXISTS', value: '$exists' },
// { 'zh-CN': '', en: 'NOTEXISTS', value: '$notExists' }
];
/**
* 获取语言文本
*
* @return {string}
* @memberof FilterMode
*/
getLabel
(
mode
:
any
):
string
{
if
(
this
.
$i18n
.
locale
)
{
return
mode
[
this
.
$i18n
.
locale
];
}
return
mode
[
'zh-CN'
];
}
/**
* 值改变
*
* @memberof FilterMode
*/
public
onChange
()
{
this
.
$emit
(
'mode-change'
,
this
.
value
);
}
}
</
script
>
\ No newline at end of file
app_CRM/src/components/filter-tree/filter-tree.less
0 → 100755
浏览文件 @
85afcae4
.filter-tree {
.el-tree-node__content {
height: 40px;
.filter-tree-item {
display: flex;
width: 100%;
>div {
margin-right: 10px;
}
>div:nth-last-child(1) {
margin-right: 0;
}
.filter-tree-action {
display: none;
align-items: center;
.ivu-btn {
margin-right: 5px;
}
.ivu-icon-md-close {
color: red;
font-size: 24px;
}
}
}
.filter-tree-item:hover {
.filter-tree-action {
display: flex;
}
}
}
}
\ No newline at end of file
app_CRM/src/components/filter-tree/filter-tree.vue
0 → 100755
浏览文件 @
85afcae4
<
template
>
<el-tree
class=
"filter-tree"
:data=
"treeItems"
:expand-on-click-node=
"false"
default-expand-all
>
<template
slot-scope=
"
{ node, data }">
<template
v-if=
"Object.is(data.label, '$and') || Object.is(data.label, '$or')"
>
<div
class=
"filter-tree-item"
>
<el-select
size=
"small"
v-model=
"data.label"
:disabled=
"data.isroot"
>
<el-option
v-for=
"mode in relationModes"
:key=
"mode.value"
:label=
"getLabel(mode)"
:value=
"mode.value"
></el-option>
</el-select>
<div
class=
"filter-tree-action"
>
<i-button
title=
"添加条件"
@
click=
"onAddItem(data)"
><i
class=
"fa fa-plus"
aria-hidden=
"true"
></i>
添加条件
</i-button>
<i-button
title=
"添加组"
@
click=
"onAddGroup(data)"
><i
class=
"fa fa-plus"
aria-hidden=
"true"
></i>
添加组
</i-button>
<icon
v-if=
"!data.isroot"
type=
"md-close"
@
click=
"onRemoveItem(node, data)"
/>
</div>
</div>
</
template
>
<
template
v-else
>
<div
class=
"filter-tree-item"
>
<el-select
size=
"small"
class=
"filter-item-field"
v-model=
"data.field"
clearable
placeholder=
"属性"
@
change=
"onFieldChange(data)"
>
<el-option
v-for=
"item in fields"
:key=
"item.prop"
:label=
"item.label"
:value=
"item.name"
>
</el-option>
</el-select>
<filter-mode
class=
"filter-item-mode"
v-model=
"data.mode"
></filter-mode>
<div
class=
"filter-item-value"
>
<i-input
v-if=
"!data.field"
></i-input>
<slot
v-else
:data=
"data"
></slot>
</div>
<div
class=
"filter-tree-action"
>
<icon
type=
"md-close"
@
click=
"onRemoveItem(node, data)"
/>
</div>
</div>
</
template
>
</template>
</el-tree>
</template>
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Prop
}
from
'vue-property-decorator'
;
import
FilterMode
from
'./filter-mode.vue'
;
@
Component
({
components
:
{
FilterMode
}
})
export
default
class
FilterTree
extends
Vue
{
/**
* 数据集
*
* @type {*}
* @memberof FilterTree
*/
@
Prop
()
datas
:
any
;
/**
* 过滤项集合
*
* @type {*}
* @memberof FilterTree
*/
@
Prop
()
fields
:
any
;
/**
* 组条件集合
*
* @type {*}
* @memberof FilterTree
*/
protected
relationModes
:
any
[]
=
[
{
'zh-CN'
:
'并且'
,
'en-US'
:
'AND'
,
value
:
'$and'
},
{
'zh-CN'
:
'或'
,
'en-US'
:
'OR'
,
value
:
'$or'
}
];
/**
* 树数据集合
*
* @type {*}
* @memberof FilterTree
*/
get
treeItems
()
{
let
root
:
any
=
{
label
:
'$and'
,
isroot
:
true
,
children
:
this
.
datas
};
if
(
this
.
datas
.
length
==
0
)
{
this
.
onAddItem
(
root
);
this
.
onAddItem
(
root
);
}
return
[
root
];
}
/**
* 获取语言文本
*
* @return {string}
* @memberof FilterTree
*/
getLabel
(
mode
:
any
):
string
{
if
(
this
.
$i18n
.
locale
)
{
return
mode
[
this
.
$i18n
.
locale
];
}
return
mode
[
'zh-CN'
];
}
/**
* 属性变化
*
* @return {*}
* @memberof FilterTree
*/
public
onFieldChange
(
data
:
any
)
{
if
(
!
data
.
mode
)
{
data
.
mode
=
'$eq'
;
}
}
/**
* 添加条件
*
* @return {*}
* @memberof FilterTree
*/
public
onAddItem
(
data
:
any
)
{
if
(
data
&&
data
.
children
)
{
data
.
children
.
push
({
field
:
null
,
mode
:
null
});
}
}
/**
* 添加组
*
* @return {*}
* @memberof FilterTree
*/
public
onAddGroup
(
data
:
any
)
{
if
(
data
&&
data
.
children
)
{
data
.
children
.
push
({
label
:
'$and'
,
children
:
[]
})
}
}
/**
* 删除条件/组
*
* @return {*}
* @memberof FilterTree
*/
public
onRemoveItem
(
node
:
any
,
data
:
any
)
{
if
(
node
&&
node
.
parent
)
{
let
pData
:
any
=
node
.
parent
.
data
;
if
(
pData
.
children
.
indexOf
(
data
)
>=
0
)
{
pData
.
children
.
splice
(
pData
.
children
.
indexOf
(
data
),
1
)
}
}
}
}
</
script
>
<
style
lang=
"less"
>
@import './filter-tree.less';
</
style
>
\ No newline at end of file
app_CRM/src/interface/entity/knowledge-article-incident.ts
0 → 100644
浏览文件 @
85afcae4
/**
* 知识文章事件
*
* @export
* @interface KnowledgeArticleIncident
*/
export
interface
KnowledgeArticleIncident
{
/**
* Record Created On
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
overriddencreatedon
?:
any
;
/**
* 负责人类型
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
owneridtype
?:
any
;
/**
* 建立人
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
createman
?:
any
;
/**
* 知识使用情况
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
knowledgeusage
?:
any
;
/**
* 更新人
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
updateman
?:
any
;
/**
* Time Zone Rule Version Number
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
timezoneruleversionnumber
?:
any
;
/**
* 汇率
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
exchangerate
?:
any
;
/**
* 负责人
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
owneridyominame
?:
any
;
/**
* 状态
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
statecode
?:
any
;
/**
* KnowledgeArticle 事件
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
knowledgearticleincidentid
?:
any
;
/**
* Version Number
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
versionnumber
?:
any
;
/**
* 状态描述
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
statuscode
?:
any
;
/**
* UTC Conversion Time Zone Code
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
utcconversiontimezonecode
?:
any
;
/**
* 负责人
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
ownerid
?:
any
;
/**
* 更新时间
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
updatedate
?:
any
;
/**
* 已发送给客户
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
senttocustomer
?:
any
;
/**
* 建立时间
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
createdate
?:
any
;
/**
* Import Sequence Number
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
importsequencenumber
?:
any
;
/**
* 事件
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
incidentid
?:
any
;
/**
* 知识文章
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
knowledgearticleid
?:
any
;
/**
* 服务案例
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
incidentname
?:
any
;
/**
* 知识文章
*
* @returns {*}
* @memberof KnowledgeArticleIncident
*/
knowledgearticlename
?:
any
;
}
\ No newline at end of file
app_CRM/src/interface/entity/knowledge-article.ts
浏览文件 @
85afcae4
...
...
@@ -439,7 +439,7 @@ export interface KnowledgeArticle {
expiredreviewoptions
?:
any
;
/**
*
父文章内容 ID
*
上级文章
*
* @returns {*}
* @memberof KnowledgeArticle
...
...
@@ -485,4 +485,52 @@ export interface KnowledgeArticle {
* @memberof KnowledgeArticle
*/
languagelocaleid
?:
any
;
/**
* 语言
*
* @returns {*}
* @memberof KnowledgeArticle
*/
languagelocalename
?:
any
;
/**
* 上级文章
*
* @returns {*}
* @memberof KnowledgeArticle
*/
parentarticlecontentname
?:
any
;
/**
* 上篇文章
*
* @returns {*}
* @memberof KnowledgeArticle
*/
previousarticlecontentname
?:
any
;
/**
* 根文章
*
* @returns {*}
* @memberof KnowledgeArticle
*/
rootarticlename
?:
any
;
/**
* 主题
*
* @returns {*}
* @memberof KnowledgeArticle
*/
subjectname
?:
any
;
/**
* 货币
*
* @returns {*}
* @memberof KnowledgeArticle
*/
transactioncurrencyname
?:
any
;
}
\ No newline at end of file
app_CRM/src/locale/lang/en-US.ts
浏览文件 @
85afcae4
...
...
@@ -22,6 +22,7 @@ import campaignresponse_en_US from '@locale/lanres/entities/campaign-response/ca
import
phonecall_en_US
from
'@locale/lanres/entities/phone-call/phone-call_en_US'
;
import
salesorderdetail_en_US
from
'@locale/lanres/entities/sales-order-detail/sales-order-detail_en_US'
;
import
bulkoperation_en_US
from
'@locale/lanres/entities/bulk-operation/bulk-operation_en_US'
;
import
knowledgearticleincident_en_US
from
'@locale/lanres/entities/knowledge-article-incident/knowledge-article-incident_en_US'
;
import
listcontact_en_US
from
'@locale/lanres/entities/list-contact/list-contact_en_US'
;
import
appointment_en_US
from
'@locale/lanres/entities/appointment/appointment_en_US'
;
import
campaigncampaign_en_US
from
'@locale/lanres/entities/campaign-campaign/campaign-campaign_en_US'
;
...
...
@@ -180,6 +181,7 @@ export default {
phonecall
:
phonecall_en_US
,
salesorderdetail
:
salesorderdetail_en_US
,
bulkoperation
:
bulkoperation_en_US
,
knowledgearticleincident
:
knowledgearticleincident_en_US
,
listcontact
:
listcontact_en_US
,
appointment
:
appointment_en_US
,
campaigncampaign
:
campaigncampaign_en_US
,
...
...
app_CRM/src/locale/lang/zh-CN.ts
浏览文件 @
85afcae4
...
...
@@ -22,6 +22,7 @@ import campaignresponse_zh_CN from '@locale/lanres/entities/campaign-response/ca
import
phonecall_zh_CN
from
'@locale/lanres/entities/phone-call/phone-call_zh_CN'
;
import
salesorderdetail_zh_CN
from
'@locale/lanres/entities/sales-order-detail/sales-order-detail_zh_CN'
;
import
bulkoperation_zh_CN
from
'@locale/lanres/entities/bulk-operation/bulk-operation_zh_CN'
;
import
knowledgearticleincident_zh_CN
from
'@locale/lanres/entities/knowledge-article-incident/knowledge-article-incident_zh_CN'
;
import
listcontact_zh_CN
from
'@locale/lanres/entities/list-contact/list-contact_zh_CN'
;
import
appointment_zh_CN
from
'@locale/lanres/entities/appointment/appointment_zh_CN'
;
import
campaigncampaign_zh_CN
from
'@locale/lanres/entities/campaign-campaign/campaign-campaign_zh_CN'
;
...
...
@@ -180,6 +181,7 @@ export default {
phonecall
:
phonecall_zh_CN
,
salesorderdetail
:
salesorderdetail_zh_CN
,
bulkoperation
:
bulkoperation_zh_CN
,
knowledgearticleincident
:
knowledgearticleincident_zh_CN
,
listcontact
:
listcontact_zh_CN
,
appointment
:
appointment_zh_CN
,
campaigncampaign
:
campaigncampaign_zh_CN
,
...
...
app_CRM/src/locale/lanres/codelist/codelist_en_US.ts
浏览文件 @
85afcae4
...
...
@@ -145,6 +145,23 @@ export default {
"3"
:
"已计划"
,
"empty"
:
""
},
Knowledgearticle__StatusCode
:
{
"4"
:
"审阅中"
,
"7"
:
"已发布"
,
"12"
:
"已存档"
,
"5"
:
"已审批"
,
"11"
:
"已拒绝"
,
"14"
:
"已拒绝"
,
"1"
:
"已拟定"
,
"13"
:
"已放弃"
,
"6"
:
"已计划"
,
"10"
:
"已过期"
,
"9"
:
"正在更新"
,
"2"
:
"草稿"
,
"3"
:
"需要审阅"
,
"8"
:
"需要审阅"
,
"empty"
:
""
},
YesNo
:
{
"1"
:
"是"
,
"0"
:
"否"
,
...
...
@@ -391,6 +408,11 @@ export default {
"6"
:
"边际百分比 – 标准成本"
,
"empty"
:
""
},
Knowledgearticleincident__StatusCode
:
{
"2"
:
"停用"
,
"1"
:
"有效"
,
"empty"
:
""
},
Account__Address1_ShippingMethodCode
:
{
"2"
:
"DHL"
,
"3"
:
"FedEx"
,
...
...
app_CRM/src/locale/lanres/codelist/codelist_zh_CN.ts
浏览文件 @
85afcae4
...
...
@@ -145,6 +145,23 @@ export default {
"3"
:
"已计划"
,
"empty"
:
""
,
},
Knowledgearticle__StatusCode
:
{
"4"
:
"审阅中"
,
"7"
:
"已发布"
,
"12"
:
"已存档"
,
"5"
:
"已审批"
,
"11"
:
"已拒绝"
,
"14"
:
"已拒绝"
,
"1"
:
"已拟定"
,
"13"
:
"已放弃"
,
"6"
:
"已计划"
,
"10"
:
"已过期"
,
"9"
:
"正在更新"
,
"2"
:
"草稿"
,
"3"
:
"需要审阅"
,
"8"
:
"需要审阅"
,
"empty"
:
""
,
},
YesNo
:
{
"1"
:
"是"
,
"0"
:
"否"
,
...
...
@@ -391,6 +408,11 @@ export default {
"6"
:
"边际百分比 – 标准成本"
,
"empty"
:
""
,
},
Knowledgearticleincident__StatusCode
:
{
"2"
:
"停用"
,
"1"
:
"有效"
,
"empty"
:
""
,
},
Account__Address1_ShippingMethodCode
:
{
"2"
:
"DHL"
,
"3"
:
"FedEx"
,
...
...
app_CRM/src/locale/lanres/entities/incident/incident_en_US.ts
浏览文件 @
85afcae4
...
...
@@ -117,6 +117,10 @@ export default {
caption
:
"案例"
,
title
:
"快速新建"
,
},
pickupview
:
{
caption
:
"案例"
,
title
:
"案例数据选择视图"
,
},
childincidentgridview
:
{
caption
:
"案例"
,
title
:
"子案例信息"
,
...
...
app_CRM/src/locale/lanres/entities/incident/incident_zh_CN.ts
浏览文件 @
85afcae4
...
...
@@ -116,6 +116,10 @@ export default {
caption
:
"案例"
,
title
:
"快速新建"
,
},
pickupview
:
{
caption
:
"案例"
,
title
:
"案例数据选择视图"
,
},
childincidentgridview
:
{
caption
:
"案例"
,
title
:
"子案例信息"
,
...
...
app_CRM/src/locale/lanres/entities/knowledge-article-incident/knowledge-article-incident_en_US.ts
0 → 100644
浏览文件 @
85afcae4
export
default
{
fields
:
{
overriddencreatedon
:
"Record Created On"
,
owneridtype
:
"负责人类型"
,
createman
:
"建立人"
,
knowledgeusage
:
"知识使用情况"
,
updateman
:
"更新人"
,
timezoneruleversionnumber
:
"Time Zone Rule Version Number"
,
exchangerate
:
"汇率"
,
owneridyominame
:
"负责人"
,
statecode
:
"状态"
,
knowledgearticleincidentid
:
"KnowledgeArticle 事件"
,
versionnumber
:
"Version Number"
,
statuscode
:
"状态描述"
,
utcconversiontimezonecode
:
"UTC Conversion Time Zone Code"
,
ownerid
:
"负责人"
,
updatedate
:
"更新时间"
,
senttocustomer
:
"已发送给客户"
,
createdate
:
"建立时间"
,
importsequencenumber
:
"Import Sequence Number"
,
incidentid
:
"事件"
,
knowledgearticleid
:
"知识文章"
,
incidentname
:
"服务案例"
,
knowledgearticlename
:
"知识文章"
,
},
views
:
{
gridview
:
{
caption
:
"知识文章事件"
,
title
:
"知识文章事件表格视图"
,
},
editview
:
{
caption
:
"知识文章事件"
,
title
:
"知识文章事件编辑视图"
,
},
},
main_form
:
{
details
:
{
group1
:
"knowledgearticleincident基本信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"KnowledgeArticle 事件"
,
srftempmode
:
""
,
srfuf
:
""
,
srfdeid
:
""
,
srfsourcekey
:
""
,
knowledgearticleid
:
"知识文章"
,
incidentname
:
"服务案例"
,
incidentid
:
"事件"
,
knowledgearticleincidentid
:
"KnowledgeArticle 事件"
,
},
uiactions
:
{
},
},
main_grid
:
{
columns
:
{
knowledgearticlename
:
"知识文章"
,
incidentname
:
"服务案例"
,
statuscode
:
"状态描述"
,
},
uiactions
:
{
},
},
default_searchform
:
{
details
:
{
formpage1
:
"常规条件"
,
},
uiactions
:
{
},
},
gridviewtoolbar_toolbar
:
{
deuiaction1
:
{
caption
:
"New"
,
tip
:
"New"
,
},
tbitem2
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem4
:
{
caption
:
"Edit"
,
tip
:
"Edit {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
:
""
,
},
tbitem19
:
{
caption
:
"Filter"
,
tip
:
"Filter"
,
},
},
editviewtoolbar_toolbar
:
{
tbitem1
:
{
caption
:
"Save And Close"
,
tip
:
"Save And Close Window"
,
},
tbitem2
:
{
caption
:
"关闭"
,
tip
:
"关闭"
,
},
},
};
\ No newline at end of file
app_CRM/src/locale/lanres/entities/knowledge-article-incident/knowledge-article-incident_zh_CN.ts
0 → 100644
浏览文件 @
85afcae4
export
default
{
fields
:
{
overriddencreatedon
:
"Record Created On"
,
owneridtype
:
"负责人类型"
,
createman
:
"建立人"
,
knowledgeusage
:
"知识使用情况"
,
updateman
:
"更新人"
,
timezoneruleversionnumber
:
"Time Zone Rule Version Number"
,
exchangerate
:
"汇率"
,
owneridyominame
:
"负责人"
,
statecode
:
"状态"
,
knowledgearticleincidentid
:
"KnowledgeArticle 事件"
,
versionnumber
:
"Version Number"
,
statuscode
:
"状态描述"
,
utcconversiontimezonecode
:
"UTC Conversion Time Zone Code"
,
ownerid
:
"负责人"
,
updatedate
:
"更新时间"
,
senttocustomer
:
"已发送给客户"
,
createdate
:
"建立时间"
,
importsequencenumber
:
"Import Sequence Number"
,
incidentid
:
"事件"
,
knowledgearticleid
:
"知识文章"
,
incidentname
:
"服务案例"
,
knowledgearticlename
:
"知识文章"
,
},
views
:
{
gridview
:
{
caption
:
"知识文章事件"
,
title
:
"知识文章事件表格视图"
,
},
editview
:
{
caption
:
"知识文章事件"
,
title
:
"知识文章事件编辑视图"
,
},
},
main_form
:
{
details
:
{
group1
:
"knowledgearticleincident基本信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"KnowledgeArticle 事件"
,
srftempmode
:
""
,
srfuf
:
""
,
srfdeid
:
""
,
srfsourcekey
:
""
,
knowledgearticleid
:
"知识文章"
,
incidentname
:
"服务案例"
,
incidentid
:
"事件"
,
knowledgearticleincidentid
:
"KnowledgeArticle 事件"
,
},
uiactions
:
{
},
},
main_grid
:
{
columns
:
{
knowledgearticlename
:
"知识文章"
,
incidentname
:
"服务案例"
,
statuscode
:
"状态描述"
,
},
uiactions
:
{
},
},
default_searchform
:
{
details
:
{
formpage1
:
"常规条件"
,
},
uiactions
:
{
},
},
gridviewtoolbar_toolbar
:
{
deuiaction1
:
{
caption
:
"新建"
,
tip
:
"新建"
,
},
tbitem2
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem4
:
{
caption
:
"编辑"
,
tip
:
"编辑"
,
},
tbitem7
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem8
:
{
caption
:
"删除"
,
tip
:
"删除"
,
},
tbitem9
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem13
:
{
caption
:
"导出"
,
tip
:
"导出"
,
},
tbitem10
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem19
:
{
caption
:
"过滤"
,
tip
:
"过滤"
,
},
},
editviewtoolbar_toolbar
:
{
tbitem1
:
{
caption
:
"保存并关闭"
,
tip
:
"保存并关闭"
,
},
tbitem2
:
{
caption
:
"关闭"
,
tip
:
"关闭"
,
},
},
};
\ No newline at end of file
app_CRM/src/locale/lanres/entities/knowledge-article/knowledge-article_en_US.ts
浏览文件 @
85afcae4
...
...
@@ -55,11 +55,85 @@ export default {
updatecontent
:
"更新内容"
,
expirationdate
:
"到期日期"
,
expiredreviewoptions
:
"已过期审阅选项"
,
parentarticlecontentid
:
"
父文章内容 ID
"
,
parentarticlecontentid
:
"
上级文章
"
,
previousarticlecontentid
:
"上篇文章内容 ID"
,
transactioncurrencyid
:
"货币"
,
rootarticleid
:
"根文章 ID"
,
subjectid
:
"主题"
,
languagelocaleid
:
"语言"
,
languagelocalename
:
"语言"
,
parentarticlecontentname
:
"上级文章"
,
previousarticlecontentname
:
"上篇文章"
,
rootarticlename
:
"根文章"
,
subjectname
:
"主题"
,
transactioncurrencyname
:
"货币"
,
},
views
:
{
infoview
:
{
caption
:
"知识文章"
,
title
:
"知识文章信息"
,
},
quickcreateview
:
{
caption
:
"知识文章"
,
title
:
"快速新建"
,
},
summaryview
:
{
caption
:
"知识文章"
,
title
:
"知识文章数据看板视图"
,
},
info_klartview
:
{
caption
:
"知识文章"
,
title
:
"知识文章信息视图"
,
},
},
info_knowledgearticle_form
:
{
details
:
{
group1
:
"知识文章基本信息"
,
grouppanel2
:
"发布信息"
,
grouppanel1
:
"详细信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"知识文章"
,
srfmajortext
:
"标题"
,
srftempmode
:
""
,
srfuf
:
""
,
srfdeid
:
""
,
srfsourcekey
:
""
,
title
:
"标题"
,
keywords
:
"关键字"
,
internal
:
"内部"
,
statuscode
:
"状态描述"
,
ownerid
:
"负责人"
,
primaryauthorid
:
"主要作者 ID"
,
subjectname
:
"主题"
,
publishon
:
"发布日期"
,
expirationdate
:
"到期日期"
,
content
:
"内容"
,
description
:
"说明"
,
knowledgearticleid
:
"知识文章"
,
subjectid
:
"主题"
,
},
uiactions
:
{
},
},
quickcreate_form
:
{
details
:
{
group1
:
"知识文章基本信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"知识文章"
,
srfmajortext
:
"标题"
,
srftempmode
:
""
,
srfuf
:
""
,
srfdeid
:
""
,
srfsourcekey
:
""
,
title
:
"标题"
,
keywords
:
"关键字"
,
knowledgearticleid
:
"知识文章"
,
},
uiactions
:
{
},
},
};
\ No newline at end of file
app_CRM/src/locale/lanres/entities/knowledge-article/knowledge-article_zh_CN.ts
浏览文件 @
85afcae4
...
...
@@ -54,11 +54,85 @@ export default {
updatecontent
:
"更新内容"
,
expirationdate
:
"到期日期"
,
expiredreviewoptions
:
"已过期审阅选项"
,
parentarticlecontentid
:
"
父文章内容 ID
"
,
parentarticlecontentid
:
"
上级文章
"
,
previousarticlecontentid
:
"上篇文章内容 ID"
,
transactioncurrencyid
:
"货币"
,
rootarticleid
:
"根文章 ID"
,
subjectid
:
"主题"
,
languagelocaleid
:
"语言"
,
languagelocalename
:
"语言"
,
parentarticlecontentname
:
"上级文章"
,
previousarticlecontentname
:
"上篇文章"
,
rootarticlename
:
"根文章"
,
subjectname
:
"主题"
,
transactioncurrencyname
:
"货币"
,
},
views
:
{
infoview
:
{
caption
:
"知识文章"
,
title
:
"知识文章信息"
,
},
quickcreateview
:
{
caption
:
"知识文章"
,
title
:
"快速新建"
,
},
summaryview
:
{
caption
:
"知识文章"
,
title
:
"知识文章数据看板视图"
,
},
info_klartview
:
{
caption
:
"知识文章"
,
title
:
"知识文章信息视图"
,
},
},
info_knowledgearticle_form
:
{
details
:
{
group1
:
"知识文章基本信息"
,
grouppanel2
:
"发布信息"
,
grouppanel1
:
"详细信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"知识文章"
,
srfmajortext
:
"标题"
,
srftempmode
:
""
,
srfuf
:
""
,
srfdeid
:
""
,
srfsourcekey
:
""
,
title
:
"标题"
,
keywords
:
"关键字"
,
internal
:
"内部"
,
statuscode
:
"状态描述"
,
ownerid
:
"负责人"
,
primaryauthorid
:
"主要作者 ID"
,
subjectname
:
"主题"
,
publishon
:
"发布日期"
,
expirationdate
:
"到期日期"
,
content
:
"内容"
,
description
:
"说明"
,
knowledgearticleid
:
"知识文章"
,
subjectid
:
"主题"
,
},
uiactions
:
{
},
},
quickcreate_form
:
{
details
:
{
group1
:
"知识文章基本信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"知识文章"
,
srfmajortext
:
"标题"
,
srftempmode
:
""
,
srfuf
:
""
,
srfdeid
:
""
,
srfsourcekey
:
""
,
title
:
"标题"
,
keywords
:
"关键字"
,
knowledgearticleid
:
"知识文章"
,
},
uiactions
:
{
},
},
};
\ No newline at end of file
app_CRM/src/mock/codelist/codelist.ts
浏览文件 @
85afcae4
...
...
@@ -1031,6 +1031,153 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
},
]
},
{
srfkey
:
"Knowledgearticle__StatusCode"
,
emptytext
:
"未定义"
,
"codelisttype"
:
"static"
,
items
:
[
{
id
:
"4"
,
label
:
"审阅中"
,
text
:
"审阅中"
,
"data"
:
""
,
"codename"
:
"Item_4"
,
value
:
"4"
,
disabled
:
false
,
},
{
id
:
"7"
,
label
:
"已发布"
,
text
:
"已发布"
,
"data"
:
""
,
"codename"
:
"Item_7"
,
value
:
"7"
,
disabled
:
false
,
},
{
id
:
"12"
,
label
:
"已存档"
,
text
:
"已存档"
,
"data"
:
""
,
"codename"
:
"Item_12"
,
value
:
"12"
,
disabled
:
false
,
},
{
id
:
"5"
,
label
:
"已审批"
,
text
:
"已审批"
,
"data"
:
""
,
"codename"
:
"Item_5"
,
value
:
"5"
,
disabled
:
false
,
},
{
id
:
"11"
,
label
:
"已拒绝"
,
text
:
"已拒绝"
,
"data"
:
""
,
"codename"
:
"Item_11"
,
value
:
"11"
,
disabled
:
false
,
},
{
id
:
"14"
,
label
:
"已拒绝"
,
text
:
"已拒绝"
,
"data"
:
""
,
"codename"
:
"Item_14"
,
value
:
"14"
,
disabled
:
false
,
},
{
id
:
"1"
,
label
:
"已拟定"
,
text
:
"已拟定"
,
"data"
:
""
,
"codename"
:
"Item_1"
,
value
:
"1"
,
disabled
:
false
,
},
{
id
:
"13"
,
label
:
"已放弃"
,
text
:
"已放弃"
,
"data"
:
""
,
"codename"
:
"Item_13"
,
value
:
"13"
,
disabled
:
false
,
},
{
id
:
"6"
,
label
:
"已计划"
,
text
:
"已计划"
,
"data"
:
""
,
"codename"
:
"Item_6"
,
value
:
"6"
,
disabled
:
false
,
},
{
id
:
"10"
,
label
:
"已过期"
,
text
:
"已过期"
,
"data"
:
""
,
"codename"
:
"Item_10"
,
value
:
"10"
,
disabled
:
false
,
},
{
id
:
"9"
,
label
:
"正在更新"
,
text
:
"正在更新"
,
"data"
:
""
,
"codename"
:
"Item_9"
,
value
:
"9"
,
disabled
:
false
,
},
{
id
:
"2"
,
label
:
"草稿"
,
text
:
"草稿"
,
"data"
:
""
,
"codename"
:
"Item_2"
,
value
:
"2"
,
disabled
:
false
,
},
{
id
:
"3"
,
label
:
"需要审阅"
,
text
:
"需要审阅"
,
"data"
:
""
,
"codename"
:
"Item_3"
,
value
:
"3"
,
disabled
:
false
,
},
{
id
:
"8"
,
label
:
"需要审阅"
,
text
:
"需要审阅"
,
"data"
:
""
,
"codename"
:
"Item_8"
,
value
:
"8"
,
disabled
:
false
,
},
]
},
{
srfkey
:
"YesNo"
,
emptytext
:
"未定义"
,
...
...
@@ -3054,6 +3201,33 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
},
]
},
{
srfkey
:
"Knowledgearticleincident__StatusCode"
,
emptytext
:
"未定义"
,
"codelisttype"
:
"static"
,
items
:
[
{
id
:
"2"
,
label
:
"停用"
,
text
:
"停用"
,
"data"
:
""
,
"codename"
:
"Item_2"
,
value
:
"2"
,
disabled
:
false
,
},
{
id
:
"1"
,
label
:
"有效"
,
text
:
"有效"
,
"data"
:
""
,
"codename"
:
"Item_1"
,
value
:
"1"
,
disabled
:
false
,
},
]
},
{
srfkey
:
"Account__Address1_ShippingMethodCode"
,
emptytext
:
"未定义"
,
...
...
app_CRM/src/mock/entity/knowledge-article-incidents/knowledge-article-incidents.ts
0 → 100644
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
app_CRM/src/mock/index.ts
浏览文件 @
85afcae4
...
...
@@ -31,6 +31,7 @@ import './entity/campaign-responses/campaign-responses';
import
'./entity/phone-calls/phone-calls'
;
import
'./entity/sales-order-details/sales-order-details'
;
import
'./entity/bulk-operations/bulk-operations'
;
import
'./entity/knowledge-article-incidents/knowledge-article-incidents'
;
import
'./entity/list-contacts/list-contacts'
;
import
'./entity/appointments/appointments'
;
import
'./entity/campaign-campaigns/campaign-campaigns'
;
...
...
app_CRM/src/mock/viewconfig/viewconfig.ts
浏览文件 @
85afcae4
...
...
@@ -775,6 +775,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"AccountGradation"
,
"viewtag"
:
"6978259896338a7ace85a9fbc5d70395"
},
"knowledgearticleincidentgridview"
:
{
"title"
:
"知识文章事件表格视图"
,
"caption"
:
"知识文章事件"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"Service"
,
"viewname"
:
"KnowledgeArticleIncidentGridView"
,
"viewtag"
:
"6c17740cc21fd25906f3feeec10a454a"
},
"opportunityproductopp_oppprogridview"
:
{
"title"
:
"商机产品表格视图"
,
"caption"
:
"商机产品"
,
...
...
@@ -919,6 +927,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"UomSchedulePickupGridView"
,
"viewtag"
:
"7decb196037249b909762c9142adfe91"
},
"knowledgearticleincidenteditview"
:
{
"title"
:
"知识文章事件编辑视图"
,
"caption"
:
"知识文章事件"
,
"viewtype"
:
"DEEDITVIEW"
,
"viewmodule"
:
"Service"
,
"viewname"
:
"KnowledgeArticleIncidentEditView"
,
"viewtag"
:
"7e6f9ab9d51be22efda1567e58cb29a2"
},
"centeralportal"
:
{
"title"
:
"仪表盘"
,
"caption"
:
"仪表盘"
,
...
...
@@ -1055,6 +1071,22 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"ContactByAccount"
,
"viewtag"
:
"9224b0b14d2d99014e051f8035ba5cbf"
},
"incidentpickupview"
:
{
"title"
:
"案例数据选择视图"
,
"caption"
:
"案例"
,
"viewtype"
:
"DEPICKUPVIEW"
,
"viewmodule"
:
"Service"
,
"viewname"
:
"IncidentPickupView"
,
"viewtag"
:
"922d0c8c2262ba83063f6cb3557a450b"
},
"knowledgearticleinfoview"
:
{
"title"
:
"知识文章信息"
,
"caption"
:
"知识文章"
,
"viewtype"
:
"DETABEXPVIEW"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"KnowledgeArticleInfoView"
,
"viewtag"
:
"944ca8c467899704e43230c16ceb650d"
},
"contactinfo_address"
:
{
"title"
:
"联系人编辑视图"
,
"caption"
:
"联系人"
,
...
...
@@ -1127,6 +1159,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"MetricGridView"
,
"viewtag"
:
"9af073dea1ea05903d52e8bdc5a03dd5"
},
"knowledgearticlequickcreateview"
:
{
"title"
:
"快速新建"
,
"caption"
:
"知识文章"
,
"viewtype"
:
"DEOPTVIEW"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"KnowledgeArticleQuickCreateView"
,
"viewtag"
:
"9ba060dce370154a467bf1d804420e64"
},
"goaledit_childgoalview"
:
{
"title"
:
"子目标信息"
,
"caption"
:
"目标"
,
...
...
@@ -1351,6 +1391,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"ProductGridView"
,
"viewtag"
:
"b38bc0256ecd5be1a58a3c2210a98d05"
},
"knowledgearticlesummaryview"
:
{
"title"
:
"知识文章数据看板视图"
,
"caption"
:
"知识文章"
,
"viewtype"
:
"DEPORTALVIEW"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"KnowledgeArticleSummaryView"
,
"viewtag"
:
"b3c480644c68d29d431273a2ad61423a"
},
"campaignresponseeditview"
:
{
"title"
:
"市场活动响应编辑视图"
,
"caption"
:
"市场活动响应"
,
...
...
@@ -1439,6 +1487,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"LeadInfo_Detail"
,
"viewtag"
:
"c0f2529b17654edda5f85a28635e353c"
},
"knowledgearticleinfo_klartview"
:
{
"title"
:
"知识文章信息视图"
,
"caption"
:
"知识文章"
,
"viewtype"
:
"DEEDITVIEW"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"KnowledgeArticleInfo_KlArtView"
,
"viewtag"
:
"c2aef858dbad7f779c97642ab7144137"
},
"opportunitycompetitoreditview"
:
{
"title"
:
"商机对手编辑视图"
,
"caption"
:
"商机对手"
,
...
...
app_CRM/src/pages/finance/invoice-summary-view/invoice-summary-view-base.tsx
浏览文件 @
85afcae4
...
...
@@ -30,6 +30,18 @@ export class InvoiceSummaryViewBase extends DashboardViewBase {
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 自定义视图导航上下文集合
*
* @protected
* @type {*}
* @memberof InvoiceSummaryViewBase
*/
protected
customViewNavContexts
:
any
=
{
'REGARDINGOBJECTID'
:
{
isRawValue
:
false
,
value
:
'invoice'
},
'REGARDINGOBJECTTYPECODE'
:
{
isRawValue
:
true
,
value
:
'INVOICE'
}
};
/**
* 视图模型数据
*
...
...
app_CRM/src/pages/sales/sales-order-summary-view/sales-order-summary-view-base.tsx
浏览文件 @
85afcae4
...
...
@@ -30,6 +30,18 @@ export class SalesOrderSummaryViewBase extends DashboardViewBase {
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 自定义视图导航上下文集合
*
* @protected
* @type {*}
* @memberof SalesOrderSummaryViewBase
*/
protected
customViewNavContexts
:
any
=
{
'REGARDINGOBJECTID'
:
{
isRawValue
:
false
,
value
:
'salesorder'
},
'REGARDINGOBJECTTYPECODE'
:
{
isRawValue
:
true
,
value
:
'SALESORDER'
}
};
/**
* 视图模型数据
*
...
...
app_CRM/src/service/contact/contact-service-base.ts
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
app_CRM/src/service/entity-service-register.ts
浏览文件 @
85afcae4
...
...
@@ -63,6 +63,7 @@ export class EntityServiceRegister {
this
.
allEntityService
.
set
(
'phonecall'
,
()
=>
import
(
'@/service/phone-call/phone-call-service'
));
this
.
allEntityService
.
set
(
'salesorderdetail'
,
()
=>
import
(
'@/service/sales-order-detail/sales-order-detail-service'
));
this
.
allEntityService
.
set
(
'bulkoperation'
,
()
=>
import
(
'@/service/bulk-operation/bulk-operation-service'
));
this
.
allEntityService
.
set
(
'knowledgearticleincident'
,
()
=>
import
(
'@/service/knowledge-article-incident/knowledge-article-incident-service'
));
this
.
allEntityService
.
set
(
'listcontact'
,
()
=>
import
(
'@/service/list-contact/list-contact-service'
));
this
.
allEntityService
.
set
(
'appointment'
,
()
=>
import
(
'@/service/appointment/appointment-service'
));
this
.
allEntityService
.
set
(
'campaigncampaign'
,
()
=>
import
(
'@/service/campaign-campaign/campaign-campaign-service'
));
...
...
app_CRM/src/service/ibiz-list/ibiz-list-service-base.ts
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
app_CRM/src/service/knowledge-article-incident/knowledge-article-incident-service-base.ts
0 → 100644
浏览文件 @
85afcae4
import
{
Http
,
Util
}
from
'@/utils'
;
import
EntityService
from
'../entity-service'
;
/**
* 知识文章事件服务对象基类
*
* @export
* @class KnowledgeArticleIncidentServiceBase
* @extends {EntityServie}
*/
export
default
class
KnowledgeArticleIncidentServiceBase
extends
EntityService
{
/**
* Creates an instance of KnowledgeArticleIncidentServiceBase.
*
* @param {*} [opts={}]
* @memberof KnowledgeArticleIncidentServiceBase
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
/**
* 初始化基础数据
*
* @memberof KnowledgeArticleIncidentServiceBase
*/
public
initBasicData
(){
this
.
APPLYDEKEY
=
'knowledgearticleincident'
;
this
.
APPDEKEY
=
'knowledgearticleincidentid'
;
this
.
APPDENAME
=
'knowledgearticleincidents'
;
this
.
APPDETEXT
=
''
;
this
.
APPNAME
=
'crm'
;
this
.
SYSTEMNAME
=
'ibizbusinesscentral'
;
}
// 实体接口
/**
* Select接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof KnowledgeArticleIncidentServiceBase
*/
public
async
Select
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
.
knowledgearticle
&&
context
.
knowledgearticleincident
){
return
Http
.
getInstance
().
get
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
/select`
,
isloading
);
}
return
Http
.
getInstance
().
get
(
`/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
/select`
,
isloading
);
}
/**
* Create接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof KnowledgeArticleIncidentServiceBase
*/
public
async
Create
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
.
knowledgearticle
&&
true
){
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
if
(
!
data
.
srffrontuf
||
data
.
srffrontuf
!==
"1"
){
data
[
this
.
APPDEKEY
]
=
null
;
}
if
(
data
.
srffrontuf
){
delete
data
.
srffrontuf
;
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
/knowledgearticleincidents`
,
data
,
isloading
);
return
res
;
}
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
if
(
!
data
.
srffrontuf
||
data
.
srffrontuf
!==
"1"
){
data
[
this
.
APPDEKEY
]
=
null
;
}
if
(
data
.
srffrontuf
){
delete
data
.
srffrontuf
;
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/knowledgearticleincidents`
,
data
,
isloading
);
return
res
;
}
/**
* Update接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof KnowledgeArticleIncidentServiceBase
*/
public
async
Update
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
.
knowledgearticle
&&
context
.
knowledgearticleincident
){
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
put
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
`
,
data
,
isloading
);
return
res
;
}
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
put
(
`/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
`
,
data
,
isloading
);
return
res
;
}
/**
* Remove接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof KnowledgeArticleIncidentServiceBase
*/
public
async
Remove
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
.
knowledgearticle
&&
context
.
knowledgearticleincident
){
return
Http
.
getInstance
().
delete
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
`
,
isloading
);
}
return
Http
.
getInstance
().
delete
(
`/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
`
,
isloading
);
}
/**
* Get接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof KnowledgeArticleIncidentServiceBase
*/
public
async
Get
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
.
knowledgearticle
&&
context
.
knowledgearticleincident
){
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
`
,
isloading
);
return
res
;
}
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
`
,
isloading
);
return
res
;
}
/**
* GetDraft接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof KnowledgeArticleIncidentServiceBase
*/
public
async
GetDraft
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
.
knowledgearticle
&&
true
){
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
/knowledgearticleincidents/getdraft`
,
isloading
);
res
.
data
.
knowledgearticleincident
=
data
.
knowledgearticleincident
;
return
res
;
}
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/knowledgearticleincidents/getdraft`
,
isloading
);
res
.
data
.
knowledgearticleincident
=
data
.
knowledgearticleincident
;
return
res
;
}
/**
* CheckKey接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof KnowledgeArticleIncidentServiceBase
*/
public
async
CheckKey
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
.
knowledgearticle
&&
context
.
knowledgearticleincident
){
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
/checkkey`
,
data
,
isloading
);
return
res
;
}
return
Http
.
getInstance
().
post
(
`/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
/checkkey`
,
data
,
isloading
);
}
/**
* Save接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof KnowledgeArticleIncidentServiceBase
*/
public
async
Save
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
.
knowledgearticle
&&
context
.
knowledgearticleincident
){
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
/save`
,
data
,
isloading
);
return
res
;
}
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/knowledgearticleincidents/
${
context
.
knowledgearticleincident
}
/save`
,
data
,
isloading
);
return
res
;
}
/**
* FetchDefault接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof KnowledgeArticleIncidentServiceBase
*/
public
async
FetchDefault
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
.
knowledgearticle
&&
true
){
let
tempData
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
return
Http
.
getInstance
().
get
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
/knowledgearticleincidents/fetchdefault`
,
tempData
,
isloading
);
}
let
tempData
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
return
Http
.
getInstance
().
get
(
`/knowledgearticleincidents/fetchdefault`
,
tempData
,
isloading
);
}
}
\ No newline at end of file
app_CRM/src/service/knowledge-article-incident/knowledge-article-incident-service.ts
0 → 100644
浏览文件 @
85afcae4
import
{
Http
,
Util
}
from
'@/utils'
;
import
KnowledgeArticleIncidentServiceBase
from
'./knowledge-article-incident-service-base'
;
/**
* 知识文章事件服务对象
*
* @export
* @class KnowledgeArticleIncidentService
* @extends {KnowledgeArticleIncidentServiceBase}
*/
export
default
class
KnowledgeArticleIncidentService
extends
KnowledgeArticleIncidentServiceBase
{
/**
* Creates an instance of KnowledgeArticleIncidentService.
*
* @param {*} [opts={}]
* @memberof KnowledgeArticleIncidentService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
}
\ No newline at end of file
app_CRM/src/service/knowledge-article/knowledge-article-service-base.ts
浏览文件 @
85afcae4
...
...
@@ -62,6 +62,21 @@ export default class KnowledgeArticleServiceBase extends EntityService {
*/
public
async
Create
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
masterData
:
any
=
{};
let
knowledgearticleincidentsData
:
any
=
[];
if
(
!
Object
.
is
(
this
.
tempStorage
.
getItem
(
context
.
srfsessionkey
+
'_knowledgearticleincidents'
),
'undefined'
)){
knowledgearticleincidentsData
=
JSON
.
parse
(
this
.
tempStorage
.
getItem
(
context
.
srfsessionkey
+
'_knowledgearticleincidents'
)
as
any
);
if
(
knowledgearticleincidentsData
&&
knowledgearticleincidentsData
.
length
&&
knowledgearticleincidentsData
.
length
>
0
){
knowledgearticleincidentsData
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
srffrontuf
){
if
(
Object
.
is
(
item
.
srffrontuf
,
"0"
)){
item
.
knowledgearticleincidentid
=
null
;
}
delete
item
.
srffrontuf
;
}
});
}
}
masterData
.
knowledgearticleincidents
=
knowledgearticleincidentsData
;
Object
.
assign
(
data
,
masterData
);
if
(
!
data
.
srffrontuf
||
data
.
srffrontuf
!==
"1"
){
data
[
this
.
APPDEKEY
]
=
null
;
...
...
@@ -71,6 +86,7 @@ export default class KnowledgeArticleServiceBase extends EntityService {
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/knowledgearticles`
,
data
,
isloading
);
this
.
tempStorage
.
setItem
(
tempContext
.
srfsessionkey
+
'_knowledgearticleincidents'
,
JSON
.
stringify
(
res
.
data
.
knowledgearticleincidents
));
return
res
;
}
...
...
@@ -85,8 +101,24 @@ export default class KnowledgeArticleServiceBase extends EntityService {
*/
public
async
Update
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
masterData
:
any
=
{};
let
knowledgearticleincidentsData
:
any
=
[];
if
(
!
Object
.
is
(
this
.
tempStorage
.
getItem
(
context
.
srfsessionkey
+
'_knowledgearticleincidents'
),
'undefined'
)){
knowledgearticleincidentsData
=
JSON
.
parse
(
this
.
tempStorage
.
getItem
(
context
.
srfsessionkey
+
'_knowledgearticleincidents'
)
as
any
);
if
(
knowledgearticleincidentsData
&&
knowledgearticleincidentsData
.
length
&&
knowledgearticleincidentsData
.
length
>
0
){
knowledgearticleincidentsData
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
srffrontuf
){
if
(
Object
.
is
(
item
.
srffrontuf
,
"0"
)){
item
.
knowledgearticleincidentid
=
null
;
}
delete
item
.
srffrontuf
;
}
});
}
}
masterData
.
knowledgearticleincidents
=
knowledgearticleincidentsData
;
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
put
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
`
,
data
,
isloading
);
this
.
tempStorage
.
setItem
(
context
.
srfsessionkey
+
'_knowledgearticleincidents'
,
JSON
.
stringify
(
res
.
data
.
knowledgearticleincidents
));
return
res
;
}
...
...
@@ -114,6 +146,7 @@ export default class KnowledgeArticleServiceBase extends EntityService {
*/
public
async
Get
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
`
,
isloading
);
this
.
tempStorage
.
setItem
(
context
.
srfsessionkey
+
'_knowledgearticleincidents'
,
JSON
.
stringify
(
res
.
data
.
knowledgearticleincidents
));
return
res
;
}
...
...
@@ -129,6 +162,7 @@ export default class KnowledgeArticleServiceBase extends EntityService {
public
async
GetDraft
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/knowledgearticles/getdraft`
,
isloading
);
res
.
data
.
knowledgearticle
=
data
.
knowledgearticle
;
this
.
tempStorage
.
setItem
(
context
.
srfsessionkey
+
'_knowledgearticleincidents'
,
JSON
.
stringify
(
res
.
data
.
knowledgearticleincidents
));
return
res
;
}
...
...
@@ -156,8 +190,24 @@ export default class KnowledgeArticleServiceBase extends EntityService {
*/
public
async
Save
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
masterData
:
any
=
{};
let
knowledgearticleincidentsData
:
any
=
[];
if
(
!
Object
.
is
(
this
.
tempStorage
.
getItem
(
context
.
srfsessionkey
+
'_knowledgearticleincidents'
),
'undefined'
)){
knowledgearticleincidentsData
=
JSON
.
parse
(
this
.
tempStorage
.
getItem
(
context
.
srfsessionkey
+
'_knowledgearticleincidents'
)
as
any
);
if
(
knowledgearticleincidentsData
&&
knowledgearticleincidentsData
.
length
&&
knowledgearticleincidentsData
.
length
>
0
){
knowledgearticleincidentsData
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
srffrontuf
){
if
(
Object
.
is
(
item
.
srffrontuf
,
"0"
)){
item
.
knowledgearticleincidentid
=
null
;
}
delete
item
.
srffrontuf
;
}
});
}
}
masterData
.
knowledgearticleincidents
=
knowledgearticleincidentsData
;
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/knowledgearticles/
${
context
.
knowledgearticle
}
/save`
,
data
,
isloading
);
this
.
tempStorage
.
setItem
(
context
.
srfsessionkey
+
'_knowledgearticleincidents'
,
JSON
.
stringify
(
res
.
data
.
knowledgearticleincidents
));
return
res
;
}
...
...
app_CRM/src/service/opportunity/opportunity-service-base.ts
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
app_CRM/src/service/product/product-service-base.ts
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
app_CRM/src/service/sales-literature/sales-literature-service-base.ts
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
app_CRM/src/studio-core/components/html-container/html-container.vue
浏览文件 @
85afcae4
...
...
@@ -39,9 +39,13 @@ export default class HtmlContainer extends Vue {
*/
@
Watch
(
'content'
,
{
immediate
:
true
})
public
watchContent
():
void
{
if
(
this
.
content
&&
!
Object
.
is
(
this
.
content
,
''
))
{
this
.
rHtml
=
this
.
content
.
replace
(
/
\{(\d
+
)\.(
bmp|jpg|jpeg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp
)\}
/g
,
`
${
Environment
.
BaseUrl
}${
Environment
.
ExportFile
}
/$1`
);
if
(
this
.
content
)
{
if
(
!
Object
.
is
(
this
.
content
,
''
))
{
this
.
rHtml
=
this
.
content
.
replace
(
/
\{(\d
+
)\.(
bmp|jpg|jpeg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp
)\}
/g
,
`
${
Environment
.
BaseUrl
}${
Environment
.
ExportFile
}
/$1`
);
return
;
}
}
this
.
rHtml
=
''
;
}
}
</
script
>
...
...
app_CRM/src/studio-core/utils/studio-drawer/studio-drawer.less
浏览文件 @
85afcae4
...
...
@@ -35,11 +35,24 @@
background: var(--app-header-background-color);
>.studio-drawer-breadcrumb {
position: relative;
height: 100%;
vertical-align: 10px;
padding: 6px;
font-size: 16px;
font-weight: 700;
padding-left: 55px;
.studio-drawer-back {
position: absolute;
cursor: pointer;
top: 6px;
left: 0;
}
.studio-drawer-back:hover {
color: var(--app-header-font-color-active);
}
>span {
...
...
app_CRM/src/studio-core/utils/studio-drawer/studio-drawer.tsx
浏览文件 @
85afcae4
...
...
@@ -216,6 +216,10 @@ export class StudioDrawer extends Vue {
protected
renderHeader
():
any
{
return
<
div
class=
"studio-drawer-header"
>
<
div
class=
"studio-drawer-breadcrumb"
>
<
div
class=
"studio-drawer-back"
on
-
click=
{
()
=>
this
.
closeByIndex
(
this
.
viewList
.
length
-
1
)
}
>
<
icon
type=
"ios-arrow-back"
/>
返回
</
div
>
{
this
.
showViewList
.
map
((
item
,
i
)
=>
{
const
ref
:
any
=
this
.
$refs
[
item
.
viewname
+
i
];
if
(
!
ref
)
{
...
...
app_CRM/src/studio-core/view/MDViewBase.tsx
浏览文件 @
85afcae4
...
...
@@ -144,9 +144,11 @@ export class MDViewBase extends ViewBase {
* @memberof MDViewBase
*/
protected
quickGroupValueChange
=
(
$event
:
any
)
=>
{
if
(
$event
&&
$event
.
data
)
{
if
(
$event
)
{
this
.
quickGroupData
.
clearAll
();
Object
.
assign
(
this
.
quickGroupData
,
$event
.
data
);
if
(
$event
.
data
)
{
Object
.
assign
(
this
.
quickGroupData
,
$event
.
data
);
}
if
(
this
.
isEmitQuickGroupValue
)
{
this
.
onSearch
();
}
...
...
app_CRM/src/studio-core/widgets/EditFormControlBase.tsx
浏览文件 @
85afcae4
...
...
@@ -507,9 +507,8 @@ export class EditFormControlBase extends FormControlBase {
if
(
!
mode
||
(
mode
&&
Object
.
is
(
mode
,
''
)))
{
return
;
}
const
arg
:
any
=
{
...
data
};
Object
.
assign
(
arg
,
this
.
viewparams
);
const
post
:
Promise
<
any
>
=
this
.
service
.
frontLogic
(
mode
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
showloading
);
const
arg
:
any
=
Object
.
assign
(
this
.
viewparams
,
data
);
const
post
:
Promise
<
any
>
=
this
.
service
.
frontLogic
(
mode
,
this
.
context
,
data
,
showloading
);
post
.
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'表单项更新失败'
});
...
...
@@ -525,7 +524,7 @@ export class EditFormControlBase extends FormControlBase {
});
this
.
setFormEnableCond
(
_data
);
this
.
fillForm
(
_data
,
'updateFormItem'
);
this
.
formLogic
({
name
:
''
,
newVal
:
null
,
oldVal
:
null
});
//
this.formLogic({ name: '', newVal: null, oldVal: null });
this
.
dataChang
.
next
(
JSON
.
stringify
(
this
.
data
));
this
.
$nextTick
(()
=>
{
this
.
formState
.
next
({
type
:
'updateformitem'
,
ufimode
:
arg
.
srfufimode
,
data
:
_data
});
...
...
app_CRM/src/styles/default.less
浏览文件 @
85afcae4
...
...
@@ -668,7 +668,7 @@ div::-webkit-scrollbar-thumb {
// 数值编辑器
.ivu-input-number, .ivu-input-number-input, .ivu-input-number-handler-wrap {
background-color: var(--form-editor-background-color);
color: var(--form-editor-
placeholder-
font-color);
color: var(--form-editor-font-color);
}
.ivu-input-number {
...
...
app_CRM/src/uiservice/incident/incident-ui-service-base.ts
浏览文件 @
85afcae4
...
...
@@ -83,6 +83,7 @@ export default class IncidentUIServiceBase extends UIService {
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'edit_chlidincident'
,
srfappde
:
'incidents'
});
this
.
allViewMap
.
set
(
'MDATAVIEW:'
,{
viewname
:
'gridview'
,
srfappde
:
'incidents'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'quickcreateview'
,
srfappde
:
'incidents'
});
this
.
allViewMap
.
set
(
'PICKUPVIEW:'
,{
viewname
:
'pickupview'
,
srfappde
:
'incidents'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'childincidentgridview'
,
srfappde
:
'incidents'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info_incidentview'
,
srfappde
:
'incidents'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'infoview'
,
srfappde
:
'incidents'
});
...
...
app_CRM/src/uiservice/knowledge-article-incident/knowledge-article-incident-ui-service-base.ts
0 → 100644
浏览文件 @
85afcae4
import
{
Environment
}
from
'@/environments/environment'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
UIService
from
'../ui-service'
;
import
{
Subject
}
from
'rxjs'
;
import
KnowledgeArticleIncidentService
from
'@/service/knowledge-article-incident/knowledge-article-incident-service'
;
/**
* 知识文章事件UI服务对象基类
*
* @export
* @class KnowledgeArticleIncidentUIServiceBase
*/
export
default
class
KnowledgeArticleIncidentUIServiceBase
extends
UIService
{
/**
* 是否支持工作流
*
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
isEnableWorkflow
:
boolean
=
false
;
/**
* 当前UI服务对应的数据服务对象
*
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
dataService
:
KnowledgeArticleIncidentService
=
new
KnowledgeArticleIncidentService
();
/**
* 所有关联视图
*
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
allViewMap
:
Map
<
string
,
Object
>
=
new
Map
();
/**
* 状态值
*
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
stateValue
:
number
=
0
;
/**
* 状态属性
*
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
stateField
:
string
=
""
;
/**
* 主状态属性集合
*
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
mainStateFields
:
Array
<
any
>
=
[];
/**
* 主状态集合Map
*
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
allDeMainStateMap
:
Map
<
string
,
string
>
=
new
Map
();
/**
* Creates an instance of KnowledgeArticleIncidentUIServiceBase.
*
* @param {*} [opts={}]
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
this
.
initViewMap
();
this
.
initDeMainStateMap
();
}
/**
* 初始化视图Map
*
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
initViewMap
(){
this
.
allViewMap
.
set
(
'MDATAVIEW:'
,{
viewname
:
'gridview'
,
srfappde
:
'knowledgearticleincidents'
});
this
.
allViewMap
.
set
(
'EDITVIEW:'
,{
viewname
:
'editview'
,
srfappde
:
'knowledgearticleincidents'
});
}
/**
* 初始化主状态集合
*
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
initDeMainStateMap
(){
}
/**
* 获取指定数据的重定向页面
*
* @param srfkey 数据主键
* @param isEnableWorkflow 重定向视图是否需要处理流程中的数据
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
async
getRDAppView
(
srfkey
:
string
,
isEnableWorkflow
:
boolean
){
this
.
isEnableWorkflow
=
isEnableWorkflow
;
// 进行数据查询
let
result
:
any
=
await
this
.
dataService
.
Get
({
knowledgearticleincident
:
srfkey
});
const
curData
:
any
=
result
.
data
;
//判断当前数据模式,默认为true,todo
const
iRealDEModel
:
boolean
=
true
;
let
bDataInWF
:
boolean
=
false
;
let
bWFMode
:
any
=
false
;
// 计算数据模式
if
(
this
.
isEnableWorkflow
)
{
bDataInWF
=
await
this
.
dataService
.
testDataInWF
({
stateValue
:
this
.
stateValue
,
stateField
:
this
.
stateField
},
curData
);
if
(
bDataInWF
)
{
bDataInWF
=
true
;
bWFMode
=
await
this
.
dataService
.
testUserExistWorklist
(
null
,
curData
);
}
}
let
strPDTViewParam
:
string
=
await
this
.
getDESDDEViewPDTParam
(
curData
,
bDataInWF
,
bWFMode
);
//若不是当前数据模式,处理strPDTViewParam,todo
//查找视图
//返回视图
return
this
.
allViewMap
.
get
(
strPDTViewParam
);
}
/**
* 获取实际的数据类型
*
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
getRealDEType
(
entity
:
any
){
}
/**
* 获取实体单数据实体视图预定义参数
*
* @param curData 当前数据
* @param bDataInWF 是否有数据在工作流中
* @param bWFMode 是否工作流模式
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
async
getDESDDEViewPDTParam
(
curData
:
any
,
bDataInWF
:
boolean
,
bWFMode
:
boolean
){
let
strPDTParam
:
string
=
''
;
if
(
bDataInWF
)
{
// 判断数据是否在流程中
}
//多表单,todo
const
isEnableMultiForm
:
boolean
=
false
;
const
multiFormDEField
:
string
|
null
=
null
;
if
(
isEnableMultiForm
&&
multiFormDEField
)
{
const
objFormValue
:
string
=
curData
[
multiFormDEField
];
if
(
!
Environment
.
isAppMode
){
return
'MOBEDITVIEW'
+
objFormValue
;
}
return
'EDITVIEW'
+
objFormValue
;
}
if
(
!
Environment
.
isAppMode
){
if
(
this
.
getDEMainStateTag
(
curData
)){
return
`MOBEDITVIEW:MSTAG:
${
await
this
.
getDEMainStateTag
(
curData
)}
`
;
}
return
'MOBEDITVIEW:'
;
}
if
(
this
.
getDEMainStateTag
(
curData
)){
return
`EDITVIEW:MSTAG:
${
await
this
.
getDEMainStateTag
(
curData
)}
`
;
}
return
'EDITVIEW:'
;
}
/**
* 获取数据对象的主状态标识
*
* @param curData 当前数据
* @memberof KnowledgeArticleIncidentUIServiceBase
*/
public
async
getDEMainStateTag
(
curData
:
any
){
if
(
this
.
mainStateFields
.
length
===
0
)
return
null
;
this
.
mainStateFields
.
forEach
((
singleMainField
:
any
)
=>
{
if
(
!
(
singleMainField
in
curData
)){
console
.
error
(
`当前数据对象不包含属性singleMainField,可能会发生错误`
);
}
})
let
strTag
:
String
=
""
;
for
(
let
i
=
0
;
i
<=
1
;
i
++
)
{
let
strTag
:
string
=
(
curData
[
this
.
mainStateFields
[
0
]])?(
i
==
0
)
?
curData
[
this
.
mainStateFields
[
0
]]
:
""
:
""
;
if
(
this
.
mainStateFields
.
length
>=
2
)
{
for
(
let
j
=
0
;
j
<=
1
;
j
++
)
{
let
strTag2
:
string
=
(
curData
[
this
.
mainStateFields
[
1
]])?
`
${
strTag
}
__
${(
j
==
0
)
?
curData
[
this
.
mainStateFields
[
1
]]
:
""
}
`
:
strTag
;
if
(
this
.
mainStateFields
.
length
>=
3
)
{
for
(
let
k
=
0
;
k
<=
1
;
k
++
)
{
let
strTag3
:
string
=
(
curData
[
this
.
mainStateFields
[
2
]])?
`
${
strTag2
}
__
${(
k
==
0
)
?
curData
[
this
.
mainStateFields
[
2
]]
:
""
}
`
:
strTag2
;
// 判断是否存在
return
this
.
allDeMainStateMap
.
get
(
strTag3
);
}
}
else
{
return
this
.
allDeMainStateMap
.
get
(
strTag2
);
}
}
}
else
{
return
this
.
allDeMainStateMap
.
get
(
strTag
);
}
}
return
null
;
}
}
\ No newline at end of file
app_CRM/src/uiservice/knowledge-article-incident/knowledge-article-incident-ui-service.ts
0 → 100644
浏览文件 @
85afcae4
import
KnowledgeArticleIncidentUIServiceBase
from
'./knowledge-article-incident-ui-service-base'
;
/**
* 知识文章事件UI服务对象
*
* @export
* @class KnowledgeArticleIncidentUIService
*/
export
default
class
KnowledgeArticleIncidentUIService
extends
KnowledgeArticleIncidentUIServiceBase
{
/**
* Creates an instance of KnowledgeArticleIncidentUIService.
*
* @param {*} [opts={}]
* @memberof KnowledgeArticleIncidentUIService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
}
\ No newline at end of file
app_CRM/src/uiservice/knowledge-article/knowledge-article-ui-service-base.ts
浏览文件 @
85afcae4
...
...
@@ -79,6 +79,10 @@ export default class KnowledgeArticleUIServiceBase extends UIService {
* @memberof KnowledgeArticleUIServiceBase
*/
public
initViewMap
(){
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'infoview'
,
srfappde
:
'knowledgearticles'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'quickcreateview'
,
srfappde
:
'knowledgearticles'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'summaryview'
,
srfappde
:
'knowledgearticles'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info_klartview'
,
srfappde
:
'knowledgearticles'
});
}
/**
...
...
app_CRM/src/uiservice/ui-service-register.ts
浏览文件 @
85afcae4
...
...
@@ -63,6 +63,7 @@ export class UIServiceRegister {
this
.
allUIService
.
set
(
'phonecall'
,
()
=>
import
(
'@/uiservice/phone-call/phone-call-ui-service'
));
this
.
allUIService
.
set
(
'salesorderdetail'
,
()
=>
import
(
'@/uiservice/sales-order-detail/sales-order-detail-ui-service'
));
this
.
allUIService
.
set
(
'bulkoperation'
,
()
=>
import
(
'@/uiservice/bulk-operation/bulk-operation-ui-service'
));
this
.
allUIService
.
set
(
'knowledgearticleincident'
,
()
=>
import
(
'@/uiservice/knowledge-article-incident/knowledge-article-incident-ui-service'
));
this
.
allUIService
.
set
(
'listcontact'
,
()
=>
import
(
'@/uiservice/list-contact/list-contact-ui-service'
));
this
.
allUIService
.
set
(
'appointment'
,
()
=>
import
(
'@/uiservice/appointment/appointment-ui-service'
));
this
.
allUIService
.
set
(
'campaigncampaign'
,
()
=>
import
(
'@/uiservice/campaign-campaign/campaign-campaign-ui-service'
));
...
...
app_CRM/src/widgets/sales-order/soinfo-dashboard/soinfo-dashboard.html
浏览文件 @
85afcae4
...
...
@@ -3,7 +3,7 @@
<app-build
@
handleClick=
"handleClick.apply(_self, arguments)"
></app-build>
</row>
<row
v-if=
"!isHasCustomized"
>
<i-col
:md=
"{ span:
24
, offset: 0 }"
:lg=
"{ span: 18, offset: 0 }"
>
<i-col
:md=
"{ span:
18
, offset: 0 }"
:lg=
"{ span: 18, offset: 0 }"
>
<card
class=
"portlet-card"
:bordered=
"false"
dis-hover
:padding=
"0"
>
<span>
<div
class=
'portlet-container summary-viewdashboard-container1 portlet-container-no-border'
:style=
"{}"
>
...
...
businesscentral-app/businesscentral-app-crm/src/main/resources/application-crm-prod.yml
浏览文件 @
85afcae4
...
...
@@ -103,6 +103,10 @@ zuul:
path
:
/bulkoperations/**
serviceId
:
ibizbusinesscentral-centralapi
stripPrefix
:
false
knowledgearticleincident
:
path
:
/knowledgearticleincidents/**
serviceId
:
ibizbusinesscentral-centralapi
stripPrefix
:
false
listcontact
:
path
:
/listcontacts/**
serviceId
:
ibizbusinesscentral-centralapi
...
...
businesscentral-core/src/main/java/cn/ibizlab/businesscentral/core/base/domain/KnowledgeArticle.java
浏览文件 @
85afcae4
...
...
@@ -444,7 +444,7 @@ public class KnowledgeArticle extends EntityMP implements Serializable {
@JsonProperty
(
"expiredreviewoptions"
)
private
String
expiredreviewoptions
;
/**
*
父文章内容 ID
*
上级文章
*/
@TableField
(
value
=
"parentarticlecontentid"
)
@JSONField
(
name
=
"parentarticlecontentid"
)
...
...
@@ -485,6 +485,48 @@ public class KnowledgeArticle extends EntityMP implements Serializable {
@JSONField
(
name
=
"languagelocaleid"
)
@JsonProperty
(
"languagelocaleid"
)
private
String
languagelocaleid
;
/**
* 语言
*/
@TableField
(
value
=
"languagelocalename"
)
@JSONField
(
name
=
"languagelocalename"
)
@JsonProperty
(
"languagelocalename"
)
private
String
languagelocalename
;
/**
* 上级文章
*/
@TableField
(
value
=
"parentarticlecontentname"
)
@JSONField
(
name
=
"parentarticlecontentname"
)
@JsonProperty
(
"parentarticlecontentname"
)
private
String
parentarticlecontentname
;
/**
* 上篇文章
*/
@TableField
(
value
=
"previousarticlecontentname"
)
@JSONField
(
name
=
"previousarticlecontentname"
)
@JsonProperty
(
"previousarticlecontentname"
)
private
String
previousarticlecontentname
;
/**
* 根文章
*/
@TableField
(
value
=
"rootarticlename"
)
@JSONField
(
name
=
"rootarticlename"
)
@JsonProperty
(
"rootarticlename"
)
private
String
rootarticlename
;
/**
* 主题
*/
@TableField
(
value
=
"subjectname"
)
@JSONField
(
name
=
"subjectname"
)
@JsonProperty
(
"subjectname"
)
private
String
subjectname
;
/**
* 货币
*/
@TableField
(
value
=
"transactioncurrencyname"
)
@JSONField
(
name
=
"transactioncurrencyname"
)
@JsonProperty
(
"transactioncurrencyname"
)
private
String
transactioncurrencyname
;
/**
*
...
...
@@ -979,7 +1021,7 @@ public class KnowledgeArticle extends EntityMP implements Serializable {
}
/**
* 设置 [
父文章内容 ID
]
* 设置 [
上级文章
]
*/
public
void
setParentarticlecontentid
(
String
parentarticlecontentid
){
this
.
parentarticlecontentid
=
parentarticlecontentid
;
...
...
@@ -1026,6 +1068,54 @@ public class KnowledgeArticle extends EntityMP implements Serializable {
this
.
modify
(
"languagelocaleid"
,
languagelocaleid
);
}
/**
* 设置 [语言]
*/
public
void
setLanguagelocalename
(
String
languagelocalename
){
this
.
languagelocalename
=
languagelocalename
;
this
.
modify
(
"languagelocalename"
,
languagelocalename
);
}
/**
* 设置 [上级文章]
*/
public
void
setParentarticlecontentname
(
String
parentarticlecontentname
){
this
.
parentarticlecontentname
=
parentarticlecontentname
;
this
.
modify
(
"parentarticlecontentname"
,
parentarticlecontentname
);
}
/**
* 设置 [上篇文章]
*/
public
void
setPreviousarticlecontentname
(
String
previousarticlecontentname
){
this
.
previousarticlecontentname
=
previousarticlecontentname
;
this
.
modify
(
"previousarticlecontentname"
,
previousarticlecontentname
);
}
/**
* 设置 [根文章]
*/
public
void
setRootarticlename
(
String
rootarticlename
){
this
.
rootarticlename
=
rootarticlename
;
this
.
modify
(
"rootarticlename"
,
rootarticlename
);
}
/**
* 设置 [主题]
*/
public
void
setSubjectname
(
String
subjectname
){
this
.
subjectname
=
subjectname
;
this
.
modify
(
"subjectname"
,
subjectname
);
}
/**
* 设置 [货币]
*/
public
void
setTransactioncurrencyname
(
String
transactioncurrencyname
){
this
.
transactioncurrencyname
=
transactioncurrencyname
;
this
.
modify
(
"transactioncurrencyname"
,
transactioncurrencyname
);
}
}
...
...
businesscentral-core/src/main/java/cn/ibizlab/businesscentral/core/base/filter/KnowledgeArticleSearchContext.java
浏览文件 @
85afcae4
...
...
@@ -62,7 +62,7 @@ public class KnowledgeArticleSearchContext extends QueryWrapperContext<Knowledge
this
.
getSearchCond
().
eq
(
"expiredreviewoptions"
,
n_expiredreviewoptions_eq
);
}
}
private
String
n_parentarticlecontentid_eq
;
//[
父文章内容 ID
]
private
String
n_parentarticlecontentid_eq
;
//[
上级文章
]
public
void
setN_parentarticlecontentid_eq
(
String
n_parentarticlecontentid_eq
)
{
this
.
n_parentarticlecontentid_eq
=
n_parentarticlecontentid_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_parentarticlecontentid_eq
)){
...
...
@@ -104,6 +104,90 @@ public class KnowledgeArticleSearchContext extends QueryWrapperContext<Knowledge
this
.
getSearchCond
().
eq
(
"languagelocaleid"
,
n_languagelocaleid_eq
);
}
}
private
String
n_languagelocalename_eq
;
//[语言]
public
void
setN_languagelocalename_eq
(
String
n_languagelocalename_eq
)
{
this
.
n_languagelocalename_eq
=
n_languagelocalename_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_languagelocalename_eq
)){
this
.
getSearchCond
().
eq
(
"languagelocalename"
,
n_languagelocalename_eq
);
}
}
private
String
n_languagelocalename_like
;
//[语言]
public
void
setN_languagelocalename_like
(
String
n_languagelocalename_like
)
{
this
.
n_languagelocalename_like
=
n_languagelocalename_like
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_languagelocalename_like
)){
this
.
getSearchCond
().
like
(
"languagelocalename"
,
n_languagelocalename_like
);
}
}
private
String
n_parentarticlecontentname_eq
;
//[上级文章]
public
void
setN_parentarticlecontentname_eq
(
String
n_parentarticlecontentname_eq
)
{
this
.
n_parentarticlecontentname_eq
=
n_parentarticlecontentname_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_parentarticlecontentname_eq
)){
this
.
getSearchCond
().
eq
(
"parentarticlecontentname"
,
n_parentarticlecontentname_eq
);
}
}
private
String
n_parentarticlecontentname_like
;
//[上级文章]
public
void
setN_parentarticlecontentname_like
(
String
n_parentarticlecontentname_like
)
{
this
.
n_parentarticlecontentname_like
=
n_parentarticlecontentname_like
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_parentarticlecontentname_like
)){
this
.
getSearchCond
().
like
(
"parentarticlecontentname"
,
n_parentarticlecontentname_like
);
}
}
private
String
n_previousarticlecontentname_eq
;
//[上篇文章]
public
void
setN_previousarticlecontentname_eq
(
String
n_previousarticlecontentname_eq
)
{
this
.
n_previousarticlecontentname_eq
=
n_previousarticlecontentname_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_previousarticlecontentname_eq
)){
this
.
getSearchCond
().
eq
(
"previousarticlecontentname"
,
n_previousarticlecontentname_eq
);
}
}
private
String
n_previousarticlecontentname_like
;
//[上篇文章]
public
void
setN_previousarticlecontentname_like
(
String
n_previousarticlecontentname_like
)
{
this
.
n_previousarticlecontentname_like
=
n_previousarticlecontentname_like
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_previousarticlecontentname_like
)){
this
.
getSearchCond
().
like
(
"previousarticlecontentname"
,
n_previousarticlecontentname_like
);
}
}
private
String
n_rootarticlename_eq
;
//[根文章]
public
void
setN_rootarticlename_eq
(
String
n_rootarticlename_eq
)
{
this
.
n_rootarticlename_eq
=
n_rootarticlename_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_rootarticlename_eq
)){
this
.
getSearchCond
().
eq
(
"rootarticlename"
,
n_rootarticlename_eq
);
}
}
private
String
n_rootarticlename_like
;
//[根文章]
public
void
setN_rootarticlename_like
(
String
n_rootarticlename_like
)
{
this
.
n_rootarticlename_like
=
n_rootarticlename_like
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_rootarticlename_like
)){
this
.
getSearchCond
().
like
(
"rootarticlename"
,
n_rootarticlename_like
);
}
}
private
String
n_subjectname_eq
;
//[主题]
public
void
setN_subjectname_eq
(
String
n_subjectname_eq
)
{
this
.
n_subjectname_eq
=
n_subjectname_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_subjectname_eq
)){
this
.
getSearchCond
().
eq
(
"subjectname"
,
n_subjectname_eq
);
}
}
private
String
n_subjectname_like
;
//[主题]
public
void
setN_subjectname_like
(
String
n_subjectname_like
)
{
this
.
n_subjectname_like
=
n_subjectname_like
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_subjectname_like
)){
this
.
getSearchCond
().
like
(
"subjectname"
,
n_subjectname_like
);
}
}
private
String
n_transactioncurrencyname_eq
;
//[货币]
public
void
setN_transactioncurrencyname_eq
(
String
n_transactioncurrencyname_eq
)
{
this
.
n_transactioncurrencyname_eq
=
n_transactioncurrencyname_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_transactioncurrencyname_eq
)){
this
.
getSearchCond
().
eq
(
"transactioncurrencyname"
,
n_transactioncurrencyname_eq
);
}
}
private
String
n_transactioncurrencyname_like
;
//[货币]
public
void
setN_transactioncurrencyname_like
(
String
n_transactioncurrencyname_like
)
{
this
.
n_transactioncurrencyname_like
=
n_transactioncurrencyname_like
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_transactioncurrencyname_like
)){
this
.
getSearchCond
().
like
(
"transactioncurrencyname"
,
n_transactioncurrencyname_like
);
}
}
/**
* 启用快速搜索
...
...
businesscentral-core/src/main/java/cn/ibizlab/businesscentral/core/base/service/impl/KnowledgeArticleServiceImpl.java
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
businesscentral-core/src/main/java/cn/ibizlab/businesscentral/core/service/domain/KnowledgeArticleIncident.java
浏览文件 @
85afcae4
...
...
@@ -188,6 +188,20 @@ public class KnowledgeArticleIncident extends EntityMP implements Serializable {
@JSONField
(
name
=
"knowledgearticleid"
)
@JsonProperty
(
"knowledgearticleid"
)
private
String
knowledgearticleid
;
/**
* 服务案例
*/
@TableField
(
value
=
"incidentname"
)
@JSONField
(
name
=
"incidentname"
)
@JsonProperty
(
"incidentname"
)
private
String
incidentname
;
/**
* 知识文章
*/
@TableField
(
value
=
"knowledgearticlename"
)
@JSONField
(
name
=
"knowledgearticlename"
)
@JsonProperty
(
"knowledgearticlename"
)
private
String
knowledgearticlename
;
/**
*
...
...
@@ -337,6 +351,22 @@ public class KnowledgeArticleIncident extends EntityMP implements Serializable {
this
.
modify
(
"knowledgearticleid"
,
knowledgearticleid
);
}
/**
* 设置 [服务案例]
*/
public
void
setIncidentname
(
String
incidentname
){
this
.
incidentname
=
incidentname
;
this
.
modify
(
"incidentname"
,
incidentname
);
}
/**
* 设置 [知识文章]
*/
public
void
setKnowledgearticlename
(
String
knowledgearticlename
){
this
.
knowledgearticlename
=
knowledgearticlename
;
this
.
modify
(
"knowledgearticlename"
,
knowledgearticlename
);
}
}
...
...
businesscentral-core/src/main/java/cn/ibizlab/businesscentral/core/service/filter/KnowledgeArticleIncidentSearchContext.java
浏览文件 @
85afcae4
...
...
@@ -62,6 +62,34 @@ public class KnowledgeArticleIncidentSearchContext extends QueryWrapperContext<K
this
.
getSearchCond
().
eq
(
"knowledgearticleid"
,
n_knowledgearticleid_eq
);
}
}
private
String
n_incidentname_eq
;
//[服务案例]
public
void
setN_incidentname_eq
(
String
n_incidentname_eq
)
{
this
.
n_incidentname_eq
=
n_incidentname_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_incidentname_eq
)){
this
.
getSearchCond
().
eq
(
"incidentname"
,
n_incidentname_eq
);
}
}
private
String
n_incidentname_like
;
//[服务案例]
public
void
setN_incidentname_like
(
String
n_incidentname_like
)
{
this
.
n_incidentname_like
=
n_incidentname_like
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_incidentname_like
)){
this
.
getSearchCond
().
like
(
"incidentname"
,
n_incidentname_like
);
}
}
private
String
n_knowledgearticlename_eq
;
//[知识文章]
public
void
setN_knowledgearticlename_eq
(
String
n_knowledgearticlename_eq
)
{
this
.
n_knowledgearticlename_eq
=
n_knowledgearticlename_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_knowledgearticlename_eq
)){
this
.
getSearchCond
().
eq
(
"knowledgearticlename"
,
n_knowledgearticlename_eq
);
}
}
private
String
n_knowledgearticlename_like
;
//[知识文章]
public
void
setN_knowledgearticlename_like
(
String
n_knowledgearticlename_like
)
{
this
.
n_knowledgearticlename_like
=
n_knowledgearticlename_like
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_knowledgearticlename_like
)){
this
.
getSearchCond
().
like
(
"knowledgearticlename"
,
n_knowledgearticlename_like
);
}
}
/**
* 启用快速搜索
...
...
businesscentral-core/src/main/java/cn/ibizlab/businesscentral/core/service/service/impl/KnowledgeArticleIncidentServiceImpl.java
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
businesscentral-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
businesscentral-core/src/main/resources/mapper/base/knowledgearticle/KnowledgeArticleMapper.xml
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
businesscentral-core/src/main/resources/mapper/service/knowledgearticleincident/KnowledgeArticleIncidentMapper.xml
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
businesscentral-core/src/main/resources/permission/systemResource.json
浏览文件 @
85afcae4
...
...
@@ -196,6 +196,14 @@
"datascope"
:[{
"id"
:
"all"
,
"name"
:
"全部数据"
},
{
"id"
:
"createman"
,
"name"
:
"创建人"
}]
}
,
{
"dename"
:
"KnowledgeArticleIncident"
,
"delogicname"
:
"知识文章事件"
,
"sysmoudle"
:{
"id"
:
"SERVICE"
,
"name"
:
"Service"
},
"dedataset"
:[{
"id"
:
"Default"
,
"name"
:
"DEFAULT"
}],
"deaction"
:[{
"id"
:
"Create"
,
"name"
:
"Create"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Update"
,
"name"
:
"Update"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Remove"
,
"name"
:
"Remove"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Get"
,
"name"
:
"Get"
,
"type"
:
"BUILTIN"
},{
"id"
:
"GetDraft"
,
"name"
:
"GetDraft"
,
"type"
:
"BUILTIN"
},{
"id"
:
"CheckKey"
,
"name"
:
"CheckKey"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Save"
,
"name"
:
"Save"
,
"type"
:
"BUILTIN"
}],
"datascope"
:[{
"id"
:
"all"
,
"name"
:
"全部数据"
},
{
"id"
:
"createman"
,
"name"
:
"创建人"
}]
}
,
{
"dename"
:
"ListContact"
,
"delogicname"
:
"营销列表-联系人"
,
"sysmoudle"
:{
"id"
:
"MARKETING"
,
"name"
:
"Marketing"
},
...
...
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/dto/KnowledgeArticleDTO.java
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/dto/KnowledgeArticleIncidentDTO.java
0 → 100644
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/mapping/KnowledgeArticleIncidentMapping.java
0 → 100644
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/KnowledgeArticleIncidentResource.java
0 → 100644
浏览文件 @
85afcae4
此差异已折叠。
点击以展开。
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录