| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- <template>
- <el-container>
- <el-header height="220">
- <h3>系统更新</h3>
- </el-header>
- <el-main>
- <el-row>
- <el-col :md="12" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
- <el-card class="box-card">
- <div slot="header" class="clearfix">
- <span>devops-mgr</span>
- <el-button style="float: right; padding: 3px 0" type="text" @click="handleAdd">添加</el-button>
- </div>
- <div class="text item">
- <el-table
- :data="mgrList"
- border
- height="480"
- style="width: 100%"
- >
- <el-table-column
- prop="machineIpv4"
- label="机器地址"
- />
- <el-table-column
- prop="bootTime"
- label="应用目录"
- />
- <el-table-column
- prop="status"
- label="当前状态"
- >
- <template slot-scope="scope">
- <el-tag v-if="scope.row.status === 'Online'" :type="'success'" disable-transitions>
- <span>在线</span>
- </el-tag>
- <el-tag v-else-if="scope.row.status === 'Offline'" :type="'danger'" disable-transitions>
- <span>离线</span>
- </el-tag>
- <el-tag v-else :type="'warning'" disable-transitions>
- <span>弃用</span>
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column
- prop="agentVersion"
- label="Agent 版本"
- />
- </el-table>
- </div>
- </el-card>
- </el-col>
- <el-col :md="12" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
- <el-card class="box-card">
- <div slot="header" class="clearfix">
- <span>devops-agent</span>
- <el-button style="float: right; padding: 3px 0" type="text" @click="getData">刷新</el-button>
- </div>
- <div class="text item">
- <el-table
- :data="agentList"
- border
- height="480"
- style="width: 100%"
- >
- <el-table-column
- prop="machineIpv4"
- label="机器地址"
- />
- <el-table-column
- prop="bootTime"
- label="启动时间"
- />
- <el-table-column
- prop="status"
- label="当前状态"
- >
- <template slot-scope="scope">
- <el-tag v-if="scope.row.status === 'Online'" :type="'success'" disable-transitions>
- <span>在线</span>
- </el-tag>
- <el-tag v-else-if="scope.row.status === 'Offline'" :type="'danger'" disable-transitions>
- <span>离线</span>
- </el-tag>
- <el-tag v-else :type="'warning'" disable-transitions>
- <span>弃用</span>
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column
- prop="agentVersion"
- label="Agent 版本"
- />
- <el-table-column
- prop="env"
- label="所属环境"
- />
- </el-table>
- </div>
- </el-card>
- </el-col>
- </el-row>
- </el-main>
- <el-dialog
- append-to-body
- :visible.sync="showMgrDialog"
- width="50%"
- center
- >
- <div>
- <el-button style="float: right; padding: 3px 0" type="text" @click="handleAdd">添加</el-button>
- <el-table
- :data="mgrList"
- border
- height="480"
- style="width: 100%"
- >
- <el-table-column
- prop="machineIpv4"
- label="机器地址"
- />
- <el-table-column
- prop="bootTime"
- label="启动时间"
- />
- <el-table-column
- prop="status"
- label="当前状态"
- >
- <template slot-scope="scope">
- <el-tag v-if="scope.row.status === 'Online'" :type="'success'" disable-transitions>
- <span>在线</span>
- </el-tag>
- <el-tag v-else-if="scope.row.status === 'Offline'" :type="'danger'" disable-transitions>
- <span>离线</span>
- </el-tag>
- <el-tag v-else :type="'warning'" disable-transitions>
- <span>弃用</span>
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column
- prop="agentVersion"
- label="Agent 版本"
- />
- <el-table-column
- prop="env"
- label="所属环境"
- />
- </el-table>
- </div>
- </el-dialog>
- <el-dialog
- append-to-body
- :visible.sync="showAddDialog"
- width="50%"
- center
- >
- <div>
- <el-form :model="addForm" label-width="80px">
- <el-form-item label="主机地址">
- <el-input v-model="addForm.host" style="width: 70%; padding-right: 2px" />
- </el-form-item>
- <el-form-item label="SSH 端口">
- <el-input v-model="addForm.port" style="width: 70%; padding-right: 2px" />
- </el-form-item>
- <el-form-item label="认证方式" style="width: 70%; padding-right: 2px">
- <el-select v-model="addForm.authType" placeholder="选择认证方式">
- <el-option label="密码认证" value="password" />
- <el-option label="私钥认证" value="privateKey" />
- </el-select>
- </el-form-item>
- <div v-if="addForm.authType === 'password'">
- <el-form-item label="用户名" style="width: 70%; padding-right: 2px">
- <el-input v-model="addForm.username" style="width: 70%; padding-right: 2px" />
- </el-form-item>
- <el-form-item label="密码" style="width: 70%; padding-right: 2px">
- <el-input v-model="addForm.password" style="width: 70%; padding-right: 2px" />
- </el-form-item>
- </div>
- <div v-else>
- <el-form-item label="私钥" style="width: 70%; padding-right: 2px">
- <el-input
- v-model="addForm.rsaPrikey"
- type="textarea"
- maxlength="10000"
- :rows="10"
- style="padding: 5px"
- />
- </el-form-item>
- </div>
- <el-form-item label="应用目录">
- <el-input v-model="addForm.appDir" style="width: 70%; padding-right: 2px" />
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="onAdd">确定</el-button>
- </el-form-item>
- </el-form>
- </div>
- </el-dialog>
- <!-- 视频预览对话框 -->
- <el-dialog
- title="预览视频"
- append-to-body
- :visible.sync="showPreviewDialog"
- width="70%"
- center
- >
- <template />
- </el-dialog>
- </el-container>
- </template>
- <script>
- export default {
- name: 'SysUpdate',
- data() {
- return {
- queryInfo: {
- scope: null,
- pn: 1
- },
- // 屏幕宽度, 为了控制分页条的大小
- screenWidth: document.body.clientWidth,
- currentPage: 1,
- pageSize: 10,
- totalSize: 0,
- dataList: [],
- nextId: 0,
- // **********************************************************************
- mgrList: [],
- agentList: [],
- // **********************************************************************
- showAddDialog: false,
- addForm: {
- host: '',
- port: 22,
- authType: 'password',
- username: '',
- password: '',
- rsaPrikey: '',
- appDir: ''
- },
- // **********************************************************************
- showPreviewDialog: false,
- form: {
- videoId: null,
- scope: 1
- },
- videoResources: [],
- publishVideoDiaglog: false
- }
- },
- created() {
- document.title = '系统更新'
- },
- methods: {
- getData() {
- this.dataList = []
- },
- onRefresh() {
- this.getData()
- },
- handleAdd() {
- this.showAddDialog = true
- },
- onAdd() {
- this.showAddDialog = false
- },
- handlePreview(index, row) {
- },
- handleEdit(index, row) {
- const path = '/post/video/edit/' + row.videoId
- this.$router.push(path)
- },
- onSelectChange() {
- this.$message.info(this.queryInfo)
- },
- handleClose() {
- }
- }
- }
- </script>
- <style>
- </style>
|