|
@@ -0,0 +1,1157 @@
|
|
|
+<template>
|
|
|
+ <div class="content-main-manage">
|
|
|
+ <div class="search-list">
|
|
|
+ <div class="search-left">
|
|
|
+ <Form class="common-form common-form-list" ref="tableParams" :model="tableParams" inline>
|
|
|
+ <FormItem label="" prop="lineId">
|
|
|
+ <Select v-model="tableParams.lineId" placeholder="来源应用" @on-select="selectLine">
|
|
|
+ <Option v-for="item in lineTypeData" :value="String(item.id)" :key="item.id">{{ item.lineName }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="" prop="stationId">
|
|
|
+ <Select v-model="tableParams.stationId" placeholder="设备类型">
|
|
|
+ <Option v-for="item in stationTypeData" :value="String(item.id)" :key="item.id">{{ item.stationName }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="" prop="equipmentStatus">
|
|
|
+ <Select v-model="tableParams.equipmentStatus" placeholder="监测指标数量">
|
|
|
+ <Option v-for="item in indicatorsNum" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="" prop="equipmentStatus">
|
|
|
+ <Select v-model="tableParams.equipmentStatus" placeholder="策略覆盖指标数量">
|
|
|
+ <Option v-for="item in strategyIndicNum" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="" prop="equipmentStatus">
|
|
|
+ <Select v-model="tableParams.equipmentStatus" placeholder="策略覆盖设备数量">
|
|
|
+ <Option v-for="item in strategyEquipNum" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ <!-- <FormItem label="" prop="equipmentType">
|
|
|
+ <Select v-model="tableParams.equipmentType" placeholder="设备类型">
|
|
|
+ <Option v-for="item in equipTypeData" :value="(item.id)" :key="item.id">{{ item.name }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem> -->
|
|
|
+ <FormItem label="" prop="equipmentName">
|
|
|
+ <Input placeholder="请输入关键字查询" clearable search v-model="tableParams.equipmentName" />
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="" >
|
|
|
+ <Button type="primary" class="common-btn-search" @click="searchClick">
|
|
|
+ <Icon type="ios-search" style="margin-right:4px;font-size: 16px"/> 筛选
|
|
|
+ </Button>
|
|
|
+ <Button type="primary" class="common-btn-search" style="margin-left:10px" @click="resetClick('tableParams')">
|
|
|
+ <Icon type="ios-search" style="margin-right:4px;font-size: 16px"/> 重置
|
|
|
+ </Button>
|
|
|
+ </FormItem>
|
|
|
+ </Form>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="btn-container">
|
|
|
+ <Button icon="ios-add" class="common-add-btn" @click="addClick">新增策略</Button>
|
|
|
+ </div>
|
|
|
+ <div class="manage-main-center">
|
|
|
+ <Table :columns="columns" :data="tableData" class="common-table app-table" no-data-text="" :row-class-name="rowClassName" :loading="loading">
|
|
|
+ <template slot="loading">
|
|
|
+ <Loading-animation></Loading-animation>
|
|
|
+ </template>
|
|
|
+ <template slot-scope="{ row }" slot="action">
|
|
|
+ <Tooltip content="详情" placement="top">
|
|
|
+ <i class="iconfont icon-xiangqingmingxi" style="cursor:pointer;color:#B8B532;fontSize:20px;marginRight:6px" @click="detailClick(row)"></i>
|
|
|
+ </Tooltip>
|
|
|
+ <Tooltip content="编辑" placement="top">
|
|
|
+ <i class="iconfont icon-bianji" style="cursor:pointer;color:#64ACFE;fontSize:20px;marginRight:6px" @click="editClick(row)"></i>
|
|
|
+ </Tooltip>
|
|
|
+ <Tooltip content="删除" placement="top">
|
|
|
+ <i class="iconfont icon-shanchu" style="cursor:pointer;color:#E92E2E;fontSize:20px;marginRight:6px" @click="delClick(row)"></i>
|
|
|
+ </Tooltip>
|
|
|
+ </template>
|
|
|
+ </Table>
|
|
|
+ </div>
|
|
|
+ <Page :total="tableTotal" :current="tableParams.pageNum" :page-size="tableParams.pageSize" @on-change="changePage" @on-page-size-change="sizeChange" show-elevator class="common-page"/>
|
|
|
+ <Modal
|
|
|
+ v-model="showModal"
|
|
|
+ :title="title"
|
|
|
+ width="65"
|
|
|
+ ref="modalGrag"
|
|
|
+ draggable
|
|
|
+ reset-drag-position
|
|
|
+ @on-visible-change="modalChange"
|
|
|
+ :mask-closable="false"
|
|
|
+ class-name="common-modal">
|
|
|
+ <div class="common-modal-top">
|
|
|
+ <span class="common-modal-top-text">基础信息</span>
|
|
|
+ </div>
|
|
|
+ <Form class="common-form" ref="formOption" :model="formOption" :rules="ruleValidate" :label-width="95" inline label-position="left">
|
|
|
+ <FormItem label="归属应用:" prop="appId" style="width:48%">
|
|
|
+ <Select v-model="formOption.appId" placeholder="归属应用" @on-change="selectModalApp">
|
|
|
+ <Option v-for="item in equipAppModalData" :value="String(item.id)" :key="item.id">{{ item.appName }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="设备类型:" prop="equipmentType" style="width:48%">
|
|
|
+ <Select v-model="formOption.equipmentType" placeholder="设备类型">
|
|
|
+ <Option v-for="item in equipTypeModalData" :value="item.equipmentTypeId" :key="item.equipmentTypeId">{{ item.equipmentName }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="策略名称:" prop="equipmentType" style="width:100%" >
|
|
|
+ <Input v-model="formOption.equipmentType" placeholder="默认回显【来源应用-设备类型】作为策略名称,可手动修改"/>
|
|
|
+ </FormItem>
|
|
|
+ </Form>
|
|
|
+ <div class="common-modal-top">
|
|
|
+ <span class="common-modal-top-text">处理策略</span>
|
|
|
+ </div>
|
|
|
+ <Form ref="formDynamic" :model="formCustom" :label-width="0" class="strategy-form">
|
|
|
+ <Row v-for="(item, index) in formCustom.formDynamic" :key="index">
|
|
|
+ <Col span="2" :class="{'row-first': index == 0}" class="row-first-es">{{ item.name + (index + 1) }}</Col>
|
|
|
+ <Col span="16" :class="{'row-first': index == 0}">
|
|
|
+ <Row v-for="(val, i) in item.formItems" :key="i" style="width:100%" class="strategy-form-row">
|
|
|
+ <Col span="4">
|
|
|
+ <FormItem :prop="'formDynamic.' + index + '.formItems.' + i + '.logic'" :rules="{ required: clickbtn==3 ? false: true, message: '请选择告警等级', trigger: 'change',}" style="display:flex">
|
|
|
+ <span class="sub-first-text">{{val.sublogic}}</span>
|
|
|
+ <Select v-model="val.logic" style="width: 75%" placeholder="告警等级" :disabled="val.disabled">
|
|
|
+ <Option v-for="subItem in indicatorsNum" :value="subItem.value" :key="subItem.value">{{ subItem.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ </Col>
|
|
|
+ <Col span="4">
|
|
|
+ <FormItem :prop="'formDynamic.' + index + '.formItems.' + i + '.baohan'" :rules="{required: clickbtn==3 ? false: true, message: '请选择包含关系',trigger: 'change',}">
|
|
|
+ <Select v-model="val.baohan" style="width: 100%" placeholder="告警等级" :disabled="val.disabled">
|
|
|
+ <Option v-for="item in indicatorsNum" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ </Col>
|
|
|
+ <Col span="4">
|
|
|
+ <FormItem :prop="'formDynamic.' + index + '.formItems.' + i + '.logic'" :rules="{ required: clickbtn==3 ? false: true, message: '请选择告警等级', trigger: 'change',}" style="display:flex">
|
|
|
+ <Select v-model="val.logic" style="width: 100%" placeholder="告警等级" :disabled="val.disabled">
|
|
|
+ <Option v-for="subItem in indicatorsNum" :value="subItem.value" :key="subItem.value">{{ subItem.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ </Col>
|
|
|
+ <Col span="4">
|
|
|
+ <FormItem :prop="'formDynamic.' + index + '.formItems.' + i + '.baohan'" :rules="{required: clickbtn==3 ? false: true, message: '请选择包含关系',trigger: 'change',}">
|
|
|
+ <Select v-model="val.baohan" style="width: 100%" placeholder="告警等级" :disabled="val.disabled">
|
|
|
+ <Option v-for="item in indicatorsNum" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ </Col>
|
|
|
+ <Col span="4">
|
|
|
+ <FormItem :prop="'formDynamic.' + index + '.formItems.' + i + '.logic'" :rules="{ required: clickbtn==3 ? false: true, message: '请选择告警等级', trigger: 'change',}" style="display:flex">
|
|
|
+ <Select v-model="val.logic" style="width: 100%" placeholder="告警等级" :disabled="val.disabled">
|
|
|
+ <Option v-for="subItem in indicatorsNum" :value="subItem.value" :key="subItem.value">{{ subItem.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ </Col>
|
|
|
+ <Col span="4">
|
|
|
+ <FormItem :prop="'formDynamic.' + index + '.formItems.' + i + '.baohan'" :rules="{required: clickbtn==3 ? false: true, message: '请选择包含关系',trigger: 'change',}">
|
|
|
+ <Select v-model="val.baohan" style="width: 100%" placeholder="告警等级" :disabled="val.disabled">
|
|
|
+ <Option v-for="item in indicatorsNum" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ </Col>
|
|
|
+ <i class="iconfont icon-shanchu ivu-col-del" v-if="i != 0" @click="handleRemove(i)"></i>
|
|
|
+ </Row>
|
|
|
+ </Col>
|
|
|
+ <Col span="2" :class="{'row-first': index == 0}" class="row-es-text">{{ item.text }}</Col>
|
|
|
+ <Col span="3" :class="{'row-first': index == 0}" class="row-es-last">
|
|
|
+ <FormItem
|
|
|
+ :prop="'formDynamic.'+index+'.alarmType'" :rules="{required: true,message: '请选择告警等级',trigger: 'change'}">
|
|
|
+ <Select v-model="item.alarmType" style="width: 100%" placeholder="告警等级" :disabled="item.disabled">
|
|
|
+ <Option v-for="firstitem in indicatorsNum" :value="firstitem.value" :key="firstitem.value">{{ firstitem.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ </Col>
|
|
|
+ <Col span="1" class="ivu-col-btn">
|
|
|
+ <i class="iconfont icon-tianjia" style="cursor:pointer;color:#2DA0F8;padding-left:10px" @click="handleAdd('formDynamic')" v-if="index == formCustom.formDynamic.length - 1 &&title=='新增策略'"></i>
|
|
|
+ <!-- <Button type="dashed" @click="handleEdit('formDynamic')" icon="md-add" v-if="title == '编辑' && showEdit">编辑</Button> -->
|
|
|
+ <!-- <Button type="dashed" @click="handleSave('formDynamic')" icon="md-add" v-if="title == '编辑' && !showEdit">保存</Button> -->
|
|
|
+ </Col>
|
|
|
+ </Row>
|
|
|
+ <div class="sub-add">
|
|
|
+ <span>新增一条子策略 子策略与现有子策略间为</span>
|
|
|
+ <FormItem prop="logical" :rules="{required: clickbtn==2 ? true: false,message: '请选择逻辑判断',trigger: 'change'}">
|
|
|
+ <Select v-model="formCustom.logical" placeholder="逻辑判断" style="width: 200px;padding: 0 6px">
|
|
|
+ <Option v-for="item in indicatorsNum" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ 关系
|
|
|
+ <i class="iconfont icon-tianjia" style="cursor:pointer;color:#43B843;padding-left:10px" @click="handleAddSub('formDynamic')"></i>
|
|
|
+ </div>
|
|
|
+ </Form>
|
|
|
+ <div slot="footer">
|
|
|
+ <Button @click="modalCancel">取消</Button>
|
|
|
+ <Button type="primary" @click="modalOk">确定</Button>
|
|
|
+ </div>
|
|
|
+ </Modal>
|
|
|
+ <Modal
|
|
|
+ v-model="modalStatus"
|
|
|
+ :title="commonTitle"
|
|
|
+ width="30"
|
|
|
+ ref="modalGrag"
|
|
|
+ draggable
|
|
|
+ reset-drag-position
|
|
|
+ :mask-closable="false"
|
|
|
+ class-name="common-modal">
|
|
|
+ <Icon type="ios-information-circle" :style="{ color: activeColor}" class="modal-icon"></Icon>
|
|
|
+ <span class="modal-text">{{modalTitle}}</span>
|
|
|
+ <div slot="footer">
|
|
|
+ <Button @click="commonCancel">取消</Button>
|
|
|
+ <Button type="primary" @click="commonOk">确定</Button>
|
|
|
+ </div>
|
|
|
+ </Modal>
|
|
|
+ <Modal
|
|
|
+ v-model="detailStatus"
|
|
|
+ title="等级判定策略详情"
|
|
|
+ width="45"
|
|
|
+ ref="modalGrag"
|
|
|
+ draggable
|
|
|
+ reset-drag-position
|
|
|
+ footer-hide
|
|
|
+ :mask-closable="false"
|
|
|
+ class-name="common-modal">
|
|
|
+ <div v-for="(item,index) in detailLabel" :key="index">
|
|
|
+ <div class="common-modal-top">
|
|
|
+ <span class="common-modal-top-text">{{item.name}}</span>
|
|
|
+ </div>
|
|
|
+ <div class="common-modal-content">
|
|
|
+ <div class="modal-content-item" v-for="(val,i) in item.value" :key="i" :class="{'item-especial': val.name == '说明' && item.value.length%2!=0,'item-especial-bot':(i==item.value.length-1 || i==item.value.length-2) && item.value.length%2==0}">
|
|
|
+ <span class="modal-content-item-name">
|
|
|
+ {{val.name}}
|
|
|
+ </span>
|
|
|
+ <span class="modal-content-item-value" v-if="val.name == '归属线路' || val.name == '归属站点'">{{!val.value ? '/' : val.value}}</span>
|
|
|
+ <span class="modal-content-item-value" v-else>{{val.value}}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </Modal>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+const defaultFrom = {lineId: '',stationId: '',appId:'',equipmentName: '',equipmentType:'',equipmentStatus: '',equipmentVersion: '',supplier: '',remark: ''}
|
|
|
+export default {
|
|
|
+ name: "LevelDeterConfig",
|
|
|
+ components:{
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ applicationParams: {
|
|
|
+ level: '',
|
|
|
+ lineId: '',
|
|
|
+ stationId: '',
|
|
|
+ equipmentCheck: '',
|
|
|
+ instrumentCheck: '',
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 9999
|
|
|
+ },
|
|
|
+ appParams: {
|
|
|
+ applicationId: '',
|
|
|
+ equipmentTypeId: '',
|
|
|
+ keywords: '',
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 9999
|
|
|
+ },
|
|
|
+ loading: true,
|
|
|
+ dateRange: [],
|
|
|
+ tableParams: {
|
|
|
+ lineId: '',
|
|
|
+ stationId: '',
|
|
|
+ equipmentStatus: '',
|
|
|
+ keywords: '',
|
|
|
+ applicationId:'',
|
|
|
+ equipmentType: '',
|
|
|
+ useDateBegin: '',
|
|
|
+ useDateEnd: '',
|
|
|
+ equipmentName: '',
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10
|
|
|
+ },
|
|
|
+ tableData: [],
|
|
|
+ tableTotal: 0,
|
|
|
+ rowObj: {},
|
|
|
+ indicatorsNum: [
|
|
|
+ {
|
|
|
+ value: '-1',
|
|
|
+ label: '监测指标数量'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '1',
|
|
|
+ label: '有'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '0',
|
|
|
+ label: '无'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ strategyIndicNum: [
|
|
|
+ {
|
|
|
+ value: '-1',
|
|
|
+ label: '策略覆盖指标数量'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '1',
|
|
|
+ label: '有'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '0',
|
|
|
+ label: '无'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ strategyEquipNum: [
|
|
|
+ {
|
|
|
+ value: '-1',
|
|
|
+ label: '策略覆盖设备数量'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '1',
|
|
|
+ label: '有'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '0',
|
|
|
+ label: '无'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ lineTypeData: [],
|
|
|
+ stationTypeData: [],
|
|
|
+ equipStateData: [],
|
|
|
+ equipStateModalData: [],
|
|
|
+ equipTypeData: [],
|
|
|
+ equipTypeModalData: [],
|
|
|
+ equipAppModalData: [],
|
|
|
+ columns: [
|
|
|
+ // {
|
|
|
+ // type: 'selection',
|
|
|
+ // width: 60,
|
|
|
+ // align: 'center'
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ title: '等级判定策略名称',
|
|
|
+ key: 'equipmentId',
|
|
|
+ align: 'center',
|
|
|
+ ellipsis: true,
|
|
|
+ tooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '来源应用',
|
|
|
+ key: 'equipmentName',
|
|
|
+ align: 'center',
|
|
|
+ ellipsis: true,
|
|
|
+ tooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '设备类型',
|
|
|
+ key: 'equipmentTypeName',
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '监测指标数量',
|
|
|
+ key: 'appName',
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '策略覆盖指标数量',
|
|
|
+ key: 'lineName',
|
|
|
+ align: 'center',
|
|
|
+ // width: 80,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '策略覆盖设备数量',
|
|
|
+ key: 'stationName',
|
|
|
+ align: 'center',
|
|
|
+ // width: 80,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '设备状态',
|
|
|
+ key: 'equipmentStatusValue',
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '是否启用',
|
|
|
+ key: 'enabled',
|
|
|
+ align: 'center',
|
|
|
+ width: 120,
|
|
|
+ render: (h, params) => {
|
|
|
+ return h('div', [
|
|
|
+ h('i-switch', {
|
|
|
+ props: { value: params.row.enabled,'true-color': '#57C44F', trueValue:1,falseValue: 0
|
|
|
+ },
|
|
|
+ nativeOn:{
|
|
|
+ "mousedown":(event)=>{ // 监听组件原生事件mousedown,此事件在click之前触发
|
|
|
+ this.rowObj = params.row
|
|
|
+ if (params.row.enabled == 0) {
|
|
|
+ this.commonTitle = '确认启用'
|
|
|
+ this.activeColor = '#57C44F'
|
|
|
+ this.activeClass = 'icon-qiyong'
|
|
|
+ this.modalTitle = '当前时间点后所有告警信息,将使用策略自动判定。'
|
|
|
+ this.modalStatus = true
|
|
|
+ } else {
|
|
|
+ this.commonTitle = '确认关闭'
|
|
|
+ this.activeColor = '#E92E2E'
|
|
|
+ this.activeClass = 'icon-guanbi'
|
|
|
+ this.modalTitle = '可能影响新数据判断结果。'
|
|
|
+ this.modalStatus = true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }
|
|
|
+ }),
|
|
|
+ ])
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ align: 'center',
|
|
|
+ slot: 'action',
|
|
|
+ width: 120,
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ showModal: false,
|
|
|
+ detailStatus: false,
|
|
|
+ modalStatus: false,
|
|
|
+ title: '新增策略',
|
|
|
+ commonTitle: "确认删除",
|
|
|
+ activeColor: '#E92E2E',
|
|
|
+ activeClass: '',
|
|
|
+ modalTitle: '',
|
|
|
+ formOption: {lineId: '',stationId: '',appId:'',equipmentName: '',equipmentType:'',equipmentStatus: '',useDate:'',equipmentVersion: '',supplier: '',remark: ''},
|
|
|
+ ruleValidate: {
|
|
|
+ lineId: [{
|
|
|
+ required: true,
|
|
|
+ message: '请选择所属线路',
|
|
|
+ trigger: 'change'
|
|
|
+ }],
|
|
|
+ stationId: [{
|
|
|
+ required: true,
|
|
|
+ message: '请选择所属站点',
|
|
|
+ trigger: 'change'
|
|
|
+ }],
|
|
|
+ appId: [{
|
|
|
+ required: true,
|
|
|
+ message: '请选择归属应用',
|
|
|
+ trigger: 'change'
|
|
|
+ }],
|
|
|
+ equipmentName: [{
|
|
|
+ required: true,
|
|
|
+ message: '请输入设备名称',
|
|
|
+ trigger: 'change'
|
|
|
+ }],
|
|
|
+ appName: [{
|
|
|
+ required: true,
|
|
|
+ message: '请输入设备名称',
|
|
|
+ trigger: 'blur'
|
|
|
+ }],
|
|
|
+ equipmentType: [{
|
|
|
+ required: true,
|
|
|
+ type: 'number',
|
|
|
+ message: '请选择设备类型',
|
|
|
+ trigger: 'change'
|
|
|
+ }],
|
|
|
+ equipmentStatus: [{
|
|
|
+ required: true,
|
|
|
+ type: 'number',
|
|
|
+ message: '请选择设备状态',
|
|
|
+ trigger: 'change'
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ detailLabel: [],
|
|
|
+ formCustom: {
|
|
|
+ formDynamic: [
|
|
|
+ {
|
|
|
+ name: "策略",
|
|
|
+ formItems: [
|
|
|
+ {
|
|
|
+ logic: "",
|
|
|
+ baohan: "",
|
|
|
+ disabled: false,
|
|
|
+ sublogic: '',
|
|
|
+ status: 1
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ text: "判定为",
|
|
|
+ alarmType: "",
|
|
|
+ disabled: false,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ logical : ''
|
|
|
+ },
|
|
|
+ clickbtn: 1, // 1点击策略增加按钮 2点击子策略增加按钮 3点击子策略删除按钮
|
|
|
+ };
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.getType()
|
|
|
+ this.getTableData()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ go (){
|
|
|
+ // this.$router.push({path:'//ApplicationManage'})
|
|
|
+ // this.$router.push({path:'/MainPage/ApplicationManage/2'})
|
|
|
+ this.$router.push({ name: 'ApplicationManage', params: { type:2 }}) // -> /home/123
|
|
|
+ },
|
|
|
+ changePicker (date) {
|
|
|
+ this.tableParams.useDateBegin = date[0]
|
|
|
+ this.tableParams.useDateEnd = date[1]
|
|
|
+ },
|
|
|
+ rowClassName(row, index) {
|
|
|
+ if (index % 2 == 0) {
|
|
|
+ return "ivu-table-stripe-even";
|
|
|
+ } else {
|
|
|
+ return "ivu-table-stripe-odd";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 分页
|
|
|
+ changePage (val) {
|
|
|
+ this.tableParams.pageNum = val
|
|
|
+ this.getTableData()
|
|
|
+ },
|
|
|
+ //跳转
|
|
|
+ sizeChange (val) {
|
|
|
+ this.tableParams.pageSize = val
|
|
|
+ this.getTableData()
|
|
|
+ },
|
|
|
+ getType () {
|
|
|
+ //获取所属线路
|
|
|
+ this.$get('metroapi/lineStation/queryLine', {lineName:''}).then(res=>{
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
+ this.lineTypeData = res.data
|
|
|
+ this.lineTypeData.unshift({ id: '-1', lineName: '线路' })
|
|
|
+ this.getStationData ('-1')
|
|
|
+ } else {
|
|
|
+ this.lineTypeData = []
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // 获取设备状态
|
|
|
+ this.$get('metroapi/dic/queryDictionary', {name:'设备状态'}).then(res=>{
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
+ this.equipStateModalData = JSON.parse(JSON.stringify(res.data))
|
|
|
+ this.equipStateData = res.data
|
|
|
+ this.equipStateData.unshift({ id: '-1', value: '设备状态' })
|
|
|
+ } else {
|
|
|
+ this.equipStateData = []
|
|
|
+ this.equipStateModalData = []
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // 获取归属应用
|
|
|
+ this.$get('metroapi/application/info/list', this.applicationParams).then(res=>{
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
+ this.equipAppModalData = res.data.data
|
|
|
+ } else {
|
|
|
+ this.equipAppModalData = []
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // // 获取设备类型
|
|
|
+ // this.$get('metroapi/equipment/queryEquipmentType', {name:''}).then(res=>{
|
|
|
+ // if (res.httpCode == 1 ){
|
|
|
+ // this.equipTypeModalData = JSON.parse(JSON.stringify(res.data))
|
|
|
+ // this.equipTypeData = res.data
|
|
|
+ // this.equipTypeData.unshift({ id: '-1', name: '设备类型' })
|
|
|
+ // } else {
|
|
|
+ // this.equipTypeData = []
|
|
|
+ // this.equipTypeModalData = []
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ },
|
|
|
+ selectLine (val) {
|
|
|
+ // 获取站点类型
|
|
|
+ this.tableParams.stationId = ''
|
|
|
+ this.tableParams.lineId = val.value
|
|
|
+ if (this.tableParams.lineId) {
|
|
|
+ this.getStationData(val.value)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 获取所属站点
|
|
|
+ getStationData (lineId) {
|
|
|
+ if(lineId == '-1') {
|
|
|
+ this.stationTypeData = [{ id: '-1', stationName: '站点' }]
|
|
|
+ } else {
|
|
|
+ this.$get('metroapi/lineStation/queryStationByLineId', {lineId:lineId}).then(res=>{
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
+ this.stationTypeData = res.data
|
|
|
+ this.stationTypeData.unshift({ id: '-1', stationName: '站点' })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // selectChange (selection) {
|
|
|
+ // console.log(selection)
|
|
|
+ // let user = selection.map(item => item.id)
|
|
|
+ // console.log(user)
|
|
|
+ // },
|
|
|
+ // 获取表格数据
|
|
|
+ getTableData (keywords,arr,level) {
|
|
|
+ if (level) {
|
|
|
+ this.tableParams.keywords = ''
|
|
|
+ if (level == 2) {
|
|
|
+ this.tableParams.applicationId = arr[arr.length-1]
|
|
|
+ this.tableParams.equipmentType = ''
|
|
|
+ } else if (level == 3) {
|
|
|
+ this.tableParams.applicationId = arr[arr.length-2]
|
|
|
+ this.tableParams.equipmentType = arr[arr.length-1]
|
|
|
+ } else {
|
|
|
+ this.tableParams.applicationId = ''
|
|
|
+ this.tableParams.equipmentType = ''
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.tableParams.applicationId = ''
|
|
|
+ this.tableParams.equipmentType = ''
|
|
|
+ if (keywords == '合肥轨道交通' || keywords == '' || !keywords) {
|
|
|
+ this.tableParams.keywords = ''
|
|
|
+ } else {
|
|
|
+ this.tableParams.keywords = keywords
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let params = JSON.parse(JSON.stringify(this.tableParams))
|
|
|
+ params.lineId = params.lineId == '-1' ? '':params.lineId
|
|
|
+ params.stationId = params.stationId == '-1' ?'':params.stationId
|
|
|
+ this.loading = true
|
|
|
+ this.$get('metroapi/equipment/queryEquipmentPage', params).then(res=>{
|
|
|
+ this.loading = false
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
+ this.tableData = res.data.data
|
|
|
+ this.tableTotal = res.data.count
|
|
|
+ if (res.data.data.length==0 && this.tableParams.pageNum>1) {
|
|
|
+ this.tableParams.pageNum--
|
|
|
+ return this.getTableData()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.tableData = []
|
|
|
+ this.tableTotal = 0
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ selectModalLine (val) {
|
|
|
+ this.formOption.stationId = ''
|
|
|
+ if (val) {
|
|
|
+ this.getStationData(val.value)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ selectModalStation (val) {
|
|
|
+ if (val) {
|
|
|
+ this.formOption.stationId =val.value
|
|
|
+ }
|
|
|
+ },
|
|
|
+ selectModalApp (val) {
|
|
|
+ this.appParams.applicationId = val
|
|
|
+ this.formOption.equipmentType = ''
|
|
|
+ if (val) {
|
|
|
+ this.getAddEquipType( this.appParams)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 获取新增设备类型
|
|
|
+ getAddEquipType (params) {
|
|
|
+ this.$get('metroapi/application/equipmentTypeInfo', params).then(res=>{
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
+ this.equipTypeModalData = res.data.data
|
|
|
+ } else {
|
|
|
+ this.equipTypeModalData = []
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ searchClick () {
|
|
|
+ this.getTableData()
|
|
|
+ // this.$router.push({ path: '/MainPage/ApplicationManage', query: {deptName: "2"}})
|
|
|
+ },
|
|
|
+ resetClick (name) {
|
|
|
+ this.dateRange = []
|
|
|
+ this.tableParams.useDateBegin = ''
|
|
|
+ this.tableParams.useDateEnd = ''
|
|
|
+ this.$refs[name].resetFields()
|
|
|
+ this.getTableData()
|
|
|
+ },
|
|
|
+ changeMoldaPicker (val) {
|
|
|
+ this.formOption.useDate = val
|
|
|
+ },
|
|
|
+ addClick () {
|
|
|
+ this.formOption = JSON.parse(JSON.stringify(defaultFrom))
|
|
|
+ this.formCustom.formDynamic = [{
|
|
|
+ name: "策略",
|
|
|
+ formItems: [
|
|
|
+ {
|
|
|
+ logic: "",
|
|
|
+ baohan: "",
|
|
|
+ disabled: false,
|
|
|
+ sublogic: '',
|
|
|
+ status: 1
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ text: "判定为",
|
|
|
+ alarmType: "",
|
|
|
+ }];
|
|
|
+ this.title = '新增策略'
|
|
|
+ this.showModal = true
|
|
|
+ },
|
|
|
+ detailClick (row) {
|
|
|
+ this.rowObj = row
|
|
|
+ this.detailStatus = true
|
|
|
+ this.$get('metroapi/equipment/equipmentDetail', {equipmentId:row.id}).then(res=>{
|
|
|
+ if ( res.httpCode == 1 ){
|
|
|
+ this.detailLabel = res.data
|
|
|
+ } else {
|
|
|
+ this.$Message.info(res.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ editClick (row) {
|
|
|
+ this.rowObj = row
|
|
|
+ this.formOption = JSON.parse(JSON.stringify(row));
|
|
|
+ this.formOption.lineId = this.formOption.lineId ? String(this.formOption.lineId) : '-1'
|
|
|
+ this.formOption.stationId = this.formOption.stationId ? String(this.formOption.stationId) : '-1'
|
|
|
+ this.getStationData(this.formOption.lineId)
|
|
|
+ this.appParams.applicationId = this.formOption.appId
|
|
|
+ this.getAddEquipType(this.appParams)
|
|
|
+ this.title = '编辑策略'
|
|
|
+ this.showModal = true
|
|
|
+ },
|
|
|
+ delClick (row) {
|
|
|
+ this.rowObj = row
|
|
|
+ this.commonTitle = '确认删除'
|
|
|
+ this.activeColor = '#E92E2E'
|
|
|
+ this.activeClass = ''
|
|
|
+ this.modalTitle = '删除的同时将解绑所有运营数据,且数据不可恢复,请慎重操作。'
|
|
|
+ this.modalStatus = true
|
|
|
+ },
|
|
|
+ modalChange (modalStatus) {
|
|
|
+ if (!modalStatus) {
|
|
|
+ this.$refs.formOption.resetFields();
|
|
|
+ this.$refs.formDynamic.resetFields();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ modalOk () {
|
|
|
+ var obj = Object.assign({}, this.formOption, this.formCustom); // 合并对象 注意目标对象自身也会改变。假设目标对象{}是之前里的对象,他的值跟obj一样
|
|
|
+ this.clickbtn = 1
|
|
|
+ this.$nextTick(()=> {
|
|
|
+ let params = JSON.parse(JSON.stringify(this.formOption)) //把对象中的数据给了某个变量,改变一个对象的值,另一个对象也变化的解决方法
|
|
|
+ params.lineId = params.lineId == '-1' ? '':params.lineId
|
|
|
+ params.stationId = params.stationId == '-1' ? '':params.stationId
|
|
|
+ // 多个form表单验证
|
|
|
+ const p1 = new Promise((resolve,reject)=>{
|
|
|
+ this.$refs['formOption'].validate(valid=>{
|
|
|
+ if(valid) resolve()
|
|
|
+ })
|
|
|
+ })
|
|
|
+ const p2 = new Promise((resolve,reject)=>{
|
|
|
+ this.$refs['formDynamic'].validate(valid=>{
|
|
|
+ if(valid) resolve()
|
|
|
+ })
|
|
|
+ })
|
|
|
+ if (this.title == '新增策略') {
|
|
|
+ Promise.all([p1,p2]).then(()=>{
|
|
|
+ console.log('验证通过,提交表单')
|
|
|
+ })
|
|
|
+ // this.$refs['formOption'].validate((valid) => {
|
|
|
+ // if (valid) {
|
|
|
+ // this.$post('metroapi/equipment/addEquipment', params).then(res=>{
|
|
|
+ // if ( res.httpCode == 1 ){
|
|
|
+ // this.showModal = false
|
|
|
+ // this.$Message.info(res.msg)
|
|
|
+ // this.getTableData()
|
|
|
+ // } else {
|
|
|
+ // this.$Message.info(res.msg)
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // } else {
|
|
|
+ // this.showModal = true
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ } else {
|
|
|
+ // this.$refs['formOption'].validate((valid) => {
|
|
|
+ // if (valid) {
|
|
|
+ // this.$post('metroapi/equipment/editEquipment', params).then(res=>{
|
|
|
+ // if (res.httpCode == 1 ){
|
|
|
+ // this.showModal = false
|
|
|
+ // this.$Message.info(res.msg)
|
|
|
+ // this.getTableData()
|
|
|
+ // } else {
|
|
|
+ // this.$Message.info(res.msg)
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // } else {
|
|
|
+ // this.showModal = true
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ modalCancel () {
|
|
|
+ this.showModal = false
|
|
|
+ },
|
|
|
+ commonOk () {
|
|
|
+ let params = {
|
|
|
+ id: this.rowObj.id
|
|
|
+ }
|
|
|
+ this.delData(params)
|
|
|
+ },
|
|
|
+ commonCancel () {
|
|
|
+ this.modalStatus = false
|
|
|
+ },
|
|
|
+ // 删除接口
|
|
|
+ delData (params) {
|
|
|
+ this.$get('metroapi/equipment/delEquipment',params).then(res=>{
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
+ this.modalStatus = false
|
|
|
+ this.$Message.info(res.msg)
|
|
|
+ this.getTableData()
|
|
|
+ } else {
|
|
|
+ this.$Message.info(res.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleAdd(name) {
|
|
|
+ this.clickbtn = 1
|
|
|
+ this.$nextTick(()=> {
|
|
|
+ this.$refs[name].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.formCustom.formDynamic.push({
|
|
|
+ name: "策略",
|
|
|
+ formItems: [
|
|
|
+ {
|
|
|
+ logic: "",
|
|
|
+ baohan: "",
|
|
|
+ disabled: false,
|
|
|
+ sublogic: '',
|
|
|
+ status: 1
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ text: "判定为",
|
|
|
+ alarmType: "",
|
|
|
+ });
|
|
|
+ this.formCustom.logical = ''
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleAddSub(name) {
|
|
|
+ this.clickbtn = 2
|
|
|
+ this.$nextTick(()=> {
|
|
|
+ // this.$refs[name].validateField('logical', (error) => {
|
|
|
+ // if(!error){
|
|
|
+ // this.$refs[name].validate((valid) => {
|
|
|
+ // if (valid) {
|
|
|
+ // this.formCustom.formDynamic[
|
|
|
+ // this.formCustom.formDynamic.length - 1
|
|
|
+ // ].formItems.push({
|
|
|
+ // logic: "",
|
|
|
+ // baohan: "",
|
|
|
+ // disabled: false,
|
|
|
+ // sublogic: this.formCustom.logical
|
|
|
+ // });
|
|
|
+ // this.formCustom.logical = ''
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ this.$refs[name].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.formCustom.formDynamic[
|
|
|
+ this.formCustom.formDynamic.length - 1
|
|
|
+ ].formItems.push({
|
|
|
+ logic: "",
|
|
|
+ baohan: "",
|
|
|
+ disabled: false,
|
|
|
+ sublogic: this.formCustom.logical,
|
|
|
+ status: 1
|
|
|
+ // sublogic: this.formCustom.formDynamic[this.formCustom.formDynamic.length - 1]
|
|
|
+ });
|
|
|
+ console.log(this.formCustom.formDynamic)
|
|
|
+ // this.formCustom.logical = ''
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleRemove(i) {
|
|
|
+ this.clickbtn = 3
|
|
|
+ this.$nextTick(()=> {
|
|
|
+ this.formCustom.formDynamic[this.formCustom.formDynamic.length - 1].formItems.splice(i, 1) //因为删除选值的下拉框,没选值的下拉框的值会变成undefined 所以加个状态值(clickbtn=3)
|
|
|
+ })
|
|
|
+ // this.formCustom.formDynamic[this.formCustom.formDynamic.length - 1].formItems[i].status = 0
|
|
|
+ },
|
|
|
+ // getTree(arr) {
|
|
|
+ // return arr.map((v,index) => {
|
|
|
+ // console.log(v)
|
|
|
+ // if (v.baohan == undefined) {
|
|
|
+ // console.log(34343)
|
|
|
+ // v.baohan = ''
|
|
|
+ // }
|
|
|
+ // if (v.formItems) v.formItems = this.getTree(v.formItems);
|
|
|
+ // return v;
|
|
|
+ // });
|
|
|
+ // },
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style scoped lang="stylus">
|
|
|
+.content-main-manage {
|
|
|
+ position: relative;
|
|
|
+ height: calc(100% - 50px);
|
|
|
+}
|
|
|
+.search-list {
|
|
|
+ display: flex;
|
|
|
+ padding: 10px 0;
|
|
|
+}
|
|
|
+.search-left {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ .ivu-select {
|
|
|
+ width: 155px;
|
|
|
+ padding-right: 10px;
|
|
|
+ height: 32px;
|
|
|
+ }
|
|
|
+ .ivu-select-single .ivu-select-selection {
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ >>> .ivu-input {
|
|
|
+ width: 160px;
|
|
|
+ height: 32px;
|
|
|
+ }
|
|
|
+ >>> .ivu-input-prefix, >>> .ivu-input-suffix {
|
|
|
+ height: 32px;
|
|
|
+ line-height: 32px;
|
|
|
+ }
|
|
|
+ >>> .ivu-input-icon {
|
|
|
+ height: 32px;
|
|
|
+ line-height: 32px;
|
|
|
+ }
|
|
|
+ >>> .date-picker-main .ivu-date-picker-header {
|
|
|
+ border-bottom: 0.0052083333rem solid #204384;
|
|
|
+ }
|
|
|
+}
|
|
|
+.btn-container {
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+ padding-bottom: 10px;
|
|
|
+}
|
|
|
+.common-form {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
+>>> .common-form-list .ivu-form-item {
|
|
|
+ margin-bottom: 0;
|
|
|
+}
|
|
|
+.manage-main-center {
|
|
|
+ width: 100%;
|
|
|
+ height: calc(100% - 150px);
|
|
|
+}
|
|
|
+.common-table {
|
|
|
+ max-height: 100%;
|
|
|
+}
|
|
|
+>>> .common-table .ivu-table th {
|
|
|
+ height: 51px;
|
|
|
+ }
|
|
|
+ >>> .common-table .ivu-table td {
|
|
|
+ height: 51px;
|
|
|
+ }
|
|
|
+ >>> .common-table .ivu-spin-fix {
|
|
|
+ top: 51px;
|
|
|
+ }
|
|
|
+ >>> .app-table .ivu-spin-fix {
|
|
|
+ height: calc(100vh - 375px);
|
|
|
+ }
|
|
|
+ >>> .ivu-table-tip {
|
|
|
+ background: url('../../../assets/images/noData.png') no-repeat center;
|
|
|
+}
|
|
|
+>>> .app-table .ivu-table-tip {
|
|
|
+ height: calc(100vh - 375px);
|
|
|
+ }
|
|
|
+ >>> .common-table .ivu-table-tip table {
|
|
|
+ display: none;
|
|
|
+}
|
|
|
+ >>> .modal-table {
|
|
|
+ overflow: auto !important;
|
|
|
+ }
|
|
|
+ >>> .modal-table .ivu-spin-fix {
|
|
|
+ height: 200px;
|
|
|
+ }
|
|
|
+ >>> .modal-table .ivu-table-tip {
|
|
|
+ height: 200px;
|
|
|
+ }
|
|
|
+.common-page {
|
|
|
+ margin-top: 15px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+ position: absolute;
|
|
|
+ bottom: 0;
|
|
|
+ right: 0;
|
|
|
+}
|
|
|
+>>> .modal-tabs-item {
|
|
|
+ margin-top: 10px;
|
|
|
+}
|
|
|
+>>> .common-modal-top-text {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #29A0FF;
|
|
|
+ line-height: 42px;
|
|
|
+ border-left: 3px solid #1590F1;
|
|
|
+ padding-left: 12px;
|
|
|
+}
|
|
|
+>>> .common-modal-content {
|
|
|
+ display: flex;
|
|
|
+ width: 100%;
|
|
|
+ justify-content: space-between;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ margin-bottom: 15px;
|
|
|
+ border-right: 1px solid #21437B;
|
|
|
+}
|
|
|
+>>> .modal-content-item {
|
|
|
+ width: 50%;
|
|
|
+ display: flex;
|
|
|
+}
|
|
|
+>>> .item-especial {
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+>>> .modal-content-item-name {
|
|
|
+ width: 50%;
|
|
|
+ height: 45px;
|
|
|
+ line-height: 45px;
|
|
|
+ background: #13305F;
|
|
|
+ border-top: 1px solid #21437B;
|
|
|
+ border-left: 1px solid #21437B;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #F5F5F5;
|
|
|
+ padding-left: 20px;
|
|
|
+}
|
|
|
+>>> .modal-content-item-value {
|
|
|
+ width: 50%;
|
|
|
+ height: 45px;
|
|
|
+ line-height: 45px;
|
|
|
+ background: #06214D;
|
|
|
+ border-top: 1px solid #21437B;
|
|
|
+ border-left: 1px solid #21437B;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #F5F5F5;
|
|
|
+ padding-left: 20px;
|
|
|
+}
|
|
|
+>>> .item-especial .modal-content-item-name{
|
|
|
+ width: 25%;
|
|
|
+ height: auto;
|
|
|
+ min-height: 45px;
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+>>> .item-especial .modal-content-item-value{
|
|
|
+ width: 75%;
|
|
|
+ height: auto;
|
|
|
+ min-height: 45px;
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ line-height: 22px;
|
|
|
+}
|
|
|
+>>> .item-especial-bot .modal-content-item-name {
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
+}
|
|
|
+>>> .item-especial-bot .modal-content-item-value {
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
+}
|
|
|
+>>> .strategy-form .ivu-col{
|
|
|
+ position: initial;
|
|
|
+ color: #2B8EE2;
|
|
|
+ font-size: 14PX;
|
|
|
+}
|
|
|
+>>> .row-first-es {
|
|
|
+ border-left: 1px solid #21437B;
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
+ border-right: 1px solid #21437B;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ background: #13305F;
|
|
|
+}
|
|
|
+>>> .strategy-form .row-first{
|
|
|
+ border-top: 1px solid #21437B;
|
|
|
+}
|
|
|
+>>> .strategy-form .ivu-form-item{
|
|
|
+ height: 100%;
|
|
|
+ margin-bottom: 0;
|
|
|
+}
|
|
|
+>>> .strategy-form-row .ivu-form-item{
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ margin-bottom: 0;
|
|
|
+ .ivu-form-item-content {
|
|
|
+ width: 100%;
|
|
|
+ padding: 10px 5px;
|
|
|
+ }
|
|
|
+}
|
|
|
+>>> .strategy-form-row {
|
|
|
+// height: 100%;
|
|
|
+}
|
|
|
+>>> .strategy-form-row .ivu-col {
|
|
|
+ height: 100%;
|
|
|
+ border: 1px solid #21437B;
|
|
|
+ border-top: none;
|
|
|
+ border-left: none;
|
|
|
+}
|
|
|
+>>> .strategy-form .row-es-text {
|
|
|
+ border-left: none;
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
+ border-right: 1px solid #21437B;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ background: #13305F;
|
|
|
+}
|
|
|
+>>> .strategy-form .row-es-last {
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
+ border-right: 1px solid #21437B;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ .ivu-form-item {
|
|
|
+ height: 100%;
|
|
|
+ width: 100%;
|
|
|
+ .ivu-form-item-content {
|
|
|
+ height: 100%;
|
|
|
+ width: 100%;
|
|
|
+ .ivu-select {
|
|
|
+ padding: 10px 5px;
|
|
|
+ height: 100%;
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+>>> .ivu-col-del {
|
|
|
+ cursor:pointer;
|
|
|
+ color:#BC2020;
|
|
|
+ padding-left:10px;
|
|
|
+ position: absolute;
|
|
|
+ right: 3%;
|
|
|
+ margin-top: 10px;
|
|
|
+}
|
|
|
+>>> .strategy-form .ivu-col-btn {
|
|
|
+ border-top: none;
|
|
|
+ border-bottom: none;
|
|
|
+}
|
|
|
+>>> .sub-add {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-top: 20PX;
|
|
|
+ padding-left: 10%;
|
|
|
+ font-size: 12PX;
|
|
|
+ color: #FFFFFF;
|
|
|
+ .ivu-form-item-content {
|
|
|
+ display: flex;
|
|
|
+ }
|
|
|
+}
|
|
|
+.sub-first-text {
|
|
|
+ font-size: 14PX;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #EE823A;
|
|
|
+ margin-right: 5px;
|
|
|
+ display: inline-block;
|
|
|
+ min-width: 14px;
|
|
|
+}
|
|
|
+>>> .strategy-form .ivu-form-item-error-tip {
|
|
|
+ padding-left: 6px;
|
|
|
+}
|
|
|
+/deep/ .ivu-input::-webkit-input-placeholder{
|
|
|
+ color: #718EBD;
|
|
|
+}
|
|
|
+/deep/ .ivu-input::-moz-placeholder{ /* Mozilla Firefox 19+ */
|
|
|
+ color: #718EBD;
|
|
|
+}
|
|
|
+/deep/ .ivu-input::-moz-placeholder{ /* Mozilla Firefox 4 to 18 */
|
|
|
+ color: #718EBD;
|
|
|
+}
|
|
|
+/deep/ .ivu-input::-ms-input-placeholder{ /* Internet Explorer 10-11 */
|
|
|
+ color: #718EBD;
|
|
|
+}
|
|
|
+</style>
|