2025-09-22 10:39:04 +08:00
|
|
|
<template>
|
|
|
|
|
<div class="app-container">
|
|
|
|
|
<Form :formList="formList" :ruleFormData="ruleForm" :config="config" @fnClick="callback"></Form>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup name="Handle">
|
|
|
|
|
import Form from '@/components/form/index.vue';
|
2025-09-26 19:39:36 +08:00
|
|
|
import {addAgentManage, getAgentManage, updateAgentManage, resNameList} from "@/api/disRevenue/resource"
|
2025-09-22 10:39:04 +08:00
|
|
|
export default {
|
|
|
|
|
name: 'AgentUpdateView',
|
|
|
|
|
components: {Form},
|
2025-09-26 19:39:36 +08:00
|
|
|
dicts: ['policy_method', 'rm_register_online_state', 'agent_update_result'],
|
2025-09-22 10:39:04 +08:00
|
|
|
data() {
|
|
|
|
|
return {
|
2025-09-26 19:39:36 +08:00
|
|
|
ruleForm: {fileUrlType: '1'},
|
2025-09-22 10:39:04 +08:00
|
|
|
formList: [],
|
|
|
|
|
paramsData: {},
|
2025-09-26 19:39:36 +08:00
|
|
|
config: {},
|
|
|
|
|
includeList: {}
|
2025-09-22 10:39:04 +08:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
created() {
|
|
|
|
|
this.paramsData = this.$route && this.$route.query;
|
|
|
|
|
if (this.paramsData && this.paramsData.id) {
|
|
|
|
|
this.getFormDataList(this.paramsData.id);
|
2025-09-26 19:39:36 +08:00
|
|
|
} else {
|
|
|
|
|
this.fnFormList();
|
|
|
|
|
this.getResNameList();
|
2025-09-22 10:39:04 +08:00
|
|
|
}
|
|
|
|
|
if (this.paramsData && this.paramsData.readonly) {
|
|
|
|
|
this.config = {
|
|
|
|
|
buttonGroup: [{title: '返回', fnCode: 'goBack'}]
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
// formList集合
|
|
|
|
|
fnFormList(objVal) {
|
|
|
|
|
this.formList = [{
|
|
|
|
|
config: {title: '配置更新策略', colSpan: 'disBlock', readonly: this.paramsData.readonly},
|
|
|
|
|
controls: {
|
|
|
|
|
id: {label: 'ID',hidden: true},
|
2025-09-26 19:39:36 +08:00
|
|
|
hardwareSn: {label: '硬件SN', span: 12, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
|
|
|
|
resourceName: {label: '资源名称', span: 12, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
|
|
|
|
internalIp: {label: '内网IP', span: 12, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
|
|
|
|
status: {label: '状态', span: 12, type: 'select', options: this.dict.type.rm_register_online_state, disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
|
|
|
|
agentVersion: {label: 'AGENT版本', span: 12, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
|
|
|
|
method: {label: '更新方式', span: 12, type: 'select', options: this.dict.type.policy_method, eventName: 'change', required: true},
|
|
|
|
|
scheduledUpdateTime: {label: '更新时间', span: 12, type: 'datetime', required: true, hidden: objVal && objVal.method === '1' ? false: true},
|
|
|
|
|
fileUrlType: {label: '文件格式', span: 12, type: 'radio', required: true,options: [{label: '外网HTTP(S)',value: '1'}], warningTitle: '注意:当文件大小超过100M时,请选择【外网HTTP(S)】地址格式'},
|
|
|
|
|
fileUrl: {label: '文件地址', span: 12, type: 'input', required: true, placeholder: '请输入外网地址'},
|
|
|
|
|
includeIds: {label: '生效服务器', span: 24,required: true, type: 'transfer',options: [],hidden: this.paramsData && this.paramsData.id ? true : false},
|
|
|
|
|
lastUpdateResult: {label: '最后一次更新结果', span: 12, type: 'select', options: this.dict.type.agent_update_result, disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
|
|
|
|
lastUpdateTime: {label: '最后一次更新时间', span: 12, type: 'datetime', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
2025-09-22 10:39:04 +08:00
|
|
|
}
|
|
|
|
|
}];
|
|
|
|
|
},
|
|
|
|
|
// 获取详情
|
|
|
|
|
getFormDataList(id) {
|
2025-09-26 19:39:36 +08:00
|
|
|
getAgentManage(id).then(val => {
|
2025-09-22 10:39:04 +08:00
|
|
|
if (val && val.data) {
|
2025-09-26 19:39:36 +08:00
|
|
|
val.data['method'] = val.data['method'].toString();
|
|
|
|
|
val.data['fileUrlType'] = val.data['fileUrlType'].toString();
|
|
|
|
|
this.fnFormList(val.data);
|
2025-09-22 10:39:04 +08:00
|
|
|
this.ruleForm = val.data;
|
|
|
|
|
}
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
// this.$modal.msgError("操作失败")
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
// 包含设备
|
|
|
|
|
getResNameList() {
|
|
|
|
|
resNameList().then(val => {
|
2025-09-26 19:39:36 +08:00
|
|
|
this.formList[0].controls['includeIds']['options']= val && val.map(item => {
|
|
|
|
|
this.includeList[item.id] = item;
|
|
|
|
|
return Object.assign({label: item.resourceName, key: item.id});
|
2025-09-22 10:39:04 +08:00
|
|
|
});
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
this.$modal.msgError("操作失败")
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
// 监听事件
|
|
|
|
|
callback(result, dataVal, formVal) {
|
|
|
|
|
if (result && result.fnCode) {
|
|
|
|
|
switch (result.fnCode) {
|
2025-09-26 19:39:36 +08:00
|
|
|
case 'method':
|
|
|
|
|
if (dataVal === '1') {
|
|
|
|
|
this.formList[0].controls.scheduledUpdateTime['hidden'] = false;
|
|
|
|
|
} else {
|
|
|
|
|
this.formList[0].controls.scheduledUpdateTime['hidden'] = true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
2025-09-22 10:39:04 +08:00
|
|
|
case 'submit':
|
2025-09-26 19:39:36 +08:00
|
|
|
if (dataVal && !dataVal.id) {
|
|
|
|
|
dataVal['includeNames'] = dataVal && dataVal['includeIds'].map(id => this.includeList[id].resourceName);
|
|
|
|
|
dataVal['includeIds'] = dataVal['includeIds'].join();
|
|
|
|
|
dataVal['includeNames'] = dataVal['includeNames'].join();
|
|
|
|
|
}
|
|
|
|
|
let fnType = addAgentManage;
|
2025-09-22 10:39:04 +08:00
|
|
|
if (dataVal && dataVal.id) {
|
2025-09-26 19:39:36 +08:00
|
|
|
fnType = updateAgentManage;
|
2025-09-22 10:39:04 +08:00
|
|
|
}
|
|
|
|
|
fnType(dataVal).then(response => {
|
|
|
|
|
this.$modal.msgSuccess(response.msg);
|
|
|
|
|
this.$router.push("/resource/agentUpdate")
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
this.$modal.msgError("操作失败")
|
|
|
|
|
});
|
|
|
|
|
break;
|
|
|
|
|
case 'cancle':
|
|
|
|
|
this.$router.push("/resource/agentUpdate");
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
<style>
|
|
|
|
|
</style>
|