提交 85afcae4 编写于 作者: ibizdev's avatar ibizdev

lab_gzf 发布系统代码

上级 0a774c2a
...@@ -1023,6 +1023,153 @@ ...@@ -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", "srfkey": "YesNo",
"emptytext": "未定义", "emptytext": "未定义",
...@@ -3046,6 +3193,33 @@ ...@@ -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", "srfkey": "Account__Address1_ShippingMethodCode",
"emptytext": "未定义", "emptytext": "未定义",
......
...@@ -959,6 +959,16 @@ ...@@ -959,6 +959,16 @@
"viewtag": "6978259896338a7ace85a9fbc5d70395", "viewtag": "6978259896338a7ace85a9fbc5d70395",
"memo": "" "memo": ""
}, },
"knowledgearticleincidentgridview": {
"title": "知识文章事件表格视图",
"caption": "知识文章事件",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Service",
"viewname": "KnowledgeArticleIncidentGridView",
"viewfilename": "knowledge-article-incident-grid-view",
"viewtag": "6c17740cc21fd25906f3feeec10a454a",
"memo": "系统自动添加"
},
"opportunityproductopp_oppprogridview": { "opportunityproductopp_oppprogridview": {
"title": "商机产品表格视图", "title": "商机产品表格视图",
"caption": "商机产品", "caption": "商机产品",
...@@ -1139,6 +1149,16 @@ ...@@ -1139,6 +1149,16 @@
"viewtag": "7decb196037249b909762c9142adfe91", "viewtag": "7decb196037249b909762c9142adfe91",
"memo": "系统自动添加" "memo": "系统自动添加"
}, },
"knowledgearticleincidenteditview": {
"title": "知识文章事件编辑视图",
"caption": "知识文章事件",
"viewtype": "DEEDITVIEW",
"viewmodule": "Service",
"viewname": "KnowledgeArticleIncidentEditView",
"viewfilename": "knowledge-article-incident-edit-view",
"viewtag": "7e6f9ab9d51be22efda1567e58cb29a2",
"memo": "系统自动添加"
},
"centeralportal": { "centeralportal": {
"title": "仪表盘", "title": "仪表盘",
"caption": "仪表盘", "caption": "仪表盘",
...@@ -1309,6 +1329,26 @@ ...@@ -1309,6 +1329,26 @@
"viewtag": "9224b0b14d2d99014e051f8035ba5cbf", "viewtag": "9224b0b14d2d99014e051f8035ba5cbf",
"memo": "系统自动添加" "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": { "contactinfo_address": {
"title": "联系人编辑视图", "title": "联系人编辑视图",
"caption": "联系人", "caption": "联系人",
...@@ -1399,6 +1439,16 @@ ...@@ -1399,6 +1439,16 @@
"viewtag": "9af073dea1ea05903d52e8bdc5a03dd5", "viewtag": "9af073dea1ea05903d52e8bdc5a03dd5",
"memo": "" "memo": ""
}, },
"knowledgearticlequickcreateview": {
"title": "快速新建",
"caption": "知识文章",
"viewtype": "DEOPTVIEW",
"viewmodule": "Base",
"viewname": "KnowledgeArticleQuickCreateView",
"viewfilename": "knowledge-article-quick-create-view",
"viewtag": "9ba060dce370154a467bf1d804420e64",
"memo": ""
},
"goaledit_childgoalview": { "goaledit_childgoalview": {
"title": "子目标信息", "title": "子目标信息",
"caption": "目标", "caption": "目标",
...@@ -1679,6 +1729,16 @@ ...@@ -1679,6 +1729,16 @@
"viewtag": "b38bc0256ecd5be1a58a3c2210a98d05", "viewtag": "b38bc0256ecd5be1a58a3c2210a98d05",
"memo": "" "memo": ""
}, },
"knowledgearticlesummaryview": {
"title": "知识文章数据看板视图",
"caption": "知识文章",
"viewtype": "DEPORTALVIEW",
"viewmodule": "Base",
"viewname": "KnowledgeArticleSummaryView",
"viewfilename": "knowledge-article-summary-view",
"viewtag": "b3c480644c68d29d431273a2ad61423a",
"memo": ""
},
"campaignresponseeditview": { "campaignresponseeditview": {
"title": "市场活动响应编辑视图", "title": "市场活动响应编辑视图",
"caption": "市场活动响应", "caption": "市场活动响应",
...@@ -1789,6 +1849,16 @@ ...@@ -1789,6 +1849,16 @@
"viewtag": "c0f2529b17654edda5f85a28635e353c", "viewtag": "c0f2529b17654edda5f85a28635e353c",
"memo": "" "memo": ""
}, },
"knowledgearticleinfo_klartview": {
"title": "知识文章信息视图",
"caption": "知识文章",
"viewtype": "DEEDITVIEW",
"viewmodule": "Base",
"viewname": "KnowledgeArticleInfo_KlArtView",
"viewfilename": "knowledge-article-info-kl-art-view",
"viewtag": "c2aef858dbad7f779c97642ab7144137",
"memo": ""
},
"opportunitycompetitoreditview": { "opportunitycompetitoreditview": {
"title": "商机对手编辑视图", "title": "商机对手编辑视图",
"caption": "商机对手", "caption": "商机对手",
......
<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
.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
<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
/**
* 知识文章事件
*
* @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
...@@ -439,7 +439,7 @@ export interface KnowledgeArticle { ...@@ -439,7 +439,7 @@ export interface KnowledgeArticle {
expiredreviewoptions?: any; expiredreviewoptions?: any;
/** /**
* 父文章内容 ID * 上级文章
* *
* @returns {*} * @returns {*}
* @memberof KnowledgeArticle * @memberof KnowledgeArticle
...@@ -485,4 +485,52 @@ export interface KnowledgeArticle { ...@@ -485,4 +485,52 @@ export interface KnowledgeArticle {
* @memberof KnowledgeArticle * @memberof KnowledgeArticle
*/ */
languagelocaleid?: any; 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
...@@ -22,6 +22,7 @@ import campaignresponse_en_US from '@locale/lanres/entities/campaign-response/ca ...@@ -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 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 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 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 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 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'; import campaigncampaign_en_US from '@locale/lanres/entities/campaign-campaign/campaign-campaign_en_US';
...@@ -180,6 +181,7 @@ export default { ...@@ -180,6 +181,7 @@ export default {
phonecall: phonecall_en_US, phonecall: phonecall_en_US,
salesorderdetail: salesorderdetail_en_US, salesorderdetail: salesorderdetail_en_US,
bulkoperation: bulkoperation_en_US, bulkoperation: bulkoperation_en_US,
knowledgearticleincident: knowledgearticleincident_en_US,
listcontact: listcontact_en_US, listcontact: listcontact_en_US,
appointment: appointment_en_US, appointment: appointment_en_US,
campaigncampaign: campaigncampaign_en_US, campaigncampaign: campaigncampaign_en_US,
......
...@@ -22,6 +22,7 @@ import campaignresponse_zh_CN from '@locale/lanres/entities/campaign-response/ca ...@@ -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 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 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 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 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 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'; import campaigncampaign_zh_CN from '@locale/lanres/entities/campaign-campaign/campaign-campaign_zh_CN';
...@@ -180,6 +181,7 @@ export default { ...@@ -180,6 +181,7 @@ export default {
phonecall: phonecall_zh_CN, phonecall: phonecall_zh_CN,
salesorderdetail: salesorderdetail_zh_CN, salesorderdetail: salesorderdetail_zh_CN,
bulkoperation: bulkoperation_zh_CN, bulkoperation: bulkoperation_zh_CN,
knowledgearticleincident: knowledgearticleincident_zh_CN,
listcontact: listcontact_zh_CN, listcontact: listcontact_zh_CN,
appointment: appointment_zh_CN, appointment: appointment_zh_CN,
campaigncampaign: campaigncampaign_zh_CN, campaigncampaign: campaigncampaign_zh_CN,
......
...@@ -145,6 +145,23 @@ export default { ...@@ -145,6 +145,23 @@ export default {
"3": "已计划", "3": "已计划",
"empty": "" "empty": ""
}, },
Knowledgearticle__StatusCode: {
"4": "审阅中",
"7": "已发布",
"12": "已存档",
"5": "已审批",
"11": "已拒绝",
"14": "已拒绝",
"1": "已拟定",
"13": "已放弃",
"6": "已计划",
"10": "已过期",
"9": "正在更新",
"2": "草稿",
"3": "需要审阅",
"8": "需要审阅",
"empty": ""
},
YesNo: { YesNo: {
"1": "是", "1": "是",
"0": "否", "0": "否",
...@@ -391,6 +408,11 @@ export default { ...@@ -391,6 +408,11 @@ export default {
"6": "边际百分比 – 标准成本", "6": "边际百分比 – 标准成本",
"empty": "" "empty": ""
}, },
Knowledgearticleincident__StatusCode: {
"2": "停用",
"1": "有效",
"empty": ""
},
Account__Address1_ShippingMethodCode: { Account__Address1_ShippingMethodCode: {
"2": "DHL", "2": "DHL",
"3": "FedEx", "3": "FedEx",
......
...@@ -145,6 +145,23 @@ export default { ...@@ -145,6 +145,23 @@ export default {
"3": "已计划", "3": "已计划",
"empty": "", "empty": "",
}, },
Knowledgearticle__StatusCode: {
"4": "审阅中",
"7": "已发布",
"12": "已存档",
"5": "已审批",
"11": "已拒绝",
"14": "已拒绝",
"1": "已拟定",
"13": "已放弃",
"6": "已计划",
"10": "已过期",
"9": "正在更新",
"2": "草稿",
"3": "需要审阅",
"8": "需要审阅",
"empty": "",
},
YesNo: { YesNo: {
"1": "是", "1": "是",
"0": "否", "0": "否",
...@@ -391,6 +408,11 @@ export default { ...@@ -391,6 +408,11 @@ export default {
"6": "边际百分比 – 标准成本", "6": "边际百分比 – 标准成本",
"empty": "", "empty": "",
}, },
Knowledgearticleincident__StatusCode: {
"2": "停用",
"1": "有效",
"empty": "",
},
Account__Address1_ShippingMethodCode: { Account__Address1_ShippingMethodCode: {
"2": "DHL", "2": "DHL",
"3": "FedEx", "3": "FedEx",
......
...@@ -117,6 +117,10 @@ export default { ...@@ -117,6 +117,10 @@ export default {
caption: "案例", caption: "案例",
title: "快速新建", title: "快速新建",
}, },
pickupview: {
caption: "案例",
title: "案例数据选择视图",
},
childincidentgridview: { childincidentgridview: {
caption: "案例", caption: "案例",
title: "子案例信息", title: "子案例信息",
......
...@@ -116,6 +116,10 @@ export default { ...@@ -116,6 +116,10 @@ export default {
caption: "案例", caption: "案例",
title: "快速新建", title: "快速新建",
}, },
pickupview: {
caption: "案例",
title: "案例数据选择视图",
},
childincidentgridview: { childincidentgridview: {
caption: "案例", caption: "案例",
title: "子案例信息", title: "子案例信息",
......
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
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
...@@ -55,11 +55,85 @@ export default { ...@@ -55,11 +55,85 @@ export default {
updatecontent: "更新内容", updatecontent: "更新内容",
expirationdate: "到期日期", expirationdate: "到期日期",
expiredreviewoptions: "已过期审阅选项", expiredreviewoptions: "已过期审阅选项",
parentarticlecontentid: "父文章内容 ID", parentarticlecontentid: "上级文章",
previousarticlecontentid: "上篇文章内容 ID", previousarticlecontentid: "上篇文章内容 ID",
transactioncurrencyid: "货币", transactioncurrencyid: "货币",
rootarticleid: "根文章 ID", rootarticleid: "根文章 ID",
subjectid: "主题", subjectid: "主题",
languagelocaleid: "语言", 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
...@@ -54,11 +54,85 @@ export default { ...@@ -54,11 +54,85 @@ export default {
updatecontent: "更新内容", updatecontent: "更新内容",
expirationdate: "到期日期", expirationdate: "到期日期",
expiredreviewoptions: "已过期审阅选项", expiredreviewoptions: "已过期审阅选项",
parentarticlecontentid: "父文章内容 ID", parentarticlecontentid: "上级文章",
previousarticlecontentid: "上篇文章内容 ID", previousarticlecontentid: "上篇文章内容 ID",
transactioncurrencyid: "货币", transactioncurrencyid: "货币",
rootarticleid: "根文章 ID", rootarticleid: "根文章 ID",
subjectid: "主题", subjectid: "主题",
languagelocaleid: "语言", 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
...@@ -1031,6 +1031,153 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => { ...@@ -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", srfkey: "YesNo",
emptytext: "未定义", emptytext: "未定义",
...@@ -3054,6 +3201,33 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => { ...@@ -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", srfkey: "Account__Address1_ShippingMethodCode",
emptytext: "未定义", emptytext: "未定义",
......
...@@ -31,6 +31,7 @@ import './entity/campaign-responses/campaign-responses'; ...@@ -31,6 +31,7 @@ import './entity/campaign-responses/campaign-responses';
import './entity/phone-calls/phone-calls'; import './entity/phone-calls/phone-calls';
import './entity/sales-order-details/sales-order-details'; import './entity/sales-order-details/sales-order-details';
import './entity/bulk-operations/bulk-operations'; import './entity/bulk-operations/bulk-operations';
import './entity/knowledge-article-incidents/knowledge-article-incidents';
import './entity/list-contacts/list-contacts'; import './entity/list-contacts/list-contacts';
import './entity/appointments/appointments'; import './entity/appointments/appointments';
import './entity/campaign-campaigns/campaign-campaigns'; import './entity/campaign-campaigns/campaign-campaigns';
......
...@@ -775,6 +775,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -775,6 +775,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "AccountGradation", "viewname": "AccountGradation",
"viewtag": "6978259896338a7ace85a9fbc5d70395" "viewtag": "6978259896338a7ace85a9fbc5d70395"
}, },
"knowledgearticleincidentgridview": {
"title": "知识文章事件表格视图",
"caption": "知识文章事件",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Service",
"viewname": "KnowledgeArticleIncidentGridView",
"viewtag": "6c17740cc21fd25906f3feeec10a454a"
},
"opportunityproductopp_oppprogridview": { "opportunityproductopp_oppprogridview": {
"title": "商机产品表格视图", "title": "商机产品表格视图",
"caption": "商机产品", "caption": "商机产品",
...@@ -919,6 +927,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -919,6 +927,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "UomSchedulePickupGridView", "viewname": "UomSchedulePickupGridView",
"viewtag": "7decb196037249b909762c9142adfe91" "viewtag": "7decb196037249b909762c9142adfe91"
}, },
"knowledgearticleincidenteditview": {
"title": "知识文章事件编辑视图",
"caption": "知识文章事件",
"viewtype": "DEEDITVIEW",
"viewmodule": "Service",
"viewname": "KnowledgeArticleIncidentEditView",
"viewtag": "7e6f9ab9d51be22efda1567e58cb29a2"
},
"centeralportal": { "centeralportal": {
"title": "仪表盘", "title": "仪表盘",
"caption": "仪表盘", "caption": "仪表盘",
...@@ -1055,6 +1071,22 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -1055,6 +1071,22 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ContactByAccount", "viewname": "ContactByAccount",
"viewtag": "9224b0b14d2d99014e051f8035ba5cbf" "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": { "contactinfo_address": {
"title": "联系人编辑视图", "title": "联系人编辑视图",
"caption": "联系人", "caption": "联系人",
...@@ -1127,6 +1159,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -1127,6 +1159,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "MetricGridView", "viewname": "MetricGridView",
"viewtag": "9af073dea1ea05903d52e8bdc5a03dd5" "viewtag": "9af073dea1ea05903d52e8bdc5a03dd5"
}, },
"knowledgearticlequickcreateview": {
"title": "快速新建",
"caption": "知识文章",
"viewtype": "DEOPTVIEW",
"viewmodule": "Base",
"viewname": "KnowledgeArticleQuickCreateView",
"viewtag": "9ba060dce370154a467bf1d804420e64"
},
"goaledit_childgoalview": { "goaledit_childgoalview": {
"title": "子目标信息", "title": "子目标信息",
"caption": "目标", "caption": "目标",
...@@ -1351,6 +1391,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -1351,6 +1391,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductGridView", "viewname": "ProductGridView",
"viewtag": "b38bc0256ecd5be1a58a3c2210a98d05" "viewtag": "b38bc0256ecd5be1a58a3c2210a98d05"
}, },
"knowledgearticlesummaryview": {
"title": "知识文章数据看板视图",
"caption": "知识文章",
"viewtype": "DEPORTALVIEW",
"viewmodule": "Base",
"viewname": "KnowledgeArticleSummaryView",
"viewtag": "b3c480644c68d29d431273a2ad61423a"
},
"campaignresponseeditview": { "campaignresponseeditview": {
"title": "市场活动响应编辑视图", "title": "市场活动响应编辑视图",
"caption": "市场活动响应", "caption": "市场活动响应",
...@@ -1439,6 +1487,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -1439,6 +1487,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "LeadInfo_Detail", "viewname": "LeadInfo_Detail",
"viewtag": "c0f2529b17654edda5f85a28635e353c" "viewtag": "c0f2529b17654edda5f85a28635e353c"
}, },
"knowledgearticleinfo_klartview": {
"title": "知识文章信息视图",
"caption": "知识文章",
"viewtype": "DEEDITVIEW",
"viewmodule": "Base",
"viewname": "KnowledgeArticleInfo_KlArtView",
"viewtag": "c2aef858dbad7f779c97642ab7144137"
},
"opportunitycompetitoreditview": { "opportunitycompetitoreditview": {
"title": "商机对手编辑视图", "title": "商机对手编辑视图",
"caption": "商机对手", "caption": "商机对手",
......
...@@ -30,6 +30,18 @@ export class InvoiceSummaryViewBase extends DashboardViewBase { ...@@ -30,6 +30,18 @@ export class InvoiceSummaryViewBase extends DashboardViewBase {
*/ */
protected counterServiceArray: Array<any> = []; protected counterServiceArray: Array<any> = [];
/**
* 自定义视图导航上下文集合
*
* @protected
* @type {*}
* @memberof InvoiceSummaryViewBase
*/
protected customViewNavContexts: any = {
'REGARDINGOBJECTID': { isRawValue: false, value: 'invoice' },
'REGARDINGOBJECTTYPECODE': { isRawValue: true, value: 'INVOICE' }
};
/** /**
* 视图模型数据 * 视图模型数据
* *
......
...@@ -30,6 +30,18 @@ export class SalesOrderSummaryViewBase extends DashboardViewBase { ...@@ -30,6 +30,18 @@ export class SalesOrderSummaryViewBase extends DashboardViewBase {
*/ */
protected counterServiceArray: Array<any> = []; protected counterServiceArray: Array<any> = [];
/**
* 自定义视图导航上下文集合
*
* @protected
* @type {*}
* @memberof SalesOrderSummaryViewBase
*/
protected customViewNavContexts: any = {
'REGARDINGOBJECTID': { isRawValue: false, value: 'salesorder' },
'REGARDINGOBJECTTYPECODE': { isRawValue: true, value: 'SALESORDER' }
};
/** /**
* 视图模型数据 * 视图模型数据
* *
......
...@@ -63,6 +63,7 @@ export class EntityServiceRegister { ...@@ -63,6 +63,7 @@ export class EntityServiceRegister {
this.allEntityService.set('phonecall', () => import('@/service/phone-call/phone-call-service')); 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('salesorderdetail', () => import('@/service/sales-order-detail/sales-order-detail-service'));
this.allEntityService.set('bulkoperation', () => import('@/service/bulk-operation/bulk-operation-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('listcontact', () => import('@/service/list-contact/list-contact-service'));
this.allEntityService.set('appointment', () => import('@/service/appointment/appointment-service')); this.allEntityService.set('appointment', () => import('@/service/appointment/appointment-service'));
this.allEntityService.set('campaigncampaign', () => import('@/service/campaign-campaign/campaign-campaign-service')); this.allEntityService.set('campaigncampaign', () => import('@/service/campaign-campaign/campaign-campaign-service'));
......
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
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
...@@ -62,6 +62,21 @@ export default class KnowledgeArticleServiceBase extends EntityService { ...@@ -62,6 +62,21 @@ export default class KnowledgeArticleServiceBase extends EntityService {
*/ */
public async Create(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async Create(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let masterData: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); Object.assign(data,masterData);
if(!data.srffrontuf || data.srffrontuf !== "1"){ if(!data.srffrontuf || data.srffrontuf !== "1"){
data[this.APPDEKEY] = null; data[this.APPDEKEY] = null;
...@@ -71,6 +86,7 @@ export default class KnowledgeArticleServiceBase extends EntityService { ...@@ -71,6 +86,7 @@ export default class KnowledgeArticleServiceBase extends EntityService {
} }
let tempContext:any = JSON.parse(JSON.stringify(context)); let tempContext:any = JSON.parse(JSON.stringify(context));
let res:any = await Http.getInstance().post(`/knowledgearticles`,data,isloading); let res:any = await Http.getInstance().post(`/knowledgearticles`,data,isloading);
this.tempStorage.setItem(tempContext.srfsessionkey+'_knowledgearticleincidents',JSON.stringify(res.data.knowledgearticleincidents));
return res; return res;
} }
...@@ -85,8 +101,24 @@ export default class KnowledgeArticleServiceBase extends EntityService { ...@@ -85,8 +101,24 @@ export default class KnowledgeArticleServiceBase extends EntityService {
*/ */
public async Update(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async Update(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let masterData: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); Object.assign(data,masterData);
let res:any = await Http.getInstance().put(`/knowledgearticles/${context.knowledgearticle}`,data,isloading); 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; return res;
} }
...@@ -114,6 +146,7 @@ export default class KnowledgeArticleServiceBase extends EntityService { ...@@ -114,6 +146,7 @@ export default class KnowledgeArticleServiceBase extends EntityService {
*/ */
public async Get(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async Get(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let res:any = await Http.getInstance().get(`/knowledgearticles/${context.knowledgearticle}`,isloading); let res:any = await Http.getInstance().get(`/knowledgearticles/${context.knowledgearticle}`,isloading);
this.tempStorage.setItem(context.srfsessionkey+'_knowledgearticleincidents',JSON.stringify(res.data.knowledgearticleincidents));
return res; return res;
} }
...@@ -129,6 +162,7 @@ export default class KnowledgeArticleServiceBase extends EntityService { ...@@ -129,6 +162,7 @@ export default class KnowledgeArticleServiceBase extends EntityService {
public async GetDraft(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async GetDraft(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let res:any = await Http.getInstance().get(`/knowledgearticles/getdraft`,isloading); let res:any = await Http.getInstance().get(`/knowledgearticles/getdraft`,isloading);
res.data.knowledgearticle = data.knowledgearticle; res.data.knowledgearticle = data.knowledgearticle;
this.tempStorage.setItem(context.srfsessionkey+'_knowledgearticleincidents',JSON.stringify(res.data.knowledgearticleincidents));
return res; return res;
} }
...@@ -156,8 +190,24 @@ export default class KnowledgeArticleServiceBase extends EntityService { ...@@ -156,8 +190,24 @@ export default class KnowledgeArticleServiceBase extends EntityService {
*/ */
public async Save(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async Save(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let masterData: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); Object.assign(data,masterData);
let res:any = await Http.getInstance().post(`/knowledgearticles/${context.knowledgearticle}/save`,data,isloading); 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; return res;
} }
......
...@@ -39,10 +39,14 @@ export default class HtmlContainer extends Vue { ...@@ -39,10 +39,14 @@ export default class HtmlContainer extends Vue {
*/ */
@Watch('content', { immediate: true }) @Watch('content', { immediate: true })
public watchContent(): void { public watchContent(): void {
if (this.content && !Object.is(this.content, '')) { 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`); 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> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
...@@ -35,11 +35,24 @@ ...@@ -35,11 +35,24 @@
background: var(--app-header-background-color); background: var(--app-header-background-color);
>.studio-drawer-breadcrumb { >.studio-drawer-breadcrumb {
position: relative;
height: 100%; height: 100%;
vertical-align: 10px; vertical-align: 10px;
padding: 6px; padding: 6px;
font-size: 16px; font-size: 16px;
font-weight: 700; 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 { >span {
......
...@@ -216,6 +216,10 @@ export class StudioDrawer extends Vue { ...@@ -216,6 +216,10 @@ export class StudioDrawer extends Vue {
protected renderHeader(): any { protected renderHeader(): any {
return <div class="studio-drawer-header"> return <div class="studio-drawer-header">
<div class="studio-drawer-breadcrumb"> <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) => { {this.showViewList.map((item, i) => {
const ref: any = this.$refs[item.viewname + i]; const ref: any = this.$refs[item.viewname + i];
if (!ref) { if (!ref) {
......
...@@ -144,9 +144,11 @@ export class MDViewBase extends ViewBase { ...@@ -144,9 +144,11 @@ export class MDViewBase extends ViewBase {
* @memberof MDViewBase * @memberof MDViewBase
*/ */
protected quickGroupValueChange = ($event: any) => { protected quickGroupValueChange = ($event: any) => {
if ($event && $event.data) { if ($event) {
this.quickGroupData.clearAll(); this.quickGroupData.clearAll();
if ($event.data) {
Object.assign(this.quickGroupData, $event.data); Object.assign(this.quickGroupData, $event.data);
}
if (this.isEmitQuickGroupValue) { if (this.isEmitQuickGroupValue) {
this.onSearch(); this.onSearch();
} }
......
...@@ -507,9 +507,8 @@ export class EditFormControlBase extends FormControlBase { ...@@ -507,9 +507,8 @@ export class EditFormControlBase extends FormControlBase {
if (!mode || (mode && Object.is(mode, ''))) { if (!mode || (mode && Object.is(mode, ''))) {
return; return;
} }
const arg: any = { ...data }; const arg: any = Object.assign(this.viewparams, data);
Object.assign(arg, this.viewparams); const post: Promise<any> = this.service.frontLogic(mode, this.context, data, showloading);
const post: Promise<any> = this.service.frontLogic(mode, JSON.parse(JSON.stringify(this.context)), arg, showloading);
post.then((response: any) => { post.then((response: any) => {
if (!response || response.status !== 200) { if (!response || response.status !== 200) {
this.$Notice.error({ title: '错误', desc: '表单项更新失败' }); this.$Notice.error({ title: '错误', desc: '表单项更新失败' });
...@@ -525,7 +524,7 @@ export class EditFormControlBase extends FormControlBase { ...@@ -525,7 +524,7 @@ export class EditFormControlBase extends FormControlBase {
}); });
this.setFormEnableCond(_data); this.setFormEnableCond(_data);
this.fillForm(_data, 'updateFormItem'); 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.dataChang.next(JSON.stringify(this.data));
this.$nextTick(() => { this.$nextTick(() => {
this.formState.next({ type: 'updateformitem', ufimode: arg.srfufimode, data: _data }); this.formState.next({ type: 'updateformitem', ufimode: arg.srfufimode, data: _data });
......
...@@ -668,7 +668,7 @@ div::-webkit-scrollbar-thumb { ...@@ -668,7 +668,7 @@ div::-webkit-scrollbar-thumb {
// 数值编辑器 // 数值编辑器
.ivu-input-number, .ivu-input-number-input, .ivu-input-number-handler-wrap { .ivu-input-number, .ivu-input-number-input, .ivu-input-number-handler-wrap {
background-color: var(--form-editor-background-color); background-color: var(--form-editor-background-color);
color: var(--form-editor-placeholder-font-color); color: var(--form-editor-font-color);
} }
.ivu-input-number { .ivu-input-number {
......
...@@ -83,6 +83,7 @@ export default class IncidentUIServiceBase extends UIService { ...@@ -83,6 +83,7 @@ export default class IncidentUIServiceBase extends UIService {
this.allViewMap.set(':',{viewname:'edit_chlidincident',srfappde:'incidents'}); this.allViewMap.set(':',{viewname:'edit_chlidincident',srfappde:'incidents'});
this.allViewMap.set('MDATAVIEW:',{viewname:'gridview',srfappde:'incidents'}); this.allViewMap.set('MDATAVIEW:',{viewname:'gridview',srfappde:'incidents'});
this.allViewMap.set(':',{viewname:'quickcreateview',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:'childincidentgridview',srfappde:'incidents'});
this.allViewMap.set(':',{viewname:'info_incidentview',srfappde:'incidents'}); this.allViewMap.set(':',{viewname:'info_incidentview',srfappde:'incidents'});
this.allViewMap.set(':',{viewname:'infoview',srfappde:'incidents'}); this.allViewMap.set(':',{viewname:'infoview',srfappde:'incidents'});
......
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
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
...@@ -79,6 +79,10 @@ export default class KnowledgeArticleUIServiceBase extends UIService { ...@@ -79,6 +79,10 @@ export default class KnowledgeArticleUIServiceBase extends UIService {
* @memberof KnowledgeArticleUIServiceBase * @memberof KnowledgeArticleUIServiceBase
*/ */
public initViewMap(){ 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'});
} }
/** /**
......
...@@ -63,6 +63,7 @@ export class UIServiceRegister { ...@@ -63,6 +63,7 @@ export class UIServiceRegister {
this.allUIService.set('phonecall', () => import('@/uiservice/phone-call/phone-call-ui-service')); 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('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('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('listcontact', () => import('@/uiservice/list-contact/list-contact-ui-service'));
this.allUIService.set('appointment', () => import('@/uiservice/appointment/appointment-ui-service')); this.allUIService.set('appointment', () => import('@/uiservice/appointment/appointment-ui-service'));
this.allUIService.set('campaigncampaign', () => import('@/uiservice/campaign-campaign/campaign-campaign-ui-service')); this.allUIService.set('campaigncampaign', () => import('@/uiservice/campaign-campaign/campaign-campaign-ui-service'));
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<app-build @handleClick="handleClick.apply(_self, arguments)"></app-build> <app-build @handleClick="handleClick.apply(_self, arguments)"></app-build>
</row> </row>
<row v-if="!isHasCustomized"> <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"> <card class="portlet-card" :bordered="false" dis-hover :padding="0">
<span> <span>
<div class='portlet-container summary-viewdashboard-container1 portlet-container-no-border' :style="{}"> <div class='portlet-container summary-viewdashboard-container1 portlet-container-no-border' :style="{}">
......
...@@ -103,6 +103,10 @@ zuul: ...@@ -103,6 +103,10 @@ zuul:
path: /bulkoperations/** path: /bulkoperations/**
serviceId: ibizbusinesscentral-centralapi serviceId: ibizbusinesscentral-centralapi
stripPrefix: false stripPrefix: false
knowledgearticleincident:
path: /knowledgearticleincidents/**
serviceId: ibizbusinesscentral-centralapi
stripPrefix: false
listcontact: listcontact:
path: /listcontacts/** path: /listcontacts/**
serviceId: ibizbusinesscentral-centralapi serviceId: ibizbusinesscentral-centralapi
......
...@@ -444,7 +444,7 @@ public class KnowledgeArticle extends EntityMP implements Serializable { ...@@ -444,7 +444,7 @@ public class KnowledgeArticle extends EntityMP implements Serializable {
@JsonProperty("expiredreviewoptions") @JsonProperty("expiredreviewoptions")
private String expiredreviewoptions; private String expiredreviewoptions;
/** /**
* 父文章内容 ID * 上级文章
*/ */
@TableField(value = "parentarticlecontentid") @TableField(value = "parentarticlecontentid")
@JSONField(name = "parentarticlecontentid") @JSONField(name = "parentarticlecontentid")
...@@ -485,6 +485,48 @@ public class KnowledgeArticle extends EntityMP implements Serializable { ...@@ -485,6 +485,48 @@ public class KnowledgeArticle extends EntityMP implements Serializable {
@JSONField(name = "languagelocaleid") @JSONField(name = "languagelocaleid")
@JsonProperty("languagelocaleid") @JsonProperty("languagelocaleid")
private String 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 { ...@@ -979,7 +1021,7 @@ public class KnowledgeArticle extends EntityMP implements Serializable {
} }
/** /**
* 设置 [父文章内容 ID] * 设置 [上级文章]
*/ */
public void setParentarticlecontentid(String parentarticlecontentid){ public void setParentarticlecontentid(String parentarticlecontentid){
this.parentarticlecontentid = parentarticlecontentid ; this.parentarticlecontentid = parentarticlecontentid ;
...@@ -1026,6 +1068,54 @@ public class KnowledgeArticle extends EntityMP implements Serializable { ...@@ -1026,6 +1068,54 @@ public class KnowledgeArticle extends EntityMP implements Serializable {
this.modify("languagelocaleid",languagelocaleid); 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);
}
} }
......
...@@ -62,7 +62,7 @@ public class KnowledgeArticleSearchContext extends QueryWrapperContext<Knowledge ...@@ -62,7 +62,7 @@ public class KnowledgeArticleSearchContext extends QueryWrapperContext<Knowledge
this.getSearchCond().eq("expiredreviewoptions", n_expiredreviewoptions_eq); 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) { public void setN_parentarticlecontentid_eq(String n_parentarticlecontentid_eq) {
this.n_parentarticlecontentid_eq = n_parentarticlecontentid_eq; this.n_parentarticlecontentid_eq = n_parentarticlecontentid_eq;
if(!ObjectUtils.isEmpty(this.n_parentarticlecontentid_eq)){ if(!ObjectUtils.isEmpty(this.n_parentarticlecontentid_eq)){
...@@ -104,6 +104,90 @@ public class KnowledgeArticleSearchContext extends QueryWrapperContext<Knowledge ...@@ -104,6 +104,90 @@ public class KnowledgeArticleSearchContext extends QueryWrapperContext<Knowledge
this.getSearchCond().eq("languagelocaleid", n_languagelocaleid_eq); 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);
}
}
/** /**
* 启用快速搜索 * 启用快速搜索
......
...@@ -188,6 +188,20 @@ public class KnowledgeArticleIncident extends EntityMP implements Serializable { ...@@ -188,6 +188,20 @@ public class KnowledgeArticleIncident extends EntityMP implements Serializable {
@JSONField(name = "knowledgearticleid") @JSONField(name = "knowledgearticleid")
@JsonProperty("knowledgearticleid") @JsonProperty("knowledgearticleid")
private String 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 { ...@@ -337,6 +351,22 @@ public class KnowledgeArticleIncident extends EntityMP implements Serializable {
this.modify("knowledgearticleid",knowledgearticleid); 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);
}
} }
......
...@@ -62,6 +62,34 @@ public class KnowledgeArticleIncidentSearchContext extends QueryWrapperContext<K ...@@ -62,6 +62,34 @@ public class KnowledgeArticleIncidentSearchContext extends QueryWrapperContext<K
this.getSearchCond().eq("knowledgearticleid", n_knowledgearticleid_eq); 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);
}
}
/** /**
* 启用快速搜索 * 启用快速搜索
......
...@@ -196,6 +196,14 @@ ...@@ -196,6 +196,14 @@
"datascope":[{"id":"all","name":"全部数据"}, {"id":"createman","name":"创建人"}] "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", "dename":"ListContact",
"delogicname":"营销列表-联系人", "delogicname":"营销列表-联系人",
"sysmoudle":{"id":"MARKETING","name":"Marketing"}, "sysmoudle":{"id":"MARKETING","name":"Marketing"},
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册