diff --git a/客户端/齐越慧眼/齐越慧眼/App.xaml.cs b/客户端/齐越慧眼/齐越慧眼/App.xaml.cs
index cb40dfe..dbc80c7 100644
--- a/客户端/齐越慧眼/齐越慧眼/App.xaml.cs
+++ b/客户端/齐越慧眼/齐越慧眼/App.xaml.cs
@@ -17,7 +17,9 @@ namespace 齐越慧眼
public partial class App : Application
{
public App() {
- var settings = new CefSettings();
+ var settings = new CefSettings() {
+
+ };
// ...
settings.RegisterScheme(new CefCustomScheme()
diff --git a/客户端/齐越慧眼/齐越慧眼/UserControls/CatControl.xaml.cs b/客户端/齐越慧眼/齐越慧眼/UserControls/CatControl.xaml.cs
index b1b0705..d807f07 100644
--- a/客户端/齐越慧眼/齐越慧眼/UserControls/CatControl.xaml.cs
+++ b/客户端/齐越慧眼/齐越慧眼/UserControls/CatControl.xaml.cs
@@ -1,4 +1,5 @@
-using System;
+using CefSharp;
+using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
@@ -22,11 +23,19 @@ namespace 齐越慧眼.UserControls
{
InitializeComponent();
Loaded += CatControl_Loaded;
+ web.Initialized += Web_Initialized;
+ }
+
+ private void Web_Initialized(object sender, EventArgs e)
+ {
+ web.BrowserSettings.FileAccessFromFileUrls = CefSharp.CefState.Enabled;
+ web.BrowserSettings.UniversalAccessFromFileUrls = CefSharp.CefState.Enabled;
}
private void CatControl_Loaded(object sender, RoutedEventArgs e)
{
- web.Load("nacollector://dist/index.html");
+ web.Load("nacollector://home");
+ web.ShowDevTools();
}
}
}
diff --git a/客户端/齐越慧眼/齐越慧眼/cefhelper/SchemeHandler.cs b/客户端/齐越慧眼/齐越慧眼/cefhelper/SchemeHandler.cs
index 7de4114..bca7c09 100644
--- a/客户端/齐越慧眼/齐越慧眼/cefhelper/SchemeHandler.cs
+++ b/客户端/齐越慧眼/齐越慧眼/cefhelper/SchemeHandler.cs
@@ -15,12 +15,16 @@ namespace 齐越慧眼.cefhelper
var names = this.GetType().Assembly.GetManifestResourceNames();
Uri u = new Uri(request.Url);
- String file = "vuepage/client/" + u.Authority + u.AbsolutePath; // 注:目录名需全为小写字母,否则将无法得到 Resource
-
+ String file = "vuepage/client/dist" + u.AbsolutePath; // 注:目录名需全为小写字母,否则将无法得到 Resource
+ if (!u.AbsolutePath.Contains("."))
+ {
+ file = "vuepage/client/dist/index.html";
+ }
Assembly ass = Assembly.GetExecutingAssembly();
String resourcePath = ass.GetName().Name + "." + file.Replace("/", "."); // 你可以设置断点看看这里的值
if (resourcePath.EndsWith("."))
resourcePath = resourcePath.Remove(resourcePath.Length - 1, 1);
+
Task.Run(() =>
{
using (callback)
@@ -43,11 +47,11 @@ namespace 齐越慧眼.cefhelper
case ".png":
mimeType = "image/png";
break;
- case ".appcache":
- break;
case ".manifest":
mimeType = "text/cache-manifest";
break;
+ default:
+ break;
}
// Reset the stream position to 0 so the stream can be copied into the underlying unmanaged buffer
@@ -59,15 +63,18 @@ namespace 齐越慧眼.cefhelper
Stream = stream;
callback.Continue();
+
+ return CefReturnValue.Continue;
}
else
{
callback.Cancel();
+ return CefReturnValue.Cancel;
}
}
});
- return CefReturnValue.Continue;
+ return CefReturnValue.ContinueAsync;
}
}
}
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/.eslintrc.js b/客户端/齐越慧眼/齐越慧眼/vuepage/client/.eslintrc.js
new file mode 100644
index 0000000..c8ccd8f
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/.eslintrc.js
@@ -0,0 +1,27 @@
+// https://eslint.org/docs/user-guide/configuring
+
+module.exports = {
+ root: true,
+ parserOptions: {
+ parser: 'babel-eslint'
+ },
+ env: {
+ browser: true,
+ },
+ extends: [
+ // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
+ // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
+ 'plugin:vue/essential'
+ ],
+ // required to lint *.vue files
+ plugins: [
+ 'vue'
+ ],
+ // add your custom rules here
+ rules: {
+ // allow async-await
+ 'generator-star-spacing': 'off',
+ // allow debugger during development
+ 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
+ }
+}
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/package.json b/客户端/齐越慧眼/齐越慧眼/vuepage/client/package.json
index f127ec8..0fd70de 100644
--- a/客户端/齐越慧眼/齐越慧眼/vuepage/client/package.json
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/package.json
@@ -9,9 +9,13 @@
},
"dependencies": {
"ant-design-vue": "^1.7.8",
+ "axios": "^0.23.0",
+ "babel-eslint": "^10.1.0",
+ "mini-css-extract-plugin": "^0.9.0",
"vue": "^2.6.11",
"vue-router": "^3.2.0",
- "vuex": "^3.4.0"
+ "vuex": "^3.4.0",
+ "webpack": "^4.0.0"
},
"devDependencies": {
"@vue/cli-plugin-eslint": "~4.5.0",
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/App.vue b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/App.vue
index 1a221f0..bee6eba 100644
--- a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/App.vue
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/App.vue
@@ -1,9 +1,5 @@
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/api/http.js b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/api/http.js
new file mode 100644
index 0000000..89f27e0
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/api/http.js
@@ -0,0 +1,256 @@
+import axios from 'axios'
+
+axios.defaults.timeout = 50000;
+//axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
+axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
+
+
+//'application/json;charset=utf-8';//
+if (process.env.NODE_ENV == 'development') {
+ axios.defaults.baseURL = 'http://127.0.0.1:9991/';
+}
+else if (process.env.NODE_ENV == 'production') {
+ axios.defaults.baseURL = 'http://132.232.2.109:9991/';
+}
+let ipAddress = axios.defaults.baseURL;
+axios.interceptors.request.use((config) => {
+ //axios.defaults.headers[_Authorization] = $httpVue.$store.getters.getToken();
+
+ //console.log(axios.defaults.headers[_Authorization])
+ if (config.method === 'post') {
+ //config.data =qs.stringify(config.data);
+ // console.log('post拦截:' + config.data);
+ }
+ return config;
+}, (error) => {
+ return Promise.reject(error);
+});
+
+
+//返回状态判断(添加响应拦截器)
+axios.interceptors.response.use((res) => {
+ //对响应数据做些事
+ if (res.data.success) {
+ return res;
+ }
+ return Promise.resolve(res);
+}, (error) => {
+ let httpMessage = '';
+ if (error.response) {
+ if (error.response.data && error.response.data.message) {
+ httpMessage = error.response.data.message;
+ } else if (error.response.status == '404') {
+ httpMessage = "没有找到请求的地址";
+ }
+ }
+ else {
+ httpMessage = '网络好像出了点问题~'
+ }
+
+ redirect(error.response || {}, httpMessage);
+ return Promise.reject(error.response);
+});
+
+let $httpVue = null, currentToken = '';
+const _Authorization = 'Authorization', _Bearer = 'Bearer ';
+
+function init(vue) {
+ $httpVue = vue
+ console.log(vue)
+}
+
+function getToken() {
+ if (currentToken) {
+ return _Bearer + currentToken;
+ }
+ return $httpVue.$store.getters.getToken();
+}
+
+//_showLoading=true异步请求时会显示遮罩层,_showLoading=字符串,异步请求时遮罩层显示当前字符串
+function post(url, params) {
+ axios.defaults.headers[_Authorization] = getToken();
+ return new Promise((resolve, reject) => {
+ // axios.post(url, qs.stringify(params)) //
+ axios.post(url, params)
+ .then(response => {
+ if (response.status == 202) {
+ getNewToken(() => { post(url, params); });
+ return;
+ }
+ resolve(response.data);
+ }, err => {
+ if (err.status == 202) {
+ getNewToken(() => { post(url, params); });
+ return;
+ }
+ reject(err.data && err.data.message ? err.data.message : '网络好像出了点问题~~');
+ })
+ .catch((error) => {
+ reject(error)
+ })
+ })
+}
+
+//_showLoading=true异步请求时会显示遮罩层,_showLoading=字符串,异步请求时遮罩层显示当前字符串
+function get(url, param) {
+ axios.defaults.headers[_Authorization] = getToken();
+ return new Promise((resolve, reject) => {
+ axios.get(url, { params: param })
+ .then(response => {
+ if (response.status == 202) {
+ getNewToken(() => { get(url, param); });
+ return;
+ }
+ resolve(response.data)
+ }, err => {
+ if (err.status == 202) {
+ getNewToken(() => { get(url, param); });
+ return;
+ }
+ redirect(response.data);
+ reject(err)
+ })
+ .catch((error) => {
+ reject(error)
+ })
+ })
+}
+
+
+
+
+function createXHR() {
+ if (XMLHttpRequest) {
+ return new XMLHttpRequest();
+ }
+ if (ActiveXObject) {
+ if (typeof arguments.callee.activeXString != "string") {
+ var versions = [
+ "MSXML2.XMLHttp.6.0",
+ "MSXML2.XMLHttp",
+ "MSXML2.XMLHttp.3.0"
+ ];
+ for (var i = 0; i < versions.length; i++) {
+ try {
+ new ActiveXObject(versions[i]);
+ arguments.callee.activeXString = versions[i];
+ break;
+ } catch (e) {
+ console.log("no");
+ }
+ }
+ }
+ return new ActiveXObject(arguments.callee.activeXString);
+ }
+}
+
+function redirect(responseText, message) {
+ try {
+ let responseData = typeof responseText == 'string' ? JSON.parse(responseText) : responseText;
+ // $httpVue.$message.error(responseData.message || '~服务器好像出了点问题...')
+ if ((responseData.hasOwnProperty('code') && responseData.code == 401)
+ || (responseData.data && responseData.data.code == 401)) {
+ toLogin();
+ } else {
+ $httpVue.$message.error(message);
+ }
+ } catch (error) {
+ console.log(error);
+ $httpVue.$message.error(responseText)
+ }
+}
+function toLogin() {
+ currentToken = "";
+ $httpVue.$router.push({ path: '/login', params: { r: Math.random() } });
+}
+//当前token快要过期时,用现有的token换成一个新的token
+function getNewToken(callBack) {
+ ajax({
+ url: "/api/User/replaceToken",
+ param: {},
+ json: true,
+ success: function (x) {
+ if (x.status) {
+ let userInfo = $httpVue.$store.getters.getUserInfo();
+ userInfo.token = x.data;
+ currentToken = x.data;
+ $httpVue.$store.commit('setUserInfo', userInfo);
+ callBack();
+ } else {
+ console.log(x.message);
+ toLogin();
+ }
+ },
+ errror: function (ex) {
+ console.log(ex);
+ toLogin();
+ },
+ type: "post",
+ async: false
+ });
+
+
+}
+
+function ajax(param) {
+ let httpParam =
+ Object.assign({
+ url: '', headers: {},
+ param: {}, json: true,
+ success: function () { },
+ errror: function () { },
+ type: 'post', async: true
+ }, param);
+
+ httpParam.url = axios.defaults.baseURL + httpParam.url.replace(/\/?/, '');
+ httpParam.headers[_Authorization] = getToken();
+ var xhr = createXHR();
+ // console.log(xhr.readyState);
+ xhr.onreadystatechange = function () {
+ if (xhr.status == 403 || xhr.status == 401) {
+ redirect(xhr.responseText);
+ return;
+ }
+ if (xhr.status == 202) {
+ getNewToken(() => {
+ ajax(param);
+ });
+ return;
+ }
+ if (xhr.readyState == 4 && xhr.status == 200) {
+ httpParam.success(httpParam.json ? JSON.parse(xhr.responseText) : xhr.responseText);
+ return;
+ }
+ if (xhr.status != 0 && xhr.readyState != 1) {
+ httpParam.errror(xhr);
+ }
+ };
+ //初始化请求
+ xhr.open(
+ httpParam.type,
+ httpParam.url,
+ httpParam.async
+ );
+ xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+ for (const key in httpParam.headers) {
+ xhr.setRequestHeader(key, httpParam.headers[key]);
+ }
+ let dataStr = '';
+ for (const key in httpParam.param) {
+ dataStr += key + "=" + httpParam.param[key];
+ }
+ try {
+ xhr.send(dataStr);
+ } catch (error) {
+ toLogin();
+ // console.log(error)
+ }
+}
+
+ajax.post = function (url, param, success, errror) {
+ ajax({ url: url, param: param, success: success, error: errror, type: 'post' })
+}
+ajax.get = function (url, param, success, errror) {
+ ajax({ url: url, param: param, success: success, error: errror, type: 'post' })
+}
+export default { post, get, ajax, init, ipAddress }
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/ViewContainer.less b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/ViewContainer.less
new file mode 100644
index 0000000..710f07e
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/ViewContainer.less
@@ -0,0 +1,83 @@
+
+.layout-container {
+ // border-top: 1px solid #eee;
+ background: #eee;
+ // padding: 15px;
+ /* margin-bottom: 40px; */
+ }
+ // .animated {
+ // -webkit-animation-duration: 1s;
+ // animation-duration: 1s;
+ // -webkit-animation-fill-mode: both;
+ // animation-fill-mode: both;
+ // }
+ // .animated.infinite {
+ // -webkit-animation-iteration-count: infinite;
+ // animation-iteration-count: infinite;
+ // }
+ // .animated.hinge {
+ // -webkit-animation-duration: 2s;
+ // animation-duration: 2s;
+ // }
+ // .animated.bounceIn,
+ // .animated.bounceOut,
+ // .animated.flipOutX,
+ // .animated.flipOutY {
+ // -webkit-animation-duration: 0.75s;
+ // animation-duration: 0.75s;
+ // }
+ // @-webkit-keyframes fadeInDown {
+ // 0% {
+ // opacity: 0;
+ // -webkit-transform: translate3d(0, -100%, 0);
+ // transform: translate3d(0, -100%, 0);
+ // }
+ // to {
+ // opacity: 1;
+ // -webkit-transform: none;
+ // transform: none;
+ // }
+ // }
+ // @keyframes fadeInDown {
+ // 0% {
+ // opacity: 0;
+ // -webkit-transform: translate3d(0, -100%, 0);
+ // transform: translate3d(0, -100%, 0);
+ // }
+ // to {
+ // opacity: 1;
+ // -webkit-transform: none;
+ // transform: none;
+ // }
+ // }
+ // .fadeInDown {
+ // -webkit-animation-name: fadeInDown;
+ // animation-name: fadeInDown;
+ // }
+
+ // @-webkit-keyframes slideInDown {
+ // 0% {
+ // -webkit-transform: translate3d(0, -100%, 0);
+ // transform: translate3d(0, -100%, 0);
+ // visibility: visible;
+ // }
+ // to {
+ // -webkit-transform: translateZ(0);
+ // transform: translateZ(0);
+ // }
+ // }
+ // @keyframes slideInDown {
+ // 0% {
+ // -webkit-transform: translate3d(0, -100%, 0);
+ // transform: translate3d(0, -100%, 0);
+ // visibility: visible;
+ // }
+ // to {
+ // -webkit-transform: translateZ(0);
+ // transform: translateZ(0);
+ // }
+ // }
+ // .slideInDown {
+ // -webkit-animation-name: slideInDown;
+ // animation-name: slideInDown;
+ // }
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/ViewGrid.less b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/ViewGrid.less
new file mode 100644
index 0000000..19b912b
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/ViewGrid.less
@@ -0,0 +1,229 @@
+.view-container{
+ padding: 15px;
+ background: white;
+}
+.view-header {
+ height: 45px;
+ position: relative;
+ padding-bottom: 11px;
+ display: -webkit-flex;
+ display: flex;
+ .search-line {
+ flex: 1;
+ margin-left: 50px;
+ display: flex;
+ text-align: right;
+ }
+ .search-line > div {
+ margin-left: 30px;
+ margin-right: 20px;
+ }
+ .search-line > div > div{
+ width: 200px;
+ text-align: left;
+ }
+ .search-line > div:first-child{
+ flex: 1;
+ }
+ .search-line > div .ivu-select-dropdown{
+ max-height: 300px;
+ }
+ // .btn-group > button {
+ // text-align: right;
+ // }
+ .btn-group{
+ white-space: nowrap;
+ button {
+ margin-left: 10px;
+ // padding: 5px 16px;
+ }
+ .dropdown{
+ height: 31px;
+ padding-right: 9px;
+ padding-left: 11px;
+ border-top-right-radius: 0px;
+ border-bottom-right-radius: 0px;
+ }
+ .r-dropdown{
+ height: 31px;
+ margin-left: 0px;
+ padding-left: 5px;
+ padding-right: 5px;
+ border-bottom-left-radius: 0px;
+ border-left: 1px solid #eee;
+ border-top-left-radius: 0;
+ }
+ }
+ // .btn-group button {
+ // margin-left: 10px;
+ // // padding: 5px 16px;
+ // }
+ // .btn-group .dropdown {
+ // position: relative;
+ // padding: 5px 34px 5px 10px;
+ // }
+ // .btn-group .dropdown span i.ivu-icon-ios-arrow-down {
+ // top: 0px;
+ // height: 34px;
+ // border-left: 1px solid;
+ // height: 100%;
+ // position: absolute;
+ // margin-left: 10px;
+ // padding: 9px 5px 5px 5px;
+ // }
+ // .btn-group .dropdown .ivu-dropdown {
+ // bottom: 0;
+ // right: 0;
+ // left: 0;
+ // position: absolute;
+ // }
+ .btn-group .ivu-dropdown-item {
+ text-align: left !important;
+ }
+ .btn-group .ivu-dropdown-item:not(:last-child) {
+ border-bottom: 1px dotted #eee;
+ }
+ .desc-text {
+ margin-top: 5px;
+ font-weight: bold;
+ margin-bottom: 3px;
+ font-size: 15px;
+ color: #607d8b;
+ white-space: nowrap;
+ border-bottom: 2px solid #009688;
+ }
+ .desc-text .ivu-icon {
+ font-size: 20px;
+ bottom: 2px;
+ position: relative;
+ }
+ .search-box {
+ background: #fefefe;
+ margin-top: 45px;
+ border: 1px solid #ececec;
+ position: absolute;
+ z-index: 999;
+ left: 0;
+ right: 0;
+ // width: 100%;
+ padding: 25px 40px;
+ padding-bottom: 0;
+ box-shadow: 0px 7px 18px -12px #bdc0bb;
+ }
+ .notice {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ position: relative;
+ top: 12px;
+ left: 10px;
+ }
+ }
+
+.table-info-cell-title {
+ background-color: #f5f5f5 !important;
+ }
+.iview-com {
+ background: #f3f3f3;
+ > div.item{
+ // margin-bottom: 10px;
+
+ margin-bottom: 12px;
+ background: white;
+ }
+ > div.form-item{
+ padding: 8px 16px 7px 16px;
+ //box-shadow: 0 1px 7px rgb(199, 199, 199);
+ }
+ > div.table-item{
+ // padding: 0px 16px 12px 16px;
+ border: 1px solid #e8e8e8;
+ box-shadow: 0 1px 7px rgb(199, 199, 199);
+ }
+ .v-text{
+ line-height: 27px;
+ }
+ .form-text{
+ position: relative;
+ /* height: 38px; */
+ /* line-height: 38px; */
+ /* padding: 0 15px; */
+ // border-bottom: 1px solid #e4e4e4;
+ border-bottom: 1px solid #eee;
+ /* border-radius: 2px 2px 0 0; */
+ font-size: 14px;
+ margin-bottom: 14px;
+ .title{
+ border-bottom: 2px solid #00BCD4;
+ color: #009688;
+ font-weight: bold;
+ letter-spacing: 1px;
+ // border-bottom-right-radius: 5px;
+ // border-top-left-radius: 5px;
+ padding: 6px 0;
+ // background: #009688;
+ // color: white;
+ }
+ .icon{
+ color: #00BCD4;
+ font-size: 19px;
+ position: relative;
+ top: -1px;
+ }
+ }
+ }
+
+ .form-closex {
+ text-align: right;
+ padding-bottom: 24px;
+ }
+ .form-closex button {
+ margin-left: 10px;
+ padding: 4px 13px;
+ }
+ .grid-detail{
+ // margin-left:16px;
+ // // margin-top:-28px;
+ // padding-bottom: 16px;
+ }
+ .toolbar{
+ padding: 3px 15px;
+ width: 100%;
+ display: flex;
+ // padding: 3px;
+ border-top: 1px solid #eae9e9;
+ // border-top-left-radius: 5px;
+ // // background: #37aba0;
+ // border-top-right-radius: 5px;
+ // border: 1px solid #f1f1f1;
+ .title{
+ line-height: 28px;
+ border-bottom: 2px solid #03A9F4;
+ font-size: 14px;
+ font-weight: bolder;
+ margin-bottom: 0;
+ color: #828282;
+ .icon{
+ color: #009688;
+ font-size: 18px;
+ }
+ }
+ .btns{
+ line-height: 28px;
+ flex: 1;
+ text-align: right;
+ margin-right: 12px;
+ button{
+ border: none;
+ margin-left:15px;
+ border: 0px;
+ color: #009688;
+ }
+ button:hover{
+ color: #FF9800;
+ border-color: #FF9800;
+ border: none;
+ }
+
+ }
+ }
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/common.less b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/common.less
new file mode 100644
index 0000000..ac7a179
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/common.less
@@ -0,0 +1,75 @@
+*{
+ box-sizing:border-box;
+ -moz-box-sizing:border-box; /* Firefox */
+ -webkit-box-sizing:border-box; /* Safari */
+}
+.el-pager li{
+ font-weight: 100;
+ margin-right: 9px;
+ border: 1px solid #eee;
+ border-radius: 3px;
+ min-width: 28px;
+}
+.el-pager li.active,.el-pager li:hover{
+ background: #ed4014;
+ color: white;
+}
+.el-pagination__editor.el-input .el-input__inner{
+ height: 23px;
+}
+
+
+.animated {
+ -webkit-animation-duration: 0.5s;
+ animation-duration: 0.5s;
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both;
+ }
+
+ @media (print), (prefers-reduced-motion) {
+ .animated {
+ -webkit-animation: unset !important;
+ animation: unset !important;
+ -webkit-transition: none !important;
+ transition: none !important;
+ }
+ }
+
+ @-webkit-keyframes fadeInDown {
+ from {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+ }
+
+ @keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+ }
+
+ .fadeInDown {
+ -webkit-animation-name: fadeInDown;
+ animation-name: fadeInDown;
+ }
+ .ivu-message{
+ z-index: 999999999 !important;
+ }
+ .ivu-form-item-content{
+ text-align: left;
+ }
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/imgs/favicon.ico b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/imgs/favicon.ico
new file mode 100644
index 0000000..9215c89
Binary files /dev/null and b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/imgs/favicon.ico differ
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/common.js b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/common.js
new file mode 100644
index 0000000..8e8e8eb
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/common.js
@@ -0,0 +1,2 @@
+var test1 = function () { alert(11) }
+export { test1 }
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/extend.js b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/extend.js
new file mode 100644
index 0000000..d34da65
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/extend.js
@@ -0,0 +1,5 @@
+//对vue参数进行扩展
+var extend = function (param) {
+ console.log(param)
+ }
+export { extend }
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/testFormExtend.js b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/testFormExtend.js
new file mode 100644
index 0000000..67216df
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/testFormExtend.js
@@ -0,0 +1,15 @@
+//对vue参数进行扩展
+var extend = function ($vueParam) {
+ $vueParam.methods.volBoxFrom = function () {
+ this.$Message.info("扩展js,增加弹出消息");
+ this.$refs.volBoxFrom.show();
+ }
+ //修改data属性:
+ let data = $vueParam.data();
+ data.formFileds['extend'] = "动态扩展字段";
+ data.formOptions.splice(0,0,{ filed: "extend", title: "动态增加字段", type: "text", required: true });
+ $vueParam.data = function () {
+ return data;
+ }
+}
+export { extend }
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/main.js b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/main.js
index 64e13c3..03dd916 100644
--- a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/main.js
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/main.js
@@ -1,12 +1,19 @@
import Vue from 'vue'
+import Antd from 'ant-design-vue';
import App from './App.vue'
import router from './router'
import store from './store'
+import http from './api/http'
+import 'ant-design-vue/dist/antd.css';
Vue.config.productionTip = false
-new Vue({
+Vue.use(Antd);
+var vue =new Vue({
router,
store,
render: function (h) { return h(App) }
}).$mount('#app')
+
+Vue.prototype.http = http;
+Vue.prototype.http.init(vue);
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/router/index.js b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/router/index.js
index 13d0566..f134f83 100644
--- a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/router/index.js
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/router/index.js
@@ -1,6 +1,6 @@
import Vue from 'vue'
import VueRouter from 'vue-router'
-import Home from '../views/Home.vue'
+import Home from '../views/cats/Index.vue'
Vue.use(VueRouter)
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/store/data.js b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/store/data.js
new file mode 100644
index 0000000..cf16172
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/store/data.js
@@ -0,0 +1,27 @@
+
+const data = {
+ state: {
+ data: {}
+ },
+ mutations: {
+ // setData(state, data) { //this.$store.commit('setData', data)
+ // state.data = data;
+ // },
+ clear(state) {
+ state.data = {};
+ }
+ }, getters: {
+ getData: (state) => () => { //调用方式 store.getters.getData()
+ return data;
+ },
+ data: (state) => () => {
+ return data;
+ }
+ }, actions: {
+ // setData(context, data) {
+ // context.commit('setData', data); //调用方式 store.dispatch('push')
+ // }
+ }
+};
+
+export default data;
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/store/index.js b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/store/index.js
index 332b916..d3e7fef 100644
--- a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/store/index.js
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/store/index.js
@@ -1,15 +1,150 @@
import Vue from 'vue'
import Vuex from 'vuex'
-Vue.use(Vuex)
-export default new Vuex.Store({
+Vue.use(Vuex);
+const moduleA = {
state: {
+ m: 123
+ }, mutations: {
+
+ }, getters: {
+
+ }, actions: {
+ toDo(context) {
+ return context.Store.m;
+ }
+ }
+};
+const moduleB = {
+ state: {
+ m: 456
+ }, mutations: {
+
+ }, getters: {
+
+ }, actions: {
+ toDo(context) {
+ return context.Store.m;
+ }
+ }
+};
+
+const test = new Vuex.Store({
+ modules: { //分成多个模块
+ a: moduleA, //store.state.a
+ b: moduleB //store.state.b
+ },
+ state: {
+ count: 12220
},
mutations: {
+ increment(state, par1) {
+ state.count++
+ }
},
- actions: {
+ getters: {
+ newVal: (parState, getters) => { //parState这个是参数,是vuex调用时传的state对象.getters同样可以调用getters.state.count
+ parState.count = 888;
+ return parState.count;
+ }
+ }, actions: {
+ increment(context, par1) {//传入参数
+ context.commit('increment', par1) //store.dispatch('increment')
+ }
+ }
+})
+
+function getUserInfo(state) {
+ if (state.userInfo) return state.userInfo;
+ let userInfo = localStorage.getItem(keys.USER);
+ if (userInfo) {
+ state.userInfo = JSON.parse(userInfo);
+ }
+ return state.userInfo;
+}
+//getter 相当于 state 的计算属性,mutation 是用来修改 state 的
+//使用actions或mutation获取不了state对象
+const keys = { USER: 'user' }
+//因为分了模块所有属性调试方法都需要加上this.$store.system(system为模块名称)
+const system = {
+ state: {
+ permission: [],
+ isLoading: false,//2020.06.03增加路由切换时加载提示
+ userInfo: null
},
- modules: {
+ mutations: {
+ setPermission(state, data) { //调用方式 this.$store.commit('setPermission', data)
+ if (!data || typeof data != 'object') return;
+ if (data instanceof Array) {
+ state.permission.push(...data);
+ } else {
+ state.permission = data;
+ }
+ }, setUserInfo(state, data) {
+ state.userInfo = data;
+ localStorage.setItem(keys.USER, JSON.stringify(data));
+ },
+ clearUserInfo(state) {
+ state.permission = [];
+ state.userInfo = null;
+ localStorage.removeItem(keys.USER);
+ },
+ test(state) {
+ return 113344;
+ },
+ updateLoadingState(state, flag) {
+ state.isLoading = flag
+ }
+ }, getters: {
+ getPermission: (state) => (path) => { //调用方式 store.getters.getPermission('sys_User')
+ if (!path) return state.permission;
+ return state.permission.find(x => x.path == path);
+ },
+ getUserInfo: (state) => () => {
+ getUserInfo(state);
+ return state.userInfo;
+ }, getUserName: (state) => () => {
+ getUserInfo(state);
+ if (state.userInfo) {
+ return state.userInfo.userName;
+ }
+ return '未获取到登陆信息';
+ },
+ getToken: (state) => () => {
+ getUserInfo(state);
+ if (state.userInfo) {
+ return 'Bearer ' + state.userInfo.token;
+ }
+ return '';
+ },
+ isLogin: (state) => () => {
+ if (getUserInfo(state)) {
+ return true;
+ }
+ return false;
+ },
+ isLoading: (state) => () => {
+ return state.isLoading;
+ }
+
+ }, actions: {
+ setPermission(context, data) {
+ context.commit('setPermission', data); //调用方式 store.dispatch('push')
+ },
+ toDo(context) {
+ return context.Store.m;
+ },
+ onLoading(context, flag) {
+ context.commit("updateLoadingState", flag);
+ }
+ }
+};
+import data from './data.js'
+const store = new Vuex.Store({
+ modules: { //分成多个模块
+ system,//this.$store.state.system
+ data
}
})
+export default store;
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/cats/Index.vue b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/cats/Index.vue
new file mode 100644
index 0000000..b58c64f
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/cats/Index.vue
@@ -0,0 +1,33 @@
+
+
+
+
+ Content of Tab Pane 1
+ {{html}}
+
+
+ Content of Tab Pane 2
+
+
+ Content of Tab Pane 3
+
+
+
+
+
+
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/vue.config.js b/客户端/齐越慧眼/齐越慧眼/vuepage/client/vue.config.js
new file mode 100644
index 0000000..f41a488
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/vue.config.js
@@ -0,0 +1,17 @@
+const MiniCssExtractPlugin = require('mini-css-extract-plugin');
+module.exports = {
+ // 修改打包后js文件名
+ configureWebpack: { // webpack 配置
+ output: { // 输出重构 打包编译后的 文件名称 【模块名称.版本号.js】
+ filename: `js/[name].js`,
+ chunkFilename: `js/[name].js`
+ },
+ // 修改打包后css文件名
+ plugins: [
+ new MiniCssExtractPlugin({
+ filename: `css/[name].css`,
+ chunkFilename: `css/[name].css`
+ })
+ ]
+ }
+}
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/vuepage/client/yarn.lock b/客户端/齐越慧眼/齐越慧眼/vuepage/client/yarn.lock
index fcc6188..e3d83be 100644
--- a/客户端/齐越慧眼/齐越慧眼/vuepage/client/yarn.lock
+++ b/客户端/齐越慧眼/齐越慧眼/vuepage/client/yarn.lock
@@ -22,14 +22,53 @@
resolved "https://registry.npmmirror.com/@ant-design/icons/download/@ant-design/icons-2.1.1.tgz?cache=0&sync_timestamp=1632478732118&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40ant-design%2Ficons%2Fdownload%2F%40ant-design%2Ficons-2.1.1.tgz#7b9c08dffd4f5d41db667d9dbe5e0107d0bd9a4a"
integrity sha1-e5wI3/1PXUHbZn2dvl4BB9C9mko=
-"@babel/code-frame@^7.0.0":
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5":
version "7.15.8"
resolved "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.15.8.tgz?cache=0&sync_timestamp=1633553739126&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503"
integrity sha1-RZkMR62tsAwDZ3uqiSIffMI9JQM=
dependencies:
"@babel/highlight" "^7.14.5"
-"@babel/helper-validator-identifier@^7.14.5":
+"@babel/generator@^7.15.4":
+ version "7.15.8"
+ resolved "https://registry.npmmirror.com/@babel/generator/download/@babel/generator-7.15.8.tgz?cache=0&sync_timestamp=1633553714543&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1"
+ integrity sha1-+la+a1lpUs6yMQSM+E7kmaGcDNE=
+ dependencies:
+ "@babel/types" "^7.15.6"
+ jsesc "^2.5.1"
+ source-map "^0.5.0"
+
+"@babel/helper-function-name@^7.15.4":
+ version "7.15.4"
+ resolved "https://registry.nlark.com/@babel/helper-function-name/download/@babel/helper-function-name-7.15.4.tgz?cache=0&sync_timestamp=1630618923307&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc"
+ integrity sha1-hFdE2vxDgaSl+2r6bD02+Yp4frw=
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.15.4"
+ "@babel/template" "^7.15.4"
+ "@babel/types" "^7.15.4"
+
+"@babel/helper-get-function-arity@^7.15.4":
+ version "7.15.4"
+ resolved "https://registry.nlark.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.15.4.tgz?cache=0&sync_timestamp=1630618916983&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b"
+ integrity sha1-CYgYk0oTf854tTaj4BWGS+Hih5s=
+ dependencies:
+ "@babel/types" "^7.15.4"
+
+"@babel/helper-hoist-variables@^7.15.4":
+ version "7.15.4"
+ resolved "https://registry.nlark.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.15.4.tgz?cache=0&sync_timestamp=1630618919536&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df"
+ integrity sha1-CZk6MlnA6Rj5nRBCYd/fwDPxeN8=
+ dependencies:
+ "@babel/types" "^7.15.4"
+
+"@babel/helper-split-export-declaration@^7.15.4":
+ version "7.15.4"
+ resolved "https://registry.nlark.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.15.4.tgz?cache=0&sync_timestamp=1630618922438&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257"
+ integrity sha1-rsq5Lc2+9qEKo7YqsgSwhfd24lc=
+ dependencies:
+ "@babel/types" "^7.15.4"
+
+"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9":
version "7.15.7"
resolved "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz?cache=0&sync_timestamp=1631920110587&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
integrity sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=
@@ -43,6 +82,43 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
+"@babel/parser@^7.15.4", "@babel/parser@^7.7.0":
+ version "7.15.8"
+ resolved "https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.15.8.tgz?cache=0&sync_timestamp=1633553767489&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016"
+ integrity sha1-e6zcvnG9w/+TbVEMFdzqfPC5kBY=
+
+"@babel/template@^7.15.4":
+ version "7.15.4"
+ resolved "https://registry.nlark.com/@babel/template/download/@babel/template-7.15.4.tgz?cache=0&sync_timestamp=1630618922172&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194"
+ integrity sha1-UYmNNdzz+qZwxO5q/P1RfuE58ZQ=
+ dependencies:
+ "@babel/code-frame" "^7.14.5"
+ "@babel/parser" "^7.15.4"
+ "@babel/types" "^7.15.4"
+
+"@babel/traverse@^7.7.0":
+ version "7.15.4"
+ resolved "https://registry.nlark.com/@babel/traverse/download/@babel/traverse-7.15.4.tgz?cache=0&sync_timestamp=1630618923983&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d"
+ integrity sha1-/4UQNnoUS/v/VS2eGOKPPiiJwi0=
+ dependencies:
+ "@babel/code-frame" "^7.14.5"
+ "@babel/generator" "^7.15.4"
+ "@babel/helper-function-name" "^7.15.4"
+ "@babel/helper-hoist-variables" "^7.15.4"
+ "@babel/helper-split-export-declaration" "^7.15.4"
+ "@babel/parser" "^7.15.4"
+ "@babel/types" "^7.15.4"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
+"@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.7.0":
+ version "7.15.6"
+ resolved "https://registry.nlark.com/@babel/types/download/@babel/types-7.15.6.tgz?cache=0&sync_timestamp=1631216657849&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f"
+ integrity sha1-mavcSCGLKIHAWN0KerBbmcm+dY8=
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.14.9"
+ to-fast-properties "^2.0.0"
+
"@hapi/address@2.x.x":
version "2.1.4"
resolved "https://registry.nlark.com/@hapi/address/download/@hapi/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
@@ -902,6 +978,25 @@ aws4@^1.8.0:
resolved "https://registry.nlark.com/aws4/download/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
integrity sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=
+axios@^0.23.0:
+ version "0.23.0"
+ resolved "https://registry.npmmirror.com/axios/download/axios-0.23.0.tgz?cache=0&sync_timestamp=1634053173003&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxios%2Fdownload%2Faxios-0.23.0.tgz#b0fa5d0948a8d1d75e3d5635238b6c4625b05149"
+ integrity sha1-sPpdCUio0ddePVY1I4tsRiWwUUk=
+ dependencies:
+ follow-redirects "^1.14.4"
+
+babel-eslint@^10.1.0:
+ version "10.1.0"
+ resolved "https://registry.nlark.com/babel-eslint/download/babel-eslint-10.1.0.tgz?cache=0&sync_timestamp=1618846971799&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-eslint%2Fdownload%2Fbabel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
+ integrity sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/parser" "^7.7.0"
+ "@babel/traverse" "^7.7.0"
+ "@babel/types" "^7.7.0"
+ eslint-visitor-keys "^1.0.0"
+ resolve "^1.12.0"
+
babel-helper-vue-jsx-merge-props@^2.0.3:
version "2.0.3"
resolved "https://registry.nlark.com/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
@@ -2519,7 +2614,7 @@ eslint-utils@^1.4.3:
dependencies:
eslint-visitor-keys "^1.1.0"
-eslint-visitor-keys@^1.1.0:
+eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
version "1.3.0"
resolved "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
integrity sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=
@@ -2962,7 +3057,7 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
-follow-redirects@^1.0.0:
+follow-redirects@^1.0.0, follow-redirects@^1.14.4:
version "1.14.4"
resolved "https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.4.tgz?cache=0&sync_timestamp=1631622163078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379"
integrity sha1-g4/fSKi73XnlLuUfsclOPtmLk3k=
@@ -3143,6 +3238,11 @@ glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
once "^1.3.0"
path-is-absolute "^1.0.0"
+globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.nlark.com/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1628810148451&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+ integrity sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=
+
globals@^12.1.0:
version "12.4.0"
resolved "https://registry.nlark.com/globals/download/globals-12.4.0.tgz?cache=0&sync_timestamp=1628810148451&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
@@ -4077,6 +4177,11 @@ jsbn@~0.1.0:
resolved "https://registry.nlark.com/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
+jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.nlark.com/jsesc/download/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+ integrity sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=
+
json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
version "1.0.2"
resolved "https://registry.nlark.com/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
@@ -6039,7 +6144,7 @@ resolve-url@^0.2.1:
resolved "https://registry.nlark.com/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-resolve@^1.10.0:
+resolve@^1.10.0, resolve@^1.12.0:
version "1.20.0"
resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
integrity sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=
@@ -6444,7 +6549,7 @@ source-map-url@^0.4.0:
resolved "https://registry.nlark.com/source-map-url/download/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
integrity sha1-CvZmBadFpaL5HPG7+KevvCg97FY=
-source-map@^0.5.6:
+source-map@^0.5.0, source-map@^0.5.6:
version "0.5.7"
resolved "https://registry.nlark.com/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -6881,6 +6986,11 @@ to-arraybuffer@^1.0.0:
resolved "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1628418855671&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
to-object-path@^0.3.0:
version "0.3.0"
resolved "https://registry.nlark.com/to-object-path/download/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
diff --git a/客户端/齐越慧眼/齐越慧眼/齐越慧眼.csproj b/客户端/齐越慧眼/齐越慧眼/齐越慧眼.csproj
index eb213aa..e840271 100644
--- a/客户端/齐越慧眼/齐越慧眼/齐越慧眼.csproj
+++ b/客户端/齐越慧眼/齐越慧眼/齐越慧眼.csproj
@@ -7,14 +7,57 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -25,14 +68,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+