|
@@ -0,0 +1,323 @@
|
|
|
+<template>
|
|
|
+ <div class="warningModeAddPage">
|
|
|
+ <div class="title-box">
|
|
|
+ <p>{{showType?'详情':(newData.typeId?'编辑':'新增')}}</p>
|
|
|
+ <p class="reset-button-one" @click="backPage">返回</p>
|
|
|
+ </div>
|
|
|
+ <div class="content-box scrollbar-box">
|
|
|
+ <el-form class="add-form-box" :model="newData" ref="form" :rules="showType?noRules:rules" label-width="120px">
|
|
|
+ <el-form-item label="名称:" prop="name">
|
|
|
+ <el-input :disabled="showType" v-model="newData.name" placeholder="请输入名称" maxLength="20" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="方式:" prop="alarmType">
|
|
|
+ <el-select :disabled="showType" v-model="newData.alarmType" placeholder="请选择方式" style="width:500px;">
|
|
|
+ <el-option
|
|
|
+ v-for="item in typeList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <div v-if="newData.alarmType == 1">
|
|
|
+ <el-form-item label="类型:" prop="category">
|
|
|
+ <el-radio-group :disabled="showType" v-model="newData.category">
|
|
|
+ <el-radio :label="1">钉钉消息</el-radio>
|
|
|
+ <el-radio :label="2">钉钉群机器人</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="appKey:" prop="key" v-if="newData.category==1">
|
|
|
+ <el-input :disabled="showType" v-model="newData.key" placeholder="请输入appKey" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="appSecret:" prop="secret" v-if="newData.category==1">
|
|
|
+ <el-input :disabled="showType" v-model="newData.secret" placeholder="请输入appSecret" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="webHook:" prop="host" v-if="newData.category==2">
|
|
|
+ <el-input :disabled="showType" v-model="newData.host" placeholder="请输入webHook" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div v-if="newData.alarmType == 2">
|
|
|
+ <el-form-item label="类型:" prop="category">
|
|
|
+ <el-radio-group :disabled="showType" v-model="newData.category">
|
|
|
+ <el-radio :label="1">企业微信</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="corpId:" prop="key" v-if="newData.category==1">
|
|
|
+ <el-input :disabled="showType" v-model="newData.key" placeholder="请输入corpId" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="corpSecret:" prop="secret" v-if="newData.category==1">
|
|
|
+ <el-input :disabled="showType" v-model="newData.secret" placeholder="请输入corpSecret" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div v-if="newData.alarmType == 3">
|
|
|
+ <el-form-item label="email:" prop="email">
|
|
|
+ <el-input :disabled="showType" v-model="newData.email" placeholder="请输入email" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="host:" prop="host">
|
|
|
+ <el-input :disabled="showType" v-model="newData.host" placeholder="请输入host" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="port:" prop="port">
|
|
|
+ <el-input :disabled="showType" v-model="newData.port" placeholder="请输入port" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="account:" prop="account">
|
|
|
+ <el-input :disabled="showType" v-model="newData.account" placeholder="请输入account" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="passwd:" prop="passwd">
|
|
|
+ <el-input :disabled="showType" v-model="newData.passwd" placeholder="请输入passwd" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="timeout:" prop="timeout">
|
|
|
+ <el-input :disabled="showType" v-model="newData.timeout" placeholder="请输入timeout" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div v-if="newData.alarmType == 4">
|
|
|
+ <el-form-item label="类型:" prop="category">
|
|
|
+ <el-radio-group :disabled="showType" v-model="newData.category">
|
|
|
+ <el-radio :label="1">专业设备</el-radio>
|
|
|
+ <el-radio :label="2">阿里云语音</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="主机:" prop="host">
|
|
|
+ <el-input :disabled="showType" v-model="newData.host" placeholder="请输入主机" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="key:" prop="key" v-if="newData.category==2">
|
|
|
+ <el-input :disabled="showType" v-model="newData.key" placeholder="请输入host" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="secret:" prop="secret" v-if="newData.category==2">
|
|
|
+ <el-input :disabled="showType" v-model="newData.secret" placeholder="请输入port" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div v-if="newData.alarmType == 5">
|
|
|
+ <el-form-item label="类型:" prop="category">
|
|
|
+ <el-radio-group :disabled="showType" v-model="newData.category">
|
|
|
+ <el-radio :label="1">专业设备</el-radio>
|
|
|
+ <el-radio :label="2">阿里云短信</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="主机:" prop="host">
|
|
|
+ <el-input :disabled="showType" v-model="newData.host" placeholder="请输入主机" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="key:" prop="key" v-if="newData.category==2">
|
|
|
+ <el-input :disabled="showType" v-model="newData.key" placeholder="请输入host" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="secret:" prop="secret" v-if="newData.category==2">
|
|
|
+ <el-input :disabled="showType" v-model="newData.secret" placeholder="请输入port" maxLength="200" style="width:500px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="说明:" prop="remark">
|
|
|
+ <el-input
|
|
|
+ :disabled="showType"
|
|
|
+ style="width:500px;"
|
|
|
+ type="textarea"
|
|
|
+ resize="none"
|
|
|
+ maxLength="50"
|
|
|
+ :rows="6"
|
|
|
+ placeholder="请输入执行描述"
|
|
|
+ show-word-limit
|
|
|
+ v-model="newData.remark"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div class="button-box" v-if="!showType">
|
|
|
+ <p class="null-p"></p>
|
|
|
+ <p class="button-p inquire-button-one" @click="submitForm">提交</p>
|
|
|
+ <p class="null-p"></p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ export default {
|
|
|
+ name: 'addPage',
|
|
|
+ props:{
|
|
|
+ propsData:{},
|
|
|
+ },
|
|
|
+ data(){
|
|
|
+ return{
|
|
|
+ showType:false,
|
|
|
+ newData:{},
|
|
|
+ rules:{
|
|
|
+ name: [
|
|
|
+ { required: true, message: "请输入名称", trigger: "blur" },
|
|
|
+ { required: true, message: "请输入名称", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ alarmType: [
|
|
|
+ { required: true, message: "请选择方式", trigger: "blur" },
|
|
|
+ { required: true, message: "请选择方式", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ category: [
|
|
|
+ { required: true, message: "请选择类型", trigger: "blur" },
|
|
|
+ { required: true, message: "请选择类型", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ key: [
|
|
|
+ { required: true, message: "请输入", trigger: "blur" },
|
|
|
+ { required: true, message: "请输入", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ secret: [
|
|
|
+ { required: true, message: "请输入", trigger: "blur" },
|
|
|
+ { required: true, message: "请输入", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ host: [
|
|
|
+ { required: true, message: "请输入", trigger: "blur" },
|
|
|
+ { required: true, message: "请输入", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ email: [
|
|
|
+ { required: true, message: "请输入", trigger: "blur" },
|
|
|
+ { required: true, message: "请输入", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ port: [
|
|
|
+ { required: true, message: "请输入", trigger: "blur" },
|
|
|
+ { required: true, message: "请输入", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ account: [
|
|
|
+ { required: true, message: "请输入", trigger: "blur" },
|
|
|
+ { required: true, message: "请输入", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ passwd: [
|
|
|
+ { required: true, message: "请输入", trigger: "blur" },
|
|
|
+ { required: true, message: "请输入", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ timeout: [
|
|
|
+ { required: true, message: "请输入", trigger: "blur" },
|
|
|
+ { required: true, message: "请输入", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ noRules:{},
|
|
|
+ typeList:[
|
|
|
+ {name:"钉钉",id:1,},
|
|
|
+ {name:"微信",id:2,},
|
|
|
+ {name:"邮件",id:3,},
|
|
|
+ {name:"电话",id:4,},
|
|
|
+ {name:"短信",id:5,},
|
|
|
+ ],
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created(){
|
|
|
+ this.initialize();
|
|
|
+ },
|
|
|
+ mounted(){
|
|
|
+
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ //初始化
|
|
|
+ initialize(){
|
|
|
+ this.$set(this,'showType',this.propsData.showType);
|
|
|
+ if(this.propsData.typeId){
|
|
|
+ let params = JSON.parse(this.propsData.params)
|
|
|
+ let obj = {
|
|
|
+ typeId:this.propsData.typeId,
|
|
|
+ name:this.propsData.name,
|
|
|
+ alarmType:this.propsData.alarmType,
|
|
|
+ category:this.propsData.category,
|
|
|
+ remark:this.propsData.remark,
|
|
|
+ key:params.key?params.key:null,
|
|
|
+ secret:params.secret?params.secret:null,
|
|
|
+ host:params.host?params.host:null,
|
|
|
+ email:params.email?params.email:null,
|
|
|
+ port:params.port?params.port:null,
|
|
|
+ account:params.account?params.account:null,
|
|
|
+ passwd:params.passwd?params.passwd:null,
|
|
|
+ timeout:params.timeout?params.timeout:null,
|
|
|
+ };
|
|
|
+ this.$set(this,'newData',obj);
|
|
|
+ }else{
|
|
|
+ this.$set(this,'newData',{
|
|
|
+ name:'',
|
|
|
+ alarmType:1,
|
|
|
+ category:1,
|
|
|
+ remark:'',
|
|
|
+ key:'',
|
|
|
+ secret:'',
|
|
|
+ host:'',
|
|
|
+ email:'',
|
|
|
+ port:'',
|
|
|
+ account:'',
|
|
|
+ passwd:'',
|
|
|
+ timeout:'',
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 返回按钮
|
|
|
+ backPage(){
|
|
|
+ this.$parent.tableButton(6);
|
|
|
+ },
|
|
|
+
|
|
|
+ /** 提交按钮 */
|
|
|
+ submitForm() {
|
|
|
+ this.$refs["form"].validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ let obj = JSON.parse(JSON.stringify(this.newData))
|
|
|
+ let newObj = {
|
|
|
+ name:obj.name,
|
|
|
+ alarmType:obj.alarmType,
|
|
|
+ category:obj.alarmType == 3 ? obj.category : 0,
|
|
|
+ remark:obj.remark,
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped lang="scss">
|
|
|
+ .warningModeAddPage{
|
|
|
+ flex:1;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ overflow: hidden;
|
|
|
+ .title-box{
|
|
|
+ display: flex;
|
|
|
+ border-bottom:1px solid #dedede;
|
|
|
+ p:nth-child(1){
|
|
|
+ margin-left:20px;
|
|
|
+ flex:1;
|
|
|
+ line-height:80px;
|
|
|
+ font-size:16px;
|
|
|
+ color:#0045af;
|
|
|
+ }
|
|
|
+ p:nth-child(2){
|
|
|
+ margin:20px;
|
|
|
+ width:80px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .content-box{
|
|
|
+ flex:1;
|
|
|
+ display: flex;
|
|
|
+ padding:20px;
|
|
|
+ ::v-deep .el-input.is-disabled .el-input__inner{
|
|
|
+ background-color: #fff;
|
|
|
+ color: #666;
|
|
|
+ cursor: auto;
|
|
|
+ }
|
|
|
+ ::v-deep .el-textarea.is-disabled .el-textarea__inner{
|
|
|
+ background-color: #fff;
|
|
|
+ color: #666;
|
|
|
+ cursor: auto;
|
|
|
+ }
|
|
|
+ ::v-deep .el-radio__input.is-disabled.is-checked .el-radio__inner{
|
|
|
+ background-color: #fff;
|
|
|
+ border-color: #1890ff;
|
|
|
+ cursor: auto;
|
|
|
+ }
|
|
|
+ ::v-deep .el-radio__input.is-disabled.is-checked .el-radio__inner::after{
|
|
|
+ background-color: #1890ff;
|
|
|
+ cursor: auto;
|
|
|
+ }
|
|
|
+ ::v-deep .el-radio__input.is-disabled + span.el-radio__label{
|
|
|
+ color: #666;
|
|
|
+ cursor: auto;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .button-box{
|
|
|
+ display: flex;
|
|
|
+ padding:20px 0;
|
|
|
+ .null-p{
|
|
|
+ flex:1;
|
|
|
+ }
|
|
|
+ .button-p{
|
|
|
+ width:100px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|