|
@@ -1,7 +1,10 @@
|
|
<template>
|
|
<template>
|
|
<div class='configRules'>
|
|
<div class='configRules'>
|
|
|
|
+ <a-spin :spinning="spinning">
|
|
|
|
+
|
|
|
|
+
|
|
<div class="toolbox-automate-rules-create-body">
|
|
<div class="toolbox-automate-rules-create-body">
|
|
- <div class="toolbox-automate-rules-create-content_title"><h3> {{edit?'选择配置字段':'规则预览'}}</h3></div>
|
|
|
|
|
|
+ <div class="toolbox-automate-rules-create-content_title"><h3> 新建空白规则模板</h3></div>
|
|
<div class="toolbox-automate-rules-create-content">
|
|
<div class="toolbox-automate-rules-create-content">
|
|
<a-form-model
|
|
<a-form-model
|
|
ref="ruleForm"
|
|
ref="ruleForm"
|
|
@@ -18,11 +21,11 @@
|
|
</div>
|
|
</div>
|
|
<div class="input-item">
|
|
<div class="input-item">
|
|
<a-form-model-item ref="eventRuleLevel" prop="eventRuleLevel">
|
|
<a-form-model-item ref="eventRuleLevel" prop="eventRuleLevel">
|
|
- <a-radio-group v-model="form.mediaType" :disabled="!edit">
|
|
|
|
- <a-radio-button value="1">头条</a-radio-button>
|
|
|
|
- <a-radio-button value="2">快手</a-radio-button>
|
|
|
|
- <a-radio-button value="3">头条内广</a-radio-button>
|
|
|
|
- <a-radio-button value="4">快手内广</a-radio-button>
|
|
|
|
|
|
+ <a-radio-group v-model="form.mediaType" >
|
|
|
|
+ <a-radio-button :value="1" >头条</a-radio-button>
|
|
|
|
+ <a-radio-button :value="2">快手</a-radio-button>
|
|
|
|
+ <a-radio-button :value="3">头条内广</a-radio-button>
|
|
|
|
+ <a-radio-button :value="4">快手内广</a-radio-button>
|
|
|
|
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
@@ -31,7 +34,7 @@
|
|
<div class="row-item" >
|
|
<div class="row-item" >
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
- <div class="text-item">规则集名称</div>
|
|
|
|
|
|
+ <div class="text-item">模板名称</div>
|
|
<div class="required-item"></div>
|
|
<div class="required-item"></div>
|
|
</div>
|
|
</div>
|
|
<div class="input-item">
|
|
<div class="input-item">
|
|
@@ -39,7 +42,7 @@
|
|
<a-input
|
|
<a-input
|
|
v-model="form.templateName"
|
|
v-model="form.templateName"
|
|
allowClear
|
|
allowClear
|
|
- :disabled="!edit"
|
|
|
|
|
|
+ :disabled="!!currentRuleId"
|
|
/>
|
|
/>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
@@ -60,7 +63,16 @@
|
|
<div class="input-item" >
|
|
<div class="input-item" >
|
|
<a-collapse accordion>
|
|
<a-collapse accordion>
|
|
<a-collapse-panel v-for="(item,index) in form.ruleList" :key="index" :header="item.groupName">
|
|
<a-collapse-panel v-for="(item,index) in form.ruleList" :key="index" :header="item.groupName">
|
|
- <a-icon slot="extra" type="delete" @click="deleteRule($event,item,index)" />
|
|
|
|
|
|
+ <span slot="extra">
|
|
|
|
+ <a-popconfirm
|
|
|
|
+ :title="`确定删除吗?`"
|
|
|
|
+ @confirm="deleteRule($event,item,index)"
|
|
|
|
+ >
|
|
|
|
+ <a-icon type="delete" @click="deleteIcon($event)"/>
|
|
|
|
+ </a-popconfirm>
|
|
|
|
+ </span>
|
|
|
|
+
|
|
|
|
+
|
|
<div class="row-item" >
|
|
<div class="row-item" >
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
@@ -76,12 +88,12 @@
|
|
placeholder="请输入规则名称"
|
|
placeholder="请输入规则名称"
|
|
allowClear
|
|
allowClear
|
|
style="width:400px"
|
|
style="width:400px"
|
|
- :disabled="!edit"
|
|
|
|
|
|
+ :disabled="!!item.groupId"
|
|
/>
|
|
/>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="row-item" v-if="item.ruleType=='group'">
|
|
|
|
|
|
+ <div class="row-item" >
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
<div class="text-item">规则描述</div>
|
|
<div class="text-item">规则描述</div>
|
|
@@ -97,51 +109,53 @@
|
|
style="width:400px"
|
|
style="width:400px"
|
|
placeholder="输入规则描述"
|
|
placeholder="输入规则描述"
|
|
:auto-size="{ minRows: 2, maxRows: 5 }"
|
|
:auto-size="{ minRows: 2, maxRows: 5 }"
|
|
- :disabled="!edit"
|
|
|
|
|
|
+ :disabled="!!item.groupId"
|
|
/>
|
|
/>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
- <!-- <a-form-model-item ref="remark" prop="remark" v-else >
|
|
|
|
- <a-textarea
|
|
|
|
- v-model="item.remark"
|
|
|
|
- style="width:400px"
|
|
|
|
- placeholder="输入规则描述222"
|
|
|
|
-
|
|
|
|
- :auto-size="{ minRows: 2, maxRows: 5 }"
|
|
|
|
- />
|
|
|
|
- </a-form-model-item> -->
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="row-item" v-if="item.ruleType=='base'">
|
|
|
|
|
|
+
|
|
|
|
+ <div class="row-item" >
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
- <div class="text-item">规则描述</div>
|
|
|
|
|
|
+ <div class="text-item">规则类型</div>
|
|
<div class="required-item"></div>
|
|
<div class="required-item"></div>
|
|
</div>
|
|
</div>
|
|
<div class="input-item">
|
|
<div class="input-item">
|
|
-
|
|
|
|
- <a-form-model-item ref="remark" prop="remark" >
|
|
|
|
- <a-textarea
|
|
|
|
- v-model="item.remark"
|
|
|
|
- style="width:400px"
|
|
|
|
- placeholder="输入规则描述222"
|
|
|
|
-
|
|
|
|
- :auto-size="{ minRows: 2, maxRows: 5 }"
|
|
|
|
- :disabled="!edit"
|
|
|
|
- />
|
|
|
|
- </a-form-model-item>
|
|
|
|
|
|
+ <a-form-model-item ref="ruleType" prop="ruleType">
|
|
|
|
+ <a-radio-group v-model="item.ruleType" >
|
|
|
|
+ <a-radio-button value="group">组合</a-radio-button>
|
|
|
|
+ <a-radio-button value="base">基础</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
|
|
+ </a-form-model-item>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-item" >
|
|
<div class="row-item" >
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
- <div class="text-item">规则类型</div>
|
|
|
|
|
|
+ <div class="text-item">规则必填</div>
|
|
<div class="required-item"></div>
|
|
<div class="required-item"></div>
|
|
</div>
|
|
</div>
|
|
<div class="input-item">
|
|
<div class="input-item">
|
|
- <a-form-model-item ref="ruleType" prop="ruleType">
|
|
|
|
- <a-radio-group v-model="item.ruleType" :disabled="!edit">
|
|
|
|
- <a-radio-button value="group">组合</a-radio-button>
|
|
|
|
- <a-radio-button value="base">基础</a-radio-button>
|
|
|
|
|
|
+ <a-form-model-item ref="isRequired" prop="isRequired">
|
|
|
|
+ <a-radio-group v-model="item.isRequired" >
|
|
|
|
+ <a-radio-button :value="1">是</a-radio-button>
|
|
|
|
+ <a-radio-button :value="0">否</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="row-item" >
|
|
|
|
+ <div class="hint-item"></div>
|
|
|
|
+ <div class="label-item">
|
|
|
|
+ <div class="text-item">规则复建</div>
|
|
|
|
+ <div class="required-item"></div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="input-item">
|
|
|
|
+ <a-form-model-item ref="isCopy" prop="isCopy">
|
|
|
|
+ <a-radio-group v-model="item.isCopy" >
|
|
|
|
+ <a-radio-button :value="1">是</a-radio-button>
|
|
|
|
+ <a-radio-button :value="0">否</a-radio-button>
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
@@ -150,10 +164,11 @@
|
|
<div class="title">
|
|
<div class="title">
|
|
<a-form-model-item ref="ruleRelationship" prop="ruleRelationship">
|
|
<a-form-model-item ref="ruleRelationship" prop="ruleRelationship">
|
|
<span class="condition-title">如果</span>
|
|
<span class="condition-title">如果</span>
|
|
- <a-select style="width: 300px" v-model="item.ruleRelationship" :disabled="!edit">
|
|
|
|
|
|
+ <a-select style="width: 300px" v-model="item.ruleRelationship">
|
|
<a-select-option value='and'>满足以下所有条件</a-select-option>
|
|
<a-select-option value='and'>满足以下所有条件</a-select-option>
|
|
<a-select-option value='or'>满足以下任意条件</a-select-option>
|
|
<a-select-option value='or'>满足以下任意条件</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
|
|
+
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
@@ -161,15 +176,15 @@
|
|
<div class="rules-list" v-for="(ele,ind) in item.ruleDetail" :key='ind'>
|
|
<div class="rules-list" v-for="(ele,ind) in item.ruleDetail" :key='ind'>
|
|
|
|
|
|
<div class="rules-list-item">
|
|
<div class="rules-list-item">
|
|
- <div class="rules-list-item-subject" >
|
|
|
|
|
|
+ <div class="rules-list-item-subject" style="width:180px">
|
|
<a-form-model-item ref="baseIndex" prop="baseIndex">
|
|
<a-form-model-item ref="baseIndex" prop="baseIndex">
|
|
<a-cascader
|
|
<a-cascader
|
|
- :disabled="!edit"
|
|
|
|
v-model="ele.baseIndex"
|
|
v-model="ele.baseIndex"
|
|
:options="rulesFieldList"
|
|
:options="rulesFieldList"
|
|
placeholder="选择指标"
|
|
placeholder="选择指标"
|
|
@change="baseIndexChange(ele)"
|
|
@change="baseIndexChange(ele)"
|
|
expand-trigger="hover"
|
|
expand-trigger="hover"
|
|
|
|
+ :disabled="!!ele.ruleId"
|
|
:fieldNames="{ label:'name', value: 'code',children: 'children'}"
|
|
:fieldNames="{ label:'name', value: 'code',children: 'children'}"
|
|
/>
|
|
/>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
@@ -179,29 +194,45 @@
|
|
|
|
|
|
<div class="rules-list-item-subject" >
|
|
<div class="rules-list-item-subject" >
|
|
<a-form-model-item ref="ruleCondition" prop="ruleCondition">
|
|
<a-form-model-item ref="ruleCondition" prop="ruleCondition">
|
|
- <a-select v-model="ele.ruleCondition" placeholder="运算符" :disabled="!edit">
|
|
|
|
|
|
+ <a-select v-model="ele.ruleCondition" placeholder="运算符" :disabled="!!ele.ruleId">
|
|
<a-select-option v-for="item in ele.conditionList" :key="item.id" :value='item.ruleCondition'>{{item.conditionName}}</a-select-option>
|
|
<a-select-option v-for="item in ele.conditionList" :key="item.id" :value='item.ruleCondition'>{{item.conditionName}}</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
-
|
|
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="rules-list-item-subject" >
|
|
<div class="rules-list-item-subject" >
|
|
<a-form-model-item ref="variableType" prop="variableType">
|
|
<a-form-model-item ref="variableType" prop="variableType">
|
|
- <a-select v-model="ele.variableType" :disabled="!edit">
|
|
|
|
|
|
+ <a-select v-model="ele.variableType" :disabled="!!ele.ruleId">
|
|
<a-select-option :value='0'>常量</a-select-option>
|
|
<a-select-option :value='0'>常量</a-select-option>
|
|
<a-select-option :value='1'>变量</a-select-option>
|
|
<a-select-option :value='1'>变量</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="rules-list-item-subject" >
|
|
|
|
+ <a-form-model-item ref="judgeFormat" prop="judgeFormat">
|
|
|
|
+ <a-select v-model="ele.judgeFormat" placeholder="" :disabled="!!ele.ruleId">
|
|
|
|
+ <a-select-option :value='0'>筛选条件</a-select-option>
|
|
|
|
+ <a-select-option :value='1'>判断条件</a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <div class="rules-list-item-subject" >
|
|
|
|
- <a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="ele.threshold" placeholder="请输入" />
|
|
|
|
|
|
+ <div class="rules-list-item-subject" v-if="ele.dataType=='number'">
|
|
|
|
+ <a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="ele.threshold" placeholder="请输入" :disabled="!!ele.ruleId" />
|
|
<span style="margin-left:8px;line-height:32px">{{ele.dataUnit }}</span>
|
|
<span style="margin-left:8px;line-height:32px">{{ele.dataUnit }}</span>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
|
|
+ <div class="rules-list-item-subject" >
|
|
|
|
+ <a-form-model-item ref="isUnlimited" prop="isUnlimited">
|
|
|
|
+ <a-select v-model="ele.isUnlimited" placeholder="是否必填" :disabled="!!ele.ruleId">
|
|
|
|
+ <a-select-option :value='1'>必填</a-select-option>
|
|
|
|
+ <a-select-option :value='0'>不必填</a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
</template>
|
|
</template>
|
|
<div class="rules-list-item-delete" @click="deleteRulesListItem(index,ind)" v-if="ind!=0">
|
|
<div class="rules-list-item-delete" @click="deleteRulesListItem(index,ind)" v-if="ind!=0">
|
|
<a-icon type="delete" style="font-size:16px;position: relative;top: 4px;" />
|
|
<a-icon type="delete" style="font-size:16px;position: relative;top: 4px;" />
|
|
@@ -209,8 +240,8 @@
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
- <div class="add-rule" @click="addCondition(item,index)"> 添加条件</div>
|
|
|
|
|
|
+
|
|
|
|
+ <div class="add-rule" @click="addCondition(item,index)" > 添加条件</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toolbox-automate-rules-create-content_rules-and-condition_rules">
|
|
<div class="toolbox-automate-rules-create-content_rules-and-condition_rules">
|
|
@@ -222,7 +253,7 @@
|
|
<div class="rules-list-item">
|
|
<div class="rules-list-item">
|
|
<div class="rules-list-item-subject" >
|
|
<div class="rules-list-item-subject" >
|
|
<a-form-model-item ref="processMethod" prop="processMethod">
|
|
<a-form-model-item ref="processMethod" prop="processMethod">
|
|
- <a-select v-model="item.processMethod" :disabled="!edit">
|
|
|
|
|
|
+ <a-select v-model="item.processMethod" :disabled="!!item.groupId">
|
|
<a-select-option value='SEND'>仅发送通知</a-select-option>
|
|
<a-select-option value='SEND'>仅发送通知</a-select-option>
|
|
<a-select-option value='PAUSE' >关停组</a-select-option>
|
|
<a-select-option value='PAUSE' >关停组</a-select-option>
|
|
|
|
|
|
@@ -231,7 +262,7 @@
|
|
</div>
|
|
</div>
|
|
<div class="rules-list-item-subject" >
|
|
<div class="rules-list-item-subject" >
|
|
<a-form-model-item ref="processMethod" prop="processMethod">
|
|
<a-form-model-item ref="processMethod" prop="processMethod">
|
|
- <a-select v-model="item.sendType" :disabled="!edit">
|
|
|
|
|
|
+ <a-select v-model="item.sendType" :disabled="!!item.groupId">
|
|
<a-select-option value='message' >短信</a-select-option>
|
|
<a-select-option value='message' >短信</a-select-option>
|
|
<a-select-option value='enterpriseWechat'>企业微信</a-select-option>
|
|
<a-select-option value='enterpriseWechat'>企业微信</a-select-option>
|
|
<a-select-option value='email'>邮箱</a-select-option>
|
|
<a-select-option value='email'>邮箱</a-select-option>
|
|
@@ -253,7 +284,7 @@
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div class="moduler" v-if="edit">
|
|
|
|
|
|
+ <div class="moduler">
|
|
<!-- <div class="moduler-title">计划名称</div> -->
|
|
<!-- <div class="moduler-title">计划名称</div> -->
|
|
<div class="opt">
|
|
<div class="opt">
|
|
<a-button type="default" style="margin-right:15px" @click="goBack">取消</a-button>
|
|
<a-button type="default" style="margin-right:15px" @click="goBack">取消</a-button>
|
|
@@ -263,12 +294,13 @@
|
|
</a-form-model>
|
|
</a-form-model>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ </a-spin>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import moment from 'moment';
|
|
import moment from 'moment';
|
|
-import { getAction, postAction, downFile, downFilePost } from '@/api/manage';
|
|
|
|
|
|
+import { getAction, postAction, downFile, downFilePost,deleteAction } from '@/api/manage';
|
|
import { Switch } from 'ant-design-vue';
|
|
import { Switch } from 'ant-design-vue';
|
|
import Treeselect from '@/views/modules/Statistics/components/Treeselect.vue'
|
|
import Treeselect from '@/views/modules/Statistics/components/Treeselect.vue'
|
|
|
|
|
|
@@ -278,7 +310,6 @@ export default {
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
- edit:true,
|
|
|
|
conditionList:[],
|
|
conditionList:[],
|
|
url:{
|
|
url:{
|
|
fieldList:'/ruleIndicator/list',
|
|
fieldList:'/ruleIndicator/list',
|
|
@@ -300,7 +331,7 @@ export default {
|
|
// 用到的参数数组
|
|
// 用到的参数数组
|
|
|
|
|
|
form: {
|
|
form: {
|
|
- mediaType:'1',
|
|
|
|
|
|
+ mediaType:1,
|
|
templateName: `空白规则模板_${moment().format('YYYY_MM_DD_hh:mm:ss')}`,
|
|
templateName: `空白规则模板_${moment().format('YYYY_MM_DD_hh:mm:ss')}`,
|
|
ruleList:[
|
|
ruleList:[
|
|
{
|
|
{
|
|
@@ -308,11 +339,13 @@ export default {
|
|
ruleRelationship:"and",
|
|
ruleRelationship:"and",
|
|
ruleType:'base',
|
|
ruleType:'base',
|
|
remark:'',
|
|
remark:'',
|
|
|
|
+ isRequired:1,
|
|
|
|
+ isCopy:0,
|
|
ruleDetail:[
|
|
ruleDetail:[
|
|
{
|
|
{
|
|
ruleName:'',
|
|
ruleName:'',
|
|
baseIndex:[],
|
|
baseIndex:[],
|
|
- indicatorCode:'',
|
|
|
|
|
|
+ indicatorCode:undefined,
|
|
ruleDimension:'',
|
|
ruleDimension:'',
|
|
dataRange:'CURRENT_DAY_DATA',
|
|
dataRange:'CURRENT_DAY_DATA',
|
|
ruleCondition:undefined,
|
|
ruleCondition:undefined,
|
|
@@ -320,6 +353,9 @@ export default {
|
|
variableType:1,
|
|
variableType:1,
|
|
dataUnit:'',
|
|
dataUnit:'',
|
|
conditionList:[],
|
|
conditionList:[],
|
|
|
|
+ dataType:'',
|
|
|
|
+ judgeFormat:0,
|
|
|
|
+ isUnlimited:1,
|
|
},
|
|
},
|
|
],
|
|
],
|
|
processMethod:'SEND',//预警方式
|
|
processMethod:'SEND',//预警方式
|
|
@@ -368,18 +404,23 @@ export default {
|
|
console.log(ele,'========================执行了');
|
|
console.log(ele,'========================执行了');
|
|
ele.indicatorCode=ele.baseIndex[1];
|
|
ele.indicatorCode=ele.baseIndex[1];
|
|
ele.ruleDimension=ele.baseIndex[0];
|
|
ele.ruleDimension=ele.baseIndex[0];
|
|
|
|
+
|
|
this.rulesFieldList.forEach(element => {
|
|
this.rulesFieldList.forEach(element => {
|
|
if(element.code==ele.baseIndex[0]){
|
|
if(element.code==ele.baseIndex[0]){
|
|
element.children.forEach(item=>{
|
|
element.children.forEach(item=>{
|
|
if(item.code==ele.baseIndex[1]){
|
|
if(item.code==ele.baseIndex[1]){
|
|
ele.ruleName=item.name
|
|
ele.ruleName=item.name
|
|
ele.dataUnit=item.dataUnit
|
|
ele.dataUnit=item.dataUnit
|
|
-
|
|
|
|
|
|
+ ele.dataType=item.dataType;
|
|
|
|
+
|
|
|
|
+ if(item.dataType!='number'){
|
|
|
|
+ ele.threshold=''
|
|
|
|
+ }
|
|
getAction(this.url.ruleCondition,{
|
|
getAction(this.url.ruleCondition,{
|
|
dataType:item.dataType
|
|
dataType:item.dataType
|
|
}).then(res=>{
|
|
}).then(res=>{
|
|
// console.log(res);
|
|
// console.log(res);
|
|
- this.conditionList=[];
|
|
|
|
|
|
+ ele.conditionList=[];
|
|
if(res.success){
|
|
if(res.success){
|
|
ele.conditionList=res.result
|
|
ele.conditionList=res.result
|
|
}
|
|
}
|
|
@@ -412,18 +453,26 @@ export default {
|
|
this.$refs.ruleForm.resetFields();
|
|
this.$refs.ruleForm.resetFields();
|
|
},
|
|
},
|
|
addCondition(item,index){
|
|
addCondition(item,index){
|
|
- this.form.ruleList[index].ruleDetail.push({
|
|
|
|
- ruleName:'',
|
|
|
|
- baseIndex:[],
|
|
|
|
- indicatorCode:'',
|
|
|
|
- ruleDimension:'',
|
|
|
|
- dataRange:'CURRENT_DAY_DATA',
|
|
|
|
- ruleCondition:undefined,
|
|
|
|
- threshold:0,
|
|
|
|
- variableType:1,
|
|
|
|
- dataUnit:'',
|
|
|
|
- conditionList:[],
|
|
|
|
- },)
|
|
|
|
|
|
+ if(item.groupId){
|
|
|
|
+ this.$message.warning('不可编辑当前规则组')
|
|
|
|
+ }else{
|
|
|
|
+ this.form.ruleList[index].ruleDetail.push({
|
|
|
|
+ ruleName:'',
|
|
|
|
+ baseIndex:[],
|
|
|
|
+ indicatorCode:undefined,
|
|
|
|
+ ruleDimension:'',
|
|
|
|
+ dataRange:'CURRENT_DAY_DATA',
|
|
|
|
+ ruleCondition:undefined,
|
|
|
|
+ threshold:0,
|
|
|
|
+ variableType:1,
|
|
|
|
+ dataUnit:'',
|
|
|
|
+ conditionList:[],
|
|
|
|
+ dataType:'',
|
|
|
|
+ judgeFormat:0,
|
|
|
|
+ isUnlimited:true,
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
},
|
|
},
|
|
addRule(){
|
|
addRule(){
|
|
this.form.ruleList.push(
|
|
this.form.ruleList.push(
|
|
@@ -432,20 +481,25 @@ export default {
|
|
ruleRelationship:"and",
|
|
ruleRelationship:"and",
|
|
ruleType:'base',
|
|
ruleType:'base',
|
|
remark:'',
|
|
remark:'',
|
|
- processMethod:'',//预警方式
|
|
|
|
- sendType:'',//通知方式
|
|
|
|
|
|
+ processMethod:'SEND',//预警方式
|
|
|
|
+ sendType:'enterpriseWechat',//通知方式
|
|
|
|
+ isRequired:1,
|
|
|
|
+ isCopy:0,
|
|
ruleDetail:[
|
|
ruleDetail:[
|
|
{
|
|
{
|
|
ruleName:'',
|
|
ruleName:'',
|
|
baseIndex:[],
|
|
baseIndex:[],
|
|
- indicatorCode:'',
|
|
|
|
|
|
+ indicatorCode:undefined,
|
|
ruleDimension:'',
|
|
ruleDimension:'',
|
|
dataRange:'CURRENT_DAY_DATA',
|
|
dataRange:'CURRENT_DAY_DATA',
|
|
ruleCondition:undefined,
|
|
ruleCondition:undefined,
|
|
threshold:0,
|
|
threshold:0,
|
|
variableType:1,
|
|
variableType:1,
|
|
dataUnit:'',
|
|
dataUnit:'',
|
|
- conditionList:[],
|
|
|
|
|
|
+ conditionList:[],
|
|
|
|
+ dataType:'',
|
|
|
|
+ judgeFormat:0,
|
|
|
|
+ isUnlimited:1,
|
|
},
|
|
},
|
|
]
|
|
]
|
|
},
|
|
},
|
|
@@ -457,16 +511,19 @@ export default {
|
|
return i!=ind
|
|
return i!=ind
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+ deleteIcon(event){
|
|
|
|
+ event.stopPropagation();
|
|
|
|
+ },
|
|
deleteRule(event,item,index){
|
|
deleteRule(event,item,index){
|
|
event.stopPropagation();
|
|
event.stopPropagation();
|
|
console.log(item,index)
|
|
console.log(item,index)
|
|
- if(item.id){
|
|
|
|
- postAction(this.url.ruleGroupDelete,{
|
|
|
|
- id:item.id
|
|
|
|
|
|
+ if(item.groupId){
|
|
|
|
+ deleteAction(this.url.ruleGroupDelete,{
|
|
|
|
+ id:item.groupId
|
|
}).then(res=>{
|
|
}).then(res=>{
|
|
console.log(res);
|
|
console.log(res);
|
|
if(res.success){
|
|
if(res.success){
|
|
- this.$message.success(res.messge);
|
|
|
|
|
|
+ this.$message.success(res.message);
|
|
this.form.ruleList=this.form.ruleList.filter((ele,ind)=>{
|
|
this.form.ruleList=this.form.ruleList.filter((ele,ind)=>{
|
|
return ind!=index
|
|
return ind!=index
|
|
})
|
|
})
|
|
@@ -508,18 +565,22 @@ export default {
|
|
console.log(valid,this.form);
|
|
console.log(valid,this.form);
|
|
|
|
|
|
this.saveLoading=true;
|
|
this.saveLoading=true;
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+
|
|
if(this.currentRuleId){
|
|
if(this.currentRuleId){
|
|
- postAction('/alarm/alarmEventRule/edit',this.form).then(res=>{
|
|
|
|
|
|
+ let ruleList=this.form.ruleList.filter(item=>{
|
|
|
|
+ return !item.groupId
|
|
|
|
+ })
|
|
|
|
+ console.log(ruleList)
|
|
|
|
+ postAction(this.url.createRuleGroup,{
|
|
|
|
+ templateId:this.currentRuleId,
|
|
|
|
+ ruleList
|
|
|
|
+ }).then(res=>{
|
|
console.log(res);
|
|
console.log(res);
|
|
this.saveLoading=false;
|
|
this.saveLoading=false;
|
|
if(res.success){
|
|
if(res.success){
|
|
|
|
|
|
- this.$router.push('/autoRules')
|
|
|
|
- this.$bus.$emit('remove', '/newBlankRule')
|
|
|
|
|
|
+ this.$router.push('/earlyWarningRules/index')
|
|
|
|
+ this.$bus.$emit('remove', '/earlyWarningRules/configRules')
|
|
}else{
|
|
}else{
|
|
this.$message.error(res.message)
|
|
this.$message.error(res.message)
|
|
}
|
|
}
|
|
@@ -530,8 +591,8 @@ export default {
|
|
console.log(res);
|
|
console.log(res);
|
|
this.saveLoading=false;
|
|
this.saveLoading=false;
|
|
if(res.success){
|
|
if(res.success){
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ this.$router.push('/earlyWarningRules/index')
|
|
|
|
+ this.$bus.$emit('remove', '/earlyWarningRules/configRules')
|
|
}else{
|
|
}else{
|
|
this.$message.error(res.message)
|
|
this.$message.error(res.message)
|
|
}
|
|
}
|
|
@@ -551,8 +612,8 @@ export default {
|
|
},
|
|
},
|
|
|
|
|
|
goBack() {
|
|
goBack() {
|
|
- this.$router.replace('/autoRules')
|
|
|
|
- this.$bus.$emit('remove', '/newBlankRule')
|
|
|
|
|
|
+ this.$router.push('/earlyWarningRules/index')
|
|
|
|
+ this.$bus.$emit('remove', '/earlyWarningRules/configRules')
|
|
|
|
|
|
},
|
|
},
|
|
|
|
|
|
@@ -562,6 +623,45 @@ export default {
|
|
|
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
+
|
|
|
|
+ // huixianzhi
|
|
|
|
+ getTempletDetail(){
|
|
|
|
+ if(this.$route.query.id){
|
|
|
|
+ this.spinning=true;
|
|
|
|
+ getAction(this.url.queryDetailById,{
|
|
|
|
+ id:this.$route.query.id
|
|
|
|
+ }).then(res=>{
|
|
|
|
+ console.log(res);
|
|
|
|
+ if(res.success){
|
|
|
|
+ this.spinning=false;
|
|
|
|
+
|
|
|
|
+ res.result.ruleList.map((item,index)=>{
|
|
|
|
+ item.ruleDetail.forEach((ele,ind)=>{
|
|
|
|
+
|
|
|
|
+ ele.baseIndex=[ele.ruleDimension,ele.indicatorCode];
|
|
|
|
+ getAction(this.url.ruleCondition,{
|
|
|
|
+ dataType:ele.dataType
|
|
|
|
+ }).then(result=>{
|
|
|
|
+ console.log(result)
|
|
|
|
+ if(result.success){
|
|
|
|
+ ele.conditionList=result.result
|
|
|
|
+ console.log(this.form);
|
|
|
|
+ this.form={};
|
|
|
|
+ this.form=res.result
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ this.form=res.result;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }else{
|
|
|
|
+ this.spinning=false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ },
|
|
},
|
|
},
|
|
|
|
|
|
filters:{
|
|
filters:{
|
|
@@ -600,6 +700,8 @@ export default {
|
|
},
|
|
},
|
|
|
|
|
|
mounted(){
|
|
mounted(){
|
|
|
|
+ this.spinning=true;
|
|
|
|
+ this.currentRuleId=this.$route.query.id
|
|
getAction(this.url.fieldList,{
|
|
getAction(this.url.fieldList,{
|
|
mediaType:1,
|
|
mediaType:1,
|
|
pageNo:1,
|
|
pageNo:1,
|
|
@@ -613,48 +715,14 @@ export default {
|
|
code:item.dimension,
|
|
code:item.dimension,
|
|
children:item.dimensionList
|
|
children:item.dimensionList
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ })
|
|
|
|
+ this.getTempletDetail()
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
|
|
- console.log(this.$route.query);
|
|
|
|
- this.currentRuleId=this.$route.query.id
|
|
|
|
- this.edit=this.$route.query.edit=='false'?false:true
|
|
|
|
- if(this.$route.query.id){
|
|
|
|
- getAction(this.url.queryDetailById,{
|
|
|
|
- id:this.$route.query.id
|
|
|
|
- }).then(res=>{
|
|
|
|
- console.log(res);
|
|
|
|
- if(res.success){
|
|
|
|
- this.form=res.result;
|
|
|
|
- this.form.ruleList
|
|
|
|
- res.result.ruleList.map((item,index)=>{
|
|
|
|
- item.ruleDetail.forEach((ele,ind)=>{
|
|
|
|
- this.form.ruleList[index].ruleDetail[ind].baseIndex=[ele.ruleDimension,ele.indicatorCode];
|
|
|
|
- this.rulesFieldList.forEach(element => {
|
|
|
|
- if(element.code==ele.ruleDimension){
|
|
|
|
- element.children.forEach(it=>{
|
|
|
|
- if(it.code==ele.indicatorCode){
|
|
|
|
- getAction(this.url.ruleCondition,{
|
|
|
|
- dataType:it.dataType
|
|
|
|
- }).then(res=>{
|
|
|
|
- console.log(res)
|
|
|
|
- if(res.success){
|
|
|
|
- ele.conditionList=res.result
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- })
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- console.log(this.form)
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ // console.log(this.$route.query);
|
|
|
|
+
|
|
|
|
+
|
|
},
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
@@ -729,7 +797,7 @@ export default {
|
|
display: flex;
|
|
display: flex;
|
|
justify-content: flex-start;
|
|
justify-content: flex-start;
|
|
align-items: center;
|
|
align-items: center;
|
|
- margin-bottom: 32px;
|
|
|
|
|
|
+ margin-bottom: 20px;
|
|
}
|
|
}
|
|
.row-item:last-of-type {
|
|
.row-item:last-of-type {
|
|
margin-bottom: 0;
|
|
margin-bottom: 0;
|
|
@@ -806,7 +874,7 @@ export default {
|
|
|
|
|
|
border-bottom: 1px solid #E4E9ED;
|
|
border-bottom: 1px solid #E4E9ED;
|
|
padding-left: 24px;
|
|
padding-left: 24px;
|
|
- padding: 20px;
|
|
|
|
|
|
+ padding: 12px;
|
|
// display: flex;
|
|
// display: flex;
|
|
// justify-content: flex-start;
|
|
// justify-content: flex-start;
|
|
align-items: center;
|
|
align-items: center;
|
|
@@ -829,7 +897,7 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.content{
|
|
.content{
|
|
- padding: 24px;
|
|
|
|
|
|
+ padding: 15px;
|
|
|
|
|
|
.add-rule {
|
|
.add-rule {
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
@@ -857,7 +925,7 @@ export default {
|
|
.rules-list-item {
|
|
.rules-list-item {
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
width: 100%;
|
|
- padding: 24px;
|
|
|
|
|
|
+ padding: 15px;
|
|
background: #f8f9fa;
|
|
background: #f8f9fa;
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
margin-bottom: 16px;
|
|
margin-bottom: 16px;
|