@kre-form/ant
Version:
873 lines • 87.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, Output, EventEmitter, } from "@angular/core";
import { KreFormAntService } from "../../tools/service";
import { KreFormCommonService } from "@kre-form/core";
import { KreDialogService } from "../../service/dialog.service";
import * as _ from "lodash";
import { NzMessageService } from "ng-zorro-antd/message";
import { EventComponent } from "../event/event.component";
/**
* @record
*/
export function FormulaParamsOption() { }
if (false) {
/** @type {?} */
FormulaParamsOption.prototype.modalTitle;
/** @type {?} */
FormulaParamsOption.prototype.title;
/** @type {?|undefined} */
FormulaParamsOption.prototype.fieldVariable;
}
export class TriggerComponent {
/**
* @param {?} dyService
* @param {?} kreDialogService
* @param {?} message
* @param {?} kreFormCommonService
*/
constructor(dyService, kreDialogService, message, kreFormCommonService) {
this.dyService = dyService;
this.kreDialogService = kreDialogService;
this.message = message;
this.kreFormCommonService = kreFormCommonService;
this.business_tables = {};
this.options = [];
this.triggerJson = {};
this.calculateRuleJson = {};
this.random = 0;
this.actionEvent = new EventEmitter();
this.checkFormulaEvent = new EventEmitter();
this.configFormulaEvent = new EventEmitter();
this.showData = [];
this.list = [
{ value: "edit", label: "编辑" },
{ value: "trigger", label: "触发事件" },
];
this.tableScroll = {
y: "calc( 100vh - 260px)",
x: "calc( 100vw - 260px)",
};
this.fields = [];
this.keyword = "";
this.nzTotal = 0;
this.nzPageSizeOptions = [10, 20, 40, 80, 100, 200, 400];
this.nzPageIndex = 1;
this.nzPageSize = 20;
this.getIsChangePageSize = false;
this.time = null;
this.EditType = {
false: "不可编辑",
true: "可编辑",
};
this.HideType = {
false: "隐藏",
true: "显示",
};
this.RequireType = {
false: "不必填",
true: "必填",
};
this.TableType = {
single: "单记录",
multiple: "多记录",
};
this.FieldBasicType = {
anchor: "字符型",
button: "字符型",
checkbox: "字符型",
text: "字符型",
texti18n: "字符型",
textarea: "字符型(多行文本)",
numbers: "数字型",
password: "字符型",
radio: "字符型",
radiogroup: "字符型",
checkboxgroup: "字符型",
select: "字符型",
datetime: "时间型",
"datetime-year": "日期型(年)",
"datetime-month": "日期型(年月)",
"datetime-date": "日期型",
"datetime-time": "时间型",
"datetime-datetime": "日期时间型",
image: "图片",
upload: "附件型",
htmlcontent: "字符型",
line: "分割线",
"drag-drop": "拖拽",
group: "组",
repeat: "多记录",
panel: "组",
employee: "字符型",
candidate: "字符型",
sponsor: "字符型",
position: "字符型",
tree: "字符型",
organizational: "字符型",
area: "字符型",
job: "字符型",
table: "表格",
lookup: "字符型",
textBtn: "字符型",
adjustReportTo: "字符型",
refer: "字符型",
avatar: "头像",
salary: "字符型",
editor: "富文本",
dimissContract: "字符型",
tabular: "字符型",
tabularItem: "字符型",
};
this.currentShowExpand = -1;
this.params = {
modalTitle: "设置规则",
// app.Attendance.Absenteeism rule
title: "规则",
fieldVariable: {
formFields: [],
tableList: [],
},
};
this.formFields = [];
this.tableList = [];
// tableList = {
// fields: [
// {
// key: "LeaveItem_s1",
// label: "事假",
// type: "text",
// unit: "小时",
// },
// ],
// key: "",
// label: "",
// unit: "",
// };
this.ruleObj = null;
this.codeMirrorOptions = {
autoCloseBrackets: true,
keywords: [],
textWrapping: true,
lineWrapping: true,
lineNumbers: false,
matchBrackets: true,
specialChars: /[\u0000-\u001f\u007f\u00ad\u200c-\u200f\u2028\u2029\ufeff]/,
mode: "formula",
labelMap: null,
autofocus: false,
};
}
/**
* @return {?}
*/
ngOnInit() { }
/**
* @return {?}
*/
ngOnChanges() {
this.fields = [];
/** @type {?} */
const fields = this.business_form.fields;
(/** @type {?} */ (fields)).forEach((/**
* @param {?} field
* @return {?}
*/
(field) => {
if (((/** @type {?} */ (["select", "text", "numbers", "textarea", "upload", "datetime"]))).includes(field.type) ||
(field.type === "position" &&
(/** @type {?} */ ((/** @type {?} */ (field)).templateOptions)).selectType === "single")) {
this.fields.push(field);
}
if (field.type === "repeat") {
(/** @type {?} */ (((/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ (field)).fieldArray)).fieldGroup))))).forEach((/**
* @param {?} repeatItem
* @return {?}
*/
(repeatItem) => {
if (((/** @type {?} */ ([
"select",
"text",
"numbers",
"textarea",
"upload",
"datetime",
]))).includes(repeatItem.type)) {
this.fields.push(repeatItem);
}
}));
}
}));
/** @type {?} */
let list = [];
/** @type {?} */
let tableList = [];
if (!!this.business_tables && (/** @type {?} */ (this.business_tables)).primary) {
tableList = [
(/** @type {?} */ (this.business_tables)).primary,
...(/** @type {?} */ (this.business_tables)).child.single,
];
list = [...tableList, ...(/** @type {?} */ (this.business_tables)).child.multiple];
(/** @type {?} */ (this.business_tables)).primary["tableType"] = "single";
if (!_.isEmpty((/** @type {?} */ (this.business_tables)).child.single)) {
((/** @type {?} */ ((/** @type {?} */ (this.business_tables)).child.single))).forEach((/**
* @param {?} table
* @return {?}
*/
(table) => {
table["tableType"] = "single";
}));
}
if (!_.isEmpty((/** @type {?} */ (this.business_tables)).child.multiple)) {
((/** @type {?} */ ((/** @type {?} */ (this.business_tables)).child.multiple))).forEach((/**
* @param {?} table
* @return {?}
*/
(table) => {
table["tableType"] = "multiple";
}));
}
if (!!this.business_tables) {
this.fields.forEach((/**
* @param {?} field
* @return {?}
*/
(field) => {
(/** @type {?} */ (list)).forEach((/**
* @param {?} table
* @return {?}
*/
(table) => {
((/** @type {?} */ (table.tableFields))).forEach((/**
* @param {?} elem
* @return {?}
*/
(elem) => {
if (field.key === elem.fieldCode) {
field["tableType"] = table["tableType"];
field["tableName"] = table["tableName"];
field["fieldDataType"] = elem["fieldDataType"];
}
}));
}));
if (((/** @type {?} */ (["text", "numbers", "textarea", "datetime"]))).includes(field.type) ||
(field.type === "position" &&
(/** @type {?} */ ((/** @type {?} */ (field)).templateOptions)).selectType === "single")) {
/** @type {?} */
let key = ((/** @type {?} */ (field.key))).replaceAll(/\$/g, ".");
this.formFields.push({
key,
label: (/** @type {?} */ ((/** @type {?} */ (field)).templateOptions)).label,
type: field.type,
unit: "",
});
}
}));
}
// this.params.fieldVariable.formFields = this.formFields;
/** @type {?} */
let tableCodeList = [];
this.fields.forEach((/**
* @param {?} field
* @return {?}
*/
(field) => {
if (!field["tableType"]) {
if (!(/** @type {?} */ (tableCodeList)).includes(field.tableCode)) {
tableCodeList.push(field.tableCode);
}
field["tableType"] = "multiple";
field["tableName"] = `业务子表${tableCodeList.length}`;
}
if (!field["fieldDataType"]) {
field["fieldDataType"] = this.transLate(field.type, "type", (/** @type {?} */ ((/** @type {?} */ (field)).templateOptions)).selectType);
}
}));
this.nzTotal = this.fields.length;
this.getShowDate();
// 自定义时间收集可处理字段
this.params.fieldVariable.tableList = [];
this.tableList = [];
/** @type {?} */
let fields = _.cloneDeep(this.fields);
// console.log(fields);
fields.forEach((/**
* @param {?} field
* @return {?}
*/
(field) => {
if (((/** @type {?} */ ([
"text",
"numbers",
// "textarea",
"datetime",
]))).includes(field.type) ||
(field.type === "position" &&
(/** @type {?} */ ((/** @type {?} */ (field)).templateOptions)).selectType === "single")) {
if (this.tableList.findIndex((/**
* @param {?} table
* @return {?}
*/
(table) => table.key === field.tableCode)) >
-1) {
/** @type {?} */
let index = this.tableList.findIndex((/**
* @param {?} table
* @return {?}
*/
(table) => table.key === field.tableCode));
// console.log(field.templateOptions.label);
((/** @type {?} */ (this.tableList[index].fields))).push({
key: ((/** @type {?} */ (field.key))).replace(/\$/g, "."),
label: `${field.templateOptions.label}--${field.fieldDataType}`,
type: field.type,
unit: "",
tableType: field.tableType,
});
}
else {
/** @type {?} */
let fields = [];
fields.push({
key: ((/** @type {?} */ (field.key))).replace(/\$/g, "."),
label: `${field.templateOptions.label}--${field.fieldDataType}`,
type: field.type,
unit: "",
tableType: field.tableType,
});
this.tableList.push({
fields,
key: field.tableCode,
label: field.tableName,
tableType: field.tableType,
});
}
}
}));
this.params.fieldVariable.tableList = this.tableList;
}
// console.log(this.tableList);
}
/**
* @return {?}
*/
getShowDate() {
this.showData = [];
for (let i = (this.nzPageIndex - 1) * this.nzPageSize; i < this.nzPageIndex * this.nzPageSize; i++) {
if (!!this.fields[i]) {
this.showData.push(this.fields[i]);
}
}
}
/**
* @param {?} e
* @return {?}
*/
nzPageIndexChange(e) {
if (this.getIsChangePageSize) {
clearTimeout(this.time);
this.time = setTimeout((/**
* @return {?}
*/
() => {
this.nzPageIndex = 1;
this.getIsChangePageSize = false;
}), 0);
return;
}
this.getShowDate();
}
/**
* @return {?}
*/
search() {
/** @type {?} */
const fields = JSON.parse(JSON.stringify(this.fields));
this.keyword = this.keyword.trim();
/** @type {?} */
let list = fields.filter((/**
* @param {?} field
* @return {?}
*/
(field) => ((/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ (field)).templateOptions)).label))).includes(this.keyword)));
this.nzPageIndex = 1;
this.showData = [];
for (let i = (this.nzPageIndex - 1) * this.nzPageSize; i < this.nzPageIndex * this.nzPageSize; i++) {
if (!!list[i]) {
this.showData.push(list[i]);
}
}
// this.getShowDate();
}
/**
* @param {?} e
* @return {?}
*/
nzPageSizeChange(e) {
this.nzPageIndex = 1;
this.getIsChangePageSize = true;
this.getShowDate();
}
/**
* @param {?} value
* @param {?} type
* @param {?=} selectType
* @return {?}
*/
transLate(value, type, selectType) {
/** @type {?} */
let str;
switch (type) {
case "hide":
str = this.HideType[value] || "显示";
break;
case "required":
str = this.RequireType[value] || "不必填";
break;
case "edit":
str = this.EditType[value] || "可编辑";
break;
case "type":
if (!!selectType && selectType === "multiple") {
str = this.FieldBasicType["select-multiple"];
}
else {
str = this.FieldBasicType[value];
}
break;
case "tableType":
str = this.TableType[value];
break;
default:
break;
}
return str;
}
/**
* @param {?} value
* @param {?} data
* @return {?}
*/
clickAction(value, data) {
// if (!this.canAddEvent(data)) {
// return;
// }
switch (value) {
case "edit":
this.dyService.fieldOperational("edit", data);
break;
case "trigger":
this.trigger(data);
break;
// case "Codemirror":
// this.Codemirror(data);
// break;
default:
break;
}
}
// this.Codemirror(data);
/**
* @param {?} data
* @return {?}
*/
codemirror(data) {
// if (!this.canSetRule(data)) {
// return;
// }
// this.calculateRuleJson =;
console.log("dddd", data);
/** @type {?} */
let nzTitle = `${(/** @type {?} */ (data)).tableName ? (/** @type {?} */ (data)).tableName + "-" : ""}${(/** @type {?} */ ((/** @type {?} */ (data)).templateOptions)).label}(${this.transLate((/** @type {?} */ (data)).type, "type")})-规则`;
// console.log(data);
// this.fields.forEach((el: any) => {
// if (this.field.tableType === "single") {
// if (
// (this.typeList as any)!.includes(el.type) &&
// el.key !== this.field.key
// ) {
// this.changeItem!.push(el);
// }
// } else {
// if (
// (this.typeList as any)!.includes(el.type) &&
// el.key !== this.field.key &&
// (el.tableCode === this.field.tableCode || el.tableType === "single")
// ) {
// this.changeItem!.push(el);
// }
// }
// if (el.key === this.field.key) {
// this.selectItemType =
// el.templateOptions!.selectType === "multiple"
// ? "multiple"
// : "default";
// }
// });
/** @type {?} */
let fieldData = _.cloneDeep(this.params.fieldVariable);
if (data.tableType === "multiple") {
/** @type {?} */
let tableList = _.cloneDeep(fieldData.tableList);
/** @type {?} */
let newTableList = [];
((/** @type {?} */ (tableList))).forEach((/**
* @param {?} table
* @return {?}
*/
(table) => {
if (table.tableType === "single") {
newTableList.push(table);
}
if (table.tableType === "multiple" && table.key === data.tableCode) {
newTableList.push(table);
}
}));
fieldData.tableList = newTableList;
}
// console.log(fieldData);
this.configFormulaEvent.emit({
data,
nzTitle,
fieldData,
});
// let ruleObj = "";
// if ((this.calculateRuleJson as Object).hasOwnProperty(data.key)) {
// ruleObj = this.calculateRuleJson[data.key]["calculateValue"];
// if (!!ruleObj && (ruleObj as string).includes("&&_widget_")) {
// ruleObj = (ruleObj as any).replaceAll("$", ".");
// ruleObj = (ruleObj as string).replace(/&&_widget_/g, "$_widget_");
// }
// } else {
// this.calculateRuleJson[data.key] = {
// calculateValue: null,
// calculateText: null,
// };
// }
// this.kreDialogService.CreateModelDialogField(
// {
// nzTitle,
// size: "large",
// nzContent: ConfigCodemirrorComponent,
// },
// {
// type: "Daycalculation",
// title: nzTitle,
// fieldData: this.params.fieldVariable,
// options: this.codeMirrorOptions,
// ruleObj,
// },
// (actType: any, instance: any, modal: any) => {
// let ruleValue = _.cloneDeep(instance.ruleObj);
// if (!!ruleValue) {
// ruleValue = (ruleValue as string).replace(/$_widget_/g, "&&_widget_");
// ruleValue = (ruleValue as any).replaceAll(".", "$");
// }
// this.calculateRuleJson[data.key] = {
// calculateValue: ruleValue,
// calculateText: instance.showText,
// };
// console.log(this.calculateRuleJson);
// modal.destroy();
// let newFormInfo: any = _.cloneDeep(this.business_form);
// this.actionEvent.emit({
// newFormInfo,
// triggerJson: this.triggerJson,
// calculateRuleJson: this.calculateRuleJson,
// });
// // }
// }
// );
}
/**
* @param {?} data
* @return {?}
*/
showText(data) {
/** @type {?} */
let calculateText = "";
if (((/** @type {?} */ (this.calculateRuleJson))).hasOwnProperty(data.key)) {
calculateText = this.calculateRuleJson[data.key]["calculateText"];
}
return calculateText;
}
/**
* @param {?} data
* @return {?}
*/
getTriggerJson(data) {
/** @type {?} */
let triggerJson;
// if (!!triggerJson) {
if (data["table"] === "multiple") {
if (!!this.triggerJson[(/** @type {?} */ (data)).Pkey] &&
!!this.triggerJson[(/** @type {?} */ (data)).Pkey][(/** @type {?} */ (data)).key]) {
triggerJson = this.triggerJson[(/** @type {?} */ (data)).Pkey][(/** @type {?} */ (data)).key];
}
else {
triggerJson = null;
}
}
else {
triggerJson = this.triggerJson[(/** @type {?} */ (data)).key] || null;
}
// }
return !_.isEmpty(triggerJson);
}
/**
* @param {?} data
* @return {?}
*/
isSetRule(data) {
// console.log(this.calculateRuleJson);
return (!_.isEmpty(this.calculateRuleJson) &&
!_.isEmpty(this.calculateRuleJson[(/** @type {?} */ (data)).key]) &&
!!this.calculateRuleJson[(/** @type {?} */ (data)).key]["calculateText"]);
}
/**
* @param {?} data
* @return {?}
*/
trigger(data) {
// console.log(data , this.triggerJson);
/** @type {?} */
let triggerJson;
if (data["table"] === "multiple") {
if (!!this.triggerJson[(/** @type {?} */ (data)).Pkey] &&
!!this.triggerJson[(/** @type {?} */ (data)).Pkey][(/** @type {?} */ (data)).key]) {
triggerJson = this.triggerJson[(/** @type {?} */ (data)).Pkey][(/** @type {?} */ (data)).key];
}
else {
triggerJson = null;
}
}
else {
triggerJson = this.triggerJson[(/** @type {?} */ (data)).key] || null;
}
this.kreDialogService.CreateModelDialogField({
nzTitle: `${(/** @type {?} */ (data)).tableName ? (/** @type {?} */ (data)).tableName + "-" : ""}${(/** @type {?} */ ((/** @type {?} */ (data)).templateOptions)).label}(${this.transLate((/** @type {?} */ (data)).type, "type")})-触发事件`,
size: "large",
nzContent: EventComponent,
}, {
data,
fields: this.fields,
options: this.options,
triggerJson,
}, (/**
* @param {?} type
* @param {?} instance
* @param {?} modal
* @return {?}
*/
(type, instance, modal) => {
instance.save();
if (!instance.validateForm.valid) {
return;
}
/** @type {?} */
let eventList = _.cloneDeep((/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ (instance)).validateForm)).value)).eventList);
/** @type {?} */
let newEventList = this.getUnique3(eventList);
// console.log(instance.validateForm);
if ((/** @type {?} */ (newEventList)).length < (/** @type {?} */ (eventList)).length) {
this.message.warning("当前触发事件存在多条完全相同的配置,请检查!");
return;
}
if (data["table"] === "multiple") {
if (!this.triggerJson[(/** @type {?} */ (data)).Pkey]) {
this.triggerJson[(/** @type {?} */ (data)).Pkey] = {};
}
this.triggerJson[(/** @type {?} */ (data)).Pkey][(/** @type {?} */ (data)).key] =
(/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ (instance)).validateForm)).value)).eventList;
}
else {
this.triggerJson[(/** @type {?} */ (data)).key] =
(/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ (instance)).validateForm)).value)).eventList;
}
/** @type {?} */
let newFormInfo = _.cloneDeep(this.business_form);
this.kreFormCommonService.initFormFieldProperty(newFormInfo.fields);
this.actionEvent.emit({
newFormInfo,
triggerJson: this.triggerJson,
calculateRuleJson: this.calculateRuleJson,
});
modal.destroy();
// }
}));
}
/**
* @param {?} arr
* @return {?}
*/
getUnique3(arr) {
/** @type {?} */
const map = {};
arr.forEach((/**
* @param {?} item
* @return {?}
*/
(item) => {
/** @type {?} */
const obj = {};
// 1、把数组中的元素(对象)的键名抽成一个数组然后排序
// 2、生成一个按照键名排序好的对象
Object.keys(item)
.sort()
.map((/**
* @param {?} key
* @return {?}
*/
(key) => (obj[key] = item[key])));
// 3、把新生成的对象作为对象的键存起来
map[JSON.stringify(obj)] = item;
}));
// 4、再把新对象的键名抽成一个数组返回即为不重复的集合
return Object.keys(map).map((/**
* @param {?} key
* @return {?}
*/
(key) => JSON.parse(key)));
}
/**
* @param {?} data
* @param {?} j
* @return {?}
*/
setRule(data, j) {
if (this.currentShowExpand === j) {
this.currentShowExpand = -1;
}
else {
this.params.title = "data.value.itemName" + "规则";
this.params = Object.assign({}, this.params);
this.currentShowExpand = j;
}
}
/**
* @param {?} data
* @return {?}
*/
canAddEvent(data) {
return ((/** @type {?} */ (["select", "text", "numbers", "textarea", "upload"]))).includes(data.type);
}
/**
* @param {?} data
* @return {?}
*/
canSetRule(data) {
return ((/** @type {?} */ (["text", "numbers", "datetime"]))).includes(data.type);
// && data.tableType === "single"
// || data.type === "position" && data!.templateOptions!.selectType === "single";
}
}
TriggerComponent.decorators = [
{ type: Component, args: [{
selector: "demo-trigger",
template: "<div class=\"table-bar flex-h flex-align-center\">\n <nz-input-group\n class=\"search-box\"\n [nzSuffix]=\"suffixIconSearch\"\n nzSize=\"small\"\n style=\"width: 500px\"\n >\n <input\n type=\"text\"\n nz-input\n class=\"allsearch\"\n placeholder=\"\u8BF7\u8F93\u5165\u5B57\u6BB5\u540D\"\n [(ngModel)]=\"keyword\"\n (keyup.enter)=\"search()\"\n />\n </nz-input-group>\n <ng-template #suffixIconSearch>\n <i nzType=\"link\" (click)=\"search()\" class=\"icon-uniE61D cursor\"> </i>\n </ng-template>\n <nz-pagination\n [(nzPageIndex)]=\"nzPageIndex\"\n [nzTotal]=\"nzTotal\"\n [(nzPageSize)]=\"nzPageSize\"\n [nzPageSizeOptions]=\"nzPageSizeOptions\"\n nzShowSizeChanger\n nzShowQuickJumper\n nzSize=\"small\"\n (nzPageIndexChange)=\"nzPageIndexChange($event)\"\n (nzPageSizeChange)=\"nzPageSizeChange($event)\"\n ></nz-pagination>\n</div>\n<nz-table\n #basicTable\n [nzData]=\"showData\"\n [nzSize]=\"'small'\"\n [nzFrontPagination]=\"false\"\n [nzScroll]=\"tableScroll\"\n class=\"kre-design-field-table\"\n>\n <thead>\n <tr>\n <th nzWidth=\"50px\">\u5E8F\u53F7</th>\n <th nzWidth=\"150px\">\u8868\u540D</th>\n <th nzWidth=\"150px\">\u7C7B\u578B</th>\n <th nzWidth=\"150px\">\u5B57\u6BB5\u540D</th>\n <th nzWidth=\"150px\">\u6570\u636E\u7C7B\u578B</th>\n <th nzWidth=\"150px\">\u663E\u793A\u72B6\u6001</th>\n <th nzWidth=\"150px\">\u7F16\u8F91\u72B6\u6001</th>\n <th nzWidth=\"150px\">\u5FC5\u586B\u72B6\u6001</th>\n <th nzWidth=\"250px\">\u64CD\u4F5C</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let data of basicTable.data; let j = index\">\n <tr>\n <td>{{ nzPageSize * (nzPageIndex - 1) + j + 1 }}</td>\n\n <td>{{ data?.tableName }}</td>\n <td>{{ transLate(data?.tableType, \"tableType\") }}</td>\n <td>{{ data?.templateOptions?.label }}</td>\n\n <td>\n {{ data?.fieldDataType }}\n </td>\n <td>{{ transLate(data?.show, \"hide\") }}</td>\n <td>{{ transLate(data?.editor, \"edit\") }}</td>\n\n <td>{{ transLate(data?.templateOptions?.required, \"required\") }}</td>\n\n <td>\n <div class=\"btn-box\">\n <button\n nzSize=\"small\"\n nz-button\n [nzType]=\"getTriggerJson(data) ? 'primary' : 'default'\"\n (click)=\"clickAction(list[1].value, data)\"\n [disabled]=\"!canAddEvent(data)\"\n >\n {{ list[1].label }}\n </button>\n\n <button\n nzSize=\"small\"\n nz-button\n [nzType]=\"isSetRule(data) ? 'primary' : 'default'\"\n (click)=\"codemirror(data)\"\n [disabled]=\"!canSetRule(data)\"\n >\n \u8BBE\u7F6E\u89C4\u5219\n </button>\n </div>\n\n <!-- <span\n [class.triggerJson]=\"isSetRule(data)\"\n class=\"set-rule-btn pr-1 cursor\"\n (click)=\"codemirror(data)\"\n *ngIf=\"canSetRule(data)\"\n >\n <ng-container *ngIf=\"currentShowExpand !== j\">\n \u8BBE\u7F6E\u89C4\u5219\n </ng-container>\n\n <ng-container *ngIf=\"currentShowExpand === j\"> \u6536\u8D77 </ng-container>\n </span> -->\n </td>\n </tr>\n <!-- <tr *ngIf=\"currentShowExpand === j\">\n <td colspan=\"9\">\n <div class=\"new-flex-1 mb-2\">\n <div\n class=\"rules-content rules-content-show\"\n [innerHTML]=\"showText(data)\"\n ></div>\n\n <div class=\"flex-h justify-content-end set-rule\">\n <button\n (click)=\"checkFormula(data)\"\n class=\"test-btn\"\n nz-button\n nzType=\"default\"\n type=\"button\"\n >\n \u6D4B\u8BD5\n </button>\n <button\n (click)=\"codemirror(data)\"\n type=\"button\"\n nz-button\n nzType=\"primary\"\n >\n \u8BBE\u7F6E\n </button>\n </div>\n </div>\n </td>\n </tr> -->\n </ng-container>\n </tbody>\n</nz-table>\n",
providers: [KreDialogService, KreFormAntService],
styles: [".menu{display:block;width:24px;height:16px;background:#71a9ff;border-radius:8px;text-align:center;line-height:16px}.menu .icon-uniE61A{color:#fff}"]
}] }
];
/** @nocollapse */
TriggerComponent.ctorParameters = () => [
{ type: KreFormAntService },
{ type: KreDialogService },
{ type: NzMessageService },
{ type: KreFormCommonService }
];
TriggerComponent.propDecorators = {
business_form: [{ type: Input }],
business_tables: [{ type: Input }],
options: [{ type: Input }],
triggerJson: [{ type: Input }],
calculateRuleJson: [{ type: Input }],
random: [{ type: Input }],
actionEvent: [{ type: Output }],
checkFormulaEvent: [{ type: Output }],
configFormulaEvent: [{ type: Output }]
};
if (false) {
/** @type {?} */
TriggerComponent.prototype.business_form;
/** @type {?} */
TriggerComponent.prototype.business_tables;
/** @type {?} */
TriggerComponent.prototype.options;
/** @type {?} */
TriggerComponent.prototype.triggerJson;
/** @type {?} */
TriggerComponent.prototype.calculateRuleJson;
/** @type {?} */
TriggerComponent.prototype.random;
/** @type {?} */
TriggerComponent.prototype.actionEvent;
/** @type {?} */
TriggerComponent.prototype.checkFormulaEvent;
/** @type {?} */
TriggerComponent.prototype.configFormulaEvent;
/** @type {?} */
TriggerComponent.prototype.showData;
/** @type {?} */
TriggerComponent.prototype.list;
/** @type {?} */
TriggerComponent.prototype.tableScroll;
/** @type {?} */
TriggerComponent.prototype.fields;
/** @type {?} */
TriggerComponent.prototype.keyword;
/** @type {?} */
TriggerComponent.prototype.nzTotal;
/** @type {?} */
TriggerComponent.prototype.nzPageSizeOptions;
/** @type {?} */
TriggerComponent.prototype.nzPageIndex;
/** @type {?} */
TriggerComponent.prototype.nzPageSize;
/** @type {?} */
TriggerComponent.prototype.getIsChangePageSize;
/** @type {?} */
TriggerComponent.prototype.time;
/** @type {?} */
TriggerComponent.prototype.EditType;
/** @type {?} */
TriggerComponent.prototype.HideType;
/** @type {?} */
TriggerComponent.prototype.RequireType;
/** @type {?} */
TriggerComponent.prototype.TableType;
/** @type {?} */
TriggerComponent.prototype.FieldBasicType;
/** @type {?} */
TriggerComponent.prototype.currentShowExpand;
/** @type {?} */
TriggerComponent.prototype.params;
/** @type {?} */
TriggerComponent.prototype.formFields;
/** @type {?} */
TriggerComponent.prototype.tableList;
/** @type {?} */
TriggerComponent.prototype.ruleObj;
/** @type {?} */
TriggerComponent.prototype.codeMirrorOptions;
/**
* @type {?}
* @private
*/
TriggerComponent.prototype.dyService;
/**
* @type {?}
* @private
*/
TriggerComponent.prototype.kreDialogService;
/**
* @type {?}
* @private
*/
TriggerComponent.prototype.message;
/** @type {?} */
TriggerComponent.prototype.kreFormCommonService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3JlLWZvcm0vYW50LyIsInNvdXJjZXMiOlsibGliL2Rlc2lnbi90cmlnZ2VyL3RyaWdnZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUlULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFHMUQseUNBSUM7OztJQUhDLHlDQUFtQjs7SUFDbkIsb0NBQWM7O0lBQ2QsNENBQW9COztBQVN0QixNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7O0lBd0kzQixZQUNVLFNBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxPQUF5QixFQUMxQixvQkFBMEM7UUFIekMsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUMxQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBekkxQyxvQkFBZSxHQUFRLEVBQUUsQ0FBQztRQUMxQixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBRXBCLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLHNCQUFpQixHQUFRLEVBQUUsQ0FBQztRQUU1QixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLGdCQUFXLEdBQXNC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