From f1d079f9c0b3d384090477ca54e0548373d62b57 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 16 Jan 2025 11:56:39 +0800
Subject: [PATCH] 配置修改
---
web_src/src/components/MediaServerManger.vue | 181 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 181 insertions(+), 0 deletions(-)
diff --git a/web_src/src/components/MediaServerManger.vue b/web_src/src/components/MediaServerManger.vue
new file mode 100644
index 0000000..1d3c057
--- /dev/null
+++ b/web_src/src/components/MediaServerManger.vue
@@ -0,0 +1,181 @@
+<template>
+ <div id="mediaServerManger" style="width: 100%">
+ <div class="page-header">
+ <div class="page-title">节点列表</div>
+ <div class="page-header-btn">
+ <el-button icon="el-icon-plus" size="mini" style="margin-right: 1rem;" type="primary" @click="add">添加节点</el-button>
+ </div>
+ </div>
+
+ <el-row :gutter="12">
+ <el-col :span="num" v-for="item in mediaServerList" :key="item.id">
+ <el-card shadow="hover" :body-style="{ padding: '0px'}" class="server-card">
+ <div class="card-img-zlm"></div>
+ <div style="padding: 14px;text-align: left">
+ <span style="font-size: 16px">{{item.id}}</span>
+ <el-button v-if="!item.defaultServer" icon="el-icon-edit" style="padding: 0;float: right;" type="text" @click="edit(item)">编辑</el-button>
+ <el-button v-if="item.defaultServer" icon="el-icon-edit" style="padding: 0;float: right;" type="text" @click="edit(item)">查看</el-button>
+ <el-button v-if="!item.defaultServer" icon="el-icon-delete" style="margin-right: 10px;padding: 0;float: right;" type="text" @click="del(item)">移除</el-button>
+ <div style="margin-top: 13px; line-height: 12px; ">
+ <span style="font-size: 14px; color: #999; margin-top: 5px; ">{{item.ip}}</span>
+ <span style="font-size: 14px; color: #999; margin-top: 5px; float: right;">{{item.createTime}}</span>
+ </div>
+ </div>
+ <i v-if="item.status" class="iconfont icon-online server-card-status-online" title="在线"></i>
+ <i v-if="!item.status" class="iconfont icon-online server-card-status-offline" title="离线"></i>
+ <i v-if="item.defaultServer" class="server-card-default" >默认</i>
+ </el-card>
+ </el-col>
+ </el-row>
+ <mediaServerEdit ref="mediaServerEdit" ></mediaServerEdit>
+ </div>
+</template>
+
+<script>
+ import uiHeader from '../layout/UiHeader.vue'
+ import MediaServer from './service/MediaServer'
+ import mediaServerEdit from './dialog/MediaServerEdit'
+ export default {
+ name: 'mediaServerManger',
+ components: {
+ uiHeader,mediaServerEdit
+ },
+ data() {
+ return {
+ mediaServerObj : new MediaServer(),
+ mediaServerList: [], //设备列表
+ winHeight: window.innerHeight - 200,
+ updateLooper: false,
+ currentPage:1,
+ count:15,
+ num: this.getNumberByWidth(),
+ total:0,
+ };
+ },
+ computed: {
+
+ },
+ mounted() {
+ this.initData();
+ this.updateLooper = setInterval(this.initData, 2000);
+ },
+ destroyed() {
+ clearTimeout(this.updateLooper);
+ },
+ methods: {
+ initData: function() {
+ this.getServerList()
+ },
+ currentChange: function(val){
+ this.currentPage = val;
+ this.getServerList();
+ },
+ handleSizeChange: function(val){
+ this.count = val;
+ this.getServerList();
+ },
+ getServerList: function(){
+ this.mediaServerObj.getMediaServerList((data)=>{
+ this.mediaServerList = data.data;
+ })
+ },
+ add: function (){
+ this.$refs.mediaServerEdit.openDialog(null, this.initData)
+ },
+ edit: function (row){
+ this.$refs.mediaServerEdit.openDialog(row, this.initData)
+ },
+ del: function (row){
+ this.$confirm('确认删除此节点?', '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ }).then(() => {
+ this.mediaServerObj.delete(row.id, (data)=>{
+ if (data.code === 0) {
+ this.$message({
+ type: 'success',
+ message: '删除成功!'
+ });
+ }
+ })
+
+ }).catch(() => {
+ });
+
+ },
+ getNumberByWidth(){
+ let candidateNums = [1, 2, 3, 4, 6, 8, 12, 24]
+ let clientWidth = window.innerWidth - 30;
+ let interval = 20;
+ let itemWidth = 360;
+ let num = (clientWidth + interval)/(itemWidth + interval)
+ let result = Math.ceil(24/num);
+ let resultVal = 24;
+ for (let i = 0; i < candidateNums.length; i++) {
+ let value = candidateNums[i]
+ if (i + 1 >= candidateNums.length) {
+ return 24;
+ }
+ if (value <= result && candidateNums[i + 1] > result ) {
+ return value;
+ }
+ }
+
+ return resultVal;
+ },
+ dateFormat: function(/** timestamp=0 **/) {
+ var ts = arguments[0] || 0;
+ var t,y,m,d,h,i,s;
+ t = ts ? new Date(ts*1000) : new Date();
+ y = t.getFullYear();
+ m = t.getMonth()+1;
+ d = t.getDate();
+ h = t.getHours();
+ i = t.getMinutes();
+ s = t.getSeconds();
+ // 可根据需要在这里定义时间格式
+ return y+'-'+(m<10?'0'+m:m)+'-'+(d<10?'0'+d:d)+' '+(h<10?'0'+h:h)+':'+(i<10?'0'+i:i)+':'+(s<10?'0'+s:s);
+ }
+
+ }
+ };
+</script>
+
+<style>
+ .server-card{
+ position: relative;
+ margin-bottom: 20px;
+ }
+ .card-img-zlm{
+ width: 200px; height: 200px;
+ background: url('~@static/images/zlm-logo.png') no-repeat center;
+ background-position: center;
+ background-size: contain;
+ margin: 0 auto;
+ }
+ .server-card-status-online{
+ position: absolute;
+ right: 20px;
+ top: 20px;
+ color: #3caf36;
+ font-size: 18px;
+ }
+ .server-card-status-offline{
+ position: absolute;
+ right: 20px;
+ top: 20px;
+ color: #808080;
+ font-size: 18px;
+ }
+ .server-card-default{
+ position: absolute;
+ left: 20px;
+ top: 20px;
+ color: #808080;
+ font-size: 18px;
+ }
+ .server-card:hover {
+ border: 1px solid #adadad;
+ }
+</style>
--
Gitblit v1.9.3