|
@@ -18,19 +18,11 @@
|
|
</div>
|
|
</div>
|
|
<div class="input-item">
|
|
<div class="input-item">
|
|
<a-form-model-item ref="applyObject" prop="applyObject">
|
|
<a-form-model-item ref="applyObject" prop="applyObject">
|
|
- <!-- <a-input
|
|
|
|
- v-model="form.name"
|
|
|
|
- @blur="
|
|
|
|
- () => {
|
|
|
|
- $refs.name.onFieldBlur();
|
|
|
|
- }
|
|
|
|
- "
|
|
|
|
- /> -->
|
|
|
|
<a-radio-group v-model="form.applyObject" @change="applyObjChange">
|
|
<a-radio-group v-model="form.applyObject" @change="applyObjChange">
|
|
<a-radio-button value="ACCOUNT">账户</a-radio-button>
|
|
<a-radio-button value="ACCOUNT">账户</a-radio-button>
|
|
- <a-radio-button value="CAMPAIGN">计划</a-radio-button>
|
|
|
|
|
|
+ <!-- <a-radio-button value="CAMPAIGN">计划</a-radio-button>
|
|
<a-radio-button value="UNIT">组</a-radio-button>
|
|
<a-radio-button value="UNIT">组</a-radio-button>
|
|
- <a-radio-button value="CREATE">创意</a-radio-button>
|
|
|
|
|
|
+ <a-radio-button value="CREATE">创意</a-radio-button> -->
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
@@ -50,12 +42,35 @@
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
|
|
|
|
<a-form-model-item ref="applyAccount" prop="applyAccount" v-if="form.applyObject=='ACCOUNT'">
|
|
<a-form-model-item ref="applyAccount" prop="applyAccount" v-if="form.applyObject=='ACCOUNT'">
|
|
- <a-select style="width: 300px" v-model="form.applyAccount" mode="multiple" placeholder="请选择具体的账户">
|
|
|
|
- <a-select-option v-for="item in accountList" :key="item.id" :value='item.value'>
|
|
|
|
- {{item.title}}
|
|
|
|
|
|
+ <Treeselect :appId.sync="form.applyAccount" :multiple="false" request="2,4" ref="treeSelect" />
|
|
|
|
+
|
|
|
|
+ </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="metricValueCode" prop="metricValueCode">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="form.metricValueCode"
|
|
|
|
+ show-search
|
|
|
|
+ placeholder="选择规则字段"
|
|
|
|
+ option-filter-prop="children"
|
|
|
|
+ style="width: 200px"
|
|
|
|
+ :filter-option="filterOption"
|
|
|
|
+ @change="handleChange"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option v-for="item in rulesFieldList" :key="item.id" :value='item.metricValueCode'>
|
|
|
|
+ {{item.metricValueName}}
|
|
</a-select-option>
|
|
</a-select-option>
|
|
|
|
+
|
|
</a-select>
|
|
</a-select>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-item" v-if="form.applyRange=='ACCORDINGTO_STATUS'&&form.applyObject!='ACCOUNT'">
|
|
<div class="row-item" v-if="form.applyRange=='ACCORDINGTO_STATUS'&&form.applyObject!='ACCOUNT'">
|
|
@@ -127,97 +142,104 @@
|
|
<a-form-model-item ref="causalCondition" prop="causalCondition">
|
|
<a-form-model-item ref="causalCondition" prop="causalCondition">
|
|
<a-select style="width: 300px" v-model="form.causalCondition">
|
|
<a-select style="width: 300px" v-model="form.causalCondition">
|
|
<a-select-option value='MEET_ALL'>满足以下所有条件</a-select-option>
|
|
<a-select-option value='MEET_ALL'>满足以下所有条件</a-select-option>
|
|
- <a-select-option value='MEET_ANY'>满足以下任意条件</a-select-option>
|
|
|
|
|
|
+ <!-- <a-select-option value='MEET_ANY'>满足以下任意条件</a-select-option> -->
|
|
</a-select>
|
|
</a-select>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
<div class="content">
|
|
<div class="content">
|
|
<div class="rules-list" v-for="(item,index) in rulesList" :key='index'>
|
|
<div class="rules-list" v-for="(item,index) in rulesList" :key='index'>
|
|
|
|
+
|
|
<div class="rules-list-item">
|
|
<div class="rules-list-item">
|
|
<div class="rules-list-item-subject" >
|
|
<div class="rules-list-item-subject" >
|
|
- <a-cascader
|
|
|
|
- v-model="item.baseCondition"
|
|
|
|
|
|
+ <!-- <a-cascader
|
|
|
|
+ v-model="item.metricValueName"
|
|
:options="condition"
|
|
:options="condition"
|
|
:display-render="displayRender"
|
|
:display-render="displayRender"
|
|
expand-trigger="hover"
|
|
expand-trigger="hover"
|
|
placeholder=""
|
|
placeholder=""
|
|
@change="conditionChange(item)"
|
|
@change="conditionChange(item)"
|
|
- />
|
|
|
|
|
|
+ /> -->
|
|
|
|
+ <span class="ruleName">
|
|
|
|
+ {{item.metricValueName || '消耗'}}
|
|
|
|
+ </span>
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
<div class="rules-list-item-subject" >
|
|
<div class="rules-list-item-subject" >
|
|
- <a-select v-model="item.whichDayOfData">
|
|
|
|
|
|
+ <a-select v-model="item.dataRange">
|
|
<a-select-option value='CURRENT_DAY_DATA'>当天数据</a-select-option>
|
|
<a-select-option value='CURRENT_DAY_DATA'>当天数据</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
</div>
|
|
</div>
|
|
<div class="rules-list-item-subject" >
|
|
<div class="rules-list-item-subject" >
|
|
- <a-select v-model="item.compareOperate">
|
|
|
|
|
|
+ <a-select v-model="item.judgeMethod">
|
|
<a-select-option value='GT_EQ'>大于等于</a-select-option>
|
|
<a-select-option value='GT_EQ'>大于等于</a-select-option>
|
|
<a-select-option value='LT_EQ'>小于等于</a-select-option>
|
|
<a-select-option value='LT_EQ'>小于等于</a-select-option>
|
|
<a-select-option value='BETWEEN'>介于</a-select-option>
|
|
<a-select-option value='BETWEEN'>介于</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
</div>
|
|
</div>
|
|
- <div class="rules-list-item-subject" v-if="item.baseCondition[1]=='COST'">
|
|
|
|
- <a-select v-model="item.whichModuleOfMoney">
|
|
|
|
|
|
+ <!-- -->
|
|
|
|
+ <div class="rules-list-item-subject" v-if="isCost(item.metricValueCode)">
|
|
|
|
+ <a-select v-model="item.judgeType">
|
|
<a-select-option value='MONEY'>金额</a-select-option>
|
|
<a-select-option value='MONEY'>金额</a-select-option>
|
|
- <a-select-option value='DAY_BUDGET'>日预算</a-select-option>
|
|
|
|
|
|
+ <!-- <a-select-option value='DAY_BUDGET'>日预算</a-select-option> -->
|
|
</a-select>
|
|
</a-select>
|
|
</div>
|
|
</div>
|
|
- <!-- <div class="rules-list-item-subject" v-if="item.whichModuleOfMoney=='MONEY'&&item.compareOperate!='BETWEEN'">
|
|
|
|
|
|
+ <!-- <div class="rules-list-item-subject" v-if="item.judgeType=='MONEY'&&item.judgeMethod!='BETWEEN'">
|
|
<a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="item.specificMoney" placeholder="请输入" />
|
|
<a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="item.specificMoney" placeholder="请输入" />
|
|
<span style="margin-left:8px;line-height:32px">元</span>
|
|
<span style="margin-left:8px;line-height:32px">元</span>
|
|
</div> -->
|
|
</div> -->
|
|
|
|
|
|
- <div class="rules-list-item-subject" v-if="item.whichModuleOfMoney=='MONEY'&&item.compareOperate!='LT_EQ'">
|
|
|
|
- <a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="item.specificMoneyMin" placeholder="请输入" />
|
|
|
|
- <span style="margin-left:8px;line-height:32px">元</span>
|
|
|
|
|
|
+ <div class="rules-list-item-subject" v-if="item.judgeMethod=='BETWEEN'">
|
|
|
|
+ <a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="item.minThreshold" placeholder="请输入" @blur="inputCheck" />
|
|
|
|
+ <span style="margin-left:8px;line-height:32px">{{item.metricValueCode | handlerDANWEI }}</span>
|
|
</div>
|
|
</div>
|
|
- <span style="margin-right:20px" v-if="item.whichModuleOfMoney=='MONEY'&&item.compareOperate!='GT_EQ'">-</span>
|
|
|
|
- <div class="rules-list-item-subject" v-if="item.whichModuleOfMoney=='MONEY'&&item.compareOperate=='BETWEEN'">
|
|
|
|
- <a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="item.specificMoneyMax" placeholder="请输入" />
|
|
|
|
- <span style="margin-left:8px;line-height:32px">元</span>
|
|
|
|
|
|
+ <span style="margin-right:20px" v-if="item.judgeMethod=='BETWEEN'">-</span>
|
|
|
|
+ <div class="rules-list-item-subject" >
|
|
|
|
+ <a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="item.threshold" placeholder="请输入" />
|
|
|
|
+ <span style="margin-left:8px;line-height:32px">{{item.metricValueCode | handlerDANWEI }}</span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
- <!-- <div class="rules-list-item-subject" v-if="item.whichModuleOfMoney=='DAY_BUDGET'&&item.compareOperate!='BETWEEN'">
|
|
|
|
|
|
+ <!-- <div class="rules-list-item-subject" v-if="item.judgeType=='DAY_BUDGET'&&item.judgeMethod!='BETWEEN'">
|
|
<a-select v-model="item.budgetMultiple">
|
|
<a-select v-model="item.budgetMultiple">
|
|
<a-select-option v-for="item in budgetMultipleArr" :key="item.value" :value='item.value' >{{item.label}}</a-select-option>
|
|
<a-select-option v-for="item in budgetMultipleArr" :key="item.value" :value='item.value' >{{item.label}}</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
</div> -->
|
|
</div> -->
|
|
- <div class="rules-list-item-subject" v-if="item.whichModuleOfMoney=='DAY_BUDGET'&&item.compareOperate!='LT_EQ'">
|
|
|
|
|
|
+ <!-- <div class="rules-list-item-subject" v-if="item.judgeType=='DAY_BUDGET'&&item.judgeMethod!='LT_EQ'">
|
|
<a-select v-model="item.budgetMultipleMin">
|
|
<a-select v-model="item.budgetMultipleMin">
|
|
<a-select-option v-for="item in budgetMultipleArr" :key="item.value" :value='item.value' >{{item.label}}</a-select-option>
|
|
<a-select-option v-for="item in budgetMultipleArr" :key="item.value" :value='item.value' >{{item.label}}</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <span style="margin-right:20px" v-if="item.whichModuleOfMoney=='DAY_BUDGET'&&item.compareOperate=='BETWEEN'">-</span>
|
|
|
|
- <div class="rules-list-item-subject" v-if="item.whichModuleOfMoney=='DAY_BUDGET'&&item.compareOperate!='GT_EQ'">
|
|
|
|
|
|
+ <span style="margin-right:20px" v-if="item.judgeType=='DAY_BUDGET'&&item.judgeMethod=='BETWEEN'">-</span>
|
|
|
|
+ <div class="rules-list-item-subject" v-if="item.judgeType=='DAY_BUDGET'&&item.judgeMethod!='GT_EQ'">
|
|
<a-select v-model="item.budgetMultipleMax">
|
|
<a-select v-model="item.budgetMultipleMax">
|
|
<a-select-option v-for="item in budgetMultipleArr" :key="item.value" :value='item.value' >{{item.label}}</a-select-option>
|
|
<a-select-option v-for="item in budgetMultipleArr" :key="item.value" :value='item.value' >{{item.label}}</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
|
|
|
|
|
|
|
|
<!-- 处理不是消耗的情况 -->
|
|
<!-- 处理不是消耗的情况 -->
|
|
- <div class="rules-list-item-subject" v-if="item.baseCondition[1]!='COST'&&item.compareOperate!='LT_EQ'">
|
|
|
|
- <a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="item.minNumber" placeholder="请输入" />
|
|
|
|
- <span style="margin-left:8px;line-height:32px">{{item.baseCondition[1] | handlerDANWEI}}</span>
|
|
|
|
|
|
+ <!-- <div class="rules-list-item-subject" v-if="item.metricValueName[1]!='COST'&&item.judgeMethod!='LT_EQ'">
|
|
|
|
+ <a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="item.threshold" placeholder="请输入" />
|
|
|
|
+ <span style="margin-left:8px;line-height:32px">{{item.metricValueCode | handlerDANWEI}}</span>
|
|
</div>
|
|
</div>
|
|
- <span style="margin-right:20px" v-if="item.baseCondition[1]!='COST'&&item.compareOperate=='BETWEEN'">-</span>
|
|
|
|
- <div class="rules-list-item-subject" v-if="item.baseCondition[1]!='COST'&&item.compareOperate!='GT_EQ'">
|
|
|
|
|
|
+ <span style="margin-right:20px" v-if="item.metricValueName[1]!='COST'&&item.judgeMethod=='BETWEEN'">-</span>
|
|
|
|
+ <div class="rules-list-item-subject" v-if="item.metricValueName[1]!='COST'&&item.judgeMethod!='GT_EQ'">
|
|
<a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="item.maxNumber" placeholder="请输入" />
|
|
<a-input-number :min="0" style="width:100%" :max="9999999.99" :step="1" v-model="item.maxNumber" placeholder="请输入" />
|
|
- <span style="margin-left:8px;line-height:32px">{{item.baseCondition[1] | handlerDANWEI }}</span>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <span style="margin-left:8px;line-height:32px">{{item.metricValueCode | handlerDANWEI }}</span>
|
|
|
|
+ </div> -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <div class="rules-list-item-delete" @click="deleteRulesListItem(item,index)">
|
|
|
|
|
|
+ <!-- <div class="rules-list-item-delete" @click="deleteRulesListItem(item,index)">
|
|
<a-icon type="delete" style="font-size:16px;position: relative;top: 4px;" />
|
|
<a-icon type="delete" style="font-size:16px;position: relative;top: 4px;" />
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div class="add-rule" @click="addRule"> 添加条件</div>
|
|
|
|
|
|
+ <!-- <div class="add-rule" @click="addRule"> 添加条件</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">
|
|
@@ -228,10 +250,10 @@
|
|
<div class="rules-list">
|
|
<div class="rules-list">
|
|
<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="checkedTime" prop="checkedTime">
|
|
|
|
- <a-select v-model="form.finalOperation">
|
|
|
|
- <a-select-option value='PAUSE' v-if="form.applyObject!='ACCOUNT'">暂停{{form.applyObject | handlerApplyObj}}</a-select-option>
|
|
|
|
- <a-select-option value='OLNY_SENDMESSAGE'>仅发送通知</a-select-option>
|
|
|
|
|
|
+ <a-form-model-item ref="processMethod" prop="processMethod">
|
|
|
|
+ <a-select v-model="form.processMethod">
|
|
|
|
+ <a-select-option value='PAUSE' >关停组</a-select-option>
|
|
|
|
+ <a-select-option value='SEND'>仅发送通知</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
@@ -250,9 +272,9 @@
|
|
<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="checkedTime" prop="checkedTime">
|
|
|
|
- <a-radio-group v-model="form.checkedTime">
|
|
|
|
- <a-radio-button value="DAY">每天</a-radio-button>
|
|
|
|
|
|
+ <a-form-model-item ref="checkFrequency" prop="checkFrequency">
|
|
|
|
+ <a-radio-group v-model="form.checkFrequency">
|
|
|
|
+ <!-- <a-radio-button value="DAY">每天</a-radio-button> -->
|
|
<a-radio-button value="HOUR">每小时</a-radio-button>
|
|
<a-radio-button value="HOUR">每小时</a-radio-button>
|
|
<a-radio-button value="HALF_AN_HOUR">每半小时</a-radio-button>
|
|
<a-radio-button value="HALF_AN_HOUR">每半小时</a-radio-button>
|
|
<!-- <a-radio-button value="CUSTOM_TIME">自定义</a-radio-button> -->
|
|
<!-- <a-radio-button value="CUSTOM_TIME">自定义</a-radio-button> -->
|
|
@@ -260,7 +282,7 @@
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="row-item" v-if="form.checkedTime=='DAY'">
|
|
|
|
|
|
+ <div class="row-item" v-if="form.checkFrequency=='DAY'">
|
|
<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>
|
|
@@ -298,14 +320,10 @@
|
|
<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="applyObject" prop="applyObject">
|
|
|
|
|
|
+ <a-form-model-item ref="eventRuleName" prop="eventRuleName">
|
|
<a-input
|
|
<a-input
|
|
- v-model="form.name"
|
|
|
|
- @blur="
|
|
|
|
- () => {
|
|
|
|
- $refs.name.onFieldBlur();
|
|
|
|
- }
|
|
|
|
- "
|
|
|
|
|
|
+ v-model="form.eventRuleName"
|
|
|
|
+ allowClear
|
|
/>
|
|
/>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
@@ -328,7 +346,7 @@
|
|
import moment from 'moment';
|
|
import moment from 'moment';
|
|
import { getAction, postAction, downFile, downFilePost } from '@/api/manage';
|
|
import { getAction, postAction, downFile, downFilePost } from '@/api/manage';
|
|
import { Switch } from 'ant-design-vue';
|
|
import { Switch } from 'ant-design-vue';
|
|
-
|
|
|
|
|
|
+import Treeselect from '@/views/modules/Statistics/components/Treeselect.vue'
|
|
let statusList=[
|
|
let statusList=[
|
|
{
|
|
{
|
|
id:1,
|
|
id:1,
|
|
@@ -423,9 +441,6 @@ let condition=[
|
|
}
|
|
}
|
|
]
|
|
]
|
|
|
|
|
|
-let rulesField = [
|
|
|
|
-
|
|
|
|
-]
|
|
|
|
|
|
|
|
|
|
|
|
let budgetMultipleArr=[
|
|
let budgetMultipleArr=[
|
|
@@ -449,8 +464,14 @@ let budgetMultipleArr=[
|
|
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
|
+ components:{
|
|
|
|
+ Treeselect,
|
|
|
|
+ },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ currentRuleId:'',
|
|
|
|
+ rulesFieldList:[],
|
|
|
|
+ accountID:undefined,
|
|
selectedCampaignValue:undefined,
|
|
selectedCampaignValue:undefined,
|
|
spinning:false,
|
|
spinning:false,
|
|
campaignHaveList:[],
|
|
campaignHaveList:[],
|
|
@@ -468,48 +489,95 @@ export default {
|
|
budgetMultipleArr,
|
|
budgetMultipleArr,
|
|
accountList:[],
|
|
accountList:[],
|
|
form: {
|
|
form: {
|
|
- name: `空白规则_${moment().format('YYYY_MM_DD_hh:mm:ss')}`,
|
|
|
|
|
|
+ eventRuleName: `空白规则_${moment().format('YYYY_MM_DD_hh:mm:ss')}`,
|
|
applyObject:'ACCOUNT',
|
|
applyObject:'ACCOUNT',
|
|
- applyAccount:[],
|
|
|
|
|
|
+ applyAccount:'',
|
|
applyRange:'ACCORDINGTO_STATUS',
|
|
applyRange:'ACCORDINGTO_STATUS',
|
|
- status:'STATUS_DELIVERY_OK',
|
|
|
|
- specificMoment:undefined,
|
|
|
|
- sendMessage:1,
|
|
|
|
- specificMoment:undefined,
|
|
|
|
- checkedTime:'DAY',
|
|
|
|
|
|
+ status:'STATUS_DELIVERY_OK',
|
|
|
|
+ sendMessage:1,
|
|
|
|
+ checkFrequency:'HOUR',
|
|
causalCondition:'MEET_ALL', //因果条件 满足所有/满足任意
|
|
causalCondition:'MEET_ALL', //因果条件 满足所有/满足任意
|
|
- finalOperation:'OLNY_SENDMESSAGE',
|
|
|
|
-
|
|
|
|
|
|
+ processMethod:'SEND',
|
|
|
|
+ metricValueCode:undefined,
|
|
},
|
|
},
|
|
rules: {
|
|
rules: {
|
|
- name: [
|
|
|
|
|
|
+ eventRuleName: [
|
|
{ required: true, message: '请填写规则的具体名称', trigger: 'blur' },
|
|
{ required: true, message: '请填写规则的具体名称', trigger: 'blur' },
|
|
{ min: 2, message: '长度不得小于2', trigger: 'blur' },
|
|
{ min: 2, message: '长度不得小于2', trigger: 'blur' },
|
|
],
|
|
],
|
|
- applyObject: [{ required: true, message: '请选择具体应用对象', trigger: 'change' }],
|
|
|
|
|
|
+ metricValueCode: [{ required: true, message: '请选择规则字段', trigger: 'change' }],
|
|
applyRange: [{ required: true, message: '请选择具体应用范围', trigger: 'change' }],
|
|
applyRange: [{ required: true, message: '请选择具体应用范围', trigger: 'change' }],
|
|
applyAccount: [{required: true, message: '请选择具体应用范围', trigger: 'change' }],
|
|
applyAccount: [{required: true, message: '请选择具体应用范围', trigger: 'change' }],
|
|
specificMoment: [{required: true, message: '请选择具体时刻', trigger: 'change' }],
|
|
specificMoment: [{required: true, message: '请选择具体时刻', trigger: 'change' }],
|
|
-
|
|
|
|
|
|
+ money: [
|
|
|
|
+ { required: true, message: '请填写具体金额', trigger: 'blur' },
|
|
|
|
+ // { min: 2, message: '长度不得小于2', trigger: 'blur' },
|
|
|
|
+ ],
|
|
},
|
|
},
|
|
|
|
|
|
rulesList:[
|
|
rulesList:[
|
|
{
|
|
{
|
|
- baseCondition:['0','COST'],
|
|
|
|
- whichDayOfData:'CURRENT_DAY_DATA',
|
|
|
|
- compareOperate:'GT_EQ',
|
|
|
|
- whichModuleOfMoney:'MONEY',
|
|
|
|
- budgetMultiple:0.5,
|
|
|
|
- budgetMultipleMin:0.5,
|
|
|
|
- budgetMultipleMax:0.8,
|
|
|
|
- specificMoney:undefined,
|
|
|
|
- specificMoneyMin:undefined,
|
|
|
|
- specificMoneyMax:undefined,
|
|
|
|
|
|
+ metricValueName:'',
|
|
|
|
+ metricValueCode:'',
|
|
|
|
+ dataRange:'CURRENT_DAY_DATA',
|
|
|
|
+ judgeMethod:'GT_EQ',
|
|
|
|
+ judgeType:'MONEY',
|
|
|
|
+ threshold:0,
|
|
|
|
+ minThreshold:0,
|
|
|
|
+ // budgetMultiple:0.5,
|
|
|
|
+ // budgetMultipleMin:0.5,
|
|
|
|
+ // budgetMultipleMax:0.8,
|
|
|
|
+ // specificMoney:undefined,
|
|
|
|
+ // specificMoneyMin:undefined,
|
|
|
|
+ // specificMoneyMax:undefined,
|
|
}
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ inputCheck(val){
|
|
|
|
+ console.log(val)
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ isCost(val){
|
|
|
|
+ if(val.indexOf('Cost') != -1){
|
|
|
|
+ return true
|
|
|
|
+ } else if(val.indexOf('depletion') != -1){
|
|
|
|
+ return true
|
|
|
|
+ }else{
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ handleChange(value) {
|
|
|
|
+ console.log(value,this.metricValueCode);
|
|
|
|
+ let rulesList={};
|
|
|
|
+ rulesList=this.rulesFieldList.filter(item=>{
|
|
|
|
+ return item.metricValueCode==value
|
|
|
|
+ })[0]
|
|
|
|
+ console.log(rulesList);rulesList
|
|
|
|
+ this.rulesList=[]
|
|
|
|
+ rulesList.childs.forEach((ele,index)=>{
|
|
|
|
+ this.rulesList.push({
|
|
|
|
+ metricValueName:ele.metricValueName,
|
|
|
|
+ metricValueCode:ele.metricValueCode,
|
|
|
|
+ dataRange:'CURRENT_DAY_DATA',
|
|
|
|
+ judgeMethod:'GT_EQ',
|
|
|
|
+ judgeType:'MONEY',
|
|
|
|
+ threshold:undefined,
|
|
|
|
+ minThreshold:undefined,
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ filterOption(input, option) {
|
|
|
|
+ return (
|
|
|
|
+ option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
+ );
|
|
|
|
+ },
|
|
|
|
+
|
|
// form-modal 自带方法
|
|
// form-modal 自带方法
|
|
onSubmit() {
|
|
onSubmit() {
|
|
this.$refs.ruleForm.validate(valid => {
|
|
this.$refs.ruleForm.validate(valid => {
|
|
@@ -526,18 +594,16 @@ export default {
|
|
},
|
|
},
|
|
addRule(){
|
|
addRule(){
|
|
this.rulesList.push({
|
|
this.rulesList.push({
|
|
- baseCondition:['0','COST'],
|
|
|
|
- whichDayOfData:'CURRENT_DAY_DATA',
|
|
|
|
- compareOperate:'GT_EQ',
|
|
|
|
- whichModuleOfMoney:'MONEY',
|
|
|
|
|
|
+ metricValueName:['0','COST'],
|
|
|
|
+ dataRange:'CURRENT_DAY_DATA',
|
|
|
|
+ judgeMethod:'GT_EQ',
|
|
|
|
+ judgeType:'MONEY',
|
|
budgetMultiple:0.5,
|
|
budgetMultiple:0.5,
|
|
budgetMultipleMin:0.5,
|
|
budgetMultipleMin:0.5,
|
|
budgetMultipleMax:0.8,
|
|
budgetMultipleMax:0.8,
|
|
- specificMoney:undefined,
|
|
|
|
- specificMoneyMin:undefined,
|
|
|
|
- specificMoneyMax:undefined,
|
|
|
|
- minNumber:undefined,
|
|
|
|
- maxNumber:undefined,
|
|
|
|
|
|
+
|
|
|
|
+ threshold:0,
|
|
|
|
+ maxNumber:0,
|
|
})
|
|
})
|
|
},
|
|
},
|
|
deleteRulesListItem(item,index){
|
|
deleteRulesListItem(item,index){
|
|
@@ -551,32 +617,64 @@ export default {
|
|
},
|
|
},
|
|
conditionChange(item){
|
|
conditionChange(item){
|
|
console.log(item)
|
|
console.log(item)
|
|
- if(item.baseCondition[1]=='COST'){
|
|
|
|
- item.whichModuleOfMoney='MONEY';
|
|
|
|
|
|
+ if(item.metricValueName[1]=='COST'){
|
|
|
|
+ item.judgeType='MONEY';
|
|
}else{
|
|
}else{
|
|
- item.whichModuleOfMoney=undefined;
|
|
|
|
|
|
+ item.judgeType=undefined;
|
|
}
|
|
}
|
|
item.specificMoney=undefined;
|
|
item.specificMoney=undefined;
|
|
item.specificMoneyMin=undefined;
|
|
item.specificMoneyMin=undefined;
|
|
item.specificMoneyMax=undefined;
|
|
item.specificMoneyMax=undefined;
|
|
- item.minNumber=undefined;
|
|
|
|
|
|
+ item.threshold=undefined;
|
|
item.maxNumber=undefined;
|
|
item.maxNumber=undefined;
|
|
},
|
|
},
|
|
|
|
|
|
applyObjChange(e){
|
|
applyObjChange(e){
|
|
if(e.target.value=='ACCOUNT'){
|
|
if(e.target.value=='ACCOUNT'){
|
|
- this.form.finalOperation='OLNY_SENDMESSAGE'
|
|
|
|
|
|
+ this.form.processMethod='SEND'
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|
|
saveHandler(){
|
|
saveHandler(){
|
|
this.$refs.ruleForm.validate(valid=> {
|
|
this.$refs.ruleForm.validate(valid=> {
|
|
if (valid) {
|
|
if (valid) {
|
|
- this.form.rulesList=this.rulesList;
|
|
|
|
|
|
+ // this.form.rulesList=this.rulesList;
|
|
console.log(valid,this.form);
|
|
console.log(valid,this.form);
|
|
-
|
|
|
|
|
|
+ this.saveLoading=true;
|
|
|
|
+ let params ={accountId:this.form.applyAccount,alarmEventMetric:this.rulesList,...this.form}
|
|
|
|
+ if(this.currentRuleId){
|
|
|
|
+ postAction('/alarm/alarmEventRule/edit',params).then(res=>{
|
|
|
|
+ console.log(res);
|
|
|
|
+ this.saveLoading=false;
|
|
|
|
+ if(res.success){
|
|
|
|
+
|
|
|
|
+ this.$router.push('/autoRules')
|
|
|
|
+ this.$bus.$emit('remove', '/newBlankRule')
|
|
|
|
+ }else{
|
|
|
|
+ this.$message.error('修改失败')
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ }else{
|
|
|
|
+ postAction('/alarm/alarmEventRule/add',params).then(res=>{
|
|
|
|
+ console.log(res);
|
|
|
|
+ this.saveLoading=false;
|
|
|
|
+ if(res.success){
|
|
|
|
+
|
|
|
|
+ this.$router.push('/autoRules')
|
|
|
|
+ this.$bus.$emit('remove', '/newBlankRule')
|
|
|
|
+ }else{
|
|
|
|
+ this.$message.error('创建失败')
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
} else {
|
|
} else {
|
|
console.log('error submit!!');
|
|
console.log('error submit!!');
|
|
|
|
+ this.$message.error('请按提示填写必填项目!')
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
@@ -646,17 +744,50 @@ export default {
|
|
|
|
|
|
let returnVal='';
|
|
let returnVal='';
|
|
|
|
|
|
- if(val.indexOf("RATE") != -1){
|
|
|
|
- returnVal='%';
|
|
|
|
- }else if(val.indexOf("COST") != -1|| val.indexOf("PRICE") != -1){
|
|
|
|
|
|
+ if(val.indexOf("Roi") != -1){
|
|
|
|
+ returnVal='';
|
|
|
|
+ }else if(val.indexOf("Cost") != -1|| val.indexOf("depletion") != -1){
|
|
returnVal='元'
|
|
returnVal='元'
|
|
}else{
|
|
}else{
|
|
- returnVal='个'
|
|
|
|
|
|
+ returnVal=''
|
|
}
|
|
}
|
|
|
|
|
|
return returnVal
|
|
return returnVal
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
+
|
|
|
|
+ mounted(){
|
|
|
|
+ getAction('/alarm/alarmMetricValue/queryParentChildList',{}).then(res=>{
|
|
|
|
+ console.log(res);
|
|
|
|
+ if(res.success){
|
|
|
|
+ this.rulesFieldList=res.result;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ // console.log(this.$route.query);
|
|
|
|
+ this.currentRuleId=this.$route.query.id
|
|
|
|
+ if(this.$route.query.id){
|
|
|
|
+ getAction('/alarm/alarmEventRule/queryById',{
|
|
|
|
+ id:this.$route.query.id
|
|
|
|
+ }).then(res=>{
|
|
|
|
+ console.log(res);
|
|
|
|
+ if(res.success){
|
|
|
|
+ this.form={
|
|
|
|
+ applyObject:'ACCOUNT',
|
|
|
|
+ causalCondition:'MEET_ALL', //因果条件 满足所有/满足任意
|
|
|
|
+ applyAccount:res.result.accountId,
|
|
|
|
+ ...res.result
|
|
|
|
+ }
|
|
|
|
+ this.rulesList=res.result.alarmEventMetrics
|
|
|
|
+ console.log(this.form)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ },
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
@@ -838,6 +969,16 @@ export default {
|
|
width: 120px;
|
|
width: 120px;
|
|
margin-right: 16px;
|
|
margin-right: 16px;
|
|
display: flex;
|
|
display: flex;
|
|
|
|
+ .ruleName{
|
|
|
|
+ display: block;
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 32px;
|
|
|
|
+ line-height: 32px;
|
|
|
|
+ text-align: center;
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ border: 1px solid #d9d9d9;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.rules—list_item:last-of-type {
|
|
.rules—list_item:last-of-type {
|
|
@@ -958,6 +1099,13 @@ export default {
|
|
.newBlankRule{
|
|
.newBlankRule{
|
|
.ant-form-item {
|
|
.ant-form-item {
|
|
margin-bottom: 0;
|
|
margin-bottom: 0;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ .content{
|
|
|
|
+ .ant-form-item {
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
+ width: 100%;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
.ant-radio-button-wrapper {
|
|
.ant-radio-button-wrapper {
|
|
|
|
|