Browse Source

完成cefsharp精简路由支持

master
С·æ 4 years ago
parent
commit
4f456b8b1f
  1. 4
      客户端/齐越慧眼/齐越慧眼/App.xaml.cs
  2. 13
      客户端/齐越慧眼/齐越慧眼/UserControls/CatControl.xaml.cs
  3. 17
      客户端/齐越慧眼/齐越慧眼/cefhelper/SchemeHandler.cs
  4. 27
      客户端/齐越慧眼/齐越慧眼/vuepage/client/.eslintrc.js
  5. 6
      客户端/齐越慧眼/齐越慧眼/vuepage/client/package.json
  6. 4
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/App.vue
  7. 256
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/api/http.js
  8. 83
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/ViewContainer.less
  9. 229
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/ViewGrid.less
  10. 75
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/css/common.less
  11. BIN
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/imgs/favicon.ico
  12. 2
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/common.js
  13. 5
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/extend.js
  14. 15
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/testFormExtend.js
  15. 9
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/main.js
  16. 2
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/router/index.js
  17. 27
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/store/data.js
  18. 143
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/store/index.js
  19. 33
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/cats/Index.vue
  20. 17
      客户端/齐越慧眼/齐越慧眼/vuepage/client/vue.config.js
  21. 122
      客户端/齐越慧眼/齐越慧眼/vuepage/client/yarn.lock
  22. 77
      客户端/齐越慧眼/齐越慧眼/齐越慧眼.csproj

4
客户端/齐越慧眼/齐越慧眼/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()

13
客户端/齐越慧眼/齐越慧眼/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();
}
}
}

17
客户端/齐越慧眼/齐越慧眼/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;
}
}
}

27
客户端/齐越慧眼/齐越慧眼/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'
}
}

6
客户端/齐越慧眼/齐越慧眼/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",

4
客户端/齐越慧眼/齐越慧眼/vuepage/client/src/App.vue

@ -1,9 +1,5 @@
<template>
<div id="app">
<div id="nav">
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>
</div>
<router-view/>
</div>
</template>

256
客户端/齐越慧眼/齐越慧眼/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 }

83
客户端/齐越慧眼/齐越慧眼/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;
// }

229
客户端/齐越慧眼/齐越慧眼/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;
}
}
}

75
客户端/齐越慧眼/齐越慧眼/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;
}

BIN
客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/imgs/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

2
客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/common.js

@ -0,0 +1,2 @@
var test1 = function () { alert(11) }
export { test1 }

5
客户端/齐越慧眼/齐越慧眼/vuepage/client/src/assets/script/extend.js

@ -0,0 +1,5 @@
//对vue参数进行扩展
var extend = function (param) {
console.log(param)
}
export { extend }

15
客户端/齐越慧眼/齐越慧眼/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 }

9
客户端/齐越慧眼/齐越慧眼/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);

2
客户端/齐越慧眼/齐越慧眼/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)

27
客户端/齐越慧眼/齐越慧眼/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;

143
客户端/齐越慧眼/齐越慧眼/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;

33
客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/cats/Index.vue

@ -0,0 +1,33 @@
<template>
<div class="card-container">
<a-tabs type="card">
<a-tab-pane key="1" tab="Tab Title 1">
<p @click="testHttp">Content of Tab Pane 1</p>
<p>{{html}}</p>
</a-tab-pane>
<a-tab-pane key="2" tab="Tab Title 2">
<p>Content of Tab Pane 2</p>
</a-tab-pane>
<a-tab-pane key="3" tab="Tab Title 3">
<p>Content of Tab Pane 3</p>
</a-tab-pane>
</a-tabs>
</div>
</template>
<script>
export default {
data() {
return {
html:''
}
},
methods: {
testHttp(){
this.http.get('http://www.baidu.com').then(res=>{
this.html=res
})
}
}
}
</script>

