| | |
| | | <el-col :span="12"> |
| | | <el-tabs v-model="activeName" id="e-alaycluster" v-if="!isHasColony"> |
| | | <el-tab-pane label="创建集群" name="1" :disabled="isHasColony"> |
| | | <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="80px"> |
| | | <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px"> |
| | | <el-form-item label="集群名称" prop="clustername"> |
| | | <el-input v-model="ruleForm.clustername" placeholder="手动输入, 如“集群A”" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="集群ID"> |
| | | <el-input v-model="clusterid" placeholder="不允许输入,保存后回显" disabled size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="集群密码" prop="clusterpwd" style="width:500px"> |
| | | <el-form-item label="集群密码" prop="clusterpwd"> |
| | | <el-input v-model="ruleForm.clusterpwd" placeholder="请输入6位密码,或点击生成" size="small"> |
| | | <el-button type="text" slot="suffix" @click="generatePassword">生成密码</el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | <!-- <el-form-item label="虚拟IP" prop="virtualip"> |
| | | <ip-input :ip="ruleForm.virtualip" :on-blur="onIpBlur"></ip-input> |
| | | </el-form-item>--> |
| | | <el-form-item style="width:500px"> |
| | | <el-form-item label="集群IP" prop="virtualIp"> |
| | | <ip-input :ip="ruleForm.virtualIp" :on-blur="onIpBlur" class="ip-input-comp"></ip-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" size="small" @click="submitForm('ruleForm')">保存</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | |
| | | <!-- 加入已有集群 --> |
| | | <el-tab-pane label="加入已有集群" name="2" :disabled="isHasColony"> |
| | | <el-form label-width="80px" :model="joinForm" :rules="joinRules" ref="joinForm"> |
| | | <el-form-item label="IP地址" style="width:440px"> |
| | | <el-form |
| | | label-width="80px" |
| | | :model="joinForm" |
| | | :rules="joinRules" |
| | | ref="joinForm" |
| | | class="join-form" |
| | | v-loading="joinLoading" |
| | | > |
| | | <el-form-item label="集群ID" style="width:440px" prop="clusterid"> |
| | | <el-input v-model="joinForm.clusterid" placeholder size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="IP地址" style="width:440px" prop="clusterip"> |
| | | <el-input |
| | | v-model="joinForm.clusterip" |
| | | placeholder="请输入集群内任意IP地址" |
| | | size="small" |
| | | autocomplete="new-password" |
| | | ></el-input> |
| | | |
| | | <!-- <el-button size="mini" :disabled="searchDis" @click="searchColony">搜索集群</el-button> |
| | | <el-button size="mini" @click="stopSearch">停止搜索</el-button>--> |
| | | </el-form-item> |
| | | <el-form-item label="集群密码" prop="clusterpwd" style="width:440px"> |
| | | <el-input |
| | | v-model="joinForm.clusterpwd" |
| | | placeholder="请输入集群密码" |
| | | show-password |
| | | size="small" |
| | | autocomplete="new-password" |
| | | > |
| | |
| | | <i class="el-icon-loading"></i>停止搜索 |
| | | </el-button> |
| | | </el-input> |
| | | |
| | | <!-- <el-button size="mini" :disabled="searchDis" @click="searchColony">搜索集群</el-button> |
| | | <el-button size="mini" @click="stopSearch">停止搜索</el-button>--> |
| | | </el-form-item> |
| | | <el-form-item label="集群密码" prop="clusterpwd" style="width:500px"> |
| | | <el-input |
| | | v-model="joinForm.clusterpwd" |
| | | placeholder="请输入集群密码" |
| | | show-password |
| | | size="small" |
| | | autocomplete="new-password" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width:440px"> |
| | | <el-button type="primary" @click="join('joinForm')" size="small">加入集群</el-button> |
| | | </el-form-item> |
| | | <div class="form-tip">请输入以上信息加入集群,或者通过集群密码搜索后进行加入</div> |
| | | </el-form> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | <!-- 有集群的情况 --> |
| | | <div v-if="isHasColony" id="h-alaycluster"> |
| | | <el-form :model="ruleForm" ref="ruleForm" label-width="80px"> |
| | | <el-form :model="ruleForm" ref="ruleForm" label-width="100px"> |
| | | <el-form-item label="集群名称" prop="clustername"> |
| | | <el-input v-model="ruleForm.clustername" placeholder="手动输入, 如“集群A”" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="集群ID"> |
| | | <el-input v-model="clusterid" placeholder="不允许输入,保存后回显" disabled size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="集群密码" prop="clusterpwd" style="width:500px"> |
| | | <el-form-item label="集群密码" prop="clusterpwd"> |
| | | <el-input |
| | | v-model="ruleForm.clusterpwd" |
| | | disabled |
| | |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <!-- <el-form-item label="虚拟IP" prop="virtualip"> |
| | | <ip-input :ip="ruleForm.virtualip" :on-blur="onIpBlur"></ip-input> |
| | | </el-form-item>--> |
| | | <el-form-item style="width:440px;text-align: right;"> |
| | | <el-form-item label="集群IP" prop="virtualIp"> |
| | | <ip-input :ip="ruleForm.virtualIp" :on-blur="onIpBlur" class="ip-input-comp"></ip-input> |
| | | </el-form-item> |
| | | <el-form-item style="text-align: right;"> |
| | | <el-button size="small" type="danger" @click="leave">退出集群</el-button> |
| | | <el-button |
| | | style="margin-right:10px;" |
| | | type="primary" |
| | | size="small" |
| | | @click="submitForm('manageForm')" |
| | | @click="updateCluster('manageForm')" |
| | | >保存</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="10" style="height: 100%;" v-if="members.length !== 0"> |
| | | <el-col |
| | | :span="12" |
| | | style="height: 100%;" |
| | | v-if="members.length !== 0 && isSearch" |
| | | class="node-container" |
| | | > |
| | | <serfDiagram |
| | | ref="diagram" |
| | | :members="members" |
| | | :agent="agentName" |
| | | v-loading="loading" |
| | | :isShowHover="false" |
| | | @selected-node="joinNode" |
| | | class="nodes-svg" |
| | | ></serfDiagram> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="ui-top-view"> |
| | | <div class="ui-top-title">漂移IP</div> |
| | | </div> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form :model="vrIpForm" ref="vrIpForm" :rules="vrIpRules" style="padding:20px 40px;"> |
| | | <el-form-item label="虚拟IP" prop="virtual_ip"> |
| | | <ip-input :ip="vrIpForm.virtual_ip" :on-blur="onIpBlur"></ip-input> |
| | | <el-switch v-model="vrIpForm.enable" style="margin-left:30px;"></el-switch> |
| | | </el-form-item> |
| | | <el-form-item style="width:500px"> |
| | | <el-button type="primary" size="small" @click="saveForm('vrIpForm')">保存</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-col |
| | | :span="12" |
| | | style="height: 100%;" |
| | | v-if="innerNodes.length !== 0 && !isSearch" |
| | | class="node-container" |
| | | > |
| | | <cloud-node :nodes="innerNodes"></cloud-node> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="ui-top-view"> |
| | | |
| | | <!-- <div class="ui-top-view"> |
| | | <div class="ui-top-title">存储集群管理</div> |
| | | </div> |
| | | <el-row> |
| | |
| | | size="small" |
| | | @click="createEsCluster()" |
| | | >创建存储集群</el-button> |
| | | <!-- <p>点击将本机创建为存储集群</p> --> |
| | | |
| | | </el-tab-pane> |
| | | <el-tab-pane label="加入已有集群" name="s-second" v-if="sActiveName != 's-third1'"> |
| | | <el-form label-width="80px"> |
| | |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </el-col> |
| | | </el-row> |
| | | </el-row>--> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | getDevInfo |
| | | } from "@/api/system"; |
| | | |
| | | import cloudNode from "./CloudNode"; |
| | | import serfDiagram from "@/components/serfDiagram"; |
| | | import ipInput from "@/components/subComponents/IPInput"; |
| | | |
| | | import { isIPv4 } from "@/scripts/validate"; |
| | | export default { |
| | | components: { |
| | | serfDiagram, |
| | | ipInput |
| | | ipInput, |
| | | cloudNode |
| | | }, |
| | | data() { |
| | | const checkPwd = (rule, value, callback) => { |
| | |
| | | return callback(new Error("密码不能为空")); |
| | | } |
| | | setTimeout(() => { |
| | | // if (value.length > 16 || value.length < 6) { |
| | | // callback(new Error("密码应为6-16位!")); |
| | | // } else { |
| | | // callback(); |
| | | // } |
| | | if (value.length != 6) { |
| | | callback(new Error("密码应为6位!")); |
| | | } else { |
| | |
| | | } |
| | | }, 1000); |
| | | }; |
| | | |
| | | return { |
| | | activeName: "1", |
| | | sActiveName: "s-first", |
| | |
| | | ruleForm: { |
| | | clustername: "", |
| | | clusterpwd: "", |
| | | //virtualip: "" |
| | | virtualIp: "" |
| | | }, |
| | | vrIpForm: { |
| | | enable: true, |
| | |
| | | virtualip: "192.168.1.188" |
| | | }, |
| | | joinForm: { |
| | | clusterid: "", |
| | | clusterip: "", |
| | | clusterpwd: "" |
| | | }, |
| | |
| | | { required: true, message: "请输入集群名称", trigger: "change" } |
| | | ], |
| | | clusterpwd: [{ validator: checkPwd, trigger: "change" }], |
| | | // virtualip: [ |
| | | // { required: true, message: "请输入虚拟IP", trigger: "change" } |
| | | // ] |
| | | }, |
| | | vrIpRules: { |
| | | virtualip: [ |
| | | { required: true, message: "请输入虚拟IP", trigger: "change" } |
| | | virtualIp: [ |
| | | { required: true, validator: isIPv4, trigger: "change" } |
| | | ] |
| | | }, |
| | | // vrIpRules: { |
| | | // virtualIp: [ |
| | | // { required: true, message: "请输入虚拟IP", trigger: "change" } |
| | | // ] |
| | | // }, |
| | | joinRules: { |
| | | clusterid: [ |
| | | { required: true, message: "请输入集群ID", trigger: "change" }, |
| | | ], |
| | | clusterip: [ |
| | | { required: true, validator: isIPv4, trigger: "change" } |
| | | ], |
| | | clusterpwd: [ |
| | | { required: true, message: "请输入集群密码", trigger: "change" }, |
| | | { validator: checkPwd, trigger: "change" } |
| | | ] |
| | | }, |
| | | esNodes: [], |
| | | scheduleId: "", |
| | | isHasColony: false, |
| | | isSearch: false, |
| | | currentCluster: {}, |
| | | searchNum: "", |
| | | loading: false, |
| | | searchDis: false, |
| | | agentName: "", |
| | | members: [] |
| | | members: [], |
| | | innerNodes: [], |
| | | intervalTimer: null, |
| | | joinLoading: false, |
| | | showJoinConfirm: false |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.findCluster(); |
| | | this.getVrrpInfo(); |
| | | this.getEsClusterNodes(); |
| | | let _this = this; |
| | | this.intervalTimer = setInterval(() => { |
| | | _this.findCluster(); |
| | | }, 30000); |
| | | //this.getEsClusterNodes(); |
| | | }, |
| | | beforeDestroy() { |
| | | clearInterval(this.intervalTimer); |
| | | }, |
| | | methods: { |
| | | cleanValue() { |
| | | this.members = []; |
| | | checkPsd(psd) { |
| | | return psd.trim().length === 6 |
| | | }, |
| | | sHandleClick(tab, event) { |
| | | console.log(tab, event); |
| | | }, |
| | | // cleanValue() { |
| | | // this.members = []; |
| | | // }, |
| | | // sHandleClick(tab, event) { |
| | | // console.log(tab, event); |
| | | // }, |
| | | submitForm(formName) { |
| | | this.$refs[formName].validate(valid => { |
| | | if (valid) { |
| | |
| | | clusterId: this.clusterid, |
| | | clusterName: this.ruleForm.clustername, |
| | | password: this.ruleForm.clusterpwd, |
| | | //virtualip: this.ruleForm.virtualip |
| | | virtualIp: this.ruleForm.virtualIp |
| | | }; |
| | | this.createCluster(json).then(() => { |
| | | this.findCluster(); |
| | |
| | | } |
| | | }); |
| | | }, |
| | | saveForm(formName) { |
| | | this.$refs[formName].validate(valid => { |
| | | if (valid) { |
| | | alert("submit!"); |
| | | let json = { |
| | | enable: this.vrIpForm.enable, |
| | | serve_port: this.vrIpForm.serve_port, |
| | | virtual_ip: this.vrIpForm.virtual_ip, |
| | | |
| | | }; |
| | | setVrrp(json).then(() => { |
| | | this.getVrrpInfo(); |
| | | }); |
| | | } else { |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | // saveForm(formName) { |
| | | // this.$refs[formName].validate(valid => { |
| | | // if (valid) { |
| | | // alert("submit!"); |
| | | // let json = { |
| | | // enable: this.vrIpForm.enable, |
| | | // serve_port: this.vrIpForm.serve_port, |
| | | // virtual_ip: this.vrIpForm.virtual_ip, |
| | | |
| | | // }; |
| | | // setVrrp(json).then(() => { |
| | | // this.getVrrpInfo(); |
| | | // }); |
| | | // } else { |
| | | // console.log("error submit!!"); |
| | | // return false; |
| | | // } |
| | | // }); |
| | | // }, |
| | | |
| | | join(formName) { |
| | | let _this = this; |
| | | this.$refs[formName].validate(valid => { |
| | | if (valid) { |
| | | if (Object.keys(this.currentCluster).length === 0) { |
| | | this.$notify({ |
| | | type: "info", |
| | | duration: 1000, |
| | | message: "请先选择一个集群节点" |
| | | }); |
| | | return true; |
| | | } |
| | | _this.joinLoading = true; |
| | | // if (Object.keys(this.currentCluster).length === 0) { |
| | | // this.$notify({ |
| | | // type: "info", |
| | | // duration: 1000, |
| | | // message: "请先选择一个集群节点" |
| | | // }); |
| | | // _this.joinLoading = false; |
| | | // return true; |
| | | // } |
| | | let nodeIps = this.members.map(i => { |
| | | return i.Address; |
| | | }); |
| | | let json = { |
| | | clusterId: this.currentCluster.cluster_id, |
| | | //clusterId: this.currentCluster.cluster_id, |
| | | clusterId: this.joinForm.clusterid, |
| | | password: this.joinForm.clusterpwd, |
| | | nodeIps: nodeIps |
| | | nodeIps: [this.joinForm.clusterip] |
| | | }; |
| | | this.joinCluster(json).then(() => { |
| | | _this.joinLoading = false; |
| | | this.findCluster(); |
| | | }).catch(e => { |
| | | console.log(e); |
| | | _this.joinLoading = false; |
| | | }); |
| | | } else { |
| | | console.log("error submit!!"); |
| | |
| | | } |
| | | }, |
| | | async searchColony() { |
| | | this.$refs["joinForm"].validate(valid => { |
| | | if (valid) { |
| | | this.members = []; |
| | | let json = { |
| | | password: this.joinForm.clusterpwd, |
| | | ip: this.joinForm.clusterip |
| | | }; |
| | | this.isSearch = true; |
| | | this.$refs["joinForm"].clearValidate(); |
| | | this.$refs["joinForm"].validateField('clusterpwd'); |
| | | if (this.checkPsd(this.joinForm.clusterpwd)) { |
| | | this.members = []; |
| | | let json = { |
| | | password: this.joinForm.clusterpwd, |
| | | //ip: this.joinForm.clusterip |
| | | }; |
| | | |
| | | this.search(json) |
| | | .then(() => { |
| | | this.setSchedule(); |
| | | // this.searchDis = false; |
| | | // this.loading = false; |
| | | }) |
| | | .catch(() => { |
| | | this.searchDis = false; |
| | | this.loading = false; |
| | | }); |
| | | } else { |
| | | this.searchDis = false; |
| | | this.loading = false; |
| | | return false; |
| | | } |
| | | }); |
| | | this.search(json) |
| | | .then(() => { |
| | | this.setSchedule(); |
| | | // this.searchDis = false; |
| | | // this.loading = false; |
| | | }) |
| | | .catch(() => { |
| | | this.searchDis = false; |
| | | this.loading = false; |
| | | this.isSearch = false; |
| | | }); |
| | | } else { |
| | | this.searchDis = false; |
| | | this.loading = false; |
| | | this.isSearch = false; |
| | | return false; |
| | | } |
| | | //}); |
| | | }, |
| | | async search(json) { |
| | | let res = await search(json); |
| | |
| | | this.stopSearch(); |
| | | }, 10 * 1000); |
| | | }, |
| | | //搜索集群 |
| | | async getSearchNodes() { |
| | | let res = await getSearchNodes(); |
| | | if (res && res.success) { |
| | |
| | | this.activeName = "3"; |
| | | this.clusterid = res.data.clusterId; |
| | | this.ruleForm.clustername = res.data.clusterName; |
| | | this.ruleForm.clusterpwd = res.data.clusterpwd |
| | | //this.ruleForm.virtualip = res.data.virtualip |
| | | let list = res.data.nodes.map(i => { |
| | | this.ruleForm.clusterpwd = '******'; |
| | | this.ruleForm.virtualIp = res.data.virtualIp |
| | | //let list = res.data.nodes.map(i => { |
| | | this.isSearch = false; |
| | | this.innerNodes = res.data.nodes.map(i => { |
| | | let obj = {}; |
| | | obj.device_type = i.device_type; |
| | | obj.workType = i.device_type.substr(2, 2); |
| | | obj.hardwareType = i.device_type.substr(4, 2); |
| | | obj.cluster_id = i.cluster_id; |
| | | obj.clusterName = res.data.clusterName; |
| | | obj.create_time = i.create_time; |
| | |
| | | obj.node_ip = i.node_ip; |
| | | obj.nodeName = i.node_name; |
| | | obj.Address = i.node_ip; |
| | | obj.role = i.role ? i.role : "pc"; |
| | | obj.role = i.drift_state ? i.drift_state : "pc"; |
| | | return obj; |
| | | }); |
| | | this.members = this.members.concat(list); |
| | | |
| | | //this.members = this.members.concat(list); |
| | | console.log(this.members) |
| | | } else { |
| | | this.isHasColony = false; |
| | | // this.activeName = '1' |
| | | } |
| | | } |
| | | }, |
| | | getVrrpInfo() { |
| | | getVrrp().then(res => { |
| | | if (res.success) { |
| | | this.vrIpForm.virtual_ip = res.data.virtual_ip; |
| | | this.vrIpForm.enable = res.data.enable; |
| | | } |
| | | }).catch(e => { |
| | | console.log(e) |
| | | }) |
| | | }, |
| | | async updateClusterName() { |
| | | // getVrrpInfo() { |
| | | // getVrrp().then(res => { |
| | | // if (res.success) { |
| | | // this.vrIpForm.virtual_ip = res.data.virtual_ip; |
| | | // this.vrIpForm.enable = res.data.enable; |
| | | // } |
| | | // }).catch(e => { |
| | | // console.log(e) |
| | | // }) |
| | | // }, |
| | | async updateCluster() { |
| | | if (this.ruleForm.clustername === "") { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "集群名称不能为空" |
| | | }) |
| | | |
| | | return |
| | | } |
| | | |
| | | let res = await updateClusterName({ |
| | | clusterName: this.mangeForm.colonyName |
| | | clusterName: this.ruleForm.clustername, |
| | | virtualIp: this.ruleForm.virtualIp |
| | | }); |
| | | this.$notify({ |
| | | title: res.success ? "成功" : "失败", |
| | |
| | | this.isHasColony = false; |
| | | this.activeName = "1"; |
| | | this.members = []; |
| | | this.innerNodes = []; |
| | | } |
| | | }).catch(() => { }); |
| | | }).catch(() => { |
| | | this.ruleForm.clustername = ""; |
| | | this.ruleForm.clusterpwd = "" |
| | | this.clusterid = ""; |
| | | this.isHasColony = false; |
| | | this.activeName = "1"; |
| | | this.members = []; |
| | | this.innerNodes = []; |
| | | }); |
| | | |
| | | }, |
| | | joinNode(event, node) { |
| | | console.log('join', node) |
| | | let _this = this; |
| | | this.currentCluster.cluster_id = node.cluster_id; |
| | | if (this.activeName === "3") { |
| | | this.manageForm.clustername = node.clusterName; |
| | |
| | | return; |
| | | } |
| | | if (this.activeName === "2") { |
| | | this.$refs["joinForm"].validate(valid => { |
| | | if (valid) { |
| | | this.$confirm("是否要加入节点 " + node.nodeName + "?", "加入集群", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "success" |
| | | }) |
| | | .then(() => { |
| | | // this.agentName = 'node' + this.members.length |
| | | // this.members.push({ |
| | | // nodeName: this.agentName, |
| | | // Address: '172.10.10.26', |
| | | // role: 'pc' |
| | | // }) |
| | | // this.$notify({ |
| | | // type: 'success', |
| | | // duration: 1000, |
| | | // message: '加入成功!' |
| | | // }) |
| | | console.log(this.currentCluster, '选择的集群节点') |
| | | this.join("joinForm"); |
| | | }) |
| | | .catch(() => { |
| | | this.$notify({ |
| | | type: "info", |
| | | duration: 1000, |
| | | message: "已取消" |
| | | }); |
| | | }); |
| | | } else { |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }); |
| | | if (_this.showJoinConfirm) return; |
| | | |
| | | this.$confirm("是否要加入节点 " + node.nodeName + "?", "加入集群", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "success" |
| | | }) |
| | | .then(() => { |
| | | _this.showJoinConfirm = true; |
| | | let json = { |
| | | //clusterId: this.currentCluster.cluster_id, |
| | | clusterId: node.cluster_id, |
| | | password: this.joinForm.clusterpwd, |
| | | nodeIps: [node.Address] |
| | | }; |
| | | this.joinCluster(json).then(() => { |
| | | _this.showJoinConfirm = false; |
| | | this.findCluster(); |
| | | }).catch(e => { |
| | | console.log(e); |
| | | _this.showJoinConfirm = false; |
| | | }); |
| | | }).catch(e => { |
| | | console.log(e) |
| | | }); |
| | | |
| | | // this.$refs["joinForm"].validate(valid => { |
| | | // if (valid) { |
| | | // if (_this.showJoinConfirm) return; |
| | | // _this.showJoinConfirm = true; |
| | | // this.$confirm("是否要加入节点 " + node.nodeName + "?", "加入集群", { |
| | | // confirmButtonText: "确定", |
| | | // cancelButtonText: "取消", |
| | | // type: "success" |
| | | // }) |
| | | // .then(() => { |
| | | |
| | | // console.log(this.currentCluster, '选择的集群节点') |
| | | // this.join("joinForm"); |
| | | // _this.showJoinConfirm = false; |
| | | // }) |
| | | // .catch(() => { |
| | | // this.$notify({ |
| | | // type: "info", |
| | | // duration: 1000, |
| | | // message: "已取消" |
| | | // }); |
| | | // _this.showJoinConfirm = false; |
| | | // }); |
| | | // } else { |
| | | // console.log("error submit!!"); |
| | | // return false; |
| | | // } |
| | | // }); |
| | | } |
| | | }, |
| | | generatePassword() { |
| | |
| | | |
| | | this.ruleForm.clusterpwd = uuid.join(""); |
| | | }, |
| | | onIpBlur(ip) { |
| | | this.vrIpForm.virtual_ip = ip; |
| | | }, |
| | | |
| | | async getEsClusterNodes() { |
| | | let rsp = await getDevInfo(); |
| | | let hostIpAddr = ""; |
| | |
| | | message: rsp.msg |
| | | }); |
| | | }) |
| | | }, |
| | | onIpBlur(ip) { |
| | | //this.vrIpForm.virtual_ip = ip; |
| | | this.ruleForm.virtualIp = ip; |
| | | console.log(this.ruleForm.virtualIp) |
| | | } |
| | | } |
| | | |
| | | }, |
| | | |
| | | created() { } |
| | | |
| | | }; |
| | | </script> |
| | | <style lang="scss"> |
| | |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: auto; |
| | | |
| | | .el-form-item { |
| | | width: 500px; |
| | | } |
| | | .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before, |
| | | .el-form-item.is-required:not(.is-no-asterisk) |
| | | .el-form-item__label-wrap |
| | | > .el-form-item__label:before { |
| | | display: none; |
| | | } |
| | | .ip-input-comp { |
| | | width: 400px; |
| | | max-width: 400px; |
| | | } |
| | | .el-button { |
| | | float: right; |
| | | } |
| | | .el-form-item__content { |
| | | text-align: left; |
| | | |
| | | input { |
| | | max-width: 360px; |
| | | max-width: 400px !important; |
| | | } |
| | | } |
| | | |
| | |
| | | #h-alaycluster { |
| | | .el-form-item__content { |
| | | text-align: left; |
| | | input { |
| | | max-width: 360px; |
| | | } |
| | | // input { |
| | | // max-width: 360px; |
| | | // } |
| | | } |
| | | } |
| | | } |