src/pages/desktop/index/components/Desktop.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/settings/views/generalSettings.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/vindicate/views/backUp.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/vindicate/views/restartSettings.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/vindicate/views/systemClean.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/pages/desktop/index/components/Desktop.vue
@@ -15,10 +15,12 @@ >试用版尚未激活,仅支持部分功能使用,如需使用全部功能,请尽快激活系统。</span > <span v-else class="text">SmartAIOS 试用期已到期,请您尽快激活系统</span> <span class="go-to" @click="gotoActive">前往激活</span> <span class="icon iconfont" @click="showFreeVersion = false" ></span > <div> <span class="go-to" @click="gotoActive">前往激活</span> <span class="icon iconfont" @click="showFreeVersion = false" ></span > </div> </div> <el-dialog @@ -89,7 +91,7 @@ <span class="ver-text">状态:</span>{{ versionState }} </div> <el-divider></el-divider> <div class="info" v-if="versionName=='SmartAI正式版'"> <div class="info" v-if="versionName == 'SmartAI正式版'"> 如果您已连接到Internet并且已购买产品密钥,可以尝试验证SmartAI商城账户激活系统。 <div class="margin-top:10px;"> <el-button type="primary" @click="innerVisible = true"> @@ -97,10 +99,10 @@ </el-button> </div> </div> <div class="info" v-if="versionName=='SmartAI正式版'"> <div class="info" v-if="versionName == 'SmartAI正式版'"> 如果您未连接Internet或激活失败,可尝试离线激活,使用手机扫码购买产品或验证SmartAI商城账户激活系统。 </div> <div class="info" v-if="versionName!=='SmartAI正式版'"> <div class="info" v-if="versionName !== 'SmartAI正式版'"> 如果还没有产品密钥,你可以使用手机扫码或前往此链接 <a href="http://apps.smartai.com" target="_blank" >http://apps.smartai.com</a @@ -136,10 +138,16 @@ </div> <span slot="footer" class="dialog-footer"> <el-button v-if="!snExpire && versionName!='SmartAI正式版'" @click="activeDialog = false" <el-button v-if="!snExpire && versionName != 'SmartAI正式版'" @click="activeDialog = false" >继续试用</el-button > <el-button v-if="snExpire && versionName!='SmartAI正式版'" @click="$emit('quit')">退出登录</el-button> <el-button v-if="snExpire && versionName != 'SmartAI正式版'" @click="$emit('quit')" >退出登录</el-button > <el-button type="primary" @click="activateVersion">激活</el-button> </span> </el-dialog> @@ -158,24 +166,28 @@ <span> 请检查订单信息,确认无误后再激活系统。 </span> </div> <div class="order-list"> <div class="wrap" style=" margin: 0 5px;" v-for="(item, index) in orderList" :key="index"> <div class="order-list" v-if="orderList.length"> <div class="wrap" style="margin: 0 5px" v-for="(item, index) in orderList" :key="index" > <div class="order-card" v-for="(prod, i) in item.products" :key="i"> <div class="head"> <el-checkbox v-model="checked" @change="choseProd(item,prod)"> <span>订单ID:{{ item.id }}</span> </el-checkbox> <div class="head"> <el-checkbox v-model="checked" @change="choseProd(item, prod)"> <span>订单ID:{{ item.id }}</span> </el-checkbox> <span>{{ item.orderMoney }} 元</span> <span>{{ item.orderMoney }} 元</span> </div> <div class="desc"> <div>系统版本:{{ prod.edition }}</div> <div>通道数量:{{ prod.ChCount }}</div> <div>摄像机数量:{{ prod.cameraCount }}</div> <div>服务时长:{{ prod.serveYear }} 年</div> </div> </div> <div class="desc"> <div>系统版本:{{ prod.edition }}</div> <div>通道数量:{{ prod.ChCount }}</div> <div>摄像机数量:{{ prod.cameraCount }}</div> <div>服务时长:{{ prod.serveYear }} 年</div> </div> </div> </div> <!-- <div class="order-card" v-for="(item, index) in orderList" :key="index"> <div class="head"> @@ -194,12 +206,9 @@ </div> </div> --> </div> <div class="no-order-list" v-else>抱歉,没有查询到订单。</div> <span slot="footer" class="dialog-footer"> <!-- <el-button v-if="!snExpire" @click="activeDialog = false" >取消激活</el-button > --> <el-button @click="$emit('quit')">退出登录</el-button> <el-button @click="$emit('quit')">退出登录</el-button> <el-button type="primary" @click="activeVerByOrd">激活</el-button> </span> </el-dialog> @@ -217,7 +226,8 @@ uploadKey, getSmsCode, loginShopInSmart, getShopOrderList,activeByOrder, getShopOrderList, activeByOrder, } from "@/api/system"; export default { name: "Desktop", @@ -235,13 +245,14 @@ codeMsg: "获取验证码", versionState: "尚未激活", secrectKey: "", curOrder:{}, curProd:{}, curOrder: {}, curProd: {}, codeDisabled: false, innerVisible: false, snExpire: false, timer: null, token: "",orderList:[], token: "", orderList: [], phone: { phoneNum: "", verifyCode: "", @@ -258,22 +269,27 @@ this.validateSn(); }, methods: { activeVerByOrd(){ activeVerByOrd() { activeByOrder({ token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NDMzODUzNjgsInVzZXIiOiJ7XCJpZFwiOlwiZTZjY2QzNmQtNGYxNi00NmZjLTg4ZDUtMDczNjU4NjZkMjA1XCIsXCJwZXJtaXNzaW9uc1wiOltcInByb2R1Y3RDZW50ZXI6dmlld1wiLFwib3JkZXJNYW5nZTpjYW5jZWxcIixcImRldmljZU1hbmFnZTp2aWV3XCIsXCJwcm9kdWN0TWFuZ2U6ZWRpdFwiLFwiY29kZU1hbmdlOmFkZFwiLFwibG9nTWFuYWdlXCIsXCJkaWNNYW5hZ2VcIixcIm9yZGVyTWFuZ2U6dmlld1wiLFwib3JkZXJNYW5nZTpwYXlcIixcIm9yZGVyTWFuZ2U6ZG93bmxvYWRcIixcInByb2R1Y3RDZW50ZXJcIixcImFwcE1hbmFnZVwiLFwicHJvZHVjdE1hbmdlOmFkZFwiLFwicHJvZHVjdE1hbmdlOnZpZXdcIixcInZpcE1hbmFnZVwiLFwiYXBpXCIsXCJ2aXBNYW5hZ2U6YWRkXCIsXCJhZG1pbk1hbmFnZVwiLFwicHJvZHVjdE1hbmdlXCIsXCJwcm9kdWN0Q2VudGVyOmRvd25sb2FkXCIsXCJhZG1pbk1hbmFnZTphZGRcIixcInByb2R1Y3RDZW50ZXI6YnV5XCIsXCJzZGtNYW5hZ2VcIixcImRldmljZU1hbmFnZTphZGRcIixcImNvZGVNYW5nZVwiLFwiYWRtaW5NYW5hZ2U6dmlld1wiLFwidmlwTWFuYWdlOmVkaXRcIixcImNvZGVNYW5nZTp2aWV3XCIsXCJkZXZpY2VNYW5hZ2VcIixcImhvbWVcIixcInByb2R1Y3RNYW5nZTpwdWJsaXNoXCIsXCJkZXZpY2VNYW5hZ2U6dW5iaW5kXCIsXCJ2aXBNYW5hZ2U6dmlld1wiLFwib3JkZXJNYW5nZVwiLFwicHJvZHVjdE1hbmdlOm9mZlNhbGVcIixcImFkbWluTWFuYWdlOmVkaXRcIl0sXCJ1c2VybmFtZVwiOlwiYmFzaWNcIn0ifQ.WVdowrEmEmIrZUhELckbNGBzwwaHOD9UgvB0Ki1Jbe0", activateCode:this.curProd.activateCode, productId:this.curProd.productId, orderId:this.curOrder.id token: this.token, activateCode: this.curProd.activateCode, productId: this.curProd.productId, orderId: this.curOrder.id, }).then((res) => { debugger }) if (res.code == 200) { this.$notify.success("激活成功"); this.innerDialog = false; this.versionName = this.getVersionName(res.data.edition); } else { this.$notify.error("激活失败"); } }); }, validateSn() { getSN().then((res) => { this.snExpire = res.data.expire; this.showFreeVersion = res.data.sn == "" || res.data.expire; this.versionName = this.getVersionName('official'); // this.versionName = this.getVersionName(res.data.edition); this.versionName = this.getVersionName(res.data.edition); }); }, getValidStr() { @@ -290,10 +306,10 @@ } } }, choseProd(order,prod){ debugger this.curOrder= order this.curProd=prod choseProd(order, prod) { debugger; this.curOrder = order; this.curProd = prod; }, getVersionName(s) { switch (s) { @@ -313,34 +329,39 @@ } }, loginShop() { this.innerDialog = true this.activeDialog=false getShopOrderList({ token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NDMzODUzNjgsInVzZXIiOiJ7XCJpZFwiOlwiZTZjY2QzNmQtNGYxNi00NmZjLTg4ZDUtMDczNjU4NjZkMjA1XCIsXCJwZXJtaXNzaW9uc1wiOltcInByb2R1Y3RDZW50ZXI6dmlld1wiLFwib3JkZXJNYW5nZTpjYW5jZWxcIixcImRldmljZU1hbmFnZTp2aWV3XCIsXCJwcm9kdWN0TWFuZ2U6ZWRpdFwiLFwiY29kZU1hbmdlOmFkZFwiLFwibG9nTWFuYWdlXCIsXCJkaWNNYW5hZ2VcIixcIm9yZGVyTWFuZ2U6dmlld1wiLFwib3JkZXJNYW5nZTpwYXlcIixcIm9yZGVyTWFuZ2U6ZG93bmxvYWRcIixcInByb2R1Y3RDZW50ZXJcIixcImFwcE1hbmFnZVwiLFwicHJvZHVjdE1hbmdlOmFkZFwiLFwicHJvZHVjdE1hbmdlOnZpZXdcIixcInZpcE1hbmFnZVwiLFwiYXBpXCIsXCJ2aXBNYW5hZ2U6YWRkXCIsXCJhZG1pbk1hbmFnZVwiLFwicHJvZHVjdE1hbmdlXCIsXCJwcm9kdWN0Q2VudGVyOmRvd25sb2FkXCIsXCJhZG1pbk1hbmFnZTphZGRcIixcInByb2R1Y3RDZW50ZXI6YnV5XCIsXCJzZGtNYW5hZ2VcIixcImRldmljZU1hbmFnZTphZGRcIixcImNvZGVNYW5nZVwiLFwiYWRtaW5NYW5hZ2U6dmlld1wiLFwidmlwTWFuYWdlOmVkaXRcIixcImNvZGVNYW5nZTp2aWV3XCIsXCJkZXZpY2VNYW5hZ2VcIixcImhvbWVcIixcInByb2R1Y3RNYW5nZTpwdWJsaXNoXCIsXCJkZXZpY2VNYW5hZ2U6dW5iaW5kXCIsXCJ2aXBNYW5hZ2U6dmlld1wiLFwib3JkZXJNYW5nZVwiLFwicHJvZHVjdE1hbmdlOm9mZlNhbGVcIixcImFkbWluTWFuYWdlOmVkaXRcIl0sXCJ1c2VybmFtZVwiOlwiYmFzaWNcIn0ifQ.WVdowrEmEmIrZUhELckbNGBzwwaHOD9UgvB0Ki1Jbe0", }).then((res) => { this.orderList=res.data.list }); // this.$refs["phoneLogin"].validate((valid) => { // if (valid) { // let param = { // phoneNum: this.phone.phoneNum, // verifyCode: this.phone.verifyCode, // }; // loginShopInSmart(param).then((res) => { // this.innerDialog = true; // this.activeDialog = false; // this.token = res.data.access_token // getShopOrderList({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NDMyMTYyODMsInVzZXIiOiJ7XCJpZFwiOlwiZTZjY2QzNmQtNGYxNi00NmZjLTg4ZDUtMDczNjU4NjZkMjA1XCIsXCJwZXJtaXNzaW9uc1wiOltcIm9yZGVyTWFuZ2U6dmlld1wiLFwib3JkZXJNYW5nZTpjYW5jZWxcIixcImRldmljZU1hbmFnZTp2aWV3XCIsXCJhZG1pbk1hbmFnZTphZGRcIixcImRldmljZU1hbmFnZTphZGRcIixcImFkbWluTWFuYWdlOmVkaXRcIixcImNvZGVNYW5nZTp2aWV3XCIsXCJjb2RlTWFuZ2U6YWRkXCIsXCJkZXZpY2VNYW5hZ2U6dW5iaW5kXCIsXCJvcmRlck1hbmdlXCIsXCJwcm9kdWN0Q2VudGVyXCIsXCJ2aXBNYW5hZ2VcIixcImRpY01hbmFnZVwiLFwicHJvZHVjdENlbnRlcjp2aWV3XCIsXCJvcmRlck1hbmdlOnBheVwiLFwibG9nTWFuYWdlXCIsXCJkZXZpY2VNYW5hZ2VcIixcImFkbWluTWFuYWdlXCIsXCJwcm9kdWN0TWFuZ2VcIixcInZpcE1hbmFnZTplZGl0XCIsXCJjb2RlTWFuZ2VcIixcInByb2R1Y3RDZW50ZXI6YnV5XCIsXCJwcm9kdWN0TWFuZ2U6dmlld1wiLFwic2RrTWFuYWdlXCIsXCJob21lXCIsXCJwcm9kdWN0Q2VudGVyOmRvd25sb2FkXCIsXCJwcm9kdWN0TWFuZ2U6b2ZmU2FsZVwiLFwiYWRtaW5NYW5hZ2U6dmlld1wiLFwib3JkZXJNYW5nZTpkb3dubG9hZFwiLFwicHJvZHVjdE1hbmdlOmFkZFwiLFwidmlwTWFuYWdlOmFkZFwiLFwiYXBwTWFuYWdlXCIsXCJ2aXBNYW5hZ2U6dmlld1wiLFwicHJvZHVjdE1hbmdlOmVkaXRcIixcImFwaVwiLFwicHJvZHVjdE1hbmdlOnB1Ymxpc2hcIl0sXCJ1c2VybmFtZVwiOlwiYmFzaWNcIn0ifQ.DaTOv8pnh8kG1TPtuNVSo2qPc2z9wGxl2cMZtJ8iwo0"}).then((res) => { // debugger // res.data // }) // }); // } else { // this.nullRule = {}; // } // this.innerDialog = true // this.activeDialog=false // getShopOrderList({ // token: "", // }).then((res) => { // this.orderList=res.data.list // }); this.$refs["phoneLogin"].validate((valid) => { if (valid) { let param = { phoneNum: this.phone.phoneNum, verifyCode: this.phone.verifyCode, }; loginShopInSmart(param).then((res) => { this.innerDialog = true; this.activeDialog = false; this.token = res.data.access_token; getShopOrderList({ token: this.token }) .then((res) => { if (res.code == 200) { this.orderList = res.data.list; } else { this.$notify.error("获取订单列表失败"); } }) .catch(() => { this.$notify.error("获取订单列表失败"); }); }); } else { this.nullRule = {}; } }); }, cancelLogin() { this.innerVisible = false; @@ -529,6 +550,11 @@ font-size: 14px; } } .no-order-list { margin-top: 20px; font-size: 16px; color: red; } .order-list { margin: 20px 0; height: 550px; @@ -564,7 +590,7 @@ } } .warn-tag { width: 650px; width: 630px; text-align: left; box-sizing: border-box; padding: 0 25px; @@ -575,7 +601,7 @@ display: flex; justify-content: space-between; top: 55px; left: calc(50% - 325px); left: calc(50% - 315px); line-height: 45px; border-radius: 5px; .go-to { @@ -591,6 +617,7 @@ .icon { font-size: 14px; cursor: pointer; margin-left: 25px; } } </style> src/pages/settings/views/generalSettings.vue
@@ -16,48 +16,6 @@ </div> </div> <div class="general-right"> <!-- <div class="lang" v-if="activePage == 0"> <div class="bar"> <span class="name">设备ID</span> <span class="desc">{{ deviceInfo.server_id }}</span> </div> <div class="bar"> <span class="name">设备型号</span> <span class="desc">{{ deviceInfo.deviceModel }}</span> </div> <div class="bar"> <span class="name">设备类型</span> <span class="desc">{{ deviceInfo.deviceDesc }}</span> </div> <div class="bar"> <span class="name">通道个数</span> <span class="desc">{{ deviceInfo.channelCount }}</span> </div> <div class="bar"> <span class="name">主控版本</span> <span class="desc">{{ deviceInfo.masterVersion }}</span> </div> <div class="bar"> <span class="name">web版本</span> <span class="desc">{{ deviceInfo.webVersion }}</span> </div> <div class="bar"> <span class="name">硬盘信息</span> <span class="desc">{{ deviceInfo.disks }}</span> </div> <div class="bar"> <span class="name">CPU</span> <span class="desc">{{ deviceInfo.cpu }}</span> </div> <div class="bar"> <span class="name">内存</span> <span class="desc">{{ deviceInfo.memory }}</span> </div> <div class="bar"> <span class="name">运行时间</span> <span class="desc">{{ deviceInfo.runningTime }}</span> </div> </div> --> <div class="lang videoTime" v-if="activePage == 0"> <div class="min-dur"> <div class="title">抓拍前录像时长</div> @@ -77,27 +35,16 @@ :format-tooltip="formatTooltip" ></el-slider> </div> <!-- <el-input-number <el-input-number v-model="min_len" @change="fakeObj.min = +(min_len / 1.2)" controls-position="right" :min="5" :step="5" :max="120" step-strictly size="small" ></el-input-number > s --> <el-input-number v-model="min_len" @change="fakeObj.min = +(min_len / 1.2)" :min="5" :step="5" :max="120" step-strictly size="small" ></el-input-number> s > s </div> </div> <div class="min-dur"> @@ -127,7 +74,6 @@ size="small" ></el-input-number > s </div> </div> @@ -156,18 +102,17 @@ style="cursor: pointer" >{{ playSpan }}</span > <!-- <span class="iconfont" v-else style="cursor: pointer">{{ playSpan2 }}</span> --> <img v-else src="/images/settings/暂停.png" alt="" style="width:16px;hight:16px;cursor: pointer;margin-top:15px;"> <!-- <i v-if="!item.isPlay" class="el-icon-video-play" style="" ></i> <i v-else class="el-icon-video-pause"></i> --> <img v-else src="/images/settings/暂停.png" alt="" style=" width: 16px; hight: 16px; cursor: pointer; margin-top: 15px; " /> </span> <span class="icon iconfont del" @@ -208,33 +153,35 @@ <div class="self-setting" v-if="activePage == 2"> <div class="top-title">颜色主题</div> <div class="color-bar"> <div class="color-bar"> <div v-for="(item,index) in colorList" :key="index" style="border:none;" v-for="(item, index) in colorList" :key="index" style="border: none" > <div class="color-option" v-if="universalColor != index" :style="{cursor: 'pointer',backgroundColor:item.color}" @click="colorCard(item.color,index)" /> <div class="color-option" v-if="universalColor != index" :style="{ cursor: 'pointer', backgroundColor: item.color }" @click="colorCard(item.color, index)" /> <div class="color-option color-option-active" v-else :style="{cursor: 'pointer',border:`2px solid ${item.color}`}" @click="colorCard(item.color,index)"> <div :style="{backgroundColor:item.color}" class="color-option-content"> </div> <div class="color-option color-option-active" v-else :style="{ cursor: 'pointer', border: `2px solid ${item.color}`, }" @click="colorCard(item.color, index)" > <div :style="{ backgroundColor: item.color }" class="color-option-content" ></div> </div> </div> </div> </div> <div class="top-title">图标主题</div> <div class="icon-bar" style="cursor: pointer" @click="selectIcons(0)"> <div class="bar-title"> @@ -274,14 +221,14 @@ </div> </div> </div> <div class="top-title">桌面背景主题</div> <div class="bg-bar"> <div class="bg-list"> <div v-for="(item, i) in tableBGList" class="bg-img" :class="activeBg == i ? 'bg-list-active' : ''" :class="activeBg == i ? 'bg-list-active' : ''" :key="i" @click="pickBg(item, i)" > @@ -298,9 +245,7 @@ <script> import { saveAlarmConfig, getDevInfo } from "@/api/system"; import { uploadSound, getSoundList, deleteSound } from "@/api/event"; import { updateUser, } from "@/api/user"; import { updateUser } from "@/api/user"; export default { data() { return { @@ -318,7 +263,6 @@ max: 0, }, menuArr: [ // { name: "设备信息", icon: "\ue933" ,size:18}, { name: "事件录像时长", icon: "\ue74f", size: 20 }, { name: "事件声音", icon: "\ueb5e", size: 16 }, { name: "个性化设置", icon: "\ue750", size: 18 }, @@ -355,18 +299,18 @@ { name: "message", url: "/images/desktop/message.png" }, { name: "weather", url: "/images/desktop/weather.png" }, ], universalColor:'', universalColor: "", colorList: [ {name:1 ,color:"#FC6B9E"}, {name:2 ,color:"#F38F56"}, {name:3 ,color:"#FDD33A"}, {name:4 ,color:"#53D999"}, {name:5 ,color:"#21CDB2"}, {name:6 ,color:"#61E2EB"}, {name:7 ,color:"#4E94FF"}, {name:8 ,color:"#8E8CD8"}, {name:9 ,color:"#4C4A48"}, ] { name: 1, color: "#FC6B9E" }, { name: 2, color: "#F38F56" }, { name: 3, color: "#FDD33A" }, { name: 4, color: "#53D999" }, { name: 5, color: "#21CDB2" }, { name: 6, color: "#61E2EB" }, { name: 7, color: "#4E94FF" }, { name: 8, color: "#8E8CD8" }, { name: 9, color: "#4C4A48" }, ], }; }, mounted() { @@ -380,17 +324,11 @@ } }); const url = this.curUser.backgroundpic; this.activeIcons = this.curUser.useIconType-1 this.universalColor = this.colorList.findIndex((x) => { return x.color == localStorage.getItem("--colorCard") }) if (url) { this.activeBg = this.tableBGList.findIndex((x) => { return x.url == url; }); } else { this.activeBg = 0; } this.activeIcons = this.curUser.useIconType - 1; this.universalColor = this.colorList.findIndex( (x) => x.color == localStorage.getItem("--colorCard") ); this.activeBg = url ? this.tableBGList.findIndex((x) => x.url == url) : 0; const e = this.$refs.curPage; e.addEventListener("click", (e) => { if (this.showUpload) { @@ -409,8 +347,7 @@ return Math.round(this.fakeObj.max * 1.2); }, curUser() { const info = JSON.parse(sessionStorage.getItem("userInfo")); return info; return JSON.parse(sessionStorage.getItem("userInfo")); }, }, methods: { @@ -420,18 +357,17 @@ pickBg(item, i) { this.activeBg = i; let message = "changeBackground?" + item.name; window.parent.postMessage( {msg: message, }, "*" ); window.parent.postMessage({ msg: message }, "*"); updateUser({ id: this.curUser.id, backgroundpic: item.url, }).then((res) => { if (res.success) { sessionStorage.setItem("userInfo", JSON.stringify(res.data)) debugger sessionStorage.setItem("userInfo", JSON.stringify(res.data)); this.$message.success(res.msg); } }); this.$forceUpdate() this.$forceUpdate(); }, togglePlay(item, i) { if (this.curPlayingIndex !== null) { @@ -508,12 +444,12 @@ this.activeIcons = i; updateUser({ id: this.curUser.id, iconType: i+1, iconType: i + 1, }).then((res) => { if (res.success) { window.parent.postMessage({ msg: "AppUpdate" }, "*"); sessionStorage.setItem("userInfo", JSON.stringify(res.data)) debugger sessionStorage.setItem("userInfo", JSON.stringify(res.data)); debugger; this.$message.success(res.msg); } }); @@ -577,12 +513,12 @@ } }); }, colorCard(color,index) { this.universalColor = index document.documentElement.style.setProperty('--colorCard',`${color}`) localStorage.setItem('--colorCard',`${color}`) window.parent.postMessage({msg:'changeColor',color},'*') } colorCard(color, index) { this.universalColor = index; document.documentElement.style.setProperty("--colorCard", `${color}`); localStorage.setItem("--colorCard", `${color}`); window.parent.postMessage({ msg: "changeColor", color }, "*"); }, }, }; </script> @@ -600,8 +536,8 @@ flex-basis: auto; box-sizing: border-box; .el-input__inner { height: 24px !important; } height: 24px !important; } .general-center { height: 100%; width: 300px; @@ -638,7 +574,7 @@ color: white !important; } .menu-item:hover { background-color: #F2F2F7; background-color: #f2f2f7; } } .general-right { @@ -663,7 +599,7 @@ .el-form-item { margin-bottom: 10px; height: 50px; background: #F2F2F7; background: #f2f2f7; padding: 4px 20px; -webkit-box-sizing: border-box; box-sizing: border-box; @@ -696,18 +632,18 @@ text-align: center; font-weight: 700; border: none; background: #F2F2F7; background: #f2f2f7; border-radius: 8px; height: 48px; margin-bottom: 4px; border:2px solid #F2F2F7 !important; } border: 2px solid #f2f2f7 !important; } .bar-group { overflow: auto; height: calc(100% - 100px); .general-bar { height: 48px; background: #F2F2F7; background: #f2f2f7; border-radius: 10px; line-height: 48px; box-sizing: border-box; @@ -716,7 +652,7 @@ display: flex; justify-content: space-between; margin-bottom: 2px; border:2px solid #F2F2F7; border: 2px solid #f2f2f7; margin-bottom: 4px; .name { font-size: 14px; @@ -726,18 +662,7 @@ display: flex; justify-content: space-between; color: rgba(191, 191, 191, 1); /* .el-icon-video-pause { cursor: pointer; font-size: 23px; vertical-align: middle; color: #409eff; } .el-icon-video-play { cursor: pointer; font-size: 23px; vertical-align: middle; color: #409eff; } */ span { color: #333; } @@ -783,7 +708,7 @@ .min-dur { box-sizing: border-box; padding: 0 20px; background-color: #F2F2F7; background-color: #f2f2f7; height: 105px; margin-bottom: 4px; border-radius: 15px; @@ -812,7 +737,7 @@ min-width: 30px; line-height: 80px; margin-right: 10px; color:#333 ; color: #333; font-size: 8px; } .block { @@ -871,9 +796,7 @@ font-weight: 700; margin-top: 20px; } /* .icon-bar:hover { background-color: rgba(233, 233, 233, 1); } */ .color-bar { display: flex; justify-content: center; @@ -882,26 +805,26 @@ height: 96px; background-color: #fff; border-radius: 8px; padding-left:7px ; padding-left: 7px; .color-option { margin-right:12px ; margin-right: 12px; width: 30px; height: 30px; border-radius:50% ; border-radius: 50%; } .color-option-active { box-sizing: border-box; margin-right:12px ; margin-right: 12px; width: 30px; height: 30px; border-radius:50% ; border-radius: 50%; background-color: #fff; padding: 4px; .color-option-content { width: 100%; height: 100%; border-radius:50% ; border-radius: 50%; } } } @@ -909,7 +832,7 @@ cursor: pointer; box-sizing: border-box; padding: 15px 13px 14px 20px; background: #F2F2F7; background: #f2f2f7; border-radius: 8px; margin-bottom: 10px; .bar-title { @@ -928,12 +851,12 @@ } .icon-normal { font-size: 16px; color: #E0E0E0; color: #e0e0e0; } } .entity { display: flex; margin-left:5px ; margin-left: 5px; .entity-img { background-color: rgba(248, 248, 248, 1); width: 50px; @@ -947,7 +870,7 @@ } } .bg-bar { background-color: #F2F2F7; background-color: #f2f2f7; box-sizing: border-box; padding: 15px 25px; border-radius: 12px; @@ -965,7 +888,7 @@ height: 100%; } } /* .bg-img:hover { /* .bg-img:hover { border: 2px solid yellow; } */ .bg-list-active { @@ -1012,10 +935,10 @@ margin-top: 30px; } .info-click { color: var(--colorCard); text-decoration: underline; } .info-click { color: var(--colorCard); text-decoration: underline; } .info-click { color: #4e94ff; @@ -1044,7 +967,7 @@ font-size: 14px; } .warn-icon { color: #fe6d68; color: var(--colorCard); font-size: 40px; margin-top: 11px; } @@ -1070,7 +993,7 @@ .el-message-box__btns { display: flex; justify-content: center; margin-top: 20px; margin: 20px; .el-button:focus, .el-button:hover { background-color: none; @@ -1097,8 +1020,8 @@ button:last-child { background-color: var(--colorCard) !important; border: 1px solid var(--colorCard) !important; span { color: #fff; span { color: #fff; } } } @@ -1106,17 +1029,15 @@ </style> <style> .videoTime .el-slider__button { margin-top: -25px !important; border: none !important; } .videoTime .el-slider__button::after { display: block; position: relative; content: "\e75d"; content: "\e75d"; color: var(--colorCard); font-family: "iconfont" !important; font-size: 16px; @@ -1126,7 +1047,7 @@ } .videoTime .el-tooltip { background-color: #F2F2F7 !important; background-color: #f2f2f7 !important; border: none !important; } @@ -1136,10 +1057,10 @@ } .videoTime .el-slider__stop { background-color: #C4C4C4 !important; background-color: #c4c4c4 !important; height: 3px !important; width: 8px !important; border-radius:0 !important; border-radius: 0 !important; } .videoTime .el-slider__bar { @@ -1155,68 +1076,29 @@ font-weight: 700 !important; } .videoTime .el-input-number.el-input-number--small .el-input__inner { font-size: 12px !important; height: 24px !important; font-size: 12px !important; height: 24px !important; } .el-input-number__decrease { color: #333 !important; /* top: 4px !important; */ height: 22px !important; width: 20px !important; line-height: 22px !important; color: #333 !important; /* top: 4px !important; */ height: 22px !important; width: 20px !important; line-height: 22px !important; } /* .el-input-number__decrease:hover i{ color: var(--colorCard); } */ .el-input-number__increase { color: #333 !important; /* top: 4px !important; */ height: 22px !important; width: 24px !important; line-height: 22px !important; color: #333 !important; /* top: 4px !important; */ height: 22px !important; width: 24px !important; line-height: 22px !important; } .el-input-number__increase:hover i{ /* color: var(--colorCard); */ color: #4E94FF; .el-input-number__increase:hover i { /* color: var(--colorCard); */ color: #4e94ff; } /* .el-tooltip__popper { font-size: 12px !important; background-color: transparent !important; color:var(--colorCard) !important; } .popper__arrow::after { border-color: transparent !important; border: none !important; } .popper__arrow:after { border-bottom-color: green !important; } .popper__arrow:after { border-top-color: pink !important; } .toolClass { border: none !important; } .toolClass { border: none !important; } .el-slider__button::after { border: none !important; } */ </style> src/pages/vindicate/views/backUp.vue
@@ -28,7 +28,6 @@ </div> <div class="bar"> <div class="name">备份目录</div> <!-- <input type="file" id="file_input" webkitdirectory directory /> --> <el-input v-model="dir" :placeholder="'请输入备份目录'" @@ -66,16 +65,20 @@ <div class="recover" v-if="activePage == 1"> <div class="title">显示备份的文件范围:{{ 5 }}</div> <div class="table-head"> <span class="line1">自动备份时间</span> <span class="line1">备份文件名称</span> <span class="line2">操作</span> </div> <div class="table-body"> <div class="table-head"> <span class="line1">自动备份时间</span> <span class="line1">备份文件名称</span> <span class="line2">恢复备份</span> </div> <div class="bar" v-for="(item, i) in fileList" :key="i"> <span class="time">{{ item }}</span> <span class="time">{{ item }}</span> <span class="operation" @click="recoverFile(item)">恢复</span> <div class="bar" v-for="(item, i) in fileList" :key="i"> <span class="time">{{ item }}</span> <span class="time">{{ item }}</span> <span class="operation iconfont" @click="recoverFile(item)" > </span> </div> </div> </div> </div> @@ -92,7 +95,6 @@ recoverBackup, } from "@/api/system"; export default { mounted() {}, created() { this.getBakConfig(); this.getBakFileList(); @@ -173,10 +175,10 @@ }); }, recoverFile(bakDir) { recoverBackup({bakDir}).then((res) => { debugger res.data }) recoverBackup({ bakDir }).then((res) => { debugger; res.data; }); }, saveBakConfig() { setBakConfig({ @@ -208,7 +210,6 @@ width: 100%; background-color: #fbfaff; } .backup-content { height: 100%; display: flex; @@ -270,6 +271,7 @@ .backup-right { flex: 1; flex-basis: auto; padding: 10px; overflow: auto; box-sizing: border-box; position: relative; @@ -308,16 +310,25 @@ .bar { display: flex; align-items: center; height: 50px; padding: 0 25px; background-color: #f8f8f8; justify-content: space-between; border-radius: 12px; margin-bottom: 10px; border-radius: 8px; margin-bottom: 10px; height: 48px; background-color: #f2f2f7; .el-button--small, .el-button--small.is-round { padding: 9px 19px; background: var(--colorCard) !important; border-radius: 25px; border-color: var(--colorCard) !important; } .name { font-size: 15px; font-size: 14px; text-align: left; min-width: 180px; font-weight: 600; min-width: 170px; } .el-input { width: 100%; @@ -327,65 +338,79 @@ .el-input__inner { border: none; border-radius: 8px; background-color: rgba(240, 240, 240, 1); text-align: left; background: #fbfaff; border-radius: 20px; } } } } .recover { .title { font-size: 13px; color: #868686; text-align: left; padding: 0 10px; margin-bottom: 10px; } .table-head { height: 30px; line-height: 30px; display: flex; // justify-content: space-between; box-sizing: border-box; font-size: 15px; padding: 0 10px; margin-bottom: 5px; .line1 { flex: 4; text-align: left; } .line2 { flex: 1; text-align: right; } } .bar { height: 40px; background-color: rgba(248, 248, 248, 1); display: flex; box-sizing: border-box; padding: 0 10px; align-items: center; border-radius: 8px; color: #797979; font-size: 14px; color: #333333; text-align: left; margin-bottom: 10px; .time { width: 45%; text-align: left; line-height: 18px; font-weight: bold; } .table-body { box-sizing: border-box; padding: 10px 20px; padding-bottom: 5px; background: #f2f2f7; border-radius: 8px; .table-head { height: 30px; line-height: 30px; display: flex; box-sizing: border-box; font-size: 15px; padding: 0 10px; margin-bottom: 5px; font-size: 14px; color: #666666; .line1 { flex: 3; text-align: left; } .line2 { flex: 1; text-align: left; min-width: 60px; } } .operation { color: var(--colorCard); cursor: pointer; width: 10%; text-align: right; .bar { height: 32px; background-color: #ffffff; display: flex; box-sizing: border-box; padding: 0 10px; align-items: center; border-radius: 20px; color: #333333; font-size: 12px; margin-bottom: 8px; font-weight: bold; .time { width: 42.857%; text-align: left; } .operation { color: var(--colorCard); cursor: pointer; width: 14.2857%; min-width: 60px; text-align: left; font-size: 20px; } } } } .save-btn { width: 251px; height: 40px; margin-top: 80px; margin-top: 100px; background: var(--colorCard) !important; border: 1px solid var(--colorCard) !important; border-radius: 25px; src/pages/vindicate/views/restartSettings.vue
@@ -452,7 +452,7 @@ <style lang="scss"> .warn-icon { color: #fe6d68; color: var(--colorCard); font-size: 40px; margin-top: 11px; } @@ -478,7 +478,7 @@ .el-message-box__btns { display: flex; justify-content: center; margin-top: 20px; margin: 20px; .el-button:focus, .el-button:hover { background-color: none; src/pages/vindicate/views/systemClean.vue
@@ -293,7 +293,7 @@ <style scoped lang="scss"> .warn-icon { color: #fe6d68; color: var(--colorCard); font-size: 40px; margin-top: 11px; } @@ -319,7 +319,7 @@ .el-message-box__btns { display: flex; justify-content: center; margin-top: 20px; margin: 20px; .el-button:focus, .el-button:hover { background-color: none;