17
客户端/齐越慧眼/齐越慧眼/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`
})
]
}
}

122
客户端/齐越慧眼/齐越慧眼/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"

77
客户端/齐越慧眼/齐越慧眼/齐越慧眼.csproj

@ -7,14 +7,57 @@
</PropertyGroup>
<ItemGroup>
<None Remove="vuepage\client\dist\css\app.59c3f365.css" />
<None Remove="vuepage\client\dist\img\logo.82b9c7a5.png" />
<None Remove="vuepage\client\dist\js\about.bc2c4b5a.js" />
<None Remove="vuepage\client\dist\js\about.bc2c4b5a.js.map" />
<None Remove="vuepage\client\dist\js\app.61aa49e4.js" />
<None Remove="vuepage\client\dist\js\app.61aa49e4.js.map" />
<None Remove="vuepage\client\dist\js\chunk-vendors.162e033e.js" />
<None Remove="vuepage\client\dist\js\chunk-vendors.162e033e.js.map" />
<Compile Remove="vuepage\client\build\**" />
<Compile Remove="vuepage\client\config\**" />
<Compile Remove="vuepage\client\dist\img\**" />
<Compile Remove="vuepage\client\dist\static\**" />
<Compile Remove="vuepage\client\node_modules\**" />
<Compile Remove="vuepage\client\public\**" />
<Compile Remove="vuepage\client\src\**" />
<EmbeddedResource Remove="vuepage\client\build\**" />
<EmbeddedResource Remove="vuepage\client\config\**" />
<EmbeddedResource Remove="vuepage\client\dist\img\**" />
<EmbeddedResource Remove="vuepage\client\dist\static\**" />
<EmbeddedResource Remove="vuepage\client\node_modules\**" />
<EmbeddedResource Remove="vuepage\client\public\**" />
<EmbeddedResource Remove="vuepage\client\src\**" />
<None Remove="vuepage\client\build\**" />
<None Remove="vuepage\client\config\**" />
<None Remove="vuepage\client\dist\img\**" />
<None Remove="vuepage\client\dist\static\**" />
<None Remove="vuepage\client\node_modules\**" />
<None Remove="vuepage\client\public\**" />
<None Remove="vuepage\client\src\**" />
<Page Remove="vuepage\client\build\**" />
<Page Remove="vuepage\client\config\**" />
<Page Remove="vuepage\client\dist\img\**" />
<Page Remove="vuepage\client\dist\static\**" />
<Page Remove="vuepage\client\node_modules\**" />
<Page Remove="vuepage\client\public\**" />
<Page Remove="vuepage\client\src\**" />
</ItemGroup>
<ItemGroup>
<None Remove="vuepage\client\.babelrc" />
<None Remove="vuepage\client\.eslintignore" />
<None Remove="vuepage\client\.eslintrc.js" />
<None Remove="vuepage\client\.gitignore" />
<None Remove="vuepage\client\.postcssrc.js" />
<None Remove="vuepage\client\dist\css\app.b0aefef5.css" />
<None Remove="vuepage\client\dist\css\app.css" />
<None Remove="vuepage\client\dist\css\chunk-vendors.09af4a6b.css" />
<None Remove="vuepage\client\dist\css\chunk-vendors.css" />
<None Remove="vuepage\client\dist\js\about.js" />
<None Remove="vuepage\client\dist\js\about.js.map" />
<None Remove="vuepage\client\dist\js\app.js" />
<None Remove="vuepage\client\dist\js\app.js.map" />
<None Remove="vuepage\client\dist\js\chunk-vendors.js" />
<None Remove="vuepage\client\dist\js\chunk-vendors.js.map" />
<None Remove="vuepage\client\index.html" />
<None Remove="vuepage\client\package.json" />
<None Remove="vuepage\client\README.md" />
<None Remove="vuepage\client\vue.config.js" />
<None Remove="vuepage\client\yarn.lock" />
<None Remove="webpages\cats.html" />
</ItemGroup>
@ -25,14 +68,16 @@
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="vuepage\client\dist\css\app.59c3f365.css" />
<EmbeddedResource Include="vuepage\client\dist\img\logo.82b9c7a5.png" />
<EmbeddedResource Include="vuepage\client\dist\js\about.bc2c4b5a.js" />
<EmbeddedResource Include="vuepage\client\dist\js\about.bc2c4b5a.js.map" />
<EmbeddedResource Include="vuepage\client\dist\js\app.61aa49e4.js" />
<EmbeddedResource Include="vuepage\client\dist\js\app.61aa49e4.js.map" />
<EmbeddedResource Include="vuepage\client\dist\js\chunk-vendors.162e033e.js" />
<EmbeddedResource Include="vuepage\client\dist\js\chunk-vendors.162e033e.js.map" />
<EmbeddedResource Include="vuepage\client\dist\css\app.b0aefef5.css" />
<EmbeddedResource Include="vuepage\client\dist\css\app.css" />
<EmbeddedResource Include="vuepage\client\dist\css\chunk-vendors.09af4a6b.css" />
<EmbeddedResource Include="vuepage\client\dist\css\chunk-vendors.css" />
<EmbeddedResource Include="vuepage\client\dist\js\about.js" />
<EmbeddedResource Include="vuepage\client\dist\js\about.js.map" />
<EmbeddedResource Include="vuepage\client\dist\js\app.js" />
<EmbeddedResource Include="vuepage\client\dist\js\app.js.map" />
<EmbeddedResource Include="vuepage\client\dist\js\chunk-vendors.js" />
<EmbeddedResource Include="vuepage\client\dist\js\chunk-vendors.js.map" />
<EmbeddedResource Include="webpages\cats.html" />
</ItemGroup>

Loading…
Cancel
Save