Commit 3b002cb7 by 潘建波

增加蓝色风格

1 parent af79acb9
Showing 67 changed files with 1828 additions and 587 deletions
......@@ -274,6 +274,7 @@
//从另一个值Xml中获取已经改变的值
function getValueFromValueXml(valueXml, nodePath) {
debugger
//使用遍历的方式去查找元素
var isFound = true;
var nodes = nodePath.split("/");
......
This file is too large to display.
No preview for this file type
......@@ -91,9 +91,9 @@
"> 1%",
"last 2 versions"
],
"config":{
"commitizen":{
"path":"./node_modules/cz-conventional-changelog"
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
}
{
"files": {
"main.css": "./static/css/main.93f5f206.chunk.css",
"main.js": "./static/js/main.6c188247.chunk.js",
"main.js.map": "./static/js/main.6c188247.chunk.js.map",
"runtime-main.js": "./static/js/runtime-main.1c72c6f0.js",
"runtime-main.js.map": "./static/js/runtime-main.1c72c6f0.js.map",
"static/css/2.c8fdb744.chunk.css": "./static/css/2.c8fdb744.chunk.css",
"static/js/2.3fc2ea5d.chunk.js": "./static/js/2.3fc2ea5d.chunk.js",
"static/js/2.3fc2ea5d.chunk.js.map": "./static/js/2.3fc2ea5d.chunk.js.map",
"index.html": "./index.html",
"precache-manifest.5dc53e552550681df5ac85467b2a9201.js": "./precache-manifest.5dc53e552550681df5ac85467b2a9201.js",
"service-worker.js": "./service-worker.js",
"static/css/2.c8fdb744.chunk.css.map": "./static/css/2.c8fdb744.chunk.css.map",
"static/css/main.93f5f206.chunk.css.map": "./static/css/main.93f5f206.chunk.css.map",
"static/js/2.3fc2ea5d.chunk.js.LICENSE.txt": "./static/js/2.3fc2ea5d.chunk.js.LICENSE.txt"
},
"entrypoints": [
"static/js/runtime-main.1c72c6f0.js",
"static/css/2.c8fdb744.chunk.css",
"static/js/2.3fc2ea5d.chunk.js",
"static/css/main.93f5f206.chunk.css",
"static/js/main.6c188247.chunk.js"
]
}
\ No newline at end of file
No preview for this file type
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="manifest" href="./manifest.json"/><title>React App</title><link href="./static/css/2.c8fdb744.chunk.css" rel="stylesheet"><link href="./static/css/main.93f5f206.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,l,a=t[0],f=t[1],i=t[2],p=0,s=[];p<a.length;p++)l=a[p],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(c&&c(t);s.length;)s.shift()();return u.push.apply(u,i||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,a=1;a<r.length;a++){var f=r[a];0!==o[f]&&(n=!1)}n&&(u.splice(t--,1),e=l(l.s=r[0]))}return e}var n={},o={1:0},u=[];function l(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,l),r.l=!0,r.exports}l.m=e,l.c=n,l.d=function(e,t,r){l.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,t){if(1&t&&(e=l(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(l.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)l.d(r,n,function(t){return e[t]}.bind(null,n));return r},l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,"a",t),t},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.p="./";var a=this.webpackJsonpreactts=this.webpackJsonpreactts||[],f=a.push.bind(a);a.push=t,a=a.slice();for(var i=0;i<a.length;i++)t(a[i]);var c=f;r()}([])</script><script src="./static/js/2.3fc2ea5d.chunk.js"></script><script src="./static/js/main.6c188247.chunk.js"></script></body></html>
\ No newline at end of file
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
self.__precacheManifest = (self.__precacheManifest || []).concat([
{
"revision": "f20cba2b5aca1f606b87ccc173e57106",
"url": "./index.html"
},
{
"revision": "3f558e01978fd420eee6",
"url": "./static/css/2.c8fdb744.chunk.css"
},
{
"revision": "02c464cf4524d8b82b11",
"url": "./static/css/main.93f5f206.chunk.css"
},
{
"revision": "3f558e01978fd420eee6",
"url": "./static/js/2.3fc2ea5d.chunk.js"
},
{
"revision": "3453b8997016469371284a28c0e873e2",
"url": "./static/js/2.3fc2ea5d.chunk.js.LICENSE.txt"
},
{
"revision": "02c464cf4524d8b82b11",
"url": "./static/js/main.6c188247.chunk.js"
},
{
"revision": "502f3a67afd045ebb31d",
"url": "./static/js/runtime-main.1c72c6f0.js"
}
]);
\ No newline at end of file
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:
/**
* Welcome to your Workbox-powered service worker!
*
* You'll need to register this file in your web app and you should
* disable HTTP caching for this file too.
* See https://goo.gl/nhQhGp
*
* The rest of the code is auto-generated. Please don't update this file
* directly; instead, make changes to your Workbox build configuration
* and re-run your build process.
* See https://goo.gl/2aRDsh
*/
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
importScripts(
"./precache-manifest.5dc53e552550681df5ac85467b2a9201.js"
);
self.addEventListener('message', (event) => {
if (event.data && event.data.type === 'SKIP_WAITING') {
self.skipWaiting();
}
});
workbox.core.clientsClaim();
/**
* The workboxSW.precacheAndRoute() method efficiently caches and responds to
* requests for URLs in the manifest.
* See https://goo.gl/S9QRab
*/
self.__precacheManifest = [].concat(self.__precacheManifest || []);
workbox.precaching.precacheAndRoute(self.__precacheManifest, {});
workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("./index.html"), {
blacklist: [/^\/_/,/\/[^/?]+\.[^/]+$/],
});
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{-webkit-animation:App-logo-spin 20s linear infinite;animation:App-logo-spin 20s linear infinite}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@-webkit-keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.93f5f206.chunk.css.map */
\ No newline at end of file
{"version":3,"sources":["index.css","App.css"],"names":[],"mappings":"AAAA,KACE,QAAS,CACT,mJAEY,CACZ,kCAAmC,CACnC,iCACF,CAEA,KACE,yEAEF,CCVA,UACE,aAAc,CACd,mBACF,CAEA,8CACE,UACE,mDAA4C,CAA5C,2CACF,CACF,CAEA,YACE,wBAAyB,CACzB,gBAAiB,CACjB,YAAa,CACb,qBAAsB,CACtB,kBAAmB,CACnB,sBAAuB,CACvB,4BAA6B,CAC7B,UACF,CAEA,UACE,aACF,CAEA,iCACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CAPA,yBACE,GACE,sBACF,CACA,GACE,uBACF,CACF","file":"main.93f5f206.chunk.css","sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","\n\n.App-logo {\n height: 40vmin;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .App-logo {\n animation: App-logo-spin infinite 20s linear;\n }\n}\n\n.App-header {\n background-color: #282c34;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: calc(10px + 2vmin);\n color: white;\n}\n\n.App-link {\n color: #61dafb;\n}\n\n@keyframes App-logo-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n"]}
\ No newline at end of file
This diff could not be displayed because it is too large.
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/*!
Copyright (c) 2017 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/** @license React v0.19.1
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
This diff could not be displayed because it is too large.
!function(e){function t(t){for(var n,l,a=t[0],f=t[1],i=t[2],p=0,s=[];p<a.length;p++)l=a[p],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(c&&c(t);s.length;)s.shift()();return u.push.apply(u,i||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,a=1;a<r.length;a++){var f=r[a];0!==o[f]&&(n=!1)}n&&(u.splice(t--,1),e=l(l.s=r[0]))}return e}var n={},o={1:0},u=[];function l(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,l),r.l=!0,r.exports}l.m=e,l.c=n,l.d=function(e,t,r){l.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,t){if(1&t&&(e=l(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(l.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)l.d(r,n,function(t){return e[t]}.bind(null,n));return r},l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,"a",t),t},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.p="./";var a=this.webpackJsonpreactts=this.webpackJsonpreactts||[],f=a.push.bind(a);a.push=t,a=a.slice();for(var i=0;i<a.length;i++)t(a[i]);var c=f;r()}([]);
//# sourceMappingURL=runtime-main.1c72c6f0.js.map
\ No newline at end of file
{"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAKlC,IAFGe,GAAqBA,EAAoBhB,GAEtCO,EAASC,QACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrBiB,EAAG,GAGAZ,EAAkB,GAGtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU8B,QAGnC,IAAIC,EAASH,EAAiB5B,GAAY,CACzCK,EAAGL,EACHgC,GAAG,EACHF,QAAS,IAUV,OANAhB,EAAQd,GAAUW,KAAKoB,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG/DK,EAAOC,GAAI,EAGJD,EAAOD,QAKfJ,EAAoBO,EAAInB,EAGxBY,EAAoBQ,EAAIN,EAGxBF,EAAoBS,EAAI,SAASL,EAASM,EAAMC,GAC3CX,EAAoBY,EAAER,EAASM,IAClC5B,OAAO+B,eAAeT,EAASM,EAAM,CAAEI,YAAY,EAAMC,IAAKJ,KAKhEX,EAAoBgB,EAAI,SAASZ,GACX,qBAAXa,QAA0BA,OAAOC,aAC1CpC,OAAO+B,eAAeT,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DrC,OAAO+B,eAAeT,EAAS,aAAc,CAAEe,OAAO,KAQvDnB,EAAoBoB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQnB,EAAoBmB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKzC,OAAO0C,OAAO,MAGvB,GAFAxB,EAAoBgB,EAAEO,GACtBzC,OAAO+B,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOnB,EAAoBS,EAAEc,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRvB,EAAoB2B,EAAI,SAAStB,GAChC,IAAIM,EAASN,GAAUA,EAAOiB,WAC7B,WAAwB,OAAOjB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAL,EAAoBS,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRX,EAAoBY,EAAI,SAASgB,EAAQC,GAAY,OAAO/C,OAAOC,UAAUC,eAAeC,KAAK2C,EAAQC,IAGzG7B,EAAoB8B,EAAI,KAExB,IAAIC,EAAaC,KAA0B,oBAAIA,KAA0B,qBAAK,GAC1EC,EAAmBF,EAAW5C,KAAKuC,KAAKK,GAC5CA,EAAW5C,KAAOf,EAClB2D,EAAaA,EAAWG,QACxB,IAAI,IAAIvD,EAAI,EAAGA,EAAIoD,EAAWlD,OAAQF,IAAKP,EAAqB2D,EAAWpD,IAC3E,IAAIU,EAAsB4C,EAI1BxC,I","file":"static/js/runtime-main.1c72c6f0.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \tvar jsonpArray = this[\"webpackJsonpreactts\"] = this[\"webpackJsonpreactts\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
\ No newline at end of file
......@@ -418,10 +418,12 @@
var childNodes = getXmlChildNodes(xmlNode);
for (var i = 0; i < childNodes.length; i++) {
var currentNode = childNodes[i];
//判断结点是否是叶节点(把属于右侧的参数拆分出去)
var isEndNode = isEndNodeFun(currentNode);
var treeNode; //当前节点对应的TreeNode
if(currentNode.tagName =='定时抓拍测试' ){
debugger
}
if (isEndNode) {
//把子节点格式化为propertiesGrid的Json格式
var nodePath = parentTreeNode.attr.path + "/" + currentNode.nodeName;
......@@ -445,7 +447,7 @@
var pValue = getValueFromValueXml(valueXml, nodePath);
//对数值进行格式化
pDefault = getValidateValue(pType, pDefault);
pValue = getValidateValue(pType, pValue);
// pValue = getValidateValue(pType, pValue);
pValue = pValue ? pValue : pDefault; //如果当前节点的值没有改变,则取默认值
// pValue = pDefault;
......
......@@ -9,8 +9,9 @@
<script src="<%= BASE_URL %>js/kinetic-v5.1.0.min.js"></script>
<script src="<%= BASE_URL %>js/ObjTree.js"></script>
<script src="<%= BASE_URL %>js/jquery.min.js"></script>
<script src="<%= BASE_URL %>js/keymaster.js"></script>
</head>
<body>
<body id="theme-name">
<noscript>
<strong></strong>
</noscript>
......
// keymaster.js
// (c) 2011-2013 Thomas Fuchs
// keymaster.js may be freely distributed under the MIT license.
;(function(global){
var k,
_handlers = {},
_mods = { 16: false, 18: false, 17: false, 91: false },
_scope = 'all',
// modifier keys
_MODIFIERS = {
'⇧': 16, shift: 16,
'⌥': 18, alt: 18, option: 18,
'⌃': 17, ctrl: 17, control: 17,
'⌘': 91, command: 91
},
// special keys
_MAP = {
backspace: 8, tab: 9, clear: 12,
enter: 13, 'return': 13,
esc: 27, escape: 27, space: 32,
left: 37, up: 38,
right: 39, down: 40,
del: 46, 'delete': 46,
home: 36, end: 35,
pageup: 33, pagedown: 34,
',': 188, '.': 190, '/': 191,
'`': 192, '-': 189, '=': 187,
';': 186, '\'': 222,
'[': 219, ']': 221, '\\': 220
},
code = function(x){
return _MAP[x] || x.toUpperCase().charCodeAt(0);
},
_downKeys = [];
for(k=1;k<20;k++) _MAP['f'+k] = 111+k;
// IE doesn't support Array#indexOf, so have a simple replacement
function index(array, item){
var i = array.length;
while(i--) if(array[i]===item) return i;
return -1;
}
// for comparing mods before unassignment
function compareArray(a1, a2) {
if (a1.length != a2.length) return false;
for (var i = 0; i < a1.length; i++) {
if (a1[i] !== a2[i]) return false;
}
return true;
}
var modifierMap = {
16:'shiftKey',
18:'altKey',
17:'ctrlKey',
91:'metaKey'
};
function updateModifierKey(event) {
for(k in _mods) _mods[k] = event[modifierMap[k]];
};
// handle keydown event
function dispatch(event) {
var key, handler, k, i, modifiersMatch, scope;
key = event.keyCode;
if (index(_downKeys, key) == -1) {
_downKeys.push(key);
}
// if a modifier key, set the key.<modifierkeyname> property to true and return
if(key == 93 || key == 224) key = 91; // right command on webkit, command on Gecko
if(key in _mods) {
_mods[key] = true;
// 'assignKey' from inside this closure is exported to window.key
for(k in _MODIFIERS) if(_MODIFIERS[k] == key) assignKey[k] = true;
return;
}
updateModifierKey(event);
// see if we need to ignore the keypress (filter() can can be overridden)
// by default ignore key presses if a select, textarea, or input is focused
if(!assignKey.filter.call(this, event)) return;
// abort if no potentially matching shortcuts found
if (!(key in _handlers)) return;
scope = getScope();
// for each potential shortcut
for (i = 0; i < _handlers[key].length; i++) {
handler = _handlers[key][i];
// see if it's in the current scope
if(handler.scope == scope || handler.scope == 'all'){
// check if modifiers match if any
modifiersMatch = handler.mods.length > 0;
for(k in _mods)
if((!_mods[k] && index(handler.mods, +k) > -1) ||
(_mods[k] && index(handler.mods, +k) == -1)) modifiersMatch = false;
// call the handler and stop the event if neccessary
if((handler.mods.length == 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91]) || modifiersMatch){
if(handler.method(event, handler)===false){
if(event.preventDefault) event.preventDefault();
else event.returnValue = false;
if(event.stopPropagation) event.stopPropagation();
if(event.cancelBubble) event.cancelBubble = true;
}
}
}
}
};
// unset modifier keys on keyup
function clearModifier(event){
var key = event.keyCode, k,
i = index(_downKeys, key);
// remove key from _downKeys
if (i >= 0) {
_downKeys.splice(i, 1);
}
if(key == 93 || key == 224) key = 91;
if(key in _mods) {
_mods[key] = false;
for(k in _MODIFIERS) if(_MODIFIERS[k] == key) assignKey[k] = false;
}
};
function resetModifiers() {
for(k in _mods) _mods[k] = false;
for(k in _MODIFIERS) assignKey[k] = false;
};
// parse and assign shortcut
function assignKey(key, scope, method){
var keys, mods;
keys = getKeys(key);
if (method === undefined) {
method = scope;
scope = 'all';
}
// for each shortcut
for (var i = 0; i < keys.length; i++) {
// set modifier keys if any
mods = [];
key = keys[i].split('+');
if (key.length > 1){
mods = getMods(key);
key = [key[key.length-1]];
}
// convert to keycode and...
key = key[0]
key = code(key);
// ...store handler
if (!(key in _handlers)) _handlers[key] = [];
_handlers[key].push({ shortcut: keys[i], scope: scope, method: method, key: keys[i], mods: mods });
}
};
// unbind all handlers for given key in current scope
function unbindKey(key, scope) {
var multipleKeys, keys,
mods = [],
i, j, obj;
multipleKeys = getKeys(key);
for (j = 0; j < multipleKeys.length; j++) {
keys = multipleKeys[j].split('+');
if (keys.length > 1) {
mods = getMods(keys);
key = keys[keys.length - 1];
}
key = code(key);
if (scope === undefined) {
scope = getScope();
}
if (!_handlers[key]) {
return;
}
for (i in _handlers[key]) {
obj = _handlers[key][i];
// only clear handlers if correct scope and mods match
if (obj.scope === scope && compareArray(obj.mods, mods)) {
_handlers[key][i] = {};
}
}
}
};
// Returns true if the key with code 'keyCode' is currently down
// Converts strings into key codes.
function isPressed(keyCode) {
if (typeof(keyCode)=='string') {
keyCode = code(keyCode);
}
return index(_downKeys, keyCode) != -1;
}
function getPressedKeyCodes() {
return _downKeys.slice(0);
}
function filter(event){
var tagName = (event.target || event.srcElement).tagName;
// ignore keypressed in any elements that support keyboard data input
return !(tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA');
}
// initialize key.<modifier> to false
for(k in _MODIFIERS) assignKey[k] = false;
// set current scope (default 'all')
function setScope(scope){ _scope = scope || 'all' };
function getScope(){ return _scope || 'all' };
// delete all handlers for a given scope
function deleteScope(scope){
var key, handlers, i;
for (key in _handlers) {
handlers = _handlers[key];
for (i = 0; i < handlers.length; ) {
if (handlers[i].scope === scope) handlers.splice(i, 1);
else i++;
}
}
};
// abstract key logic for assign and unassign
function getKeys(key) {
var keys;
key = key.replace(/\s/g, '');
keys = key.split(',');
if ((keys[keys.length - 1]) == '') {
keys[keys.length - 2] += ',';
}
return keys;
}
// abstract mods logic for assign and unassign
function getMods(key) {
var mods = key.slice(0, key.length - 1);
for (var mi = 0; mi < mods.length; mi++)
mods[mi] = _MODIFIERS[mods[mi]];
return mods;
}
// cross-browser events
function addEvent(object, event, method) {
if (object.addEventListener)
object.addEventListener(event, method, false);
else if(object.attachEvent)
object.attachEvent('on'+event, function(){ method(window.event) });
};
// set the handlers globally on document
addEvent(document, 'keydown', function(event) { dispatch(event) }); // Passing _scope to a callback to ensure it remains the same by execution. Fixes #48
addEvent(document, 'keyup', clearModifier);
// reset modifiers to false whenever the window is (re)focused.
addEvent(window, 'focus', resetModifiers);
// store previously defined key
var previousKey = global.key;
// restore previously defined key and return reference to our key object
function noConflict() {
var k = global.key;
global.key = previousKey;
return k;
}
// set window.key and window.key.set/get/deleteScope, and the default filter
global.key = assignKey;
global.key.setScope = setScope;
global.key.getScope = getScope;
global.key.deleteScope = deleteScope;
global.key.filter = filter;
global.key.isPressed = isPressed;
global.key.getPressedKeyCodes = getPressedKeyCodes;
global.key.noConflict = noConflict;
global.key.unbind = unbindKey;
if(typeof module !== 'undefined') module.exports = key;
})(this);
{"commit":"f50e135f98d88e0c746c1624dca76a8db58e319d","commitDate":"2020-7-24 9:56","buildDate":"2020-7-30 17:15","version":"2.0.6","info":"【NEW】导入导出功能 【NEW】详情加视频播放功能 【BUG】添加视频源提示取消后不能回选"}
\ No newline at end of file
{"commit":"af79acb9807045a0e60ec210db2d96b4e656a7b0","commitDate":"2020-7-30 17:21","buildDate":"2020-9-9 9:37","version":"2.0.7","info":"feat✨ 修改任务暂停时才允许任务修改 feat✨ 任务修改不允许修改算法 feat✨ 10分钟内不操作自动退出 feat✨ 流量检索增加车头时距和时间占有率 feat✨ 单任务导出及导入功能 feat✨ 全局备份功能 BUG:修改子任务下发设备类型要依据大任务类型"}
\ No newline at end of file
......@@ -29,7 +29,6 @@ export default {
window.oneSearchTableHeight = document.body.clientHeight - 280 + "px";
window.twoSearchTableHeight = document.body.clientHeight - 315 + "px";
}
}
};
</script>
......
......@@ -22,6 +22,9 @@ export default {
addRole(params) {
return api.post(`${baseUrl}/api/v1/auth/roles`, params);
},
delRole(roleid, params) {
return api.delete(`${baseUrl}/api/v1/auth/roles/${roleid}`, params)
},
unbindRole(params, id, id2) {
return api.delete(
`${baseUrl}/api/v1/auth/users/${id}/roles/${id2}`,
......
......@@ -6,309 +6,3 @@ html,body{
padding: 0;
margin: 0;
}
body{
background: #fff!important;
}
.el-main{
background: #F7F6F9;
}
.home,.home-box{
height: 100%;
}
.home-box .el-tabs--card>.el-tabs__header .el-tabs__item.is-active{
background: red
}
.home-box .el-tabs__nav{
width: 100%;
}
.home-box .el-tabs__item{
width: 25%!important;
padding: 0!important;
text-align: center;
}
/* 设置区域设置按钮 */
.editbtn .el-radio-button__inner{
border: 0;
}
.editbtn .el-radio-button:first-child,.editbtn .el-radio-button__inner{
border: 0!important;
}
.editbtn .el-radio-button:last-child,.editbtn .el-radio-button__inner{
border-radius: 0;
border: 0;
}
.editbtn .el-radio-button__orig-radio:checked+.el-radio-button__inner{
border: 0;
background: none;
box-shadow:none;
color: #3BB7FF;
}
.editbtn .el-radio-button__inner{
background: none;
padding: 0;
}
.el-radio-button--small .el-radio-button__inner{
font-size: 18px;
color: #3BB7FF;
}
.editbtn{
height: 46px;
width: 48px;
line-height: 46px;
text-align: center;
font-size: 14px;
background: #D7EDFF;
cursor: pointer;
}
.editbtn {
display: block;
border-radius: 0;
border: 0;
}
.editbtn .el-radio-button:first-child .el-radio-button__inner{
border:0;
}
.el-table__body tr{
background: #f4f4f4;
}
/* 抓拍展示 */
.pic-box {
width: 98%;
margin-bottom:10px;
background:#F1F1F1;
border-radius:2px;
overflow :hidden;
font-size :14px;
color: #555;
padding: 6px;
}
.picbackground{
height: 133px;
background-size:100% 100%;
}
.picbackground img{
height: 100%;
width:100%;
margin-top :-1px;
}
.pic-info{
padding-left:10px;
}
.pic-info li{
overflow:hidden;
margin-bottom:3px;
}
.pic-info li span{
display:inline-block;
}
.pic-info li span:nth-child(1){
width:60px;
}
.pic-info li span:nth-child(2){
padding-left: 10px
}
.el-input-group__append{
background-color: #0d3a79;
border: 0px;
}
.wtbox .el-table{
border-bottom: 0px
}
.el-table--border::after, .el-table--group::after, .el-table::before{
background-color: none;
}
.wtbox .el-table td, .el-table th{
padding: 8px 0
}
.el-table--border::after, .el-table--group::after, .el-table::before{
background-color: rgba(0,0,0,0);
}
::-webkit-scrollbar{
width: 10px;
height: 10px;
background-color: #333;
}
/*滚动条的轨道*/
::-webkit-scrollbar-track{
box-shadow: inset 0 0 5px rgba(0,0,0,.3);
background-color: #fff;
}
/*滚动条的滑块按钮*/
::-webkit-scrollbar-thumb{
border-radius: 10px;
background-color: rgba(133, 133, 133, 0.31);
}
/*滚动条的上下两端的按钮*/
::-webkit-scrollbar-button{
height: 10px;
background-color: #B0AEDA;
}
.dev-box .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{
background:rgba(0,0,0,.3);
}
.clearpright{
padding-right: 0!important;
}
.chart-header-box .el-input--small .el-input__inner{
height:23px;
line-height:23px;
font-size: 12px;
}
.chart-header-box .el-input--small .el-input__icon{
line-height: 23px;
}
.ol-zoom{
bottom:.5em;
left:auto!important;
right: .5em;
top:auto!important;
}
.rotate-north {
right: .5em;
bottom: 3.8em;
}
.nav-tag-box {
line-height: 40px;
height: 40px;
overflow: hidden;
}
.nav-tag-box .el-tag{
border-radius: 0;
border: 0;
border-right: 1px solid #ccc;
padding-right: 10px;
padding-left: 10px;
line-height: 25px;
background: none;
cursor: pointer;
color: #888888;
}
.nav-tag-box .el-tag .el-icon-close{
color: #888888;
cursor: pointer;
}
.nav-tag-box .el-tag .el-icon-close:hover{
background: none;
cursor: pointer;
color: #3BB7FF;
}
.alarm-event-box .el-table__body tr{
background: #fff!important;
}
.alarm-event-box .el-table .el-table__header th{
background:rgba(248,249,250,1);
box-shadow:0px 1px 0px 0px rgba(0,0,0,0.09);
}
.img-box img{
height: 20vh;
width:20vw;
height: 100%;
width: 100%;
}
.ol-popup img{
height :100%;
width :100%;
}
.el-table__expanded-cell{
padding: 0px 50px!important;
}
.ml10{
margin-left: 10px;
}
.mt10{
margin-top: 10px;
}
.codes-tab-box .el-tabs__item{
width: 112px!important;
}
.is-opend {
background: red;
}
/* 菜单 */
.el-menu-vertical-dem:not(.el-menu--collapse){
min-height: 900px;
}
.el-menu .is-opened{
background:rgba(239,239,239,1);
}
.el-menu .is-opened li {
background:rgba(247,247,247,1);
}
.el-menu-item.is-active{
color: #000000;
}
.el-menu-item.is-active .submenuicon{
background:rgba(0,105,255,1)!important;
}
.el-input-group__append{
background:rgba(0,105,255,1)!important;
color: #ffffff;
}
.search-vchan .el-input-group {
box-shadow:-1.2px 2px 1px 0px rgba(78, 8, 8, 0.1);
}
.card-hover:hover,.pic-hover:hover {
webkit-transform: translateY(-4px) scale(2);
-moz-transform: translateY(-4px) scale(1.01);
-ms-transform: translateY(-4px) scale(1.01);
-o-transform: translateY(-4px) scale(1.01);
transform: translateY(-4px) scale(1);
-webkit-box-shadow: 0 14px 24px rgba(62,57,107,.1);
box-shadow: 0 14px 24px rgba(62,57,107,.1);
}
.pic-hover:hover {
box-shadow: 2px 3px 4px rgba(2, 2, 2,0.2);
}
.card-hover,.pic-hover {
-webkit-transition: all .25s ease;
-o-transition: all .25s ease;
-moz-transition: all .25s ease;
transition: all .25s ease;
}
.statusbox {
display: inline-block;
min-width: 60px;
border-radius: 2px;
background:rgba(204,204,204,1);
color: #fff;
font-size: 14px;
}
.taskstatus .statusbox{
height: 25px;
line-height: 25px;
font-size: 12px;
}
.runningbox {
background: #36BEA6;
}
.finishedbox{
background:rgba(255,198,46,1);
}
.pausebox{
background:rgba(232,84,30,1);
}
.alarm-event-box .el-table .el-table__header th{
background: none!important;
}
.el-submenu__title{
font-size: 15px;
}
.el-table--small td, .el-table--small th {
height: 55px;
}
.el-radio__label{
color: #333;
}
.show-box .el-image__inner--center{
transform:none;
left: 0;
}
.detailDialog .el-icon-circle-close{
color: #fff;
}
\ No newline at end of file
......@@ -167,6 +167,26 @@ function checkIE() {
return false;
}
}
let versioninfo = require("../../../public/js/version");
Vue.prototype.baseencode = function(str){
return str
// let base = "";
// if(versioninfo && versioninfo.version ){
// let vsstring = versioninfo.version.split(".");
// let vs = Number(String(vsstring[0])+String(vsstring[1])+String(vsstring[2]))
// if(vs > 207) {
// base = str;
// } else {
// var encode = encodeURI(str);
// // 对编码的字符串转化base64
// var base64 = btoa(encode);
// base = base64;
// }
// } else {
// base = str;
// }
// return base;
}
Vue.prototype.showLocalTime = function(obj) {
if (obj == undefined) return;
let dt = "",
......
@import "../scss/them.scss";
@import "../scss/common.scss";
#login .el-input__inner {
background: rgba(255,255,255,.5);
border-radius: 0!important;
......@@ -26,7 +28,8 @@
/* 输入框重置 */
.el-input--small .el-input__inner {
height: 30px;
line-height: 30px;
line-height: 30px;
@include font-colr(input_color);
}
.el-input__inner{
border: 1px solid #E5E5E5;
......@@ -136,9 +139,47 @@
width: 100%!important;
}
/* 表格 */
.el-table__body tr{
@include background_color(table_tr_bg)
}
.el-table--border::after, .el-table--group::after, .el-table::before{
@include background_color(table_bg);
}
.el-table__body-wrapper{
@include background_color(hometabletr_bg);
}
.el-table th {
@include background_color(table_th_bg);
}
.el-table tr{
@include background_color(hometabletr_bg);
}
.el-table--striped .el-table__body tr.el-table__row--striped td{
@include background_color(hometabletr_bg);
}
.el-table td, .el-table th.is-leaf{
@include border-color(table_border);
}
.el-table--border td, .el-table--border th, .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{
@include border-color(table_border);
}
.el-table--border, .el-table--group{
@include border-color(table_border);
}
.el-table--border::after, .el-table--group::after, .el-table::before{
@include border-color(table_border);
}
.el-table--border{
border-bottom: none;
}
.el-table--small td, .el-table--small th{
padding: 8px 0;
}
.el-table--border::after, .el-table--group::after, .el-table::before{
// background-color: rgba(0,0,0,0);
}
body .el-table th.gutter{
width: 17px!important;
display: table-cell!important;
......@@ -153,8 +194,9 @@ display: table-cell!important;
background: #FFFFFF;
}
.el-table--enable-row-hover .el-table__body tr:hover>td {
background-color: #F5F7FA!important;
@include background_color(table_hover_bg);
}
/* 提示 */
.el-tooltip__popper{
padding: 6px 12px;
......@@ -173,7 +215,10 @@ display: table-cell!important;
}
.el-dialog__header{
padding:8px 20px 6px;
background: #3BB7FF;
@include background_color(dialog_header_bg);
}
.el-dialog__body{
@include background_color(dialog_body_bg);
}
.el-dialog__headerbtn{
top: 12px;
......@@ -194,9 +239,20 @@ display: table-cell!important;
/* dialog元素 */
.el-dialog .el-input--small .el-input__inner{
height: 26px;
line-height: 26px;
line-height: 26px;
}
.el-input--small .el-input__inner{
@include background_color(input_bg);
@include border_color(input_border);
}
.el-input__inner{
@include background_color(input_bg);
@include border_color(input_border);
}
.el-date-editor .el-range-input{
@include background_color(input_bg);
@include font-colr(input_color);
}
.el-dialog__body{
padding: 30px 34px;
}
......@@ -209,6 +265,9 @@ display: table-cell!important;
/* .el-dialog .el-form-item--small .el-form-item__content,.el-dialog .el-form-item--small .el-form-item__label{
line-height: 26px;
} */
.el-form-item__label{
@include font-colr(label_color);
}
.el-switch__core{
height: 13px;
}
......@@ -231,4 +290,54 @@ margin-bottom: 4px;
.home-box .el-tabs__nav .el-tabs__item{
width: 14%!important;
padding:0 28px!important;
}
/* 菜单 */
.el-menu-vertical-dem:not(.el-menu--collapse){
min-height: 900px;
}
.el-menu .is-opened{
/* background:rgba(239,239,239,1); */
}
// .el-menu .is-opened li {
// background:rgba(247,247,247,1);
// }
.el-menu-item:focus, .el-menu-item:hover{
@include background_color(active_nave_bg);
}
.el-menu-item.is-active{
@include font-colr(font_color2);
// color: #0069ff!important;
border-right: 2px solid #0069ff;
@include border-color(font_color2);
@include background_color(active_nave_bg);
}
.el-menu-item.is-active .submenuicon{
@include background_color(font_color2);
}
.el-pagination__total{
@include font-colr(pages_color);
}
.el-pagination.is-background .btn-next, .el-pagination.is-background .btn-prev, .el-pagination.is-background .el-pager li{
@include background_color(pages_bg);
@include border-color(pages_border);
}
.el-pagination .el-input__inner{
@include font-colr(pages_color);
@include border-color(pages_border);
}
.el-pagination__jump{
@include font-colr(pages_color);
}
.el-pagination.is-background .el-pager li:not(.disabled).active{
@include background_color(active_pages_bg);
}
.el-tree{
@include background_color(treeboxbg);
@include font-colr(input_color);
}
.el-tree-node:focus>.el-tree-node__content{
@include background_color(active_nave_bg);
}
.el-tree-node__content:hover{
@include background_color(active_nave_bg);
}
\ No newline at end of file
$main-color:#0069FF;
$font-color:#555555;
$white-font-color:#ffffff;
$white-back-color:#ffffff;
$bodyback-color:#f5f7f9;
$border-color:#e5e5e5;
$title-color:#f4f4f4;
$title-backgroud:#f3f3f3;
$dialog-title:#3BB7FF;
@import "./them.scss";
@mixin themeify {
@each $theme-name, $theme-map in $themes {
//!global 把局部变量强升为全局变量
$theme-map: $theme-map !global;
//判断html的data-theme的属性值 #{}是sass的插值表达式
//& sass嵌套里的父容器标识 @content是混合器插槽,像vue的slot
[data-theme="#{$theme-name}"] & {
@content;
}
}
}
@function themed($key) {
@return map-get($theme-map,$key)
};
@mixin background_color($color) {
@include themeify {
background-color: themed($color)!important;
}
}
@mixin header_color($color) {
@include themeify {
background-color: themed($color)!important;
}
}
@mixin nav_color($color) {
@include themeify {
background-color: themed($color)!important;
}
}
@mixin menu_bg($color) {
@include themeify {
background-color: themed($color)!important;
}
}
@mixin font-colr($color) {
@include themeify {
color: themed($color)!important;
}
}
@mixin border-color($color) {
@include themeify {
border-color: themed($color)!important;
}
}
@mixin box-shaw($type,$color) {
@include themeify {
box-shadow:$type themed($color)!important;
}
}
.primaryButton{
background: $dialog-title!important;
border-color: $dialog-title!important;
......@@ -16,13 +64,18 @@ $dialog-title:#3BB7FF;
background: $white-back-color;
border-color: $dialog-title;
}
body{
html,body{
height: 100%;
padding: 0;
margin: 0;
color: $font-color;
font-family: "微软雅黑";
font-size: 14px;
background: $bodyback-color;
}
body{
@include background_color("background_color");
}
.minHeight{
height: calc(100vh - 140px);
overflow: auto;
......@@ -101,6 +154,10 @@ a:active{
float: right;
margin-right: 10px;
}
.el-menu{
@include menu_bg(menu_bg);
border-right:0!important;
}
.blue{
.tableSpanBorder{
display: inline-block;
......@@ -111,7 +168,7 @@ a:active{
top:3px;
}
.headers{
background: $main-color;
@include header_color(header_background_color);
line-height: 65px;
height: 65px;
}
......@@ -128,7 +185,6 @@ a:active{
position: relative;
top: 10px;
width: 32px;
margin-left: 72px;
}
.exit{
margin:{
......@@ -140,13 +196,20 @@ a:active{
}
.nav{
height:40px;
background: $white-back-color;
@include nav_color(nav_bg);
}
.contentBox{
padding: 12px;
overflow: hidden;
}
}
.content{
@include background_color(treeboxbg);
}
.innnerBox {
@include background_color(treeboxbg);
}
.leftButton{
float: left;
}
......@@ -191,4 +254,338 @@ a:active{
// word-break: break-all;
//
// }
}
.el-main{
@include background_color(mian_bg);
}
.home,.home-box{
height: 100%;
}
.home-box .el-tabs--card>.el-tabs__header .el-tabs__item.is-active{
background: red
}
.home-box .el-tabs__nav{
width: 100%;
}
.home-box .el-tabs__item{
width: 25%!important;
padding: 0!important;
text-align: center;
// @include font-colr(tabs_color);
}
.el-tabs__item{
@include font-colr(tabs_color);
}
.el-tabs__item.is-active{
@include font-colr(tabs_active_color);
}
/* 设置区域设置按钮 */
.editbtn .el-radio-button__inner{
border: 0;
}
.editbtn .el-radio-button:first-child,.editbtn .el-radio-button__inner{
border: 0!important;
}
.editbtn .el-radio-button:last-child,.editbtn .el-radio-button__inner{
border-radius: 0;
border: 0;
}
.editbtn .el-radio-button__orig-radio:checked+.el-radio-button__inner{
border: 0;
background: none;
box-shadow:none;
color: #3BB7FF;
}
.editbtn .el-radio-button__inner{
background: none;
padding: 0;
}
.el-radio-button--small .el-radio-button__inner{
font-size: 18px;
color: #3BB7FF;
}
.editbtn{
height: 46px;
width: 48px;
line-height: 46px;
text-align: center;
font-size: 14px;
background: #D7EDFF;
cursor: pointer;
}
.editbtn {
display: block;
border-radius: 0;
border: 0;
}
.video-box .el-radio-button{
display: block;
}
.editbtn .el-radio-button:first-child .el-radio-button__inner{
border:0;
}
/* 抓拍展示 */
.pic-box {
width: 98%;
margin-bottom:10px;
@include background_color(picbox_bg);
border-radius:2px;
overflow :hidden;
font-size :14px;
@include font-colr(pic_color);
padding: 6px;
}
.picbackground{
height: 133px;
background-size:100% 100%;
}
.home-box .el-card{
border:0;
}
.picbackground img{
height: 100%;
width:100%;
}
.pic-info{
padding-left:10px;
}
.pic-info li{
overflow:hidden;
margin-bottom:3px;
}
.pic-info li span{
display:inline-block;
}
.pic-info li span:nth-child(1){
width:60px;
}
.pic-info li span:nth-child(2){
@include font-colr(pic_info_color);
padding-left: 10px;
}
.el-input-group__append{
background-color: #0d3a79;
border: 0px;
}
.wtbox .el-table{
border-bottom: 0px
}
.setting-box{
// @include background_color(table_th_bg);
}
.wtbox .el-table td, .el-table th{
padding: 8px 0
}
::-webkit-scrollbar{
width: 10px;
height: 10px;
background-color: #333;
}
/*滚动条的轨道*/
::-webkit-scrollbar-track{
box-shadow: inset 0 0 5px rgba(0,0,0,.3);
background-color: #fff;
}
/*滚动条的滑块按钮*/
::-webkit-scrollbar-thumb{
border-radius: 10px;
background-color: rgba(133, 133, 133, 0.31);
}
/*滚动条的上下两端的按钮*/
::-webkit-scrollbar-button{
height: 10px;
background-color: #B0AEDA;
}
.dev-box .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{
background:rgba(0,0,0,.3);
}
.clearpright{
padding-right: 0!important;
}
.chart-header-box .el-input--small .el-input__inner{
height:23px;
line-height:23px;
font-size: 12px;
}
.chart-header-box .el-input--small .el-input__icon{
line-height: 23px;
}
.ol-zoom{
bottom:.5em;
left:auto!important;
right: .5em;
top:auto!important;
}
.rotate-north {
right: .5em;
bottom: 3.8em;
}
.nav-tag-box {
line-height: 40px;
height: 40px;
overflow: hidden;
}
.nav-tag-box .el-tag{
border-radius: 0;
border: 0;
border-right: 1px solid #ccc;
padding-right: 10px;
padding-left: 10px;
line-height: 25px;
background: none;
cursor: pointer;
color: #888888;
}
.nav-tag-box .el-tag .el-icon-close{
color: #888888;
cursor: pointer;
}
.nav-tag-box .el-tag .el-icon-close:hover{
background: none;
cursor: pointer;
color: #3BB7FF;
}
.alarm-event-box .el-table__body tr{
background: #fff!important;
}
.alarm-event-box .el-table .el-table__header th{
background:rgba(248,249,250,1);
box-shadow:0px 1px 0px 0px rgba(0,0,0,0.09);
}
.img-box img{
height: 20vh;
width:20vw;
height: 100%;
width: 100%;
}
.ol-popup img{
height :100%;
width :100%;
}
.el-table__expanded-cell{
padding: 0px 50px!important;
}
.ml10{
margin-left: 10px;
}
.mt10{
margin-top: 10px;
}
.codes-tab-box .el-tabs__item{
width: 112px!important;
}
.is-opend {
background: red;
}
.el-input-group__append{
@include background_color(font_color2);
color: #ffffff;
}
.search-vchan .el-input-group {
box-shadow:-1.2px 2px 1px 0px rgba(78, 8, 8, 0.1);
}
.card-hover:hover,.pic-hover:hover {
webkit-transform: translateY(-4px) scale(2);
-moz-transform: translateY(-4px) scale(1.01);
-ms-transform: translateY(-4px) scale(1.01);
-o-transform: translateY(-4px) scale(1.01);
transform: translateY(-4px) scale(1);
-webkit-box-shadow: 0 14px 24px rgba(62,57,107,.1);
box-shadow: 0 14px 24px rgba(62,57,107,.1);
}
.pic-hover:hover {
box-shadow: 2px 3px 4px rgba(2, 2, 2,0.2);
}
.card-hover,.pic-hover {
-webkit-transition: all .25s ease;
-o-transition: all .25s ease;
-moz-transition: all .25s ease;
transition: all .25s ease;
}
.statusbox {
display: inline-block;
min-width: 60px;
border-radius: 2px;
background:rgba(204,204,204,1);
color: #fff;
font-size: 14px;
}
.taskstatus .statusbox{
height: 25px;
line-height: 25px;
font-size: 12px;
}
.runningbox {
background: #36BEA6;
}
.finishedbox{
background:rgba(255,198,46,1);
}
.pausebox{
background:rgba(232,84,30,1);
}
.alarm-event-box .el-table .el-table__header th{
background: none!important;
}
.el-submenu__title{
font-size: 15px;
@include font-colr(menu_color);
}
.el-table--small td, .el-table--small th {
height: 35px;
padding: 0;
}
.el-radio__label{
color: #333;
}
.show-box .el-image__inner--center{
transform:none;
left: 0;
}
.detailDialog .el-icon-circle-close{
color: #fff;
}
.tasktip{
max-width: 120px;
}
.el-submenu.is-opened .el-submenu__title{
@include background_color(menu_bg);
@include font-colr(submenu_houver);
}
.el-submenu.is-opened .el-submenu__title i, .el-submenu__title .el-submenu__title i{
color: #0069ff;
}
.el-submenu__title:hover{
@include font-colr(submenu_houver);
@include background_color(menu_bg);
}
.el-submenu:hover .el-submenu__title:hover{
@include font-colr(submenu_houver);
}
.el-submenu__title i:last-child{
font-weight: 600;
}
.el-submenu:hover .el-submenu__title i{
@include font-colr(submenu_houver);
}
.el-submenu .el-menu-item{
line-height: 43px;
@include font-colr(menu_color);
}
.el-menu-item:hover {
color: #2d8cf0;
}
.el-loading-mask{
@include background_color(loading_bg);
}
\ No newline at end of file
$main-color:#0069FF;
$font-color:#555555;
$white-font-color:#ffffff;
$white-back-color:#ffffff;
$bodyback-color:#f5f7f9;
$border-color:#e5e5e5;
$title-color:#f4f4f4;
$title-backgroud:#f3f3f3;
$dialog-title:#3BB7FF;
$themes: (
light: (
//字体
font_color1: #fff,
font_color2: #0069ff,
whate_colr:#fff,
submenu_houver:#2d8cf0,
task_icon_color:#ccc,
runtask_color:rgba(102, 102, 102, 1),
sbtask_color:#666666,
pic_color:#555,
tabs_color:#303133,
tabs_active_color:#409EFF,
pic_info_color:#555,
pages_color:#303133,
input_color:#606266,
label_color:#606266,
//背景
background_color: #fff,
header_background_color: #0069FF,
nav_bg:#fff,
menu_bg:#fff,
mian_bg:#F7F6F9,
treeboxbg:#fff,
editbtncolor: #0069ff,
taskshipintitlebg:#3bb7ff,
picbox_bg:#F1F1F1,
hometabletr_bg:#ffff,
setheader_bg:#ACC1FF,
loading_bg:rgba(255,255,255,.3),
dialog_header_bg: #3BB7FF,
pages_bg:#fff,
active_pages_bg:#0069ff,
//选中导航背景颜色
active_nave_bg:rgba(0,105,255,.1),
table_tr_bg:#f4f4f4,
dialog_body_bg:#fff,
input_bg:#fff,
table_hover_bg:#f5f7fa,
//边框
border_color1: #3d414a,
table_border:#f4f4f4,
pages_border:#e5e5e5,
),
dark: (
//字体
font_color1: #939FCC,
font_color2: #007DFF,
menu_color:#939FCC,
task_icon_color:#939FCC,
whate_colr:#fff,
submenu_houver:#2d8cf0,
runtask_color:#fff,
sbtask_color:#fff,
pic_color:#939FCC,
topCon_color:#fff,
tabs_color:#939FCC,
tabs_active_color:#047DF7,
pic_info_color:#fff,
pages_color:#3c87ed,
input_color:#fff,
label_color:#9b9b9b,
//背景
setheader_bg:#0B1745,
background_color: #1b2531,
//头部背景
header_background_color: #1040a6,
nav_bg:#0D2052,
menu_bg:#08173E,
mian_bg:#0B122B,
editbtncolor: #0069ff,
treeboxbg: #182760,
table_th_bg:#0B1745,
taskshipintitlebg:#0D1744,
picbox_bg:#0B1745,
hometabletr_bg:#172760,
loading_bg:rgba(0,0,0,.4),
pages_bg:#0e2869,
table_bg:#666,
active_pages_bg:#095dd0,
//选中导航背景颜色
active_nave_bg:rgba(11, 43, 106, .6),
table_tr_bg:#182760,
dialog_header_bg: #0B1745 ,
dialog_body_bg:#182760,
input_bg:#0D2152,
table_hover_bg:rgba(0,0,0,.4),
//边框
border_color1: #3d414a,
table_border:rgba(0,0,0,.6),
input_border: #24326B,
pages_border:#095dd0,
)
);
\ No newline at end of file
......@@ -5,7 +5,7 @@ import axios from "axios";
import "element-ui/lib/theme-chalk/index.css";
import router from "./router";
import store from "./store";
import resetCss from "./assets/resetElementCss/index.css";
import resetCss from "./assets/resetElementCss/index.scss";
import api from "./api/install";
import "./assets/css/public.css";
import echarts from "echarts";
......
......@@ -145,6 +145,25 @@ export const asyncRouterMap = [
// component: resolve => require(["../views/search/publicFlow.vue"], resolve),
// }
]
},{
path: "/statement",
name: "数据统计",
component: resolve => require(["../views/Layout/index.vue"], resolve),
meta: {
icon: "icon-fanxing-iconxuanzhongziyuanguanli1"
},
children: [
{
path: "/statement/base",
name: "基础统计",
component: resolve =>
require(["../views/statement/base.vue"], resolve)
},{
path: "/statement/area",
name: "区域排行",
component: resolve =>
require(["../views/statement/area.vue"], resolve)
}]
},
{
path: "/resource",
......
......@@ -13,7 +13,16 @@
@click="openmenu"
></span>
<div class="headRight">
<span>{{ curdate }}</span>
<span class="timerbox">{{ curdate }}</span>
<el-dropdown class="zt-box" @command="handleCommand">
<div class="zt-btn">
<i class="el-icon-arrow-down el-icon-menu"></i>主题切换
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="light">白色主题</el-dropdown-item>
<el-dropdown-item command="dark">深色主题</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<img @click="resetpass" src="../../assets/img/home/user.png" alt="" />
<span class="exit" @click="logout()"
>退出<i class="el-icon-arrow-down"></i
......@@ -123,6 +132,11 @@ export default {
}
this.curdate = `${Y}/${M}/${D} ${h}:${m}:${s} ${wtext}`;
},
handleCommand(command){
window.document.documentElement.setAttribute('data-theme',command);
localStorage.setItem("theme",command)
},
logout() {
localStorage.removeItem("menu");
localStorage.removeItem("curmenu");
......@@ -131,6 +145,8 @@ export default {
this.$router.push("/login").catch(err => {
err;
});
location.reload();
},
resetpass() {
this.$router.push("/resetpass").catch(err => {
......@@ -141,7 +157,6 @@ export default {
created() {
this.$api.device.getDev().then(m => {
if (m.length < 1) {
// this.infoFun('未发现运维服务,请联系相关人员')
this.$message({
message: "未发现运维服务,请联系相关人员",
type: "error"
......@@ -156,6 +171,8 @@ export default {
menus
},
mounted() {
let theme = localStorage.getItem("theme") || 'light';
window.document.documentElement.setAttribute('data-theme',theme);
console.log(this.permission_routers);
this.conHeight = window.innerHeight - 65;
console.log(this.conHeight);
......@@ -176,10 +193,13 @@ export default {
};
let app = document.getElementById("app");
app.addEventListener("mousemove", () => {
clearTimeout(this.mousetimer);
this.mousetimer = setTimeout(() => {
clearTimeout(this.mousetimer);
this.mousetimer = null;
if(window.mousetimer) {
clearTimeout(window.mousetimer);
}
window.mousetimer = setTimeout(() => {
debugger
clearTimeout(window.mousetimer);
window.mousetimer = null;
this.logout();
}, 600000);
});
......@@ -260,6 +280,23 @@ export default {
.headRight img {
cursor pointer
}
.zt-box{
margin-right 80px
}
.zt-btn{
// vertical-align middle
color #fff
font-size 14px
height 50px
line-height 50px
i{
font-size 16px
padding-right 10px
padding-top 6px
vertical-align: text-bottom;
}
}
.logotitle{
overflow: hidden;
font-size: 20px;
......@@ -270,4 +307,7 @@ export default {
letter-spacing 2px
float left
}
.timerbox{
padding-right 30px
}
</style>
......@@ -99,7 +99,7 @@ export default {
<style lang="stylus" scoped>
.el-menu-vertical-demo:not(.el-menu--collapse) {
width: 200px;
width: 232px;
min-height: 400px;
box-shadow: 0px -3px 8px 0px rgba(40,49,101,0.13);
}
......
......@@ -56,9 +56,9 @@
<script>
let particlesConfig = require("../assets/js/particles.json");
let sha1 = require("js-sha1");
let versioninfo = require("../../public/js/version");
import types from "../store/types.js";
export default {
name: "Login",
data() {
......@@ -108,7 +108,7 @@ export default {
this.$api.login
.login({
username: this.ruleForm.username,
password: this.ruleForm.password,
password: this.baseencode(this.ruleForm.password),
user_type: "user"
})
.then(res => {
......@@ -119,6 +119,10 @@ export default {
//本系统可以直接用本地缓存做
localStorage.setItem("atoken", res.atoken);
// 处理登录用户权限菜单显示问题;
if(res.firstLogin) {
this.$router.push('resetpass')
return;
}
//算法配置列表
this.algoList();
//存储配置列表
......
......@@ -43,6 +43,10 @@ export default {
if (value === "") {
callback(new Error("请输入密码"));
} else {
var pwdRegex = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}/;
if (!pwdRegex.test(value)) {
callback(new Error("您的密码复杂度太低(密码中必须包含写字母、数字、特殊字符),请及时修改密码!"))
}
if (this.ruleForm.checkPass !== "") {
this.$refs.ruleForm.validateField("checkPass");
}
......@@ -82,9 +86,10 @@ export default {
methods: {
submitForm(formName) {
let data = {
old_pwd: this.ruleForm.oldpassword,
new_pwd: this.ruleForm.newpassword
old_pwd: this.baseencode(this.ruleForm.oldpassword),
new_pwd: this.baseencode(this.ruleForm.newpassword)
};
this.$refs[formName].validate(valid => {
if (valid) {
let user_unid = sessionStorage.getItem("user_unid");
......
<template>
<div class="setting-box">
<div class="search-box">
<el-col :span="4">
<!-- <el-col :span="4">
<el-input v-model="searchval"></el-input>
</el-col>
<el-col :span="2" class="ml10">
<el-button type="primary">查询</el-button>
</el-col>
</el-col> -->
<el-col :span="8" style="float:right" hidden>
<span class="resource-box">
<span class="title">可用分析资源:</span>
......@@ -285,6 +285,7 @@ export default {
text.dy(-6);
nested.click(function() {
let data = this.data("sdv");
_this.curDevData = data;
_this.getSubDev(data);
});
},
......
......@@ -27,9 +27,13 @@
</el-table-column>
<el-table-column
align="center"
prop="create_dt"
width="300"
width="300"
label="创建时间">
<template slot-scope="scope">
<div>
{{showLocalTime(scope.row.create_dt,'local')}}
</div>
</template>
</el-table-column>
<el-table-column
align="center"
......@@ -227,7 +231,7 @@
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$api.ops.delUser({},row.role_unid).then(res=>{
this.$api.ops.delRole(row.role_unid,{}).then(res=>{
if(res.ecode==200){
this.$message({
type: 'success',
......
......@@ -190,15 +190,14 @@ export default {
}
};
var validatePass = (rule, value, callback) => {
var reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,}$/;
if (!reg.test(value)) {
callback(new Error("密码必须包含数字字母大于6位"));
} else {
var pwdRegex = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}/;
if (!pwdRegex.test(value)) {
callback(new Error("您的密码复杂度太低(密码中必须包含写字母、数字、特殊字符),请及时修改密码!"))
} else {
callback();
}
};
var validatePass2 = (rule, value, callback) => {
console.log("aa", this.addForm.password);
if (value === "") {
callback(new Error("请再次输入密码"));
} else if (value !== this.addForm.password) {
......@@ -373,7 +372,7 @@ export default {
.addUser({
norm_type: this.addForm.norm_type,
username: this.addForm.username,
password: this.addForm.password
password: this.baseencode(this.addForm.password)
})
.then(res => {
if (!res.ecode) {
......
......@@ -40,6 +40,7 @@
</el-table-column>
<el-table-column align="center" prop="name" label="名称">
</el-table-column>
<el-table-column align="center" prop="sort" label="显示顺序"> </el-table-column>
<el-table-column
align="center"
prop="note"
......@@ -127,7 +128,7 @@
{ required: true, message: 'code不能为空!', trigger: 'blur' }
]"
>
<el-input v-model="codeData.code"></el-input>
<el-input v-model="codeData.code" :disabled="editStatus == 1"></el-input>
</el-form-item>
<el-form-item
label="名称"
......@@ -141,6 +142,9 @@
<el-form-item label="备注" prop="note">
<el-input v-model="codeData.note"></el-input>
</el-form-item>
<el-form-item label="排序编号" prop="sort">
<el-input v-model="codeData.sort"></el-input>
</el-form-item>
<el-form-item
label="启用"
prop="active"
......@@ -176,11 +180,13 @@ export default {
eventCateData: [],
curcate: "",
catename: "",
eddis:false,
codeData: {
name: "",
code: "",
catename: "",
active: 1
active: true,
sort:""
},
editStatus: 0,
event_type_unid: ""
......@@ -188,7 +194,7 @@ export default {
},
components: {},
created() {
this.getEventList();
// this.getEventList();
this.getEventCate();
},
methods: {
......@@ -220,6 +226,7 @@ export default {
}
});
this.detailVisible = true;
this.$refs["eventform"].resetFields();
this.editStatus = 0;
},
cateFormatter(row) {
......@@ -244,7 +251,8 @@ export default {
catename: this.getCateName(this.curcate),
event_cate_unid: row.event_cate_unid,
active: row.active,
note: row.note
note: row.note,
sort:row.sort?row.sort:''
};
},
deleteCode(index, row) {
......@@ -259,7 +267,7 @@ export default {
type: "success",
message: "删除成功!"
});
this.cateChange();
this.cateChange(this.curcate);
});
})
.catch(() => {
......@@ -302,7 +310,7 @@ export default {
this.$api.codes.addEventTypes(data).then(res => {
this.detailVisible = false;
this.$refs["eventform"].resetFields();
this.cateChange();
this.cateChange(this.curcate);
});
},
saveEditCode() {
......@@ -310,14 +318,17 @@ export default {
event_cate_unid: this.curcate,
code: this.codeData.code,
name: this.codeData.name,
note: ""
note: this.codeData.note,
sort:this.codeData.sort,
active:this.codeData.active
};
this.$api.codes
.editEventType(this.codeData, this.event_type_unid)
.editEventType(obj, this.event_type_unid)
.then(res => {
this.detailVisible = false;
this.$refs["eventform"].resetFields();
this.cateChange();
this.cateChange(this.curcate);
this.editStatus = 0;
});
},
......
......@@ -41,6 +41,7 @@
</el-table-column>
<el-table-column align="center" prop="name" label="名称">
</el-table-column>
<el-table-column align="center" prop="sort" label="显示顺序"> </el-table-column>
<el-table-column align="center" prop="note" label="备用名称">
</el-table-column>
<el-table-column
......@@ -132,6 +133,9 @@
<el-form-item label="备注" prop="note">
<el-input v-model="codeData.note"></el-input>
</el-form-item>
<el-form-item label="排序编号" prop="sort">
<el-input v-model="codeData.sort"></el-input>
</el-form-item>
<el-form-item
label="启用"
prop="active"
......@@ -247,7 +251,8 @@ export default {
code: this.codeData.code,
name: this.codeData.name,
note: this.codeData.note,
active: this.codeData.active
active: this.codeData.active,
sort:this.codeData.sort
};
this.$api.codes.addTrafficCode(data, this.curCateUnid).then(res => {
console.log(res);
......@@ -261,7 +266,8 @@ export default {
code: this.codeData.code,
name: this.codeData.name,
note: this.codeData.note,
active: this.codeData.active
active: this.codeData.active,
sort:this.codeData.sort
};
this.$api.codes
.editTrafficCode(data, this.curCateUnid, this.codeData.code_unid)
......
......@@ -30,7 +30,12 @@
>
<el-table-column align="center" prop="name" label="名称">
</el-table-column>
<el-table-column prop="create_dt" align="center" label="上传时间">
<el-table-column align="center" label="上传时间">
<template slot-scope="scope">
<div>
{{showLocalTime(scope.row.create_dt,'local')}}
</div>
</template>
</el-table-column>
<el-table-column align="center" prop="task_list" label="应用任务">
<template slot-scope="scope">
......
......@@ -116,6 +116,15 @@ export default {
beforeup(file) {
this.updata.name = file.name;
this.updata.vchan_type = "vfile";
console.log(file)
let size = file.size;
if(size/1024 > 1024*500) {
this.$message({
message: "视频不能大于500M",
type: "error"
});
return false;
}
// this.updata.vchan_refid = new Date().getTime();
},
setheader(){
......
......@@ -44,7 +44,7 @@
<span>车辆品牌:</span>
<span>{{ item.vehicle_body_logo_text }}</span>
</li>
<li v-if="item.event_type === 'vehicle'" :title="item.vehicle_RefinedFeature_text">
<li hidden v-if="item.event_type === 'vehicle'" :title="item.vehicle_RefinedFeature_text">
<span>标志物:</span>
<span>{{ item.RefinedFeature_text }}</span>
</li>
......
......@@ -66,6 +66,7 @@
<li
v-if="item.event_type === 'vehicle'"
:title="item.vehicle_RefinedFeature_text"
hidden
>
<span>标志物:</span>
<span>{{ item.RefinedFeature_text }}</span>
......
......@@ -117,6 +117,7 @@
<span>{{ curPicData.vehicle_body_color_text }}</span>
</li>
<li
hidden
v-if="curPicData.event_type === 'vehicle'"
:title="curPicData.RefinedFeature_text"
>
......
......@@ -3,15 +3,14 @@
<el-col :span="3" class="ht100 tree-left">
<div class="tree-box">
<div class="tree-title">视频设备</div>
<div class=""></div>
<div class="">
<div class></div>
<div class>
<el-input
class="search-input"
prefix-icon="el-icon-search"
placeholder="请输入内容"
v-model="searchInfo"
>
</el-input>
></el-input>
</div>
<ul class="tasklist">
<li
......@@ -34,7 +33,7 @@
' el-icon-fanxin-task-pause': item.status != 'Running',
icon: true
}"
></i> -->
></i>-->
<!-- <span class="el-icon-caret-bottom" style="display:inline-block"></span> -->
<span class="task-title">{{ item.task_name }}</span>
</span>
......@@ -66,7 +65,7 @@
<div class="play-box">
<videoplay ref="videoplay" :playurl="playurl"></videoplay>
</div>
<div class="">
<div class>
<setting
:taskid="taskID"
ref="setting"
......@@ -220,139 +219,163 @@ export default {
}
};
</script>
<style lang="stylus" scoped>
.home-box{
height calc(100% - 60px)
width 100%
margin 2px auto
color #fff
overflow hidden
min-height 700px
padding 10px
<style lang="scss" scoped>
.home-box {
height: calc(100% - 60px);
width: 100%;
margin: 2px auto;
@include font-colr(whate_colr);
overflow: hidden;
min-height: 700px;
padding: 10px;
}
.tree-box{
border-radius 2px
height calc(100% - 0px)
overflow hidden
background #fff
.tree-box {
border-radius: 2px;
height: calc(100% - 0px);
overflow: hidden;
@include background_color(treeboxbg);
}
.tree-title{
height 30px
line-height 30px
padding-left 30px
font-size 14px
background #3BB7FF
.tree-title {
height: 30px;
line-height: 30px;
padding-left: 30px;
font-size: 14px;
@include background_color(taskshipintitlebg);
}
.tree-box:hover{
overflow-y auto
.tree-box:hover {
overflow-y: auto;
}
.tree-left{
.tree-left {
}
.video-box,.show-box{
height calc(100% - 0px)
overflow hidden
background #fff
.video-box,
.show-box {
height: calc(100% - 0px);
overflow: hidden;
}
.show-box {
overflow hidden
padding 10px
overflow: hidden;
padding: 10px;
@include background_color(treeboxbg);
}
.show-box:hover{
overflow-y auto
.show-box:hover {
overflow-y: auto;
}
.play-box{
height 70%
background black
margin-bottom 10px
.play-box {
height: 70%;
background: black;
margin-bottom: 10px;
}
.ht100{
height 100%
.ht100 {
height: 100%;
}
.search-input{
border-radius 1px
width 90%
margin 10px
.search-btn{
background rgba(0,0,0,.3)
border-radius 0
text-align center
.search-input {
border-radius: 1px;
width: 90%;
margin: 10px;
.search-btn {
background: rgba(0, 0, 0, 0.3);
border-radius: 0;
text-align: center;
}
}
.vido-ifram{
height 100%
width 100%
border 0
.vido-ifram {
height: 100%;
width: 100%;
border: 0;
}
.task-lsit{
display inline-block
cursor pointer
font-size 14px
color rgba(102, 102, 102, 1)
margin-top 15px
.task-lsit {
display: inline-block;
cursor: pointer;
font-size: 14px;
color: rgba(102, 102, 102, 1);
margin-top: 15px;
.icon {
padding-left 10px
padding-left: 10px;
}
}
.runningtask{
// color rgba(1, 206, 184, 0.56);
color rgba(102, 102, 102, 1)
}
.stoptask{
color rgba(102, 102, 102, 1)
.icon {
font-size 22px
margin-left -2px
}
.runningtask {
// color rgba(1, 206, 184, 0.56);
@include font-colr(runtask_color);
}
.stoptask {
color: rgba(102, 102, 102, 1);
.icon {
font-size: 22px;
margin-left: -2px;
}
.task-title{
padding-left 10px
width 100%
display inline-block
overflow hidden
}
.tasklist{
padding-left 10px;
width 100%
overflow hidden
.task-title {
padding-left: 10px;
width: 100%;
display: inline-block;
overflow: hidden;
}
.tasklist {
padding-left: 10px;
width: 100%;
overflow: hidden;
}
.subtask{
margin-bottom 5px
width 15vw
height 30px
margin-left 15px
line-height 30px
font-size 13px
padding-left 8px
color #666666
.subtask {
margin-bottom: 5px;
width: 15vw;
height: 30px;
margin-left: 15px;
line-height: 30px;
font-size: 13px;
padding-left: 8px;
@include font-colr(sbtask_color);
// width calc(100% - 30px);
overflow hidden
cursor pointer
.icon{
font-size 10px
padding-right 2px
transform scale(.6)
color #01ce82
overflow: hidden;
cursor: pointer;
.icon {
font-size: 10px;
padding-right: 2px;
transform: scale(0.6);
color: #01ce82;
}
}
.disabledColor{
color #c0c0c0!important;
text-decoration: line-through;
cursor text
.disabledColor {
color: #c0c0c0 !important;
}
.subtaskActive {
position relative
color #333
position: relative;
color: #333;
}
.subtaskActive::before{
position absolute
content ""
top 11px
left 0px
display inline-block
height 8px
width 8px
background rgba(42, 225, 47, 0.74)
border-radius 10px
.subtaskActive::before {
position: absolute;
content: "";
top: 11px;
left: 0px;
display: inline-block;
height: 8px;
width: 8px;
background: rgba(42, 225, 47, 0.74);
border-radius: 10px;
}
</style>
</style>
\ No newline at end of file
......@@ -291,6 +291,7 @@ export default {
"241,31,8",
"31,151,181",
"3,65,76",
"12,222,235",
"12,222,235"
], //线颜色
typeData: [
......@@ -303,7 +304,8 @@ export default {
"违停区域",
"行人检测区域",
"行人密度区域",
"异物检测区域"
"异物检测区域",
],
cindex: 0,
//laneMark:false,
......@@ -313,6 +315,7 @@ export default {
width: "40px",
margin: "10px 15px"
},
istest:false,
canvasState: 0, //控制编辑/添加
polyline: 0, //控制直线/折线
smallWindow: false, //控制属性弹窗
......@@ -2331,12 +2334,15 @@ export default {
mounted() {
// console.log(eventJson);
// this.eventData = eventJson;
// this.stageInit()
key("alt+1", () => {
if (this.istest) {
this.istest = false;
this.typeData.splice(-1,1)
} else {
this.istest = true;
this.typeData.push("测试区域")
}
});
}
......
......@@ -314,7 +314,8 @@ export default {
"违停区域",
"行人检测区域",
"行人密度区域",
"异物检测区域"
"异物检测区域",
"测试区域"
],
cindex: 0,
//laneMark:false,
......
......@@ -93,6 +93,7 @@ export default {
this.subtaskid = subid;
this.dialogVisible = true;
this.uploadurl = `http://${location.host}/api/v1/devconf_fx/import/${this.subtaskid}`;
this.fileList = [];
this.$store.commit("setocxstate", 0);
},
handlePreview(file, fileList) {
......@@ -116,7 +117,8 @@ export default {
type: "success"
});
this.dialogVisible = false;
this.$store.commit("setocxstate", 1)
this.$store.commit("setocxstate", 1);
this.fileList = [];
},
errorfile(err){
console.log(err);
......
......@@ -3,7 +3,6 @@
<div>
<el-table
:data="taskInfo.mtasks[0].scenes"
border
stripe
highlight-current-row
style="width: 80%;float:left"
......@@ -11,22 +10,16 @@
@cell-click="handleCurrentChange"
v-loading="loading"
>
<el-table-column label="序号" type="index" width="50" align="center">
</el-table-column>
<el-table-column label="序号" type="index" width="50" align="center"></el-table-column>
<el-table-column align="center" label="预置位编号" width="120">
<template slot-scope="scope">
<div>
{{ setpositionnum(scope.row.position_num) }}
</div>
<div>{{ setpositionnum(scope.row.position_num) }}</div>
</template>
</el-table-column>
<el-table-column align="center" label="预设位置配置" width="120">
<template slot-scope="scope">
<div class="yzw-setbox">
<span
class="icon el-icon-delete"
@click="resetRoi(scope.row)"
></span>
<span class="icon el-icon-delete" @click="resetRoi(scope.row)"></span>
</div>
</template>
</el-table-column>
......@@ -69,9 +62,7 @@
"
placement="top"
>
<span @click="setDemarcate(scope.row, scope.$index)"
>标定设置</span
>
<span @click="setDemarcate(scope.row, scope.$index)">标定设置</span>
</el-tooltip>
<!-- <span @click="setTimer(scope.row, scope.$index)">时间设置</span> -->
</div>
......@@ -79,36 +70,34 @@
</el-table-column>
</el-table>
<div class="setting-box">
<div class="set-header ">基础操作</div>
<div class="set-header">基础操作</div>
<div class="set-item" @click="setsounces">
场景配置 <span class="set-icon el-icon-circle-plus"></span>
场景配置
<span class="set-icon el-icon-circle-plus"></span>
</div>
<div class="set-item">
轮循播放
<span class="set-icon">
<el-switch :width="25" v-model="switchstate" @change="suspends">
</el-switch>
<el-switch :width="25" v-model="switchstate" @change="suspends"></el-switch>
</span>
</div>
<div class="set-item" @click="handleparam('upload')">
配置导入 <span class="set-icon el-icon-download"></span>
配置导入
<span class="set-icon el-icon-download"></span>
</div>
<div class="set-item" @click="handleparam('export')">
配置导出 <span class="set-icon el-icon-upload"></span>
配置导出
<span class="set-icon el-icon-upload"></span>
</div>
<div class="set-item" @click="showview()">
效果展示 <span class="set-icon el-icon-s-help"></span>
效果展示
<span class="set-icon el-icon-s-help"></span>
</div>
</div>
<handleparam ref="handleparam" :subtaskid="subtaskid"></handleparam>
</div>
<div class="yt-box">
<ytconfig
ref="yt"
@subpostion="submitPosion"
@deleteytconfig="deleteytconfig"
:vchan="vchan"
></ytconfig>
<ytconfig ref="yt" @subpostion="submitPosion" @deleteytconfig="deleteytconfig" :vchan="vchan"></ytconfig>
</div>
<div>
<parameter ref="parameter"></parameter>
......@@ -182,7 +171,7 @@ export default {
},
handleparam(type) {
if (type == "upload") {
this.$refs.handleparam.show(type,this.subtaskid);
this.$refs.handleparam.show(type, this.subtaskid);
} else {
this.$api.task.exportParams(this.subtaskid).then(res => {
if (res.ecode == 200) {
......@@ -458,77 +447,92 @@ export default {
}
};
</script>
<style lang="stylus" scoped>
.box{
position relative
<style lang="scss" scoped>
.box {
position: relative;
}
.yzw-setbox{
.yzw-setbox {
.icon {
font-size 16px
padding 0 10px
cursor pointer
font-size: 16px;
padding: 0 10px;
cursor: pointer;
}
.icon:first-child{
color #6783E3
.icon:first-child {
color: #6783E3;
}
.icon:last-child{
color red
.icon:last-child {
color: red;
}
}
.setting-box{
width 18%;
float right
.setting-box {
width: 19%;
float: right;
height: 25vh;
@include background_color(hometabletr_bg);
}
.table-set span{
padding 0 10px
cursor pointer
color #666666
border-right 1px solid #E5E5E5
.table-set span {
padding: 0 10px;
cursor: pointer;
color: #666666;
border-right: 1px solid #E5E5E5;
}
.table-set span:last-child{
border-right 0
.table-set span:last-child {
border-right: 0;
}
.table-set span:hover{
color #3BB7FF
.table-set span:hover {
color: #3BB7FF;
}
.set-header{
height 30px
line-height 30px
text-align center
background #ACC1FF
.set-header {
height: 40px;
line-height: 40px;
text-align: center;
@include background_color(setheader_bg);
}
.set-item{
height 3vh
line-height 3vh
min-height 30px
padding:0 10px
color #555555
margin-top 1vh
cursor pointer
.set-icon{
display inline-block
float right
line-height 3vh
font-size 20px
color #CCCCCC
.set-item {
height: 3vh;
line-height: 3vh;
min-height: 30px;
padding: 0 10px;
color: #555555;
margin-top: 1vh;
cursor: pointer;
.set-icon {
display: inline-block;
float: right;
line-height: 3vh;
font-size: 20px;
@include font-colr(task_icon_color);
}
.set-icon:hover{
color #3BB7FF
.set-icon:hover {
color: #3BB7FF!important;
}
}
.upload-box {
margin-right 20px
margin-right: 20px;
}
.yt-box{
.yt-box {
}
.settimertype,.sel-box{
display flex
margin-bottom 10px
.settimertype, .sel-box {
display: flex;
margin-bottom: 10px;
.title {
line-height 30px;
padding-right 10px
line-height: 30px;
padding-right: 10px;
}
}
</style>
......@@ -20,7 +20,7 @@ export default {
timeroptions: [
{ name: 5, value: 5 },
{ name: 10, value: 10 },
{ name: 15, value: 15 },
{ name: 20, value: 20 },
{ name: 30, value: 30 },
{ name: "不限时", value: -1 }
]
......
......@@ -72,14 +72,16 @@
<el-slider class="slider-item" v-model="value4" show-input></el-slider>
</div> -->
<div class="slider-box" style="margin-bottom:6vh;margin-top:3vh">
<span class="title">变倍</span>
<span class="el-icon-circle-plus s-icon s-plus"
<span class="el-icon-remove s-icon"
@mousedown="Ytontroller(10)"
@mouseup="stopYtontroller(11)"
style="cursor: pointer"
></span>
<span class="el-icon-remove s-icon"
<span class="title">变倍</span>
<span class="el-icon-circle-plus s-icon s-plus"
@mousedown="Ytontroller(9)"
@mouseup="stopYtontroller(11)"
style="cursor: pointer"
></span>
</div>
<div class="right-bottom-box">
......
......@@ -171,6 +171,11 @@
<el-table-column prop="sample_dura" align="center" label="统计周期(秒)">
</el-table-column>
<el-table-column prop="dist_time" align="center" label="车头时距(秒)">
<template slot-scope="scope">
<div>
{{ scope.row.dist_time.toFixed(2) }}
</div>
</template>
</el-table-column>
<el-table-column prop="distance" align="center" label="车头间距(m)">
<template slot-scope="scope">
......@@ -314,6 +319,8 @@ export default {
this.conditions.task_id +
"&subtask_id=" +
this.conditions.subtask_id +
"&detection_type=" +
this.conditions.detection_type +
"&statistic_type=" +
this.conditions.statistic_type
)
......@@ -329,6 +336,7 @@ export default {
},
query() {
this.page = 1;
this.total = 0;
this.getData();
},
getData() {
......
<template>
<div>
<div class="serarch-box">
<el-form ref="form" label-width="80px">
<el-col :span="4">
<el-form-item label="事件类型">
<el-select v-model="region" placeholder="请选择事件类型">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="活动区域">
<el-select v-model="region" placeholder="请选择活动区域">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-form>
</div>
</div>
</template>
<script>
export default {
data() {
return {
vchan:""
}
}
}
</script>
<style lang="stylus" scoped>
.serarch-box {
width 98%;
margin 10px auto
border 1px solid #dcdee2
height 120px
background #fff
border-radius 5px
padding 10px
}
.search-item{
width 200px;
}
</style>
10=0
25=1
2=2
26=3
4=4
1=5
21=6
3=7
7=8
15=9
9=10
27=11
14=12
42=13
8=14
11=15
16=16
13=17
35=18
24=19
22=20
19=21
34=22
67=23
36=24
55=25
40=26
85=28
32=30
31=31
76=32
18=33
57=34
61=35
64=36
124=37
49=38
33=39
50=40
=41
38=42
56=44
44=47
78=48
73=49
29=50
39=52
37=53
5=54
=55
17=56
132=57
89=58
120=60
47=61
115=62
123=64
117=65
119=66
80=67
51=68
136=69
30=71
81=72
41=74
6=75
53=76
118=77
12=78
52=79
82=80
84=81
121=82
135=84
23=85
48=86
98=88
54=90
65=92
79=93
63=95
28=96
88=97
87=98
102=99
105=100
58=102
71=103
113=107
90=110
93=111
95=112
97=113
108=114
107=116
8=117
106=123
60=125
70=126
66=128
71=129
75=131
46=132
62=134
116=135
68=149
99=150
91=151
77=153
42=155
100=159
96=160
111=162
45=166
137=168
109=171
0=200000
=27
=29
=43
=45
=46
=51
=59
=63
=70
=73
=83
=87
=89
=91
=94
=101
=104
=105
=106
=108
=109
=115
=118
=119
=120
=121
=122
=124
=127
=130
=133
=136
=137
=138
=139
=140
=141
=142
=143
=144
=145
=146
=147
=148
=154
=156
=157
=158
=161
=163
=164
=165
=167
=169
=170
=172
=173
=174
<template>
<div>
<el-dialog
title="任务配置修改"
:title="headertitle"
:visible.sync="setvisible"
width="450px"
:before-close="handleClose"
......@@ -110,6 +110,7 @@
</el-form-item>
<el-form-item label="设备类型" class="form-item">
<el-select v-model="formData.plate_type">
<el-option value="" label="">请选择</el-option>
<el-option
v-for="(item, index) in platT"
:key="index"
......@@ -154,6 +155,7 @@ export default {
setvisible: false,
timer: ["00:00:00", "23:59:59"],
backpdata: "",
headertitle:"添加任务",
formData: {
task_name: "",
task_algo_type: "",
......@@ -224,6 +226,7 @@ export default {
this.platT = [];
this.setvisible = true;
if (type == "add") {
this.headertitle = "新建任务"
//timer单独拿到form外层是因为element一个bug放到内层后不能修改时间
this.timer = ["00:00:00", "23:59:59"];
this.formData = {
......@@ -239,6 +242,7 @@ export default {
};
}
if (type == "edit") {
this.headertitle = "修改任务"
this.pedittype = type;
if (pdata.start_time) {
let startT = pdata.start_time;
......
......@@ -11,7 +11,15 @@
<div>
<!-- 外层内容 -->
<div class="leftBox">
<div class="titles">视频设备</div>
<el-input
class="search-input"
prefix-icon="el-icon-search"
placeholder="请输入内容"
v-model="searchText"
>
</el-input>
<div class="">
</div>
<div class="treeBox">
<el-tree
:props="props"
......@@ -22,6 +30,7 @@
@node-click="vchanClick"
ref="tree"
@check="handleCheckChange"
:filter-node-method="filterNode"
:render-content="renderContent"
></el-tree>
</div>
......@@ -101,6 +110,7 @@ export default {
editData: {},
taskData: {},
moveTaskData: [],
searchText:"",
setvisible: false,
props: {
id: "vchan_refid",
......@@ -124,10 +134,14 @@ export default {
default: "add"
}
},
watch: {
parentData(val) {
// this.sessionData = JSON.parse(JSON.stringify(val));
// this.editData = val;
},
searchText(val){
this.$refs.tree.filter(val);
}
},
components: {
......@@ -138,6 +152,10 @@ export default {
console.log(this.setvisible);
},
methods: {
filterNode(value, data) {
if (!value) return true;
return data.name.indexOf(value) !== -1;
},
showModal(val) {
this.taskData = val;
this.tableData = [];
......@@ -224,6 +242,7 @@ export default {
let status = true;
let subData = [];
this.tableData.map(e => {
debugger
let vchan = e;
let data = {
is_dome: false,
......@@ -433,7 +452,7 @@ export default {
return (
<span class="custom-tree-node">
<el-tooltip
class="item"
popper-class="tasktip"
effect="dark"
content={node.label}
placement="top-start"
......@@ -591,8 +610,7 @@ export default {
height: 630px;
border: 1px solid rgba(229, 229, 229, 1);
float: left;
overflow: hidden;
overflow-y: auto;
overflow: auto;
}
.titles {
height: 30px;
......@@ -604,7 +622,8 @@ export default {
}
.treeBox {
padding: 6px;
overflow: auto;
width:1000px
// overflow: auto;
}
.rightBox {
float: left;
......@@ -617,4 +636,8 @@ export default {
border: 1px solid #444444;
margin-bottom: 14px;
}
.search-input{
width: 90%;
margin: 10px 5%;
}
</style>
......@@ -68,7 +68,7 @@
>查询</el-button
>
<span style="float: right;">
<el-button type="info" icon="el-icon-plus" @click="editTask('add')"
<el-button type="info" icon="el-icon-plus" style="padding: 7px 16px" @click="editTask('add')"
>新建任务</el-button
>
</span>
......@@ -192,7 +192,7 @@
'icon-fanxing-qidong': true,
playIcon: true,
noplayicon:
scope.row.status == 'NotInTimeOfDay' ? true : false
scope.row.status == 'NotInTimeOfDay' ? false : false
}"
@click="setTaskStatus(scope.row, 'start')"
></span>
......@@ -484,9 +484,9 @@ export default {
},
setTaskStatus(data, type) {
this.setsSrollTop();
if (data.status == "NotInTimeOfDay") {
return;
}
// if (data.status == "NotInTimeOfDay") {
// return;
// }
this.$api.task
.setTaskStatus(data.task_id, { start_stop_status: type })
.then(res => {
......@@ -531,7 +531,8 @@ export default {
</script>
<style lang="scss" scoped>
.topCon {
background: $white-back-color;
@include background_color(treeboxbg);
@include font-colr(topCon_color);
margin-bottom: 12px;
height: 100px;
.left {
......@@ -636,7 +637,7 @@ export default {
}
}
.content {
background: #ffffff;
@include background_color(treeboxbg);
}
.inputBox {
margin-right: 20px;
......
......@@ -20,8 +20,8 @@
<span class="subtask-info">{{ subTaskData.video_total }}</span> -->
<span class="label">任务信息</span>
<span class="subtask-info">{{ subTaskData.info }}</span>
<span class="label">分析设备</span>
<span class="subtask-info">
<span class="label" hidden>分析设备</span>
<span class="subtask-info" hidden>
<el-select v-model="assign_id" filterable>
<!-- <el-option
v-for="(item, index) in freeList"
......@@ -70,7 +70,7 @@
</el-option> -->
</el-select>
</span>
<span class="label sub-btn" @click="subMove" >确定</span>
<span class="label sub-btn" @click="subMove" hidden>确定</span>
</div>
</template>
......
......@@ -758,6 +758,10 @@
error-stack-parser "^2.0.0"
string-width "^2.0.0"
"@svgdotjs/svg.js@^3.0.16":
version "3.0.16"
resolved "https://registry.npm.taobao.org/@svgdotjs/svg.js/download/@svgdotjs/svg.js-3.0.16.tgz#7044754e45daf62c8e2b115c45ca33ca5b967aff"
"@types/color-name@^1.1.1":
version "1.1.1"
resolved "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz?cache=0&sync_timestamp=1580841712213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
......@@ -1186,6 +1190,10 @@ acorn-walk@^6.0.1, acorn-walk@^6.1.1:
version "6.2.0"
resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
acorn-walk@^7.1.1:
version "7.2.0"
resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1597235853605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.7, acorn@^6.1.1, acorn@^6.2.1:
version "6.4.0"
resolved "https://registry.npm.taobao.org/acorn/download/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784"
......@@ -1194,6 +1202,10 @@ acorn@^7.1.0:
version "7.1.0"
resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
acorn@^7.1.1:
version "7.4.0"
resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.4.0.tgz?cache=0&sync_timestamp=1597235733498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c"
address@^1.1.2:
version "1.1.2"
resolved "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
......@@ -7238,6 +7250,10 @@ svg-tags@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
svg.js@^2.7.1:
version "2.7.1"
resolved "https://registry.npm.taobao.org/svg.js/download/svg.js-2.7.1.tgz#eb977ed4737001eab859949b4a398ee1bb79948d"
svgo@^1.0.0:
version "1.3.2"
resolved "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433264480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
......@@ -7816,6 +7832,24 @@ webpack-bundle-analyzer@^3.6.0:
opener "^1.5.1"
ws "^6.0.0"
webpack-bundle-analyzer@^3.8.0:
version "3.8.0"
resolved "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.8.0.tgz#ce6b3f908daf069fd1f7266f692cbb3bded9ba16"
dependencies:
acorn "^7.1.1"
acorn-walk "^7.1.1"
bfj "^6.1.1"
chalk "^2.4.1"
commander "^2.18.0"
ejs "^2.6.1"
express "^4.16.3"
filesize "^3.6.1"
gzip-size "^5.0.0"
lodash "^4.17.15"
mkdirp "^0.5.1"
opener "^1.5.1"
ws "^6.0.0"
webpack-chain@^6.0.0:
version "6.4.0"
resolved "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.4.0.tgz?cache=0&sync_timestamp=1580740704742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.4.0.tgz#22f0b27b6a9bc9ee3cba4f9e6513cf66394034e2"
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!