src/api/shuohuang.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/maintain/index/App.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/maintain/views/systemClean.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/systemSettings/views/NetSettings.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/systemSettings/views/generalSettings.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/systemSettings/views/keyboardLanguage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
vue.config.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/shuohuang.ts
@@ -36,7 +36,7 @@ method: 'get', params: query }) export const getCarVideos = (query: any) => export const getCarVideos = (query: any) => request({ url: '/data/api-c/lkg/getCarVideos', method: 'get', @@ -125,39 +125,44 @@ method: 'post', data }) export const uploadDirectory = (data:any) => export const uploadDirectory = (data: any) => request({ url:'/data/api-c/user/uploadMulti', method:'post', url: '/data/api-c/user/uploadMulti', method: 'post', data }) export const getTransferRecord = (query:any) => request({ url:'/data/api-c/saverecord/getlst', export const getTransferRecord = (query: any) => request({ url: '/data/api-c/saverecord/getlst', method: 'get', params: query }) export const getTransferStatusList = () => request({ url:'/data/api-c/saverecord/getStatusList', url: '/data/api-c/saverecord/getStatusList', method: 'get' }) export const addDevice = (data:any)=>request({ url:'/data/api-c/device/add', export const addDevice = (data: any) => request({ url: '/data/api-c/device/add', method: 'post', data }) export const getDeviceList = ()=>request({ url:'/data/api-c/device/getlst', export const getDeviceList = () => request({ url: '/data/api-c/device/getlst', method: 'get' }) export const getDeviceInfoById = (query:any) => request({ url:'/data/api-c/slot/getlst', export const getDeviceInfoById = (query: any) => request({ url: '/data/api-c/slot/getlst', method: 'get', params: query }) export const getEventVideo = (query:any) => request({ url:'/data/api-c/lkg/getEventClip', export const getEventVideo = (query: any) => request({ url: '/data/api-c/lkg/getEventClip', method: 'get', params: query }) export const downloadFile = (query: any) => request({ url: '/data/api-c/lkg/getEventClip', method: 'get', params: query }) src/pages/maintain/index/App.vue
@@ -11,22 +11,10 @@ <span class="card-text">{{ item.name }}</span> </div> </div> <systemClean v-if="activePage == '系统清理'" style="width: 100%" ></systemClean> <updateSettings v-if="activePage == '更新设置'" style="width: 100%" ></updateSettings> <back-up v-if="activePage == '备份还原'" style="width: 100%" ></back-up> <restartSettings v-if="activePage == '重启设置'" style="width: 100%" ></restartSettings> <systemClean v-if="activePage == '系统清理'" style="width: 100%"></systemClean> <updateSettings v-if="activePage == '更新设置'" style="width: 100%"></updateSettings> <back-up v-if="activePage == '备份还原'" style="width: 100%"></back-up> <restartSettings v-if="activePage == '重启设置'" style="width: 100%"></restartSettings> </div> </template> @@ -36,8 +24,6 @@ saveClockInfo, testNTPserver, } from "@/api/system"; import switchBar from "../components/switchBar"; import ipInput from "@/components/subComponents/IPInput"; import systemClean from "../views/systemClean"; import updateSettings from "../views/updateSettings"; import BackUp from "../views/backUp"; @@ -45,8 +31,6 @@ export default { name: "settings", components: { switchBar, ipInput, systemClean, updateSettings, BackUp, @@ -140,7 +124,6 @@ border-right: 5px solid rgba(248, 248, 248, 1); box-sizing: border-box; .account-left { .add-account { color: rgba(61, 104, 225, 1); margin-top: 50px; @@ -171,7 +154,6 @@ font-size: 14px; } } } .datetime-left { .time-card { src/pages/maintain/views/systemClean.vue
@@ -1,9 +1,5 @@ <template> <div class="clear" v-loading="loading" :element-loading-text="loadingText" > <div class="clear" v-loading="loading" :element-loading-text="loadingText"> <div class="head"> <span class="t">请选择要清理的数据范围</span> <el-date-picker @@ -16,8 +12,7 @@ start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" > </el-date-picker> ></el-date-picker> </div> <div class="desc"> @@ -34,9 +29,7 @@ <div class="warm"> <!-- <span class="icon iconfont" style="margin-right:5px"></span> --> <i class="iconfont icontishi-zhuyi"></i> <span class="text" >请注意,按以上日期范围删除的数据不可恢复,立即生效,请谨慎操作!</span > <span class="text">请注意,按以上日期范围删除的数据不可恢复,立即生效,请谨慎操作!</span> </div> </div> </div> @@ -59,17 +52,10 @@ dataRange: [ this.$moment().format("YYYY-MM-DD HH:mm:ss"), this.$moment().format("YYYY-MM-DD HH:mm:ss"), ], pickerOptions: { disabledDate(time) { var day = new Date(); day.setTime(day.getTime() - 24 * 60 * 60 * 1000); return time.getTime() > day; }, }, ] }; }, mounted() {}, mounted() { }, methods: { deleteData() { @@ -78,10 +64,10 @@ var showEndTime = timeRange[1]; this.$confirm( "提示:" + showStartTime + " 至 " + showEndTime + " 产生的全部数据将被删除,此操作立即生效,不可恢复,是否删除?", showStartTime + " 至 " + showEndTime + " 产生的全部数据将被删除,此操作立即生效,不可恢复,是否删除?", { center: true, cancelButtonClass: "comfirm-class-cancle", @@ -112,7 +98,7 @@ this.loading = false }); }) .catch(() => {}); .catch(() => { }); }, format(array) { return [ @@ -151,8 +137,8 @@ border: none; } .el-range-editor--small .el-range-separator { line-height: 26px; } line-height: 26px; } } .desc { margin-top: 50px; @@ -200,7 +186,7 @@ align-items: center; justify-content: center; .iconfont { font-size: 16px; font-size: 16px; color: #e99038; margin-right: 5px; src/pages/systemSettings/views/NetSettings.vue
@@ -3,15 +3,21 @@ <div class="cluster-content"> <div class="cluster-center" ref="left"> <div class="menu-item" @click="openRight('net')"> <div><span class="icon iconfont"></span>网络设置</div> <div> <span class="icon iconfont"></span>网络设置 </div> <div class="status">已连接</div> </div> <div class="menu-item" @click="openRight('wifi')"> <div><span class="icon iconfont"></span>无线网络</div> <div> <span class="icon iconfont"></span>无线网络 </div> <div class="status">已连接</div> </div> <div class="menu-item" @click="openRight('wire')"> <div><span class="icon iconfont"></span>有线网络</div> <div> <span class="icon iconfont"></span>有线网络 </div> <div class="status">已连接</div> </div> </div> @@ -27,35 +33,23 @@ v-loading="joinLoading" > <el-form-item label="设备名称" prop="deviceName"> <el-input v-model="ruleForm.deviceName" size="small" placeholder="必填" ></el-input> <el-input v-model="ruleForm.deviceName" size="small" placeholder="必填"></el-input> </el-form-item> <el-form-item label="端口" prop="port"> <el-input v-model="ruleForm.port" placeholder="选填,外部访问的端口" size="small" ></el-input> <el-input v-model="ruleForm.port" placeholder="选填,外部访问的端口" size="small"></el-input> </el-form-item> <div class="save-btn">保存</div> </el-form> </div> <div class="wifi" v-if="activePage == 'wifi' && !inWifiDetail"> <switchBar :barName="`无线网卡`" @switchChange="wifiControl" :value="isOpenWifi" ></switchBar> <switchBar :barName="`无线网卡`" @switchChange="wifiControl" :value="isOpenWifi"></switchBar> <div class="wifi-option" v-for="(item, i) in wifiList" :key="i"> <div class="name"> <span class="icon iconfont"></span> <span> {{ item.name }} </span> <span>{{ item.name }}</span> </div> <div class="more-detail"> @@ -64,8 +58,7 @@ class="icon iconfont" style="margin-left: 10px" @click="checkWifi(item)" ></span > ></span> </div> </div> </div> @@ -90,20 +83,11 @@ </el-form-item> <el-form-item label="密码" prop="password"> <el-input v-model="wifiForm.password" placeholder="请输入密码" size="small" show-password ></el-input> <el-input v-model="wifiForm.password" placeholder="请输入密码" size="small" show-password></el-input> </el-form-item> </el-form> <switchBar :barName="`高级设置`" @switchChange="highClassSetting" :value="isHighClass" ></switchBar> <switchBar :barName="`高级设置`" @switchChange="highClassSetting" :value="isHighClass"></switchBar> <div class="title">IPV4</div> <!-- <el-form @@ -121,14 +105,9 @@ show-password ></el-input> </el-form-item> </el-form> --> </el-form>--> <el-form :model="ipv4Form" :rules="ipv4FormRules" ref="ipv4Form" label-width="150px" > <el-form :model="ipv4Form" :rules="ipv4FormRules" ref="ipv4Form" label-width="150px"> <el-form-item label="方法"> <el-select v-model="value" placeholder="请选择" size="small"> <el-option @@ -136,51 +115,30 @@ :key="item.value" :label="item.label" :value="item.value" > </el-option> ></el-option> </el-select> </el-form-item> <el-form-item label="IP" prop="ip"> <ip-input :ip="ipv4Form.ip" @on-blur="ipv4Form.ip = arguments[0]" ></ip-input> <ip-input :ip="ipv4Form.ip" @on-blur="ipv4Form.ip = arguments[0]"></ip-input> </el-form-item> <el-form-item label="子网掩码" prop="subMask"> <ip-input :ip="ipv4Form.subMask" @on-blur="ipv4Form.subMask = arguments[0]" ></ip-input> <ip-input :ip="ipv4Form.subMask" @on-blur="ipv4Form.subMask = arguments[0]"></ip-input> </el-form-item> <el-form-item label="网关" prop="gateway"> <ip-input :ip="ipv4Form.gateway" @on-blur="ipv4Form.gateway = arguments[0]" ></ip-input> <ip-input :ip="ipv4Form.gateway" @on-blur="ipv4Form.gateway = arguments[0]"></ip-input> </el-form-item> <el-form-item label="首选DNS" prop="dns"> <ip-input :ip="ipv4Form.dns1" @on-blur="ipv4Form.dns1 = arguments[0]" ></ip-input> <ip-input :ip="ipv4Form.dns1" @on-blur="ipv4Form.dns1 = arguments[0]"></ip-input> </el-form-item> <el-form-item label="备用DNS" prop="dns"> <ip-input :ip="ipv4Form.dns2" @on-blur="ipv4Form.dns2 = arguments[0]" ></ip-input> <ip-input :ip="ipv4Form.dns2" @on-blur="ipv4Form.dns2 = arguments[0]"></ip-input> </el-form-item> </el-form> <div class="title">IPV6</div> <el-form :model="ipv6Form" :rules="ipv6FormRules" ref="ipv4Form" label-width="150px" > <el-form :model="ipv6Form" :rules="ipv6FormRules" ref="ipv4Form" label-width="150px"> <el-form-item label="方法"> <el-select v-model="value" placeholder="请选择" size="small"> <el-option @@ -188,23 +146,15 @@ :key="item.value" :label="item.label" :value="item.value" > </el-option> ></el-option> </el-select> </el-form-item> <el-form-item label="IP地址" prop="ip"> <ip-input :ip="ipv6Form.ip" @on-blur="ipv6Form.ip = arguments[0]" ></ip-input> <ip-input :ip="ipv6Form.ip" @on-blur="ipv6Form.ip = arguments[0]"></ip-input> </el-form-item> <el-form-item label="前缀" prop="subMask"> <div style="display: flex"> <el-input v-model="wifiForm.password" placeholder="" size="small" ></el-input> <el-input v-model="wifiForm.password" placeholder size="small"></el-input> <div class="ad">-</div> <div class="ad">+</div> @@ -213,22 +163,13 @@ </el-form-item> <el-form-item label="网关" prop="gateway"> <ip-input :ip="ipv6Form.gateway" @on-blur="ipv6Form.gateway = arguments[0]" ></ip-input> <ip-input :ip="ipv6Form.gateway" @on-blur="ipv6Form.gateway = arguments[0]"></ip-input> </el-form-item> <el-form-item label="首选DNS" prop="dns"> <ip-input :ip="ipv6Form.dns1" @on-blur="ipv6Form.dns1 = arguments[0]" ></ip-input> <ip-input :ip="ipv6Form.dns1" @on-blur="ipv6Form.dns1 = arguments[0]"></ip-input> </el-form-item> <el-form-item label="备用DNS" prop="dns"> <ip-input :ip="ipv6Form.dns2" @on-blur="ipv6Form.dns2 = arguments[0]" ></ip-input> <ip-input :ip="ipv6Form.dns2" @on-blur="ipv6Form.dns2 = arguments[0]"></ip-input> </el-form-item> </el-form> @@ -239,12 +180,7 @@ </div> <div class="wire" v-if="activePage == 'wire' && !inWireDetail"> <div class="wire-bar" v-for="(item, i) in wireArr" :key="i" @click="checkWire(item)" > <div class="wire-bar" v-for="(item, i) in wireArr" :key="i" @click="checkWire(item)"> <div class="name">{{ item.name }}</div> <div class="right"> @@ -254,55 +190,34 @@ v-model="value" active-color="rgba(61, 104, 225, 1)" @change="switchChange" > </el-switch> ></el-switch> </div> </div> </div> <div class="wire-detail" v-if="activePage == 'wire' && inWireDetail"> <div class="title">网络设置</div> <el-form :model="wireForm" :rules="wireFormRules" ref="wireForm" label-width="150px" > <el-form-item label="网络名称" prop="name"> <div class="title">网络设置</div> <el-form :model="wireForm" :rules="wireFormRules" ref="wireForm" label-width="150px"> <el-form-item label="网络名称" prop="name"> <div class="wifi-name">{{ 12123 }}</div> </el-form-item> <el-form-item label="网卡" prop="name"> <div class="wifi-name">{{ 12123 }}</div> </el-form-item> <el-form-item label="IP" prop="ip"> <ip-input :ip="wireForm.ip" @on-blur="wireForm.ip = arguments[0]" ></ip-input> <ip-input :ip="wireForm.ip" @on-blur="wireForm.ip = arguments[0]"></ip-input> </el-form-item> <el-form-item label="子网掩码" prop="subMask"> <ip-input :ip="wireForm.subMask" @on-blur="wireForm.subMask = arguments[0]" ></ip-input> <ip-input :ip="wireForm.subMask" @on-blur="wireForm.subMask = arguments[0]"></ip-input> </el-form-item> <el-form-item label="网关" prop="gateway"> <ip-input :ip="ipv4Form.gateway" @on-blur="ipv4Form.gateway = arguments[0]" ></ip-input> <ip-input :ip="ipv4Form.gateway" @on-blur="ipv4Form.gateway = arguments[0]"></ip-input> </el-form-item> <el-form-item label="首选DNS" prop="dns"> <ip-input :ip="ipv4Form.dns1" @on-blur="ipv4Form.dns1 = arguments[0]" ></ip-input> <ip-input :ip="ipv4Form.dns1" @on-blur="ipv4Form.dns1 = arguments[0]"></ip-input> </el-form-item> <el-form-item label="备用DNS" prop="dns"> <ip-input :ip="ipv4Form.dns2" @on-blur="ipv4Form.dns2 = arguments[0]" ></ip-input> <ip-input :ip="ipv4Form.dns2" @on-blur="ipv4Form.dns2 = arguments[0]"></ip-input> </el-form-item> </el-form> </div> @@ -328,12 +243,15 @@ addESNode, getEsClusterInfo, } from "@/api/clusterManage"; import cloudNode from "../components/CloudNode"; import ipInput from "@/components/subComponents/IPInput"; import { isIPv4 } from "@/scripts/validate"; import switchBar from "../components/switchBar"; export default { components: { ipInput, switchBar, }, data() { const checkPwd = (rule, value, callback) => { if (!value) { @@ -363,10 +281,10 @@ wifiList: [{ name: "无线网络1" }, { name: "无线网络2" }], isOpenWifi: false, inWireDetail: false, wireForm:{ wireForm: { }, wireFormRules:{ wireFormRules: { }, activePage: "net", @@ -392,19 +310,13 @@ value: "", }; }, components: { cloudNode, ipInput, switchBar, }, mounted() {}, beforeDestroy() {}, beforeDestroy() { }, props: ["barName"], methods: { openRight(typ) { this.activePage = typ; }, wifiControl(val) {}, wifiControl(val) { }, checkWifi() { this.inWifiDetail = true; }, @@ -432,7 +344,8 @@ overflow: auto; box-sizing: border-box; flex-shrink: 0; padding: 10px; border-right: 5px solid #f8f8f8; padding: 10px; border-right: 5px solid #f8f8f8; // background-color: lavender; .menu-item { src/pages/systemSettings/views/generalSettings.vue
@@ -31,8 +31,7 @@ :min="0" :max="100" :show-tooltip="false" > </el-slider> ></el-slider> </div> <el-input-number v-model="alarmConf.min_video_len" @@ -40,8 +39,7 @@ :min="0" :max="100" size="mini" ></el-input-number> s ></el-input-number> s </div> </div> <div class="min-dur"> @@ -55,8 +53,7 @@ :min="0" :max="100" :show-tooltip="false" > </el-slider> ></el-slider> </div> <el-input-number v-model="alarmConf.max_video_len" @@ -64,8 +61,7 @@ :min="0" :max="100" size="mini" ></el-input-number> s ></el-input-number> s </div> </div> @@ -82,34 +78,33 @@ > <div class="left-part"> <span class="icon iconfont"></span> <span class="name"> {{ item.name }}</span> <span class="name">{{ item.name }}</span> </div> <div class="btns"> <span class="icon iconfont"></span> <span class="icon iconfont"></span> </div> </div> <div class="add-group"> <el-upload class="upload-demo" drag action="https://jsonplaceholder.typicode.com/posts/" multiple v-show="showUpload" > <i class="el-icon-upload"></i> <div class="el-upload__text"> 事件声音文件拖到此处,或<em>点击上传</em> <br /> 仅支持mp3/wma等格式 <div class="add-group"> <el-upload class="upload-demo" drag action="https://jsonplaceholder.typicode.com/posts/" multiple v-show="showUpload" > <i class="el-icon-upload"></i> <div class="el-upload__text"> 事件声音文件拖到此处,或 <em>点击上传</em> <br />仅支持mp3/wma等格式 </div> </el-upload> <div v-show="!showUpload"></div> <div class="add-btn"> <span class="icon iconfont" @click="showUpload=!showUpload"></span> </div> </el-upload> <div v-show="!showUpload" ></div> <div class="add-btn"> <span class="icon iconfont" @click="showUpload=!showUpload"></span> </div> </div> </div> </div> </div> @@ -118,11 +113,7 @@ <script> import { saveAlarmConfig } from "@/api/system"; import cloudNode from "../components/CloudNode"; import ipInput from "@/components/subComponents/IPInput"; import { isIPv4 } from "@/scripts/validate"; import switchBar from "../components/switchBar"; export default { data() { @@ -155,7 +146,7 @@ isOpenWifi: false, inWireDetail: false, wireForm: {}, showUpload:false, showUpload: false, alarmConf: { min_video_len: 0, max_video_len: 0, @@ -191,19 +182,14 @@ value: "", }; }, components: { cloudNode, ipInput, switchBar, }, mounted() {}, beforeDestroy() {}, mounted() { }, beforeDestroy() { }, props: ["barName"], methods: { openRight(typ) { this.activePage = typ; }, wifiControl(val) {}, wifiControl(val) { }, checkWifi() { this.inWifiDetail = true; }, @@ -348,13 +334,12 @@ .bar:hover { background-color: rgba(233, 233, 233, 1); } .add-group{ margin-top: 170px; height: 235px; display: flex; flex-direction: column; justify-content: space-between; .add-group { margin-top: 170px; height: 235px; display: flex; flex-direction: column; justify-content: space-between; } .upload-demo { .el-upload-dragger { src/pages/systemSettings/views/keyboardLanguage.vue
@@ -46,10 +46,7 @@ addESNode, getEsClusterInfo, } from "@/api/clusterManage"; import cloudNode from "../components/CloudNode"; import ipInput from "@/components/subComponents/IPInput"; import { isIPv4 } from "@/scripts/validate"; import switchBar from "../components/switchBar"; export default { data() { @@ -87,11 +84,11 @@ { name: "英文" }, { name: "繁体中文(香港)" }, ], keyboardList: [ keyboardList: [ { name: "Hanyu Pinyin(algtr)" }, { name: "ENG" }, ], wireFormRules: {}, activePage: "lang", rules: { @@ -116,19 +113,14 @@ value: "", }; }, components: { cloudNode, ipInput, switchBar, }, mounted() {}, beforeDestroy() {}, mounted() { }, beforeDestroy() { }, props: ["barName"], methods: { openRight(typ) { this.activePage = typ; }, wifiControl(val) {}, wifiControl(val) { }, checkWifi() { this.inWifiDetail = true; }, @@ -156,7 +148,8 @@ overflow: auto; box-sizing: border-box; flex-shrink: 0; padding: 10px; border-right: 5px solid #f8f8f8; padding: 10px; border-right: 5px solid #f8f8f8; // background-color: lavender; .menu-item { vue.config.js
@@ -41,7 +41,7 @@ }) // const serverUrl = "http://58.118.225.79:41243" // 羊五 const serverUrl = "http://192.168.20.106:7009" const serverUrl = "http://192.168.20.189:7003" module.exports = { pages,