Commit 1bdce957 authored by 赵啸非's avatar 赵啸非

tttttttttt

parent abfb43e7
VUE_APP_API_BASE_URL=http://192.168.0.98:11072/zwfw
VUE_APP_API_BASE_URL=http://192.168.0.98:11072/zwfw
VUE_APP_API_BASE_URL=http://192.168.0.98:11072/zwfw
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# portal-admin-vue
## Project setup
```
yarn install
```
### Compiles and hot-reloads for development
```
yarn serve
```
### Compiles and minifies for production
```
yarn build
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}
{
"compilerOptions": {
"target": "es5",
"module": "esnext",
"baseUrl": "./",
"moduleResolution": "node",
"paths": {
"@/*": [
"src/*"
]
},
"lib": [
"esnext",
"dom",
"dom.iterable",
"scripthost"
]
}
}
This diff is collapsed.
{
"name": "portal-admin-vue",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build"
},
"dependencies": {
"@babel/polyfill": "^7.12.1",
"ant-design-vue": "^1.7.8",
"axios": "^0.27.2",
"babel-polyfill": "^6.26.0",
"core-js": "^3.8.3",
"echarts": "^5.3.3",
"element-ui": "^2.15.8",
"font-awesome": "^4.7.0",
"highlight.js": "^11.5.1",
"js-export-excel": "^1.1.4",
"lodash": "^4.17.21",
"qs": "^6.10.3",
"vue": "^2.6.14",
"vue-highlightjs": "^1.3.3",
"vue-router": "^3.5.1",
"vuex": "^3.6.2"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-router": "~5.0.0",
"@vue/cli-plugin-vuex": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"less": "^4.0.0",
"less-loader": "^8.0.0",
"postcss": "^8.4.12",
"vue-template-compiler": "^2.6.14"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
]
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
</head>
<body style="font-size: 16px;">
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
\ No newline at end of file
<template>
<div id="app">
<a-spin v-bind="loadingProps">
<a-config-provider :locale="zh_CN">
<router-view />
<!-- <keep-alive>
<router-view />
</keep-alive> -->
</a-config-provider>
</a-spin>
</div>
</template>
<script>
import Vue from "vue";
import zh_CN from "ant-design-vue/lib/locale-provider/zh_CN";
export default {
name: "App",
data() {
return {
zh_CN,
loadingProps: {
spinning: false,
},
};
},
beforeCreate() {
Vue.prototype.$app = this;
},
created() {
this.readVueXData();
},
methods: {
readVueXData() {
window.addEventListener("beforeunload", () => {
sessionStorage.setItem("store", JSON.stringify(this.$store.state));
});
if (sessionStorage.getItem("store")) {
this.$store.replaceState(
Object.assign(
{},
this.$store.state,
JSON.parse(sessionStorage.getItem("store"))
)
);
sessionStorage.removeItem("store");
}
},
},
};
</script>
<style lang="less">
*,
:after,
:before {
-webkit-box-sizing: border-box !important;
-moz-box-sizing: border-box !important;
-o-box-sizing: border-box !important;
-ms-box-sizing: border-box !important;
box-sizing: border-box !important;
}
html,
body,
#app {
font-size: 16px;
font-family: "Arial", "Microsoft YaHei", "黑体", "宋体", "微软雅黑",
sans-serif !important;
min-width: 1440px !important;
height: 100% !important;
// width: 100% !important;
}
.ant-spin-nested-loading,
.ant-spin-container {
height: 100% !important;
}
</style>
import http from '../request/http'
// 1.9.1. 查询API服务列表
export function serviceApiList(params) {
return http.post("system/service/api/list", params)
}
// 1.9.2. 查看API服务
export function serviceApiInfo(params) {
return http.get("system/service/api/info", params)
}
// 1.9.3. 保存更新API服务
export function serviceApiSave(params) {
return http.post("system/service/api/save", params)
}
// 1.9.4. 删除API服务
export function serviceApiDelete(params) {
return http.get("system/service/api/delete", params)
}
// const BASE_URL = process.env.VUE_APP_API_BASE_URL
module.exports = {
fileCommonupload: `/file/commonupload`, //1.2.4. 上传附件
}
import http from '../request/http'
// 1.10.1. 查询应用服务列表
export function serviceList(params) {
return http.post("system/service/list", params)
}
// 1.10.2. 查看应用服务
export function serviceInfo(params) {
return http.get("system/service/info", params)
}
// 1.10.3. 保存更新应用服务
export function serviceSave(params) {
return http.post("system/service/save", params)
}
// 1.10.4. 删除应用服务
export function serviceDelete(params) {
return http.get("system/service/delete", params)
}
import http from '../request/http'
// 1.14.1. 查询区域列表
export function areaList(params) {
return http.post("area/list", params)
}
// 1.14.2. 查看区域
export function areaInfo(params) {
return http.get("area/info", params)
}
// 1.14.3. 查看区域子信息
export function getListByParentId(params) {
return http.get("area/getListByParentId", params)
}
// 1.14.4. 获取所有区域信息
export function areaTreeselect(params) {
return http.post("area/treeselect", params)
}
import http from '../request/http'
// 1.4.1. 查询角色信息列表
export function roleList(params) {
return http.post("role/list", params)
}
// 1.4.2. 查看角色信息
export function roleInfo(params) {
return http.get("role/info", params)
}
// 1.4.3. 保存更新角色信息
export function roleSave(params) {
return http.post("role/save", params)
}
// 1.4.4. 删除角色信息
export function roleDelete(params) {
return http.get("role/delete", params)
}
// 1.6.1. 分配菜单到角色
export function assignMenuToRole(params) {
return http.post("role/auth/assignMenuToRole", params)
}
import http from '../request/http'
// 1.15.1. 获取站点下的数据管理列表
export function censusListInterface(params) {
return http.post("site/model/census/list", params)
}
import http from '../request/http'
// 1.7.1. 查询菜单信息业务列表
export function menuList(params) {
return http.post("menu/list", params)
}
// 1.7.2. 查看菜单信息业务
export function menuInfo(params) {
return http.get("menu/info", params)
}
// 1.7.3. 保存更新菜单信息业务
export function menuSave(params) {
return http.post("menu/save", params)
}
// 1.7.4. 删除菜单信息业务
export function menuDelete(params) {
return http.get("menu/delete", params)
}
// 1.7.5. 查询所有可用菜单
export function menuFindAll(params) {
return http.post("menu/findAll", params)
}
// 1.3.8 查询菜单权限列表
export function menuFindAllTree(params) {
return http.post("menu/list/tree", params)
}
import http from '../request/http'
// 1.16.1. 查询站点编排列表
export function appsListInterface(params) {
return http.post("site/model/list", params)
}
import http from '../request/http'
// 1.2.1. 登录
export function LoginInterface(params) {
return http.post("login/login", params)
}
// 1.2.2. 首页
export function loginIndex(params) {
return http.post("login/index", params)
}
// 1.2.3. 登出
export function LogoutInterface(params) {
return http.post("login/logout", params)
}
// 1.2.4. 修改密码
export function changePassword(params) {
return http.post("user/change/password", params)
}
import http from '../request/http'
// 1.3.1. 查询用户信息业务列表
export function userList(params) {
return http.post("user/list", params)
}
// 1.3.2. 查看用户信息业务
export function userInfo(params) {
return http.get("user/info", params)
}
// 1.3.3. 保存更新用户信息业务
export function userSave(params) {
return http.post("user/save", params)
}
// 1.3.4. 删除用户信息业务
export function userDelete(params) {
return http.get("user/delete", params)
}
// 1.3.5. 用户站点授权
export function userSiteAuth(params) {
return http.post("user/siteAuth", params)
}
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="36px" height="40px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -996 -708 )">
<path d="M 16.3459459459459 15.8839933073062 C 16.7351351351351 15.3188324967466 17.2828828828829 15.0362520914668 17.9891891891892 15.0362520914668 C 18.4504504504505 15.0362520914668 18.8756756756757 15.170105967652 19.2648648648649 15.4378137200223 L 24.0648648648649 18.739542665923 C 24.9441441441441 19.3344487823015 25.7369369369369 20.0557724484105 26.4432432432432 20.9035136642499 L 29.6 24.6960401561629 C 30.1765765765766 25.3801821899981 30.3855855855856 26.1684327941997 30.227027027027 27.0607919687674 L 28.6702702702703 36.2744004461796 C 28.5837837837838 36.7503253392824 28.3711711711712 37.1481688046105 28.0324324324324 37.467930842164 C 27.6936936936937 37.7876928797174 27.2936936936937 37.9773192043131 26.8324324324324 38.0368098159509 L 15.4378378378378 39.2861126603458 L 7.82702702702703 40 L 7.63243243243243 40 C 7.07027027027027 40 6.58378378378378 39.7917828592675 6.17297297297297 39.3753485778026 C 5.76216216216216 38.9589142963376 5.55675675675676 38.4532440974159 5.55675675675676 37.8583379810374 C 5.55675675675676 37.3080498233872 5.75135135135135 36.8321249302844 6.14054054054054 36.4305633017289 C 6.52972972972973 36.0290016731735 6.9981981981982 35.791039226622 7.54594594594595 35.7166759620747 L 13.1675675675676 35.0027886224205 L 3.48108108108108 35.0027886224205 C 2.89009009009009 35.0027886224205 2.38918918918919 34.7796988287786 1.97837837837838 34.3335192414947 C 1.56756756756757 33.8873396542108 1.37657657657658 33.3593604759249 1.40540540540541 32.7495817066369 C 1.43423423423423 32.1695482431679 1.66486486486486 31.6861870236103 2.0972972972973 31.2994980479643 C 2.52972972972973 30.9128090723183 3.02702702702703 30.7194645844953 3.58918918918919 30.7194645844953 L 13.1459459459459 30.6971556051311 L 1.88108108108108 29.2693809258226 C 1.29009009009009 29.1950176612753 0.814414414414415 28.9198735824503 0.454054054054054 28.4439486893475 C 0.0936936936936937 27.9680237962447 -0.0432432432432432 27.4251719650493 0.0432432432432432 26.8153931957613 C 0.12972972972973 26.2948503439301 0.378378378378378 25.867261572783 0.789189189189189 25.5326268823201 C 1.2 25.1979921918572 1.67207207207207 25.0306748466258 2.20540540540541 25.0306748466258 L 2.42162162162162 25.0306748466258 L 12.8216216216216 26.3692136084774 L 5.23243243243243 24.2721695482432 C 4.68468468468468 24.1234430191485 4.23783783783784 23.8148354712772 3.89189189189189 23.3463469046291 C 3.54594594594595 22.877858337981 3.41621621621622 22.3684699758319 3.5027027027027 21.8181818181818 C 3.58918918918919 21.2827663134412 3.82702702702703 20.8477412158394 4.21621621621622 20.5131065253765 C 4.60540540540541 20.1784718349136 5.05225225225225 20.0111544896821 5.55675675675676 20.0111544896821 C 5.64324324324324 20.0111544896821 5.78738738738739 20.0260271425916 5.98918918918919 20.0557724484105 L 15.6756756756757 22.1974344673731 L 20.3675675675676 23.0228667038483 C 20.381981981982 23.0228667038483 20.4036036036036 23.0265848670757 20.4324324324324 23.0340211935304 C 20.4612612612613 23.0414575199851 20.4828828828829 23.0451756832125 20.4972972972973 23.0451756832125 C 20.8288288288288 23.0451756832125 21.0486486486487 22.8741401747537 21.1567567567568 22.532069157836 C 21.2648648648649 22.1899981409184 21.1747747747748 21.9222903885481 20.8864864864865 21.728945900725 L 16.8648648648649 18.9403234802008 C 16.3603603603604 18.5982524632831 16.0576576576577 18.1260457334077 15.9567567567568 17.5237032905745 C 15.8558558558559 16.9213608477412 15.9855855855856 16.3747908533185 16.3459459459459 15.8839933073062 Z M 15.2864864864865 17.6464026770775 C 15.4162162162162 18.4495259341885 15.8126126126126 19.0816136828407 16.4756756756757 19.542665923034 L 20.4972972972973 22.3312883435583 L 15.7837837837838 21.5058561070831 L 15.6756756756757 21.4612381483547 L 14.8972972972973 20.6134969325153 L 9.75135135135135 14.7685443390965 C 9.73693693693694 14.753671686187 9.71891891891892 14.7276445435955 9.6972972972973 14.6904629113218 C 9.67567567567568 14.6532812790481 9.65765765765766 14.6272541364566 9.64324324324324 14.6123814835471 C 9.2972972972973 14.1513292433538 9.16396396396396 13.6307863915226 9.24324324324324 13.0507529280535 C 9.32252252252252 12.4707194645845 9.59279279279279 11.9947945714817 10.0540540540541 11.6229782487451 C 10.5009009009009 11.2809072318275 10.990990990991 11.1507715188697 11.5243243243243 11.2325711098717 C 12.0576576576577 11.3143707008738 12.5189189189189 11.5634876371073 12.9081081081081 11.9799219185722 L 15.9783783783784 15.2593418851088 C 15.9495495495496 15.2742145380182 15.9135135135135 15.3002416806098 15.8702702702703 15.3374233128834 C 15.827027027027 15.3746049451571 15.7981981981982 15.4080684142034 15.7837837837838 15.4378137200223 C 15.3225225225225 16.1070831009481 15.1567567567568 16.8432794199665 15.2864864864865 17.6464026770775 Z M 35.0054054054054 7.9085331846068 C 35.409009009009 8.33240379252649 35.6252252252252 8.83435582822086 35.6540540540541 9.4143892916899 L 35.9783783783784 15.3485778025655 C 36.036036036036 16.4342814649563 35.9567567567568 17.5274214538018 35.7405405405405 18.6279977691021 L 34.7027027027027 23.5136642498606 C 34.5297297297297 24.3911507715189 34.0468468468468 25.0381111730805 33.2540540540541 25.4545454545455 L 30.9621621621622 26.6592303402119 C 30.990990990991 25.7371258598252 30.7099099099099 24.9265662762595 30.1189189189189 24.2275515895148 L 26.9621621621622 20.4350250976018 C 26.1981981981982 19.5277932701246 25.354954954955 18.7618516452872 24.4324324324324 18.1372002230898 L 19.6324324324324 14.8354712771891 C 19.1423423423423 14.4934002602714 18.5945945945946 14.3223647518126 17.9891891891892 14.3223647518126 C 17.2540540540541 14.3223647518126 16.6198198198198 14.5975088306377 16.0864864864865 15.1477969882878 L 11.0054054054054 8.18739542665923 C 10.645045045045 7.69659788064696 10.5153153153153 7.1500278862242 10.6162162162162 6.54768544339097 C 10.7171171171171 5.94534300055773 11.0126126126126 5.47313627068228 11.5027027027027 5.13106525376464 C 11.9783783783784 4.80386688975646 12.4936936936937 4.69975831939022 13.0486486486486 4.81873954266592 C 13.6036036036036 4.93772076594162 14.0540540540541 5.23517382413087 14.4 5.71109871723368 L 20.1513513513514 13.56385945343 L 14.4864864864865 3.41327384272169 C 14.1837837837838 2.8927309908905 14.1081081081081 2.33500650678565 14.2594594594595 1.74010039040714 C 14.4108108108108 1.14519427402863 14.7531531531532 0.706451013199474 15.2864864864865 0.42387060791969 C 15.790990990991 0.156162855549358 16.3135135135135 0.11154489682097 16.8540540540541 0.290016731734521 C 17.3945945945946 0.468488566648078 17.809009009009 0.810559583565715 18.0972972972973 1.31622978248745 L 23.3081081081081 10.686001115449 L 20.3675675675676 3.16787506971556 C 20.1513513513514 2.64733221788436 20.1189189189189 2.09704406023425 20.2702702702703 1.5170105967652 C 20.4216216216216 0.936977133296151 20.7423423423423 0.520542851831194 21.2324324324324 0.267707752370328 C 21.7657657657658 -0.0148726529094656 22.3135135135135 -0.0594906116378535 22.8756756756757 0.133853876185164 C 23.4378378378378 0.327198364008177 23.8414414414414 0.706451013199474 24.0864864864865 1.27161182375906 L 28.2594594594595 10.5298382598996 L 30.4432432432432 14.9023982152817 C 30.5585585585586 15.1254880089236 30.7243243243243 15.2556237218814 30.9405405405405 15.292805354155 C 31.1567567567568 15.3299869864287 31.3513513513514 15.2742145380182 31.5243243243243 15.1254880089236 C 31.6972972972973 14.976761479829 31.7765765765766 14.7834169920059 31.7621621621622 14.5454545454545 L 31.5027027027027 9.54824316787507 C 31.4738738738739 8.93846439858709 31.6612612612613 8.41048522030117 32.0648648648649 7.96430563301729 C 32.4684684684685 7.51812604573341 32.9657657657658 7.28759992563673 33.5567567567568 7.27272727272727 C 34.1189189189189 7.27272727272727 34.6018018018018 7.48466257668712 35.0054054054054 7.9085331846068 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 996 708 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="40px" height="40px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -691 -708 )">
<path d="M 5.87053571428571 20.0892857142857 L 16.0044642857143 30.2232142857143 L 22.0535714285714 24.1741071428571 L 15.8258928571429 17.9464285714286 L 13.8616071428571 19.9107142857143 L 18.1473214285714 24.1741071428571 L 16.0044642857143 26.3169642857143 L 9.77678571428571 20.0892857142857 L 16.0044642857143 13.8616071428571 L 16.8973214285714 14.7544642857143 L 18.8392857142857 12.8125 L 16.0044642857143 9.95535714285714 L 5.87053571428571 20.0892857142857 Z M 21.1607142857143 27.2098214285714 L 23.9955357142857 30.0446428571429 L 34.1294642857143 19.9107142857143 L 23.9955357142857 9.77678571428572 L 17.9464285714286 15.8258928571429 L 24.1741071428571 22.0535714285714 L 26.1383928571429 20.0892857142857 L 21.8526785714286 15.8258928571429 L 23.9955357142857 13.6830357142857 L 30.2232142857143 19.9107142857143 L 23.9955357142857 26.1383928571429 L 23.1026785714286 25.2455357142857 L 21.1607142857143 27.2098214285714 Z M 38.4151785714286 12.2321428571429 C 39.4717261904762 14.7023809523809 40 17.2916666666667 40 20 C 40 22.7083333333333 39.4717261904762 25.297619047619 38.4151785714286 27.7678571428571 C 37.358630952381 30.2380952380952 35.9375 32.3660714285714 34.1517857142857 34.1517857142857 C 32.3660714285714 35.9375 30.2380952380952 37.358630952381 27.7678571428571 38.4151785714286 C 25.2976190476191 39.4717261904762 22.7083333333333 40 20 40 C 17.2916666666667 40 14.702380952381 39.4717261904762 12.2321428571429 38.4151785714286 C 9.76190476190476 37.358630952381 7.63392857142857 35.9375 5.84821428571429 34.1517857142857 C 4.0625 32.3660714285714 2.64136904761905 30.2380952380952 1.58482142857143 27.7678571428571 C 0.528273809523809 25.297619047619 0 22.7083333333333 0 20 C 0 17.2916666666667 0.528273809523809 14.7023809523809 1.58482142857143 12.2321428571429 C 2.64136904761905 9.76190476190476 4.0625 7.63392857142857 5.84821428571429 5.84821428571428 C 7.63392857142857 4.0625 9.76190476190476 2.64136904761905 12.2321428571429 1.58482142857143 C 14.702380952381 0.528273809523809 17.2916666666667 0 20 0 C 22.7083333333333 0 25.2976190476191 0.528273809523809 27.7678571428571 1.58482142857143 C 30.2380952380952 2.64136904761905 32.3660714285714 4.0625 34.1517857142857 5.84821428571428 C 35.9375 7.63392857142857 37.358630952381 9.76190476190476 38.4151785714286 12.2321428571429 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 691 708 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="36px" height="36px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -1423 -710 )">
<path d="M 11.12109375 29.12109375 C 11.70703125 28.53515625 12 27.828125 12 27 C 12 26.171875 11.70703125 25.46484375 11.12109375 24.87890625 C 10.53515625 24.29296875 9.828125 24 9 24 C 8.171875 24 7.46484375 24.29296875 6.87890625 24.87890625 C 6.29296875 25.46484375 6 26.171875 6 27 C 6 27.828125 6.29296875 28.53515625 6.87890625 29.12109375 C 7.46484375 29.70703125 8.171875 30 9 30 C 9.828125 30 10.53515625 29.70703125 11.12109375 29.12109375 Z M 20.015625 29.765625 C 20.171875 29.609375 20.2421875 29.421875 20.2265625 29.203125 C 20.0234375 25.5625 18.64453125 22.46484375 16.08984375 19.91015625 C 13.53515625 17.35546875 10.4375 15.9765625 6.796875 15.7734375 C 6.578125 15.7578125 6.390625 15.828125 6.234375 15.984375 C 6.078125 16.140625 6 16.3203125 6 16.5234375 L 6 19.5234375 C 6 19.7265625 6.06640625 19.8984375 6.19921875 20.0390625 C 6.33203125 20.1796875 6.5 20.2578125 6.703125 20.2734375 C 9.109375 20.4453125 11.171875 21.390625 12.890625 23.109375 C 14.609375 24.828125 15.5546875 26.890625 15.7265625 29.296875 C 15.7421875 29.5 15.8203125 29.66796875 15.9609375 29.80078125 C 16.1015625 29.93359375 16.2734375 30 16.4765625 30 L 19.4765625 30 C 19.6796875 30 19.859375 29.921875 20.015625 29.765625 Z M 29.015625 29.765625 C 29.1875 29.625 29.2578125 29.4453125 29.2265625 29.2265625 C 29.1484375 26.8203125 28.7109375 24.49609375 27.9140625 22.25390625 C 27.1171875 20.01171875 26.02734375 17.98046875 24.64453125 16.16015625 C 23.26171875 14.33984375 21.66015625 12.73828125 19.83984375 11.35546875 C 18.01953125 9.97265625 15.98828125 8.8828125 13.74609375 8.0859375 C 11.50390625 7.2890625 9.1796875 6.8515625 6.7734375 6.7734375 C 6.5546875 6.7578125 6.375 6.828125 6.234375 6.984375 C 6.078125 7.14062499999999 6 7.3203125 6 7.5234375 L 6 10.5234375 C 6 10.7265625 6.0703125 10.8984375 6.2109375 11.0390625 C 6.3515625 11.1796875 6.5234375 11.2578125 6.7265625 11.2734375 C 9.9140625 11.3828125 12.8671875 12.25390625 15.5859375 13.88671875 C 18.3046875 15.51953125 20.48046875 17.6953125 22.11328125 20.4140625 C 23.74609375 23.1328125 24.6171875 26.0859375 24.7265625 29.2734375 C 24.7421875 29.4765625 24.8203125 29.6484375 24.9609375 29.7890625 C 25.1015625 29.9296875 25.2734375 30 25.4765625 30 L 28.4765625 30 C 28.6796875 30 28.859375 29.921875 29.015625 29.765625 Z M 34.01953125 1.98046875 C 35.33984375 3.30078125 36 4.89062499999999 36 6.75 L 36 29.25 C 36 31.109375 35.33984375 32.69921875 34.01953125 34.01953125 C 32.69921875 35.33984375 31.109375 36 29.25 36 L 6.75 36 C 4.890625 36 3.30078125 35.33984375 1.98046875 34.01953125 C 0.66015625 32.69921875 0 31.109375 0 29.25 L 0 6.75 C 0 4.89062499999999 0.66015625 3.30078125 1.98046875 1.98046875 C 3.30078125 0.660156249999998 4.890625 0 6.75 0 L 29.25 0 C 31.109375 0 32.69921875 0.660156249999998 34.01953125 1.98046875 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 1423 710 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="33px" height="36px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -1574 -710 )">
<path d="M 25.3615384615385 18 L 31.5 21.609375 C 32.2076923076923 22.015625 32.6653846153846 22.62109375 32.8730769230769 23.42578125 C 33.0807692307692 24.23046875 32.9846153846154 24.9921875 32.5846153846154 25.7109375 L 31.1076923076923 28.2890625 C 30.7076923076923 29.0078125 30.1115384615385 29.47265625 29.3192307692308 29.68359375 C 28.5269230769231 29.89453125 27.7769230769231 29.796875 27.0692307692308 29.390625 L 20.9307692307692 25.8046875 L 20.9307692307692 33 C 20.9307692307692 33.8125 20.6384615384615 34.515625 20.0538461538462 35.109375 C 19.4692307692308 35.703125 18.7769230769231 36 17.9769230769231 36 L 15.0230769230769 36 C 14.2230769230769 36 13.5307692307692 35.703125 12.9461538461538 35.109375 C 12.3615384615385 34.515625 12.0692307692308 33.8125 12.0692307692308 33 L 12.0692307692308 25.8046875 L 5.93076923076923 29.390625 C 5.22307692307692 29.796875 4.47307692307692 29.89453125 3.68076923076923 29.68359375 C 2.88846153846154 29.47265625 2.29230769230769 29.0078125 1.89230769230769 28.2890625 L 0.415384615384615 25.7109375 C 0.0153846153846155 24.9921875 -0.0807692307692308 24.23046875 0.126923076923077 23.42578125 C 0.334615384615385 22.62109375 0.792307692307692 22.015625 1.5 21.609375 L 7.63846153846154 18 L 1.5 14.390625 C 0.792307692307692 13.984375 0.334615384615385 13.37890625 0.126923076923077 12.57421875 C -0.0807692307692308 11.76953125 0.0153846153846155 11.0078125 0.415384615384615 10.2890625 L 1.89230769230769 7.7109375 C 2.29230769230769 6.9921875 2.88846153846154 6.52734375 3.68076923076923 6.31640625 C 4.47307692307692 6.10546875 5.22307692307692 6.203125 5.93076923076923 6.609375 L 12.0692307692308 10.1953125 L 12.0692307692308 3 C 12.0692307692308 2.1875 12.3615384615385 1.484375 12.9461538461538 0.890625000000001 C 13.5307692307692 0.296874999999996 14.2230769230769 0 15.0230769230769 0 L 17.9769230769231 0 C 18.7769230769231 0 19.4692307692308 0.296874999999996 20.0538461538462 0.890625000000001 C 20.6384615384615 1.484375 20.9307692307692 2.1875 20.9307692307692 3 L 20.9307692307692 10.1953125 L 27.0692307692308 6.609375 C 27.7769230769231 6.203125 28.5269230769231 6.10546875 29.3192307692308 6.31640625 C 30.1115384615385 6.52734375 30.7076923076923 6.9921875 31.1076923076923 7.7109375 L 32.5846153846154 10.2890625 C 32.9846153846154 11.0078125 33.0807692307692 11.76953125 32.8730769230769 12.57421875 C 32.6653846153846 13.37890625 32.2076923076923 13.984375 31.5 14.390625 L 25.3615384615385 18 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 1574 710 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="38px" height="36px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -418 -710 )">
<path d="M 10.1333333333333 12.8571428571429 C 10.1333333333333 14.71875 10.6677083333333 16.4330357142857 11.7364583333333 18 C 9.59895833333333 18.0669642857143 7.85069444444444 18.9241071428571 6.49166666666667 20.5714285714286 L 3.83958333333333 20.5714285714286 C 2.75763888888889 20.5714285714286 1.84722222222222 20.3002232142857 1.10833333333333 19.7578125 C 0.369444444444444 19.2154017857143 0 18.421875 0 17.3772321428571 C 0 12.6495535714286 0.818055555555555 10.2857142857143 2.45416666666667 10.2857142857143 C 2.53333333333333 10.2857142857143 2.8203125 10.4263392857143 3.31510416666667 10.7075892857143 C 3.80989583333333 10.9888392857143 4.453125 11.2734375 5.24479166666667 11.5613839285714 C 6.03645833333333 11.8493303571429 6.82152777777778 11.9933035714286 7.6 11.9933035714286 C 8.48402777777778 11.9933035714286 9.36145833333333 11.8392857142857 10.2322916666667 11.53125 C 10.1663194444444 12.0267857142857 10.1333333333333 12.46875 10.1333333333333 12.8571428571429 Z M 32.8640625 28.7176339285714 C 32.9102430555556 29.3939732142857 32.9333333333333 30.0870535714286 32.9333333333333 30.796875 C 32.9333333333333 32.4040178571429 32.4517361111111 33.6729910714286 31.4885416666667 34.6037946428571 C 30.5253472222222 35.5345982142857 29.2454861111111 36 27.6489583333333 36 L 10.3510416666667 36 C 8.75451388888889 36 7.47465277777778 35.5345982142857 6.51145833333333 34.6037946428571 C 5.54826388888889 33.6729910714286 5.06666666666667 32.4040178571429 5.06666666666667 30.796875 C 5.06666666666667 30.0870535714286 5.08975694444444 29.3939732142857 5.1359375 28.7176339285714 C 5.18211805555556 28.0412946428571 5.27447916666667 27.3113839285714 5.41302083333333 26.5279017857143 C 5.5515625 25.7444196428571 5.72638888888889 25.0178571428571 5.9375 24.3482142857143 C 6.14861111111111 23.6785714285714 6.43229166666667 23.0256696428571 6.78854166666667 22.3895089285714 C 7.14479166666667 21.7533482142857 7.55381944444444 21.2109375 8.015625 20.7622767857143 C 8.47743055555556 20.3136160714286 9.04149305555556 19.9553571428571 9.7078125 19.6875 C 10.3741319444444 19.4196428571429 11.1097222222222 19.2857142857143 11.9145833333333 19.2857142857143 C 12.0465277777778 19.2857142857143 12.3302083333333 19.4296875 12.765625 19.7176339285714 C 13.2010416666667 20.0055803571429 13.6826388888889 20.3270089285714 14.2104166666667 20.6819196428571 C 14.7381944444444 21.0368303571429 15.4440972222222 21.3582589285714 16.328125 21.6462053571429 C 17.2121527777778 21.9341517857143 18.1027777777778 22.078125 19 22.078125 C 19.8972222222222 22.078125 20.7878472222222 21.9341517857143 21.671875 21.6462053571429 C 22.5559027777778 21.3582589285714 23.2618055555556 21.0368303571429 23.7895833333333 20.6819196428571 C 24.3173611111111 20.3270089285714 24.7989583333333 20.0055803571429 25.234375 19.7176339285714 C 25.6697916666667 19.4296875 25.9534722222222 19.2857142857143 26.0854166666667 19.2857142857143 C 26.8902777777778 19.2857142857143 27.6258680555556 19.4196428571429 28.2921875 19.6875 C 28.9585069444444 19.9553571428571 29.5225694444444 20.3136160714286 29.984375 20.7622767857143 C 30.4461805555556 21.2109375 30.8552083333333 21.7533482142857 31.2114583333333 22.3895089285714 C 31.5677083333333 23.0256696428571 31.8513888888889 23.6785714285714 32.0625 24.3482142857143 C 32.2736111111111 25.0178571428571 32.4484375 25.7444196428571 32.5869791666667 26.5279017857143 C 32.7255208333333 27.3113839285714 32.8178819444444 28.0412946428571 32.8640625 28.7176339285714 Z M 11.1822916666667 1.50669642857143 C 12.171875 2.51116071428571 12.6666666666667 3.72321428571428 12.6666666666667 5.14285714285714 C 12.6666666666667 6.5625 12.171875 7.77455357142857 11.1822916666667 8.77901785714286 C 10.1927083333333 9.78348214285714 8.99861111111111 10.2857142857143 7.6 10.2857142857143 C 6.20138888888889 10.2857142857143 5.00729166666667 9.78348214285714 4.01770833333333 8.77901785714286 C 3.028125 7.77455357142857 2.53333333333333 6.5625 2.53333333333333 5.14285714285714 C 2.53333333333333 3.72321428571428 3.028125 2.51116071428571 4.01770833333333 1.50669642857143 C 5.00729166666667 0.502232142857145 6.20138888888889 0 7.6 0 C 8.99861111111111 0 10.1927083333333 0.502232142857145 11.1822916666667 1.50669642857143 Z M 24.3734375 7.40290178571428 C 25.8578125 8.90959821428572 26.6 10.7276785714286 26.6 12.8571428571429 C 26.6 14.9866071428571 25.8578125 16.8046875 24.3734375 18.3113839285714 C 22.8890625 19.8180803571429 21.0979166666667 20.5714285714286 19 20.5714285714286 C 16.9020833333333 20.5714285714286 15.1109375 19.8180803571429 13.6265625 18.3113839285714 C 12.1421875 16.8046875 11.4 14.9866071428571 11.4 12.8571428571429 C 11.4 10.7276785714286 12.1421875 8.90959821428572 13.6265625 7.40290178571428 C 15.1109375 5.89620535714286 16.9020833333333 5.14285714285714 19 5.14285714285714 C 21.0979166666667 5.14285714285714 22.8890625 5.89620535714286 24.3734375 7.40290178571428 Z M 35.5458333333333 10.2857142857143 C 37.1819444444445 10.2857142857143 38 12.6495535714286 38 17.3772321428571 C 38 18.421875 37.6305555555556 19.2154017857143 36.8916666666667 19.7578125 C 36.1527777777778 20.3002232142857 35.2423611111111 20.5714285714286 34.1604166666667 20.5714285714286 L 31.5083333333333 20.5714285714286 C 30.1493055555556 18.9241071428571 28.4010416666667 18.0669642857143 26.2635416666667 18 C 27.3322916666667 16.4330357142857 27.8666666666667 14.71875 27.8666666666667 12.8571428571429 C 27.8666666666667 12.46875 27.8336805555556 12.0267857142857 27.7677083333333 11.53125 C 28.6385416666667 11.8392857142857 29.5159722222222 11.9933035714286 30.4 11.9933035714286 C 31.1784722222222 11.9933035714286 31.9635416666667 11.8493303571429 32.7552083333333 11.5613839285714 C 33.546875 11.2734375 34.1901041666667 10.9888392857143 34.6848958333333 10.7075892857143 C 35.1796875 10.4263392857143 35.4666666666667 10.2857142857143 35.5458333333333 10.2857142857143 Z M 33.9822916666667 1.50669642857143 C 34.971875 2.51116071428571 35.4666666666667 3.72321428571428 35.4666666666667 5.14285714285714 C 35.4666666666667 6.5625 34.971875 7.77455357142857 33.9822916666667 8.77901785714286 C 32.9927083333333 9.78348214285714 31.7986111111111 10.2857142857143 30.4 10.2857142857143 C 29.0013888888889 10.2857142857143 27.8072916666667 9.78348214285714 26.8177083333333 8.77901785714286 C 25.828125 7.77455357142857 25.3333333333333 6.5625 25.3333333333333 5.14285714285714 C 25.3333333333333 3.72321428571428 25.828125 2.51116071428571 26.8177083333333 1.50669642857143 C 27.8072916666667 0.502232142857145 29.0013888888889 0 30.4 0 C 31.7986111111111 0 32.9927083333333 0.502232142857145 33.9822916666667 1.50669642857143 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 418 710 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="38px" height="36px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -555 -710 )">
<path d="M 5.62875 29.56640625 C 5.92958333333333 29.27734375 6.08 28.921875 6.08 28.5 C 6.08 28.09375 5.92958333333333 27.7421875 5.62875 27.4453125 C 5.32791666666667 27.1484375 4.97166666666667 27 4.56 27 C 4.1325 27 3.77229166666667 27.1484375 3.479375 27.4453125 C 3.18645833333333 27.7421875 3.04 28.09375 3.04 28.5 C 3.04 28.921875 3.18645833333333 29.27734375 3.479375 29.56640625 C 3.77229166666667 29.85546875 4.1325 30 4.56 30 C 4.97166666666667 30 5.32791666666667 29.85546875 5.62875 29.56640625 Z M 9.42875 15.4453125 C 9.72958333333333 15.7421875 9.88 16.09375 10 16.5 L 10 31.5 C 9.88 31.90625 9.72958333333333 32.2578125 9.42875 32.5546875 C 9.12791666666667 32.8515625 8.77166666666667 33 8.36 33 L 1.52 33 C 1.10833333333333 33 0.752083333333333 32.8515625 0.45125 32.5546875 C 0.150416666666667 32.2578125 0 31.90625 0 31.5 L 0 16.5 C 0 16.09375 0.150416666666667 15.7421875 0.45125 15.4453125 C 0.752083333333333 15.1484375 1.10833333333333 15 1.52 15 L 8.36 15 C 8.77166666666667 15 9.12791666666667 15.1484375 9.42875 15.4453125 Z M 36.64625 13.3359375 C 37.54875 14.2265625 38 15.28125 38 16.5 C 38 17.84375 37.5645833333333 19.0078125 36.69375 19.9921875 C 36.93125 20.6796875 37.05 21.2734375 37.05 21.7734375 C 37.0975 22.9609375 36.7570833333333 24.03125 36.02875 24.984375 C 36.2979166666667 25.859375 36.2979166666667 26.7734375 36.02875 27.7265625 C 35.79125 28.6171875 35.36375 29.3515625 34.74625 29.9296875 C 34.88875 31.6796875 34.5008333333333 33.09375 33.5825 34.171875 C 32.5691666666667 35.359375 31.0095833333333 35.96875 28.90375 36 L 28.04875 36 L 26.24375 36 L 25.84 36 C 24.795 36 23.655 35.87890625 22.42 35.63671875 C 21.185 35.39453125 20.223125 35.16796875 19.534375 34.95703125 C 18.845625 34.74609375 17.8916666666667 34.4375 16.6725 34.03125 C 14.725 33.359375 13.4741666666667 33.015625 12.92 33 C 12.5083333333333 32.984375 12.1520833333333 32.83203125 11.85125 32.54296875 C 11.5504166666667 32.25390625 11.4 31.90625 12 31.5 L 12 16.4765625 C 11.4 16.0859375 11.5425 15.74609375 11.8275 15.45703125 C 12.1125 15.16796875 12.4529166666667 15.0078125 12.84875 14.9765625 C 13.22875 14.9453125 13.8304166666667 14.484375 14.65375 13.59375 C 15.4770833333333 12.703125 16.2766666666667 11.7578125 17.0525 10.7578125 C 18.1291666666667 9.3984375 18.92875 8.4609375 19.45125 7.9453125 C 19.73625 7.6640625 19.9816666666667 7.2890625 20.1875 6.8203125 C 20.3933333333333 6.3515625 20.531875 5.97265625 20.603125 5.68359375 C 20.674375 5.39453125 20.78125 4.921875 20.92375 4.265625 C 21.0345833333333 3.65625 21.1335416666667 3.1796875 21.220625 2.8359375 C 21.3077083333333 2.4921875 21.4620833333333 2.0859375 21.68375 1.6171875 C 21.9054166666667 1.1484375 22.1745833333333 0.7578125 22.49125 0.445312499999999 C 22.7920833333333 0.148437499999998 23.1483333333333 0 23.56 0 C 24.2883333333333 0 24.9414583333333 0.0820312500000013 25.519375 0.24609375 C 26.0972916666667 0.410156249999999 26.5722916666667 0.613281249999996 26.944375 0.855468750000001 C 27.3164583333333 1.09765625 27.633125 1.4140625 27.894375 1.8046875 C 28.155625 2.1953125 28.345625 2.546875 28.464375 2.859375 C 28.583125 3.171875 28.678125 3.5625 28.749375 4.03125 C 28.820625 4.5 28.8602083333333 4.8515625 28.868125 5.0859375 C 28.8760416666667 5.3203125 28.88 5.625 28.88 6 C 28.88 6.59375 28.8047916666667 7.1875 28.654375 7.78125 C 28.5039583333333 8.375 28.3535416666667 8.84375 28.203125 9.1875 C 28.0527083333333 9.53124999999999 27.835 9.96875 27.55 10.5 C 27.5025 10.59375 27.4233333333333 10.734375 27.3125 10.921875 C 27.2016666666667 11.109375 27.1145833333333 11.28125 27.05125 11.4375 C 26.9879166666667 11.59375 26.9245833333333 11.78125 26.86125 12 L 33.44 12 C 34.675 12 35.74375 12.4453125 36.64625 13.3359375 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 555 710 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="39px" height="34px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -1135 -711 )">
<path d="M 13.9285714285714 3 L 13.9285714285714 6 L 25.0714285714286 6 L 25.0714285714286 3 L 13.9285714285714 3 Z M 4.875 5.66666666666667 L 7 5.66666666666667 L 7 34 L 4.875 34 C 3.54017857142857 34 2.39397321428571 33.5130208333333 1.43638392857143 32.5390625 C 0.478794642857143 31.5651041666667 0 30.3993055555556 0 29.0416666666667 L 0 10.625 C 0 9.26736111111111 0.478794642857143 8.1015625 1.43638392857143 7.12760416666667 C 2.39397321428571 6.15364583333333 3.54017857142857 5.66666666666667 4.875 5.66666666666667 Z M 27.8571428571429 5.66666666666667 L 30 5.66666666666667 L 30 34 L 9 34 L 9 5.66666666666667 L 11.1428571428571 5.66666666666667 L 11.1428571428571 2.125 C 11.1428571428571 1.53472222222222 11.3459821428571 1.03298611111111 11.7522321428571 0.619791666666665 C 12.1584821428571 0.206597222222221 12.6517857142857 0 13.2321428571429 0 L 25.7678571428571 0 C 26.3482142857143 0 26.8415178571429 0.206597222222221 27.2477678571429 0.619791666666665 C 27.6540178571429 1.03298611111111 27.8571428571429 1.53472222222222 27.8571428571429 2.125 L 27.8571428571429 5.66666666666667 Z M 37.5636160714286 7.12760416666667 C 38.5212053571429 8.1015625 39 9.26736111111111 39 10.625 L 39 29.0416666666667 C 39 30.3993055555556 38.5212053571429 31.5651041666667 37.5636160714286 32.5390625 C 36.6060267857143 33.5130208333333 35.4598214285714 34 34.125 34 L 32 34 L 32 5.66666666666667 L 34.125 5.66666666666667 C 35.4598214285714 5.66666666666667 36.6060267857143 6.15364583333333 37.5636160714286 7.12760416666667 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 1135 711 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="42px" height="34px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -141 -711 )">
<path d="M 12.3529411764706 24.4754464285714 L 12.3529411764706 30.9642857142857 L 19.7647058823529 27.3214285714286 L 19.7647058823529 21.3638392857143 L 12.3529411764706 24.4754464285714 Z M 3.31985294117647 19.0680803571429 L 11.1176470588235 22.3504464285714 L 18.9154411764706 19.0680803571429 L 11.1176470588235 15.7857142857143 L 3.31985294117647 19.0680803571429 Z M 32.1176470588235 24.4754464285714 L 32.1176470588235 30.9642857142857 L 39.5294117647059 27.3214285714286 L 39.5294117647059 21.3638392857143 L 32.1176470588235 24.4754464285714 Z M 23.0845588235294 19.0680803571429 L 30.8823529411765 22.3504464285714 L 38.6801470588235 19.0680803571429 L 30.8823529411765 15.7857142857143 L 23.0845588235294 19.0680803571429 Z M 22.2352941176471 11.7254464285714 L 22.2352941176471 16.7912946428571 L 29.6470588235294 13.6607142857143 L 29.6470588235294 8.61383928571429 L 22.2352941176471 11.7254464285714 Z M 12.4880514705882 6.01450892857143 L 21 9.60044642857143 L 29.5119485294118 6.01450892857143 L 21 2.42857142857143 L 12.4880514705882 6.01450892857143 Z M 41.5946691176471 18.1004464285714 C 41.8648897058824 18.5052083333333 42 18.9479166666667 42 19.4285714285714 L 42 27.3214285714286 C 42 27.7767857142857 41.8777573529412 28.2005208333333 41.6332720588235 28.5926339285714 C 41.3887867647059 28.9847470238095 41.0542279411765 29.281994047619 40.6295955882353 29.484375 L 31.9825367647059 33.734375 C 31.6608455882353 33.9114583333333 31.2941176470588 34 30.8823529411765 34 C 30.4705882352941 34 30.1038602941176 33.9114583333333 29.7821691176471 33.734375 L 21.1351102941176 29.484375 C 21.0836397058824 29.4590773809524 21.0386029411765 29.4337797619048 21 29.4084821428571 C 20.9742647058824 29.4337797619048 20.9292279411765 29.4590773809524 20.8648897058824 29.484375 L 12.2178308823529 33.734375 C 11.8961397058824 33.9114583333333 11.5294117647059 34 11.1176470588235 34 C 10.7058823529412 34 10.3391544117647 33.9114583333333 10.0174632352941 33.734375 L 1.37040441176471 29.484375 C 0.945772058823529 29.281994047619 0.611213235294118 28.9847470238095 0.366727941176471 28.5926339285714 C 0.122242647058824 28.2005208333333 0 27.7767857142857 0 27.3214285714286 L 0 19.4285714285714 C 0 18.9479166666667 0.138327205882353 18.5052083333333 0.414981617647059 18.1004464285714 C 0.691636029411765 17.6956845238095 1.05514705882353 17.3921130952381 1.50551470588235 17.1897321428571 L 9.88235294117647 13.6607142857143 L 9.88235294117647 6.07142857142857 C 9.88235294117647 5.59077380952381 10.0206801470588 5.14806547619048 10.2973345588235 4.74330357142857 C 10.5739889705882 4.33854166666667 10.9375 4.03497023809523 11.3878676470588 3.83258928571429 L 20.0349264705882 0.189732142857141 C 20.3308823529412 0.0632440476190521 20.6525735294118 0 21 0 C 21.3474264705882 0 21.6691176470588 0.0632440476190521 21.9650735294118 0.189732142857141 L 30.6121323529412 3.83258928571429 C 31.0625 4.03497023809523 31.4260110294118 4.33854166666667 31.7026654411765 4.74330357142857 C 31.9793198529412 5.14806547619048 32.1176470588235 5.59077380952381 32.1176470588235 6.07142857142857 L 32.1176470588235 13.6607142857143 L 40.4944852941176 17.1897321428571 C 40.9577205882353 17.3921130952381 41.3244485294118 17.6956845238095 41.5946691176471 18.1004464285714 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 141 711 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="32px" height="38px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -1276 -708 )">
<path d="M 22.0833333333333 1.44196428571429 L 30.5833333333333 10.09375 C 30.7777777777778 10.2916666666667 30.9722222222222 10.546130952381 31.1666666666667 10.8571428571429 L 21 10.8571428571429 L 21 0.848214285714287 C 21.6388888888889 1.04613095238095 21.8888888888889 1.24404761904761 22.0833333333333 1.44196428571429 Z M 19.25 12.9776785714286 C 19.6388888888889 13.3735119047619 20.1111111111111 13.5714285714286 20.6666666666667 14 L 32 14 L 32 35.9642857142857 C 32 36.5297619047619 31.8055555555556 37.0104166666667 31.4166666666667 37.40625 C 31.0277777777778 37.8020833333333 30.5555555555556 38 30 38 L 2 38 C 1.44444444444444 38 0.972222222222222 37.8020833333333 0.583333333333333 37.40625 C 0.194444444444444 37.0104166666667 0 36.5297619047619 0 35.9642857142857 L 0 2.03571428571429 C 0 1.47023809523809 0.194444444444444 0.989583333333332 0.583333333333333 0.59375 C 0.972222222222222 0.197916666666668 1.44444444444444 0 2 0 L 18.6666666666667 0 L 18.6666666666667 11.5357142857143 C 18.6666666666667 12.1011904761905 18.8611111111111 12.5818452380952 19.25 12.9776785714286 Z M 23.8125 29.6662946428571 C 23.9375 29.5390625 24 29.3764880952381 24 29.1785714285714 L 24 27.8214285714286 C 24 27.6235119047619 23.9375 27.4609375 23.8125 27.3337053571429 C 23.6875 27.2064732142857 23.5277777777778 27.1428571428571 23.3333333333333 27 L 8.66666666666667 27 C 8.47222222222222 27.1428571428571 8.3125 27.2064732142857 8.1875 27.3337053571429 C 8.0625 27.4609375 8 27.6235119047619 8 27.8214285714286 L 8 29.1785714285714 C 8 29.3764880952381 8.0625 29.5390625 8.1875 29.6662946428571 C 8.3125 29.7935267857143 8.47222222222222 29.8571428571429 8.66666666666667 29.8571428571429 L 23.3333333333333 29.8571428571429 C 23.5277777777778 29.8571428571429 23.6875 29.7935267857143 23.8125 29.6662946428571 Z M 23.8125 24.2377232142857 C 23.9375 24.1104910714286 24 23.9479166666667 24 23.75 L 24 22.3928571428571 C 24 22.1949404761905 23.9375 22.0323660714286 23.8125 21.9051339285714 C 23.6875 21.7779017857143 23.5277777777778 21.7142857142857 23.3333333333333 21 L 8.66666666666667 21 C 8.47222222222222 21.7142857142857 8.3125 21.7779017857143 8.1875 21.9051339285714 C 8.0625 22.0323660714286 8 22.1949404761905 8 22.3928571428571 L 8 23.75 C 8 23.9479166666667 8.0625 24.1104910714286 8.1875 24.2377232142857 C 8.3125 24.3649553571429 8.47222222222222 24.4285714285714 8.66666666666667 24 L 23.3333333333333 24 C 23.5277777777778 24.4285714285714 23.6875 24.3649553571429 23.8125 24.2377232142857 Z M 23.8125 18.8091517857143 C 23.9375 18.6819196428571 24 18.5193452380952 24 18.3214285714286 L 24 16.9642857142857 C 24 16.766369047619 23.9375 16.6037946428571 23.8125 16.4765625 C 23.6875 16.3493303571429 23.5277777777778 16.2857142857143 23.3333333333333 17 L 8.66666666666667 17 C 8.47222222222222 16.2857142857143 8.3125 16.3493303571429 8.1875 16.4765625 C 8.0625 16.6037946428571 8 16.766369047619 8 16.9642857142857 L 8 18.3214285714286 C 8 18.5193452380952 8.0625 18.6819196428571 8.1875 18.8091517857143 C 8.3125 18.9363839285714 8.47222222222222 19 8.66666666666667 19 L 23.3333333333333 19 C 23.5277777777778 19 23.6875 18.9363839285714 23.8125 18.8091517857143 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 1276 708 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="38px" height="38px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -1721 -709 )">
<path d="M 25.1106770833333 31.4440104166667 C 25.2591145833333 31.2955729166667 25.3333333333333 31.1059027777778 25.3333333333333 30.875 L 25.3333333333333 26.9166666666667 C 25.3333333333333 26.6857638888889 25.2591145833333 26.49609375 25.1106770833333 26.34765625 C 24.9622395833333 26.19921875 24.7725694444444 26.125 24.5416666666667 26.125 L 22 26.125 L 22 13.4583333333333 C 22.1666666666667 13.2274305555556 22.0924479166667 13.0377604166667 21.9440104166667 12.8893229166667 C 21.7955729166667 12.7408854166667 21.6059027777778 12.6666666666667 21.375 12.6666666666667 L 13.4583333333333 12.6666666666667 C 13.2274305555556 12.6666666666667 13.0377604166667 12.7408854166667 12.8893229166667 12.8893229166667 C 12.7408854166667 13.0377604166667 12.6666666666667 13.2274305555556 12.6666666666667 13.4583333333333 L 12.6666666666667 17.4166666666667 C 12.6666666666667 17.6475694444444 12.7408854166667 17.8372395833333 12.8893229166667 17.9856770833333 C 13.0377604166667 18.1341145833333 13.2274305555556 18.2083333333333 13.4583333333333 18.2083333333333 L 15.8333333333333 18.2083333333333 L 15.8333333333333 26.125 L 13.4583333333333 26.125 C 13.2274305555556 26.125 13.0377604166667 26.19921875 12.8893229166667 26.34765625 C 12.7408854166667 26.49609375 12.6666666666667 26.6857638888889 12.6666666666667 26.9166666666667 L 12.6666666666667 30.875 C 12.6666666666667 31.1059027777778 12.7408854166667 31.2955729166667 12.8893229166667 31.4440104166667 C 13.0377604166667 31.5924479166667 13.2274305555556 31.6666666666667 13.4583333333333 31 L 24.5416666666667 31 C 24.7725694444444 31.6666666666667 24.9622395833333 31.5924479166667 25.1106770833333 31.4440104166667 Z M 21.9440104166667 9.27734375 C 22.0924479166667 9.12890625 22.1666666666667 8.93923611111111 22.1666666666667 8.70833333333333 L 22.1666666666667 4.75 C 22.1666666666667 4.51909722222222 22.0924479166667 4.32942708333333 21.9440104166667 4.18098958333333 C 21.7955729166667 4.03255208333333 21.6059027777778 3.95833333333333 21.375 3.95833333333333 L 16.625 3.95833333333333 C 16.3940972222222 3.95833333333333 16.2044270833333 4.03255208333333 16.0559895833333 4.18098958333333 C 15.9075520833333 4.32942708333333 15.8333333333333 4.51909722222222 15.8333333333333 4.75 L 15.8333333333333 8.70833333333333 C 15.8333333333333 8.93923611111111 15.9075520833333 9.12890625 16.0559895833333 9.27734375 C 16.2044270833333 9.42578125 16.3940972222222 9.5 16.625 9.5 L 21.375 9.5 C 21.6059027777778 9.5 21.7955729166667 9.42578125 21.9440104166667 9.27734375 Z M 35.4518229166667 9.462890625 C 37.1506076388889 12.3739149305556 38 15.5529513888889 38 19 C 38 22.4470486111111 37.1506076388889 25.6260850694444 35.4518229166667 28.537109375 C 33.7530381944445 31.4481336805556 31.4481336805556 33.7530381944444 28.537109375 35.4518229166667 C 25.6260850694445 37.1506076388889 22.4470486111111 38 19 38 C 15.5529513888889 38 12.3739149305556 37.1506076388889 9.462890625 35.4518229166667 C 6.55186631944444 33.7530381944444 4.24696180555556 31.4481336805556 2.54817708333333 28.537109375 C 0.849392361111111 25.6260850694444 0 22.4470486111111 0 19 C 0 15.5529513888889 0.849392361111111 12.3739149305556 2.54817708333333 9.462890625 C 4.24696180555556 6.55186631944444 6.55186631944444 4.24696180555555 9.462890625 2.54817708333333 C 12.3739149305556 0.849392361111108 15.5529513888889 0 19 0 C 22.4470486111111 0 25.6260850694445 0.849392361111108 28.537109375 2.54817708333333 C 31.4481336805556 4.24696180555555 33.7530381944445 6.55186631944444 35.4518229166667 9.462890625 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 1721 709 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="25px" height="42px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -286 -707 )">
<path d="M 14.3391927083333 39.65390625 C 14.8491753472222 39.13984375 15.1041666666667 38.521875 15.1041666666667 37.8 C 15.1041666666667 37.078125 14.8491753472222 36.46015625 14.3391927083333 35.94609375 C 13.8292100694444 35.43203125 13.2161458333333 35.175 12.5 35.175 C 11.7838541666667 35.175 11.1707899305556 35.43203125 10.6608072916667 35.94609375 C 10.1508246527778 36.46015625 9.89583333333333 37.078125 9.89583333333333 37.8 C 9.89583333333333 38.521875 10.1508246527778 39.13984375 10.6608072916667 39.65390625 C 11.1707899305556 40.16796875 11.7838541666667 40.425 12.5 40.425 C 13.2161458333333 40.425 13.8292100694444 40.16796875 14.3391927083333 39.65390625 Z M 21.5657552083333 33.28828125 C 21.7719184027778 33.08046875 21.875 32.834375 21.875 32.55 L 21.875 9.45 C 21.875 9.165625 21.7719184027778 8.91953125 21.5657552083333 8.71171875 C 21.3595920138889 8.50390625 21.1154513888889 8.4 20.8333333333333 9 L 4.16666666666667 9 C 3.88454861111111 8.4 3.64040798611111 8.50390625 3.43424479166667 8.71171875 C 3.22808159722222 8.91953125 3.125 9.165625 3.125 9.45 L 3.125 32.55 C 3.125 32.834375 3.22808159722222 33.08046875 3.43424479166667 33.28828125 C 3.64040798611111 33.49609375 3.88454861111111 33.6 4.16666666666667 33 L 20.8333333333333 33 C 21.1154513888889 33.6 21.3595920138889 33.49609375 21.5657552083333 33.28828125 Z M 15.1041666666667 5.25 C 15.4513888888889 5.25 15.625 5.075 15.625 4.725 C 15.625 4.375 15.4513888888889 4.2 15.1041666666667 4.2 L 9.89583333333333 4.2 C 9.54861111111111 4.2 9.375 4.375 9.375 4.725 C 9.375 5.075 9.54861111111111 5.25 9.89583333333333 5.25 L 15.1041666666667 5.25 Z M 23.7630208333333 1.246875 C 24.5876736111111 2.078125 25 3.0625 25 4.2 L 25 37.8 C 25 38.9375 24.5876736111111 39.921875 23.7630208333333 40.753125 C 22.9383680555556 41.584375 21.9618055555556 42 20.8333333333333 42 L 4.16666666666667 42 C 3.03819444444444 42 2.06163194444444 41.584375 1.23697916666667 40.753125 C 0.412326388888889 39.921875 0 38.9375 0 37.8 L 0 4.2 C 0 3.0625 0.412326388888889 2.078125 1.23697916666667 1.246875 C 2.06163194444444 0.415624999999995 3.03819444444444 0 4.16666666666667 0 L 20.8333333333333 0 C 21.9618055555556 0 22.9383680555556 0.415624999999995 23.7630208333333 1.246875 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 286 707 )" />
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="36px" height="42px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -842 -707 )">
<path d="M 18.046875 24 C 21.546875 24 23.296875 25.3125 23.296875 27.9375 C 23.296875 29.28125 23.1640625 30.8203125 22.8984375 32.5546875 C 22.4140625 35.9140625 21.984375 38.359375 21.609375 39.890625 C 21.265625 41.296875 20.078125 42 18.046875 42 C 16.015625 42 14.828125 41.296875 14.484375 39.890625 C 14.109375 38.359375 13.6796875 35.9140625 13.1953125 32.5546875 C 12.9296875 30.8359375 12.796875 29.296875 12.796875 27.9375 C 12.796875 25.3125 14.546875 24 18.046875 24 Z M 34.46484375 10.76953125 C 35.48828125 13.05859375 36 15.46875 36 18 C 36 21.75 34.953125 25.140625 32.859375 28.171875 C 30.765625 31.203125 28.03125 33.390625 24.65625 34.734375 C 24.53125 34.78125 24.4140625 34.7578125 24.3046875 34.6640625 C 24.1953125 34.5703125 24.1484375 34.453125 24.1640625 34.3125 C 24.2734375 33.5625 24.3515625 33.046875 24.3984375 32.765625 C 24.4609375 32.265625 24.5078125 31.8984375 24.5390625 31.6640625 C 24.5546875 31.5234375 24.625 31.4296875 24.75 31.3828125 C 27.234375 30.1171875 29.23046875 28.2890625 30.73828125 25.8984375 C 32.24609375 23.5078125 33 20.875 33 18 C 33 15.1875 32.2890625 12.60546875 30.8671875 10.25390625 C 29.4453125 7.90234375 27.515625 6.0703125 25.078125 4.7578125 C 22.640625 3.4453125 20.0078125 2.8671875 17.1796875 3.0234375 C 15.2421875 3.1328125 13.390625 3.609375 11.625 4.453125 C 9.859375 5.296875 8.34765625 6.39453125 7.08984375 7.74609375 C 5.83203125 9.09765625 4.83203125 10.67578125 4.08984375 12.48046875 C 3.34765625 14.28515625 2.984375 16.1640625 3 18.1171875 C 3.015625 20.9921875 3.7890625 23.62109375 5.3203125 26.00390625 C 6.8515625 28.38671875 8.859375 30.1953125 11.34375 31.4296875 C 11.453125 31.4765625 11.5234375 31.5703125 11.5546875 31.7109375 C 11.6015625 32.0390625 11.6484375 32.390625 11.6953125 32.765625 C 11.7109375 32.90625 11.75 33.16015625 11.8125 33.52734375 C 11.875 33.89453125 11.921875 34.171875 11.953125 34.359375 C 11.96875 34.5 11.91796875 34.6171875 11.80078125 34.7109375 C 11.68359375 34.8046875 11.5625 34.8203125 11.4375 34.7578125 C 9.125 33.8515625 7.0859375 32.52734375 5.3203125 30.78515625 C 3.5546875 29.04296875 2.19921875 26.98046875 1.25390625 24.59765625 C 0.30859375 22.21484375 -0.1015625 19.71875 0.0234375 17.109375 C 0.1328125 14.875 0.6484375 12.73828125 1.5703125 10.69921875 C 2.4921875 8.66015625 3.69921875 6.88671875 5.19140625 5.37890625 C 6.68359375 3.87109375 8.44140625 2.640625 10.46484375 1.6875 C 12.48828125 0.734374999999996 14.6171875 0.187499999999999 16.8515625 0.0468749999999987 C 19.4140625 -0.109375000000003 21.87890625 0.253906249999998 24.24609375 1.13671875 C 26.61328125 2.01953125 28.65234375 3.2734375 30.36328125 4.8984375 C 32.07421875 6.5234375 33.44140625 8.48046875 34.46484375 10.76953125 Z M 21.76171875 13.53515625 C 22.78515625 14.55859375 23.296875 15.796875 23.296875 17.25 C 23.296875 18.703125 22.78515625 19.94140625 21.76171875 20.96484375 C 20.73828125 21.98828125 19.5 22.5 18.046875 22.5 C 16.59375 22.5 15.35546875 21.98828125 14.33203125 20.96484375 C 13.30859375 19.94140625 12.796875 18.703125 12.796875 17.25 C 12.796875 15.796875 13.30859375 14.55859375 14.33203125 13.53515625 C 15.35546875 12.51171875 16.59375 12 18.046875 12 C 19.5 12 20.73828125 12.51171875 21.76171875 13.53515625 Z M 28.34765625 11.82421875 C 29.48046875 13.70703125 30.046875 15.765625 30.046875 18 C 30.046875 19.90625 29.62890625 21.69140625 28.79296875 23.35546875 C 27.95703125 25.01953125 26.8125 26.40625 25.359375 27.515625 C 25.234375 27.609375 25.109375 27.625 24.984375 27.5625 C 24.859375 27.5 24.78125 27.390625 24.75 27.234375 C 24.65625 26.421875 24.4296875 25.703125 24.0703125 25.078125 C 23.9609375 24.921875 23.984375 24.765625 24.140625 24.609375 C 25.046875 23.765625 25.7578125 22.7734375 26.2734375 21.6328125 C 26.7890625 20.4921875 27.046875 19.28125 27.046875 18 C 27.046875 16.265625 26.58984375 14.671875 25.67578125 13.21875 C 24.76171875 11.765625 23.53125 10.66015625 21.984375 9.90234375 C 20.4375 9.14453125 18.78125 8.859375 17.015625 9.046875 C 14.9375 9.28125 13.1484375 10.1640625 11.6484375 11.6953125 C 10.1484375 13.2265625 9.296875 15.03125 9.09375 17.109375 C 8.9375 18.546875 9.12109375 19.921875 9.64453125 21.234375 C 10.16796875 22.546875 10.9375 23.671875 11.953125 24.609375 C 12.109375 24.765625 12.1328125 24.921875 12.0234375 25.078125 C 11.6484375 25.71875 11.421875 26.4453125 11.34375 27.2578125 C 11.3125 27.3984375 11.234375 27.5 11.109375 27.5625 C 10.984375 27.625 10.859375 27.609375 10.734375 27.515625 C 9.25 26.359375 8.08984375 24.9296875 7.25390625 23.2265625 C 6.41796875 21.5234375 6.015625 19.6953125 6.046875 17.7421875 C 6.09375 15.6953125 6.6328125 13.7890625 7.6640625 12.0234375 C 8.6953125 10.2578125 10.078125 8.83984374999999 11.8125 7.76953125 C 13.546875 6.69921875 15.4296875 6.1171875 17.4609375 6.0234375 C 19.7109375 5.9140625 21.8046875 6.3828125 23.7421875 7.4296875 C 25.6796875 8.4765625 27.21484375 9.94140625 28.34765625 11.82421875 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 842 707 )" />
</g>
</svg>
\ No newline at end of file
<template>
<div class="myUploadFile">
<a-upload
:name="defaultInfo.name"
:action="defaultInfo.action"
:listType="defaultInfo.listType"
:multiple="defaultInfo.multiple"
:showUploadList="defaultInfo.showUploadList"
:defaultFileList="defaultInfo.fileList"
:disabled="defaultInfo.disabled"
:directory="defaultInfo.directory"
:data="defaultInfo.objAttach"
:headers="headers"
:beforeUpload="beforeImageUpload"
:remove="uploadRemove"
@change="uploadChange"
@preview="handlePreview"
>
<slot></slot>
</a-upload>
<a-modal
:visible="defaultInfo.previewVisible"
:footer="null"
@cancel="defaultInfo.previewVisible = false"
>
<img alt="example" style="width: 100%" :src="defaultInfo.previewImage" />
</a-modal>
</div>
</template>
<script>
import { deepClone } from "@/utils/js/common.js";
import { fileCommonupload } from "@/api/api.js"; //1.2.4. 上传附件地址
export default {
name: "PortalAdminVueAUpload",
data() {
return {
defaultInfo: {
name: "file",
fileList: [], //文件列表
removeFileList: [], //移除文件列表
defaultFileList: [], //默认页面加载时,已经上传的文件列表
multiple: true, //多文件
previewVisible: false, //图片预览模态
previewImage: undefined, //图片预览地址 可以是相对路径
directory: false, //上传文件夹所有文件
disabled: false,
showUploadList: true, //显示上传文件列表
listType: "picture-card", //text, picture 和 picture-card
prePath: "file/fileupload", //附件存放相对路径 否 不填时候默认为 file/fileupload
objAttach: {
// 其他参数 data
// test: "001",
},
verload: 3, // 单位 M
limit: 1, //限制文件上传数量
whiteFileList: ["jpg", "jpeg", "png", "gif", "bmp"],
},
fileCommonupload,
VUE_APP_API_BASE_URL: process.env.VUE_APP_API_BASE_URL,
headers: {
Authorization: JSON.parse(window.localStorage.getItem("Authorization")),
},
};
},
props: {
value: {
type: String,
default: () => {
return "";
},
},
uploadInfo: {
type: Object,
},
},
watch: {
uploadInfo: {
handler(newData, oldData) {
Object.assign(this.defaultInfo, deepClone(newData));
if (this.defaultInfo["prePath"]) {
this.defaultInfo[
"action"
] = `${this.VUE_APP_API_BASE_URL}${this.fileCommonupload}?prePath=${this.defaultInfo["prePath"]}`;
} else {
this.defaultInfo[
"action"
] = `${this.VUE_APP_API_BASE_URL}${this.fileCommonupload}`;
}
// console.log(this.defaultInfo);
},
deep: true,
immediate: true,
},
},
created() {},
methods: {
uploadRemove(file) {
if (file.id != undefined) {
this.defaultInfo.removeFileList.push(file);
}
this.defaultInfo.fileList = this.defaultInfo.fileList.filter(
(item) => item.uid != file.uid
);
},
beforeImageUpload(file, fileList) {
let whiteFileList = this.defaultInfo.whiteFileList; //文件类型限制
let verload = this.defaultInfo.verload; //大小限制单位M
let isOverload = file.size / 1024 / 1024 > verload;
let fileSourceType = file.name.substring(file.name.lastIndexOf(".") + 1);
let isLimit =
this.defaultInfo.fileList.length + 1 > this.defaultInfo.limit;
if (whiteFileList.indexOf(fileSourceType) === -1) {
this.$message.error(
`上传文件类型必须是 ${whiteFileList.join(" / ")} 格式!`
);
} else if (isOverload) {
this.$message.error(`上传文件大小不能超过 ${verload} MB!`);
} else if (isLimit) {
this.$message.error(`上传文件超出限制 ${this.defaultInfo.limit} 个!`);
}
let result =
whiteFileList.indexOf(fileSourceType) !== -1 && !isOverload && !isLimit;
if (!result) {
file["status"] = "error";
}
return result;
},
uploadChange({ file, fileList }) {
if (file.status === "error") {
return;
this.$message.error(`${file.name} 上传失败.`);
} else if (file.status === "done") {
// this.$message.success(`${file.name} 上传成功`);
if (!this.defaultInfo.multiple && this.defaultInfo.limit == 1) {
this.$emit("input", file["response"]["url"]); //相对地址
}
} else if (file.status === "removed") {
// this.$message.success(`${file.name} 删除成功`);
if (!this.defaultInfo.multiple && this.defaultInfo.limit == 1) {
this.$emit("input", undefined); //相对地址
}
}
this.defaultInfo.fileList = fileList;
this.$emit("uploadChange", deepClone(this.defaultInfo));
},
async handlePreview(file) {
if (!file.url && !file.preview) {
file.preview = await this.getBase64(file.originFileObj);
}
this.defaultInfo.previewImage = file.url || file.preview;
this.defaultInfo.previewVisible = true;
},
getBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = (error) => reject(error);
});
},
},
};
</script>
<style lang="less" scoped>
/deep/.ant-upload-select-picture-card i {
font-size: 32px;
color: #999;
}
/deep/.ant-upload-select-picture-card .ant-upload-text {
margin-top: 8px;
color: #666;
}
</style>
\ No newline at end of file
<template>
<a-dropdown>
<slot>
<a class="ant-dropdown-link" @click="(e) => e.preventDefault()">
{{ user.site_name }} <a-icon type="down" />
</a>
</slot>
<a-menu slot="overlay">
<a-menu-item v-for="(item, index) in sitelist" :key="index">
<a href="javascript:;" @click="clickSite(item.id, item.name)">{{
item.name
}}</a>
</a-menu-item>
</a-menu>
</a-dropdown>
</template>
<script>
import { waitedListdata, waitedSavesite } from "@/services/default";
// import { setAuthorization } from "@/utils/request";
import { mapGetters, mapMutations } from "vuex";
export default {
data() {
return {
sitelist: [],
};
},
computed: {
...mapGetters("account", ["user"]),
},
created() {
this.getwaitedListdata();
},
methods: {
...mapMutations("account", ["setUser"]),
getwaitedListdata() {
waitedListdata({}).then((res) => {
const { code, data, msg } = res.data;
if (code == 0) {
this.sitelist = data;
} else {
this.$message.error(`站点错误:${msg}`);
}
});
},
clickSite(siteid, site_name) {
waitedSavesite({ siteid: siteid }).then((res) => {
const { code, data, msg } = res.data;
if (code == 0) {
let user = JSON.parse(
localStorage.getItem(process.env.VUE_APP_USER_KEY)
);
user.siteid = siteid;
user.site_name = site_name;
this.setUser(user);
// setAuthorization(data);
} else {
this.$message.error(msg);
}
});
},
},
};
</script>
<style lang="less" scoped>
.ant-dropdown-link {
color: #fff;
padding: 0 20px;
}
</style>
\ No newline at end of file
<template>
<div>
<a-cascader
v-model="treeList"
allowClear
changeOnSelect
:options="options"
placeholder="请选择菜单路径"
:expandTrigger="expandTrigger"
@change="onChange"
/>
</div>
</template>
<script>
import { getTreeIds } from "@/utils/js/common.js";
export default {
name: "PortalAdminVueMyMenuTree",
data() {
return {
treeList: [],
};
},
props: {
options: {
type: Array,
default: () => {
return [];
},
},
value: {
type: [Number, String],
default: () => {
return undefined;
},
},
placeholder: {
type: String,
default: () => {
return "";
},
},
expandTrigger: {
type: String,
default: () => {
return "click";
},
},
},
watch: {
value: {
handler(newData, oldData) {
this.loadTreeList(newData);
},
deep: true,
immediate: true,
},
},
methods: {
onChange(val) {
if (val.length) {
this.$emit("input", val[val.length - 1]);
} else {
this.$emit("input", undefined);
}
this.$emit("onChange", val);
},
loadTreeList(val) {
this.$set(
this,
"treeList",
getTreeIds(this.options, val).filter((v) => v != -1)
);
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div class="view_container">
<router-view />
</div>
</template>
<style lang="less" scoped>
.view_container {
height: 100%;
width: 100%;
// overflow-y: auto;
// overflow-x: hidden;
box-sizing: border-box !important;
background-image: linear-gradient(
to top,
#fad0c4 0%,
#fad0c4 1%,
#ffd1ff 100%
) !important;
}
</style>
// 用户子菜单权限
export const permission = (el, binding) => {
const { value } = binding;
const roles = ['admin'];
if (value && value instanceof Array && value.length > 0) {
const permissionRoles = value;
const hasPermission = roles.some(role => permissionRoles.includes(role));
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el);
}
} else {
throw new Error(`need roles! Like v-permission="['admin','editor']"`);
}
}
import moment from 'moment';
// 时间格式 年月日时分秒
export function dateFormat (val){
return moment(val).format('YYYY-MM-DD HH:mm:ss')
}
// 时分秒
export function times (val){
return moment(val).format('HH:mm:ss')
}
// 年
export function year (val){
return moment(val).format('YYYY')
}
// 号数
export function days (val){
return moment(val).format('MM-DD')
}
\ No newline at end of file
import 'babel-polyfill'
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
Vue.use(Antd);
import GlobalComponents from './utils/js/globalComponents';
Vue.use(GlobalComponents)
import common from './utils/commin'
Vue.use(common)
// 引入注册全局指令
import * as directives from "@/directive"
Object.keys(directives).forEach(name => Vue.directive(name, directives[name]))
// 全局过滤器
import * as filters from "@/filters"
Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key])
})
Vue.prototype.$bus = new Vue
Vue.config.productionTip = false;
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
export default {
data() {
return {
nowTime: "",
nowDay: "",
nowWeek: "",
timer: null,
contentHigh: 0,
activeStep: 0,
}
},
computed: {
},
created() {
},
beforeDestroy() {
if (this.timer) {
clearInterval(this.timer);
}
},
methods: {
keyNameFormat(dict, key) {
return key !== undefined ? dict[(key.toString())] : '--';
},
setContentHigh() {
let windowHigh = document.documentElement.clientHeight;
let searchHigh =
this.$refs.search_box.getBoundingClientRect().height + 72; // 72头部高度;
this.contentHigh =
windowHigh - searchHigh > 400 ? windowHigh - searchHigh : 400; // 400 standard
},
handleScroll() {
let scrollbarEl = this.$refs["scroll"].wrap;
let jump = document.querySelectorAll(".step_sign");
scrollbarEl.onscroll = () => {
let distance = scrollbarEl.scrollTop;
jump.forEach((item, index) => {
if (distance >= item.offsetTop) {
this.activeStep = index;
}
});
};
},
stepChange(index) {
let _this = this;
this.activeStep = index;
let jump = document.querySelectorAll(".step_sign");
let total = jump[index].offsetTop;
let distance = this.$refs["scroll"].wrap.scrollTop;
let step = total / 50;
if (total > distance) {
smoothDown();
} else {
let newTotal = distance - total;
step = newTotal / 50;
smoothUp();
}
function smoothDown() {
if (distance < total) {
distance += step;
_this.$refs["scroll"].wrap.scrollTop = distance;
setTimeout(smoothDown, 10);
} else {
_this.$refs["scroll"].wrap.scrollTop = distance;
document.body.scrollTop = total;
document.documentElement.scrollTop = total;
window.pageYOffset = total;
}
}
function smoothUp() {
if (distance > total) {
distance -= step;
_this.$refs["scroll"].wrap.scrollTop = distance;
setTimeout(smoothUp, 10);
} else {
_this.$refs["scroll"].wrap.scrollTop = distance;
}
}
},
setMoment() {
this.timer = setInterval(() => {
this.nowDay = this.$moment(new Date()).format("YYYY年MM月DD日");
this.nowWeek = this.$moment().format('dddd');
this.nowTime = this.$moment(new Date()).format("LTS");
}, 1000)
}
},
}
\ No newline at end of file
import { menuList } from "@/api/menuMgmt.js";
import { deepClone, toTreeData, getItemData } from "@/utils/js/common.js";
import { mapGetters, mapMutations } from "vuex";
export default {
data() {
return {
MenuDict: {},
menuListData: [], //简单结构
menuTreeData: [], //树型结构
tablePagination: {
current: 1,
pageSize: 10,
total: 20,
showQuickJumper: true, //是否可以快速跳转至某页
showSizeChanger: true, //是否可以改变 pageSize
showTotal: (total, range) => `共${total}条`,
pageSizeOptions: ["10", "20", "30"],
},
}
},
computed: {
menuRouterList() {
return this.$router.options.routes
.filter((v) => v.name == "home")[0]
.children.map((k) => {
return {
title: k.meta.title,
routerPath: k.path,
};
});
},
...mapGetters("menu", ["menuList_X", "menuTree_X"]),
...mapGetters("user", ["censusList_X", "appsList_X"]),
MenuChildren() {
let routerPath = this.$route.path.substr(
this.$route.path.lastIndexOf("/") + 1
)
let result = getItemData(
this.menuTree_X,
'routerPath',
routerPath,
)
return result ? result : { children: [] };
}
},
created() {
},
beforeDestroy() {
},
methods: {
...mapMutations("menu", ["SET_menuList_X", "SET_menuTree_X"]),
getMenuList(isFirst = false) {
let obj = {
page: this.tablePagination.current, //当前页
size: this.tablePagination.pageSize, //每页条数
};
if (isFirst) {
obj = {
page: 1, //-1 全部数据
size: -1, //-1 全部数据
};
}
menuList(obj).then((res) => {
// console.log(res);
let { code, data, dict } = res;
if (code == 1) {
data.data = data.data.map((item) => {
this.menuRouterList.forEach(v => {
if (v['title'] == item.name) {
item["routerPath"] = v['routerPath'];
}
})
item["value"] = item.id;
item["label"] = item.name;
return item;
});
// console.log(data.data);
// this.$message.success(res.msg);
this.tablePagination.current = data.current_page;
this.tablePagination.total = data.total;
this.menuListData = data.data;
this.menuTreeData = toTreeData(data.data, -1, "id", "parentId");
this.SET_menuList_X(deepClone(this.menuListData));
this.SET_menuTree_X(deepClone(this.menuTreeData));
this.MenuDict = dict;
this.MenuDict["MenuTree"] = deepClone(this.menuTreeData);
// console.log(this.menuListData);
// console.log(this.menuTreeData);
// this.getMenuDict(); //弃用
} else {
this.$message.error(res.msg);
}
});
},
getMenuDict() {
//目前只有三级 一级查询条件-1
let list = deepClone(this.menuListData);
let obj = list.sort((a, b) => {
return parseFloat(b["parentId"]) - parseFloat(a["parentId"]);
})[0];
Promise.all([
// 一级菜单字典
menuList({
parentId: -1,
}),
// 二级菜单字典
menuList({
parentId: obj["firstMenuId"],
}),
// 三级菜单字典
menuList({
parentId: obj["secondMenuId"],
}),
])
.then((res) => {
// 一级菜单字典
this.MenuDict["firstLevelOptions"] = res[0].data.data;
// 二级菜单字典
this.MenuDict["secondLevelOptions"] = res[1].data.data;
// 三级菜单字典
this.MenuDict["thirdLevelOptions"] = res[2].data.data;
// console.log(this.MenuDict);
})
.catch((err) => {
// console.log(err);
});
},
},
}
\ No newline at end of file
export default {
data() {
return {
nowTime: "",
nowDay: "",
nowWeek: "",
timer: null,
tableLoading: false,
tablePagination: {
current: 1,
pageSize: 10,
total: 20,
showQuickJumper: true, //是否可以快速跳转至某页
showSizeChanger: true, //是否可以改变 pageSize
showTotal: (total, range) => `共${total}条`,
pageSizeOptions: ["10", "20", "30"],
},
tableSourceData: [],
tableSelectedRows: [], //选中的数据
tableSelectedKeys: [], //选中的id
sourceInfoForm: {},
}
},
computed: {
},
created() {
},
beforeDestroy() {
if (this.timer) {
clearInterval(this.timer);
}
},
methods: {
//导出
exportTable() {
let tableData = [];
if (this.tableSelectedRows.length == 0) {
tableData = JSON.parse(JSON.stringify(this.tableSourceData));
} else {
tableData = JSON.parse(JSON.stringify(this.tableSelectedRows));
}
let tableColumns = JSON.parse(JSON.stringify(this.tableHeaders));
let newTableData = tableData.map(item => {
let obj = {};
for (let key in item) {
obj[key] = item[key];
}
return obj;
})
let exprotExcelName = `${this.nowDay} / ${this.nowTime} / ${this.$route['meta']['title'] || '报表信息统计'}`;
this.exportExcel(tableColumns, newTableData, exprotExcelName);
},
exportExcel(tableColumns, tableData, exprotExcelName) {
// console.log(tableColumns);
// console.log(tableData);
// console.log(exprotExcelName);
let exportHeaderName = []; // ***即将导出的表头
let exportData = tableData.map((item, j) => { // ***即将导出的表格
let obj = {};
for (let i = 0; i < tableColumns.length; i++) {
for (let key in item) {
if (tableColumns[i]["dataIndex"] == key) {
if (j == 0) {
exportHeaderName.push(tableColumns[i]["title"]);
}
obj[tableColumns[i]["title"]] = item[key];
// console.log(tableColumns[i]["title"]);
break;
}
}
}
return obj;
})
// console.log(exportData);
// console.log(exportHeaderName);
// 开始导出 ****
let option = {};
option.fileName = exprotExcelName;
option.datas = [
{
sheetData: exportData,
sheetName: "sheet",
sheetHeader: exportHeaderName,
sheetFilter: exportHeaderName,
},
];
let toExcel = new this.$ExportJsonExcel(option);
toExcel.saveExcel();
},
setMoment() {
this.timer = setInterval(() => {
this.nowDay = this.$moment(new Date()).format("YYYY年MM月DD日");
this.nowWeek = this.$moment().format('dddd');
this.nowTime = this.$moment(new Date()).format("LTS");
}, 1000)
},
onSelectChange(selectedRowKeys, selectedRows) {
this.tableSelectedKeys = selectedRowKeys;
this.tableSelectedRows = selectedRows;
// console.log(this.tableSelectedKeys, this.tableSelectedRows);
},
pagTableChange(pag, filters) {
// console.log(pag);
this.tablePagination = pag;
this.$nextTick(() => { });
},
},
}
\ No newline at end of file
import request from './request'
const http = {
get(url, params) {
const config = {
method: 'get',
url: url
}
if (params) config.params = params
return request(config)
},
post(url, params) {
const config = {
method: 'post',
url: url
}
if (params) config.data = params
return request(config)
},
put(url, params) {
const config = {
method: 'put',
url: url
}
if (params) config.params = params
return request(config)
},
delete(url, params) {
const config = {
method: 'delete',
url: url
}
if (params) config.params = params
return request(config)
}
}
//导出
export default http
\ No newline at end of file
import Vue from "vue";
import router from "@/router"
import axios from 'axios'
import { message } from 'ant-design-vue';
import Storage from "@/utils/js/Storage"
const service = axios.create({
baseURL: process.env.VUE_APP_API_BASE_URL,
// timeout: 10000
})
service.interceptors.request.use(config => {
Vue.prototype.$setLoading({
spinning: true,
tip: "请稍等",
});
config.data = JSON.stringify(config.data);
config.headers = {
'Content-Type': 'application/json;charset=utf-8'
}
const Authorization = JSON.parse(localStorage.getItem('Authorization'));
if (Authorization) {
config.headers.Authorization = Authorization;
}
return config
}, error => {
Promise.reject(error)
})
service.interceptors.response.use(response => {
Vue.prototype.$setLoading(false);
if (response.data.code !== undefined && response.data.msg !== undefined) {
let { code, msg } = response.data
if (code === -1) {
message.error({
content: msg,
maxCount: 1,
})
} else if (code === 401) {
message.error({
message: msg,
maxCount: 1,
})
Storage.remove(2, "userInfo")
Storage.remove(2, "siteId")
Storage.remove(2, "Authorization")
router.push('/')
}
}
return response.data
}, error => {
if (error && error.response) {
switch (error.response.status) {
case 400:
error.message = '错误请求'
break;
case 401:
error.message = '未授权,请重新登录'
break;
case 403:
error.message = '拒绝访问'
break;
case 404:
error.message = '请求错误,未找到该资源'
break;
case 405:
error.message = '请求方法未允许'
break;
case 408:
error.message = '请求超时'
break;
case 500:
error.message = '服务器端出错'
break;
case 501:
error.message = '网络未实现'
break;
case 502:
error.message = '网络错误'
break;
case 503:
error.message = '服务不可用'
break;
case 504:
error.message = '网络超时'
break;
case 505:
error.message = 'http版本不支持该请求'
break;
default:
error.message = `连接错误${error.response.status}`
}
} else {
if (JSON.stringify(error).includes('timeout')) {
Vue.prototype.$message.error('服务器响应超时,请刷新当前页');
}
error.message = '连接服务器失败'
}
Vue.prototype.$setLoading(false);
message.error(error.message);
return Promise.resolve(error.response)
})
export default service
import Vue from "vue";
import VueRouter from "vue-router";
import routeConfig from "./routes";
import store from '@/store/index'
Vue.use(VueRouter);
Vue.use(store);
const originalReplace = VueRouter.prototype.replace;
VueRouter.prototype.replace = function replace(location) {
return originalReplace.call(this, location).catch(err => err);
};
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
}
const router = new VueRouter({
// mode: 'history',
base: process.env.BASE_URL,
routes: routeConfig
});
let whiteList = ['/']
router.beforeEach((to, from, next) => {
let Authorization = JSON.parse(window.localStorage.getItem('Authorization'));
if (whiteList.indexOf(to.path) !== -1) {
next()
} else {
if (Authorization) {
next()
} else {
next({
path: '/',
})
}
}
})
router.afterEach((to, from, next) => {
window.scrollTo(0, 0);
})
export default router;
This diff is collapsed.
import Vue from 'vue'
import Vuex from 'vuex'
import modules from './modules'
// import persistedState from 'vuex-persistedstate'
Vue.use(Vuex)
const store = new Vuex.Store({ modules })
// const store = new Vuex.Store({modules,plugins: [persistedState()]})
export default store
export default {
namespaced: true,
state: {
},
getters: {
},
mutations: {
},
actions: {
}
}
import common from './common'
import user from './user'
import menu from './menu'
export default { common, user, menu }
// export default { user, menu }
\ No newline at end of file
export default {
namespaced: true,
state: {
menuList_X: [], //简单结构
menuTree_X: [], //树型结构
},
getters: {
menuList_X: state => state.menuList_X,
menuTree_X: state => state.menuTree_X,
},
mutations: {
SET_menuList_X(state, data) {
state.menuList_X = data;
// console.log(state.menuList_X);
},
SET_menuTree_X(state, data) {
state.menuTree_X = data;
// console.log(state.menuTree_X);
}
},
actions: {
}
}
import { censusListInterface } from "@/api/dataAdmin.js";
import { appsListInterface } from "@/api/siteArrange.js";
export default {
namespaced: true,
state: {
userData: {},
censusList_X: {},
appsList_X: [],
},
getters: {
userData: state => state.userData,
censusList_X: state => state.censusList_X,
appsList_X: state => state.appsList_X,
},
mutations: {
SET_USERDATA(state, data) {
state.userData = data;
},
SET_censusList_X(state, data) {
state.censusList_X = data;
},
SET_appsList_X(state, data) {
state.appsList_X = data;
},
},
actions: {
getCensusList(context, params) {
censusListInterface(params).then((res) => {
let { code, data, dict } = res;
if (code == 1) {
context.commit('SET_censusList_X', data.data)
}
});
},
getAppsList(context, params) {
appsListInterface(params).then((res) => {
let { code, data, dict } = res;
if (code == 1) {
context.commit('SET_appsList_X', data.data)
}
});
}
}
}
import moment from 'moment';
import 'moment/locale/zh-cn'; // 获取中国标准时间,避免出现utc时间
moment.locale('zh-cn')
import * as echarts from 'echarts'
import ExportJsonExcel from "js-export-excel";
import Storage from './js/Storage.js';
import '@/utils/css/animate.min.css'
import 'font-awesome/css/font-awesome.css'
import './css/index.less' //css 公共库
function setLoading(props) {
if (typeof props === 'boolean') props = {
spinning: props
}
if (Object.prototype.toString.call(props) !== '[object Object]') props = {}
this.$app.loadingProps = {
tip: '加载中...',
...props
}
}
const common = {
install: function (Vue) {
Vue.prototype.$echarts = echarts;
Vue.prototype.$moment = moment;
Vue.prototype.$Storage = Storage;
Vue.prototype.$setLoading = setLoading;
Vue.prototype.$ExportJsonExcel = ExportJsonExcel;
}
}
export default common
\ No newline at end of file
/*
AntUIGlobal css
*/
.popoverContent {
cursor: pointer;
}
.ant-btn {
&+.ant-btn {
margin-left: 1rem !important;
}
}
.ant-modal-confirm {
.ant-modal {
top: 328px !important;
// position: absolute !important;
// left: 50% !important;
// top: 50% !important;
// transform: translate(-50%, -50%) !important;
}
}
::-webkit-scrollbar {
width: 7px;
background: transparent !important;
}
::-webkit-scrollbar-corner,
/* 滚动条角落 */
::-webkit-scrollbar-thumb,
::-webkit-scrollbar-track {
border-radius: 5px;
}
::-webkit-scrollbar-corner,
::-webkit-scrollbar-track {
/* 滚动条轨道 */
background-color: transparent !important;
box-shadow: unset !important;
}
::-webkit-scrollbar-thumb {
background-color: rgba(144, 147, 153, .5);
/* 滚动条手柄 */
}
\ No newline at end of file
This diff is collapsed.
@import "reset.less";
@import "AntUI.less";
\ No newline at end of file
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
/* font-size: 100%; */
/* font: inherit; */
/* vertical-align: baseline; */
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
body {
font-size: 16px;
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
\ No newline at end of file
/*
Storage本地储存
*/
export default {
set(type = 1, key, value) {
if (type == 1) {
sessionStorage.setItem(key, JSON.stringify(value));
} else {
localStorage.setItem(key, JSON.stringify(value));
}
},
get(type = 1, key) {
if (type == 1) {
return JSON.parse(sessionStorage.getItem(key));
} else {
return JSON.parse(localStorage.getItem(key));
}
},
remove(type = 1, key) {
if (type == 1) {
sessionStorage.removeItem(key);
} else {
localStorage.removeItem(key);
}
},
clear(type = 1) {
if (type == 1) {
sessionStorage.clear();
} else {
localStorage.clear();
}
},
}
/**
* @desc 克隆
* @param obj 克隆源
*/
export const deepClone = (obj) => {
let newObj = Array.isArray(obj) ? [] : {};
if (obj && typeof obj === "object") {
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
newObj[key] =
obj && typeof obj[key] === "object"
? deepClone(obj[key])
: obj[key];
}
}
}
return newObj;
}
/**
* @desc 建立树型
* @param data 数据源
* @param parentId 根节点
* @param id id 匹配项
* @param pid parentId匹配项
*/
export const toTreeData = (data, parentId, id, pid) => {
// 建立个树形结构,需要定义个最顶层的父节点,pId是-1
let parent = [];
for (let i = 0; i < data.length; i++) {
if (data[i][pid] != parentId) {
} else {
let obj = {};
for (let key in data[i]) {
obj[key] = data[i][key]
}
obj['children'] = [];
parent.push(obj);
}
}
fnChildren(parent);
function fnChildren(parent) {
if (data.length !== 0) {
for (let i = 0; i < parent.length; i++) {
for (let j = 0; j < data.length; j++) {
if (parent[i].id == data[j][pid]) {
let obj = {};
for (let k in data[j]) {
obj[k] = data[j][k]
}
obj["children"] = [];
parent[i].children.push(obj);
}
}
fnChildren(parent[i].children);
}
}
}
return deleteEmptyChildren(parent);
}
export const deleteEmptyChildren = (arr) => {
if (arr.length) {
for (let i in arr) {
if (arr[i].children.length) {
deleteEmptyChildren(arr[i].children)
} else {
delete arr[i].children;
}
}
}
return arr
}
export const parentTreeNode = (treeList, parentKEY, id) => {
let temp = []
let searchFn = function (treeList, id) {
for (let i = 0; i < treeList.length; i++) {
let item = treeList[i]
if (item.id === id) {
temp.push(item)
searchFn(treeList, item[parentKEY])
break
} else {
if (item.children) {
searchFn(item.children, id)
}
}
}
}
searchFn(treeList, id)
return temp
}
export const childrenTreeNode = (treeList, parentKEY, id) => {
let temp = [{ id: id }];
let searchFn = function (treeList, id) {
for (let i = 0; i < treeList.length; i++) {
let item = treeList[i];
if (item[parentKEY] === id) {
temp.push(item);
searchFn(treeList, item.id);
// break;
} else {
if (item.children) {
searchFn(item.children, id);
}
}
// console.log("run");
}
};
searchFn(treeList, id);
return temp;
}
export const getItemData = (list, key, value) => {
for (let i = 0; i < list.length; i++) {
let item = list[i];
if (item[key] === value) {
return item;
} else {
if (item.children && item.children.length > 0) {
let res = getItemData(item.children, key, value);
if (res) {
return res;
}
}
}
}
}
/**
* @desc 叶子节点查询根节点
* @param tree 数据源
* @param parentId 根节点
* @param config id children 匹配项
*/
export const getTreeIds = (tree, nodeId, config) => {
const { children = 'children', id = 'id' } = config || {}
const toFlatArray = (tree, parentId) => {
return tree.reduce((t, _) => {
const child = _[children]
return [
...t,
parentId ? { ..._, parentId } : _,
...(child && child.length ? toFlatArray(child, _[id]) : [])]
}, [])
}
const getIds = flatArray => {
let ids = [nodeId]
let child = flatArray.find(_ => _[id] === nodeId)
while (child && child.parentId) {
ids = [child.parentId, ...ids]
child = flatArray.find(_ => _[id] === child.parentId)
}
return ids
}
return getIds(toFlatArray(tree))
}
// 全局组件注册
import A_Upload from '@/components/A_Upload/A_Upload.vue';
import myMenuTree from '@/components/myMenuTree/myMenuTree.vue';
const Prototype = function () { };
Prototype.install = (Vue, options) => {
Vue.component('MyUpload', A_Upload)
Vue.component('MyMenuTree', myMenuTree)
}
export default Prototype;
// 只能为数字验证
export function isNumber (rule, value, callback) {
var number = /^\d+$/
if (!number.test(value)) {
callback(new Error("格式有误,只能为数字"))
} else {
callback()
}
}
// 验证流水编号
export const checkFlowNum = (rule,value,callback)=>{
let reg = /^[A-Z][a-zA-Z0-9]{3,32}$/
if(!value){
callback(new Error('请输入流水编号'))
}else if(!reg.test(value)){
callback(new Error('格式为大写字母开头,4~32位'))
}else{
callback()
}
}
// 验证英文
export const checkEn = (rule,value,callback)=>{
let reg = /^[a-zA-Z]{2,15}$/
if(!value){
callback(new Error('请输入英文名称'))
}else if(!reg.test(value)){
callback(new Error('格式为字母a-z,A-Z,2~15位'))
}else{
callback()
}
}
// 验证账号
export const changeAccount = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入用户名"));
} else if (!/^[a-zA-Z0-9_-]{4,16}$/.test(value)) {
callback(new Error("4到16位(字母,数字,下划线,中横线)"));
} else {
callback();
}
};
// 验证密码
export const changePassWord = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入密码"));
} else if (!/^[a-zA-Z0-9_-]{5,18}$/.test(value)) {
callback(new Error("5到18位(字母,数字,下划线,中横线)"));
} else {
callback();
}
};
// 验证手机号码
export const changePhone = (rule, value, callback) => {
if (!value) {
// callback(new Error("请输入手机号"));
callback();
} else if (!/^1[3-9]\d{9}$/.test(value)) {
callback(new Error("手机号码格式不正确"));
} else {
callback();
}
};
// 验证座机号码
export const changeLandline = (rule, value, callback) => {
if (!value) {
// callback(new Error("请输入座机号"));
callback();
} else if (!/^[0][1-9]{2,3}-[0-9]{5,10}$/.test(value)) {
callback(new Error("区号-电话号码"));
} else {
callback();
}
};
// 窗口编号验证(字母加数字 数字不能大于1000)
export const changeWindowNumber = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入窗口编号"));
callback();
} else if (!/^[a-zA-Z]+\d{1,3}$/.test(value)) {
callback(new Error("字母+数字,数字不能大于999"));
} else {
callback();
}
};
\ No newline at end of file
<template>
<div style="text-align: center">NotFoundPage</div>
</template>
<script>
export default {
name: "PortalAdminVueNotFoundView",
data() {
return {};
},
mounted() {},
methods: {},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div class="actuary">
<div class="act_cont">
<div class="act_tit">
<h1>智慧政务数据精算</h1>
<p>
运用以人工智能为代表的新技术,驱动政务服务模式创新,为人民提供更加智慧化、人性化的政务服务,实现互联网与政务服务深度融合,大幅提升政务服务智慧化水平,让政府服务更聪明,让企业和市民办事更方便、更快捷、更有效率。
</p>
</div>
<div class="act_mod">
<div
class="mod_max"
v-for="item of menuPermission"
:key="item.id"
@click="handleJump(item.url)"
>
<div class="flip">
<div class="mod_min">
<img :src="api + item.imgPath" alt />
<div class="mod_cont">
<p>{{ item.name }}</p>
<span>
{{ item.remark }}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import menu from "@/mixins/menu";
import Storage from "@/utils/js/Storage";
export default {
mixins: [menu],
data() {
return {
api: process.env.VUE_APP_API_BASE_URL.includes("zwfw")
? process.env.VUE_APP_API_BASE_URL.replace("zwfw", "")
: process.env.VUE_APP_API_BASE_URL + "/",
menuPermission: [],
};
},
created() {
this.getMenuList(true);
this.getChildrenPermission();
// this.getMenuList();
},
methods: {
// 跳转
handleJump(url) {
this.$router.push(url);
// let { menuList } = Storage.get(2, "userInfo");
// let actuary = menuList.filter((v) => v.name === "数据精算");
// if (actuary.length) {
// this.menuPermission = actuary
// .map((v) => {
// if (v.childList.length) {
// return v.childList;
// }
// })
// .flat()
// .map((v) => v.name);
// }
// let isPermission = this.menuPermission.includes(val);
// if (isPermission) {
// this.$router.push(url);
// } else {
// this.$message.warning("暂无权限");
// }
},
// 获取子菜单权限
getChildrenPermission() {
let { menuList } = Storage.get(2, "userInfo");
let actuary = menuList.filter((v) => v.name === "数据精算");
if (actuary.length) {
this.menuPermission = actuary
.map((v) => {
if (v.childList.length) {
return v.childList;
} else {
return [];
}
})
.flat();
console.log(this.menuPermission);
}
},
},
};
</script>
<style lang="less" scoped>
@headerH: 4.5rem;
.actuary {
width: 100%;
height: 100%;
background: url("~@/assets/images/jinsuanbg.png") center no-repeat;
background-size: cover;
padding-top: @headerH;
.act_cont {
margin: 120px auto;
.act_tit {
text-align: center;
margin: auto;
max-width: 800px;
h1 {
font-weight: 700;
font-size: 44px;
color: #ffffff;
}
p {
font-weight: 400;
font-size: 14px;
color: #ffffff;
line-height: 20px;
padding-top: 20px;
text-align: left;
}
}
.act_mod {
margin: 30px 100px 0;
display: flex;
flex-wrap: wrap;
.mod_max {
width: 20%;
height: 200px;
padding: 18px;
cursor: pointer;
&:hover > .flip {
// border: 1px solid rgb(25, 76, 245) !important;
transform: translateY(-10px);
// transform: rotateX(-360deg) !important;
}
.flip {
width: 100%;
height: 100%;
border-radius: 8px;
background-color: #ffffff;
transition: all linear 200ms;
}
.mod_min {
width: 285px;
height: 150px;
margin: auto;
display: flex;
align-items: center;
img {
width: 85px;
height: 72px;
}
.mod_cont {
p {
font-size: 18px;
font-weight: bold;
padding-bottom: 10px;
}
span {
font-size: 14px;
line-height: 10px;
}
}
}
}
}
}
}
</style>
\ No newline at end of file
import { deepClone } from "@/utils/js/common.js";
export default {
data() {
return {
defaultInfoForm: {},
modalInfo: {
confirmLoading: false,
visible: false,
title: '用户信息',
width: '30%',
},
}
},
props: {
sourceInfoForm: {
type: Object,
default: () => {
return {
// --------------申报人信息-----------------------
name: "张三",
Gender: "",
Age: "56",
Phone: "13080888888",
yuyuecishu: "12",
paiduicishu: "6",
guanlianyewu: "12",
haxizhi: "3sad54a5f4sda4da4sd4adasdqa1sda1g1d1ada4d4f1fgweqqwq01f4sa4dgds1eqw5e1c2c2vx",
qukuaigaodu: "24292496",
chuangjianshijian: "2022-04-25 18:22",
// --------------业务分析-----------------------
yewuming: '公安户籍类',
guanlianshixiang: [
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
},
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
},
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
},
],
shoulicishu: "12546",
banjiecishu: "12348",
haopinglv: "99.99%",
// --------------工作人员-----------------------
workImgUrl: require('../../../../../assets/images/logo.png'),
workpeople: "刘明洋",
JobNo: "01",
department: '税务局',
PoliticalOutlook: '党员',
workPhone: '13080888888',
Starlevel: '5',
souliyewu: '12247877',
pingjiacishu: '1225454',
};
},
},
},
watch: {
sourceInfoForm: {
handler(newValue, oldValue) {
// console.log(newValue);
// console.log(oldValue);
this.defaultInfoForm = Object.assign({}, deepClone(newValue));
},
deep: true,
},
},
computed: {
},
created() {
setTimeout(() => {
this.defaultInfoForm = Object.assign({}, deepClone(this.sourceInfoForm));
// console.log(this.defaultInfoForm);
}, 0);
},
methods: {
modalClose() {
this.modalInfo.visible = false;
}
},
}
\ No newline at end of file
<template>
<div class="Container">
<div class="main">
<a-tabs v-model="tabsActive" @change="tabsChange" :forceRender="false">
<a-tab-pane
:key="item.path"
v-for="(item, index) of tabsList['children']"
:tab="item['meta']['title']"
>
</a-tab-pane>
</a-tabs>
<router-view style="padding: 0 1rem" />
</div>
</div>
</template>
<script>
import { getItemData } from "@/utils/js/common.js";
import common from "@/mixins/common";
export default {
name: "PortalAdminVueModule",
mixins: [common],
data() {
return {
tabsActive: undefined,
};
},
computed: {
tabsList() {
return getItemData(this.$router.options.routes, "name", "AIEfficiency");
},
},
mounted() {
this.$nextTick(() => {
this.tabsActive = this.$route.path.substr(
this.$route.path.lastIndexOf("/") + 1
);
});
},
methods: {
tabsChange(val) {
this.$router.push({
path: `/home/dataManagement/AIEfficiency/${val}`,
// query: { testoption: "test001" },
});
},
},
};
</script>
<style lang="less" scoped>
@headerH: 4.5rem;
.Container {
height: 100% !important;
// background: #fac;
background: #f5f5f5;
display: flex;
flex-direction: column;
.main {
// background: #afc;
background: #ffffff;
border-radius: 6px;
flex: 1;
overflow-y: auto;
overflow-x: hidden;
margin: 1.2rem 2rem;
}
&::before {
content: "";
display: block;
width: 100%;
height: @headerH;
background: rgb(59, 135, 255);
background: -moz-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: -webkit-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
/deep/ .ant-tabs-tab {
font-size: 1rem !important;
& + .ant-tabs-tab {
margin: 0 !important;
margin-left: 0.7rem !important;
}
}
}
</style>
<template>
<div class="reportForm-Container">
<div class="header_box">
<div>
<button class="export_btn" @click="exportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</button>
</div>
<span>
<a-checkbox-group
:options="checkboxOptions"
v-model="checkboxVALUE"
@change="checkboxonChange"
/>
<a-input
allowClear
v-model="searchName"
placeholder="请输入工作人员姓名查询 "
>
<a-icon slot="prefix" type="search" />
</a-input>
<a-select default-value="001">
<!-- <a-select-option
v-for="(item, index) of selectOptions"
:key="index"
:value="item.value"
>
{{ item.label }}
</a-select-option> -->
<a-select-option value="001"> 窗口001 </a-select-option>
<a-select-option value="002"> 窗口002 </a-select-option>
</a-select>
<a-select default-value="001">
<!-- <a-select-option
v-for="(item, index) of selectOptions"
:key="index"
:value="item.value"
>
{{ item.label }}
</a-select-option> -->
<a-select-option value="001"> 类型001 </a-select-option>
<a-select-option value="002"> 类型002 </a-select-option>
</a-select>
<a-range-picker
format="YYYY年MM月DD日"
class="range_picker_style"
@change="rangePickerChange"
v-model="BegindAndEndTime"
>
</a-range-picker>
<button class="search_btn">搜索</button>
</span>
</div>
<div class="main">
<a-table
size="small"
bordered
:row-key="(record) => record.id"
:row-selection="{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}"
:scroll="{ y: 590 }"
:pagination="tablePagination"
@change="pagTableChange"
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableSourceData"
>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click="openDetails"
>查看详情{{ record.id }}</a-button
>
</template>
</a-table>
</div>
</div>
</template>
<script>
import table from "@/mixins/table";
export default {
mixins: [table],
name: "PortalAdminVueReportForm",
data() {
return {
checkboxVALUE: [],
BegindAndEndTime: [],
checkboxOptions: [
{
label: "只看未处理",
value: "ID001",
},
],
tableHeaders: [
{
title: "序号",
dataIndex: "index",
width: "60px",
key: "index",
align: "center",
customRender: (text, record, index) => `${index + 1}`,
},
{
title: "报警类型",
align: "center",
dataIndex: "报警类型",
},
{
title: "发生窗口",
align: "center",
dataIndex: "发生窗口",
},
{
title: "工作人员",
align: "center",
dataIndex: "工作人员",
},
{
title: "所属部门",
align: "center",
dataIndex: "所属部门",
},
{
title: "手机号",
align: "center",
dataIndex: "手机号",
},
{
title: "发生时间",
align: "center",
dataIndex: "发生时间",
},
{
title: "时长",
align: "center",
dataIndex: "时长",
},
{
title: "是否准确",
align: "center",
dataIndex: "是否准确",
},
{
title: "是否处理",
align: "center",
dataIndex: "是否处理",
},
{
title: "操作",
align: "center",
width: "110px",
dataIndex: "operation",
scopedSlots: {
customRender: "operation",
},
},
],
searchName: undefined,
};
},
components: {},
mounted() {
this.setMoment();
for (let key = 0; key < 20; key++) {
this.tableSourceData.push({
id: `00${key + 1}`,
报警类型: `离岗${key + 1}`,
发生窗口: `001号窗口${key + 1}`,
工作人员: `刘德华${key + 1}`,
所属部门: `网络理政办${key + 1}`,
手机号: `13080888888${key + 1}`,
发生时间: `2022-07-03 18:00:00${key + 1}`,
时长: `15分32秒${key + 1}`,
是否准确: `准确${key + 1}`,
是否处理: `未处理${key + 1}`,
});
}
},
methods: {
openDetails() {
console.log("跳转网页");
},
rangePickerChange(val) {
console.log(val);
},
checkboxonChange(val) {
console.log(val);
console.log(this.checkboxVALUE);
},
QueueState(type) {
switch (type) {
case 0:
return "type1";
case 1:
return "type2";
default:
return "type0";
}
},
},
};
</script>
<style lang="less" scoped>
.reportForm-Container {
.header_box {
padding-bottom: 1rem;
display: flex;
justify-content: space-between;
align-items: center;
& > div {
display: flex;
justify-content: flex-start;
align-items: center;
b {
font-style: normal;
font-weight: unset;
font-size: 16px;
margin-left: 20px;
i {
color: #0595fd;
font-style: normal;
}
}
sub {
font-size: 14px;
font-style: normal;
bottom: unset;
margin-left: 20px;
}
.export_btn {
outline: none;
cursor: pointer;
border: none;
padding: 0.8rem 1.2rem;
margin: 0;
font-family: inherit;
font-size: inherit;
position: relative;
display: inline-block;
font-size: 0.8rem;
border-radius: 6px;
overflow: hidden;
background: #42dac8;
color: ghostwhite;
& span {
position: relative;
z-index: 10;
transition: color 0.4s;
}
&:hover span {
color: rgb(254, 242, 242);
}
&::before,
&::after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
}
&::before {
content: "";
background: #08cfb8;
width: 120%;
left: -10%;
transform: skew(30deg);
transition: transform 0.4s cubic-bezier(0.3, 1, 0.8, 1);
}
&:hover::before {
transform: translate3d(100%, 0, 0);
}
}
}
& > span {
display: flex;
justify-content: space-between;
align-items: center;
.range_picker_style {
margin-right: 20px;
// color: #32a6fb !important;
/deep/.ant-calendar-picker-input {
// background: transparent !important;
// border-color: #32a6fb !important;
// color: #32a6fb !important;
}
/deep/.ant-calendar-range-picker-separator {
// color: #32a6fb !important;
}
::-webkit-input-placeholder {
/* WebKit browsers,webkit内核浏览器 */
// color: #32a6fb;
// font-size: 16px;
}
:-moz-placeholder {
/* Mozilla Firefox 4 to 18 */
// color: #32a6fb;
// font-size: 16px;
}
::-moz-placeholder {
/* Mozilla Firefox 19+ */
// color: #32a6fb;
// font-size: 16px;
}
:-ms-input-placeholder {
/* Internet Explorer 10+ */
// color: #32a6fb;
// font-size: 16px;
}
}
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
/deep/.ant-input {
height: 2.3rem !important;
}
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
/deep/ .ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
.search_btn {
padding: 0.8rem 1.2rem;
border: 0;
border-radius: 5px;
background: #1890ff;
box-shadow: rgb(0 0 0 / 5%) 0 0 8px;
letter-spacing: 1.5px;
text-transform: uppercase;
font-size: 0.8rem;
color: hsl(0, 0%, 100%);
transition: all 0.5s ease;
cursor: pointer;
&:hover {
letter-spacing: 3px;
background-color: #7d5cf9;
color: hsl(0, 0%, 100%);
box-shadow: rgb(93 24 220) 0px 2px 10px 0px;
}
&:active {
letter-spacing: 3px;
background-color: #7d5cf9;
color: hsl(0, 0%, 100%);
box-shadow: rgb(93 24 220) 0px 0px 0px 0px;
transform: translateY(2px);
transition: 100ms;
}
}
}
}
.main {
.type0 {
color: #888888;
}
.type1 {
color: #f94545;
}
.type2 {
color: #04ca8f;
}
/deep/.ant-btn-link {
padding: 0 !important;
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ .ant-table-pagination {
float: left !important;
}
}
}
</style>
<template>
<a-drawer
:destroyOnClose="true"
:title="modalInfo.title"
:width="modalInfo.width"
:visible="modalInfo.visible"
@close="modalClose"
>
<a-form-model
ref="ruleForm"
:model="detailsForm"
:rules="detailsRules"
:label-col="{ span: 4 }"
:wrapper-col="{ span: 20 }"
>
<a-form-model-item label="告警设备" prop="告警设备">
<a-input v-model="detailsForm.告警设备" placeholder="请输入" disabled />
</a-form-model-item>
<a-form-model-item label="告警时间" prop="告警时间">
<a-input v-model="detailsForm.告警时间" placeholder="请输入" disabled />
</a-form-model-item>
<a-form-model-item label="告警内容" prop="告警内容">
<a-input v-model="detailsForm.告警内容" placeholder="请输入" disabled />
</a-form-model-item>
<a-form-model-item label="告警程度" prop="告警程度">
<a-input v-model="detailsForm.告警程度" placeholder="请输入" disabled />
</a-form-model-item>
<a-form-model-item label="告警状态" prop="告警状态">
<a-input v-model="detailsForm.告警状态" placeholder="请输入" disabled />
</a-form-model-item>
<a-form-model-item label="接收人员" prop="接收人员">
<a-input v-model="detailsForm.接收人员" placeholder="请输入" disabled />
</a-form-model-item>
<a-form-model-item label="告警详情" prop="告警详情">
<a-textarea
v-model="detailsForm.告警详情"
placeholder="请输入"
:rows="4"
/>
</a-form-model-item>
<a-form-model-item label="清楚时间" prop="清楚时间">
<a-input v-model="detailsForm.清楚时间" placeholder="请输入" disabled />
</a-form-model-item>
<a-form-model-item label="清楚人员" prop="清楚人员">
<a-input v-model="detailsForm.清楚人员" placeholder="请输入" disabled />
</a-form-model-item>
</a-form-model>
</a-drawer>
</template>
<script>
import modal from "../mixins/modal";
export default {
mixins: [modal],
name: "PortalAdminVuePicWorks",
data() {
return {
detailsForm: {
告警设备: "一楼传感器",
告警时间: "2022-06-16 17:00:00",
告警内容: "离线",
告警程度: "离线",
告警状态: "离线",
接收人员: "离线",
告警详情:
"{'msg':'321哈哈','data':'123123','temperature':'17','sex':'3'}",
清楚时间: "--",
清楚人员: "--",
},
detailsRules: {},
};
},
mounted() {},
methods: {},
};
</script>
<style lang="less" scoped>
/deep/.ant-drawer-content {
overflow-x: hidden !important;
}
</style>
import { deepClone } from "@/utils/js/common.js";
export default {
data() {
return {
defaultInfoForm: {},
modalInfo: {
confirmLoading: false,
visible: false,
title: '用户信息',
width: '30%',
},
}
},
props: {
sourceInfoForm: {
type: Object,
default: () => {
return {
// --------------申报人信息-----------------------
name: "张三",
Gender: "",
Age: "56",
Phone: "13080888888",
yuyuecishu: "12",
paiduicishu: "6",
guanlianyewu: "12",
haxizhi: "3sad54a5f4sda4da4sd4adasdqa1sda1g1d1ada4d4f1fgweqqwq01f4sa4dgds1eqw5e1c2c2vx",
qukuaigaodu: "24292496",
chuangjianshijian: "2022-04-25 18:22",
// --------------业务分析-----------------------
yewuming: '公安户籍类',
guanlianshixiang: [
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
},
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
},
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
},
],
shoulicishu: "12546",
banjiecishu: "12348",
haopinglv: "99.99%",
// --------------工作人员-----------------------
workImgUrl: require('../../../../../assets/images/logo.png'),
workpeople: "刘明洋",
JobNo: "01",
department: '税务局',
PoliticalOutlook: '党员',
workPhone: '13080888888',
Starlevel: '5',
souliyewu: '12247877',
pingjiacishu: '1225454',
};
},
},
},
watch: {
sourceInfoForm: {
handler(newValue, oldValue) {
// console.log(newValue);
// console.log(oldValue);
this.defaultInfoForm = Object.assign({}, deepClone(newValue));
},
deep: true,
},
},
computed: {
},
created() {
setTimeout(() => {
this.defaultInfoForm = Object.assign({}, deepClone(this.sourceInfoForm));
// console.log(this.defaultInfoForm);
}, 0);
},
methods: {
modalClose() {
this.modalInfo.visible = false;
}
},
}
\ No newline at end of file
<template>
<div class="Container">
<div class="main">
<a-tabs v-model="tabsActive" @change="tabsChange" :forceRender="false">
<a-tab-pane
:key="item.path"
v-for="(item, index) of tabsList['children']"
:tab="item['meta']['title']"
>
</a-tab-pane>
</a-tabs>
<router-view style="padding: 0 1rem" />
</div>
</div>
</template>
<script>
import { getItemData } from "@/utils/js/common.js";
import common from "@/mixins/common";
export default {
name: "PortalAdminVueModule",
mixins: [common],
data() {
return {
tabsActive: undefined,
};
},
computed: {
tabsList() {
return getItemData(this.$router.options.routes, "name", "IOT");
},
},
mounted() {
this.$nextTick(() => {
this.tabsActive = this.$route.path.substr(
this.$route.path.lastIndexOf("/") + 1
);
});
},
methods: {
tabsChange(val) {
this.$router.push({
path: `/home/dataManagement/IOT/${val}`,
// query: { testoption: "test001" },
});
},
},
};
</script>
<style lang="less" scoped>
@headerH: 4.5rem;
.Container {
height: 100% !important;
// background: #fac;
background: #f5f5f5;
display: flex;
flex-direction: column;
.main {
// background: #afc;
background: #ffffff;
border-radius: 6px;
flex: 1;
overflow-y: auto;
overflow-x: hidden;
margin: 1.2rem 2rem;
}
&::before {
content: "";
display: block;
width: 100%;
height: @headerH;
background: rgb(59, 135, 255);
background: -moz-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: -webkit-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
/deep/ .ant-tabs-tab {
font-size: 1rem !important;
& + .ant-tabs-tab {
margin: 0 !important;
margin-left: 0.7rem !important;
}
}
}
</style>
<template>
<div class="callRecord-Container">
<div class="header_box">
<div>
<button class="export_btn" @click="exportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</button>
<b>累计发送短信量:<i>589726条</i></b>
</div>
<span>
<a-select default-value="001">
<!-- <a-select-option
v-for="(item, index) of selectOptions"
:key="index"
:value="item.value"
>
{{ item.label }}
</a-select-option> -->
<a-select-option value="001"> 船山行政审批局 </a-select-option>
</a-select>
<button class="search_btn">搜索</button>
</span>
</div>
<div class="main">
<a-table
size="small"
bordered
:row-key="(record) => record.id"
:row-selection="{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}"
:scroll="{ y: 590 }"
:pagination="tablePagination"
@change="pagTableChange"
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableSourceData"
>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link">查看明细</a-button>
</template>
</a-table>
</div>
</div>
</template>
<script>
import table from "@/mixins/table";
export default {
mixins: [table],
name: "PortalAdminVuePickUpRecord",
data() {
return {
tableHeaders: [
{
title: "序号",
dataIndex: "index",
width: "60px",
key: "index",
align: "center",
customRender: (text, record, index) => `${index + 1}`,
},
{
title: "月度时间",
align: "center",
dataIndex: "月度时间",
},
{
title: "发送量",
align: "center",
dataIndex: "发送量",
},
{
title: "账单生成时间",
align: "center",
dataIndex: "账单生成时间",
},
{
title: "操作",
align: "center",
width: "110px",
dataIndex: "operation",
scopedSlots: {
customRender: "operation",
},
},
],
searchName: undefined,
};
},
components: {},
mounted() {
this.setMoment();
for (let key = 0; key < 20; key++) {
this.tableSourceData.push({
id: `00${key + 1}`,
月度时间: `2022-0${key + 1}`,
发送量: `585${key + 1}`,
账单生成时间: `2022-07-01 09:09:09`,
});
}
},
methods: {},
};
</script>
<style lang="less" scoped>
.callRecord-Container {
.header_box {
padding-bottom: 1rem;
display: flex;
justify-content: space-between;
align-items: center;
& > div {
display: flex;
justify-content: flex-start;
align-items: center;
b {
font-style: normal;
font-weight: unset;
font-size: 16px;
margin-left: 20px;
i {
color: #0595fd;
font-style: normal;
}
}
sub {
font-size: 14px;
font-style: normal;
bottom: unset;
margin-left: 20px;
}
.export_btn {
outline: none;
cursor: pointer;
border: none;
padding: 0.8rem 1.2rem;
margin: 0;
font-family: inherit;
font-size: inherit;
position: relative;
display: inline-block;
font-size: 0.8rem;
border-radius: 6px;
overflow: hidden;
background: #42dac8;
color: ghostwhite;
& span {
position: relative;
z-index: 10;
transition: color 0.4s;
}
&:hover span {
color: rgb(254, 242, 242);
}
&::before,
&::after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
}
&::before {
content: "";
background: #08cfb8;
width: 120%;
left: -10%;
transform: skew(30deg);
transition: transform 0.4s cubic-bezier(0.3, 1, 0.8, 1);
}
&:hover::before {
transform: translate3d(100%, 0, 0);
}
}
}
& > span {
display: flex;
justify-content: space-between;
align-items: center;
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
/deep/.ant-input {
height: 2.3rem !important;
}
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
/deep/ .ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
.search_btn {
padding: 0.8rem 1.2rem;
border: 0;
border-radius: 5px;
background: #1890ff;
box-shadow: rgb(0 0 0 / 5%) 0 0 8px;
letter-spacing: 1.5px;
text-transform: uppercase;
font-size: 0.8rem;
color: hsl(0, 0%, 100%);
transition: all 0.5s ease;
cursor: pointer;
}
.search_btn:hover {
letter-spacing: 3px;
background-color: #7d5cf9;
color: hsl(0, 0%, 100%);
box-shadow: rgb(93 24 220) 0px 2px 10px 0px;
}
.search_btn:active {
letter-spacing: 3px;
background-color: #7d5cf9;
color: hsl(0, 0%, 100%);
box-shadow: rgb(93 24 220) 0px 0px 0px 0px;
transform: translateY(2px);
transition: 100ms;
}
}
}
.main {
.type0 {
color: #888888;
}
.type1 {
color: #f94545;
}
.type2 {
color: #04ca8f;
}
/deep/.ant-btn-link {
padding: 0 !important;
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ .ant-table-pagination {
float: left !important;
}
}
}
</style>
import { deepClone } from "@/utils/js/common.js";
export default {
data() {
return {
defaultInfoForm: {},
modalInfo: {
confirmLoading: false,
visible: false,
title: '用户信息',
width: '30%',
},
}
},
props: {
sourceInfoForm: {
type: Object,
default: () => {
return {
// --------------申报人信息-----------------------
name: "张三",
Gender: "",
Age: "56",
Phone: "13080888888",
yuyuecishu: "12",
paiduicishu: "6",
guanlianyewu: "12",
haxizhi: "3sad54a5f4sda4da4sd4adasdqa1sda1g1d1ada4d4f1fgweqqwq01f4sa4dgds1eqw5e1c2c2vx",
qukuaigaodu: "24292496",
chuangjianshijian: "2022-04-25 18:22",
// --------------业务分析-----------------------
yewuming: '公安户籍类',
guanlianshixiang: [
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
},
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
},
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
},
],
shoulicishu: "12546",
banjiecishu: "12348",
haopinglv: "99.99%",
// --------------工作人员-----------------------
workImgUrl: require('../../../../../assets/images/logo.png'),
workpeople: "刘明洋",
JobNo: "01",
department: '税务局',
PoliticalOutlook: '党员',
workPhone: '13080888888',
Starlevel: '5',
souliyewu: '12247877',
pingjiacishu: '1225454',
};
},
},
},
watch: {
sourceInfoForm: {
handler(newValue, oldValue) {
// console.log(newValue);
// console.log(oldValue);
this.defaultInfoForm = Object.assign({}, deepClone(newValue));
},
deep: true,
},
},
computed: {
},
created() {
setTimeout(() => {
this.defaultInfoForm = Object.assign({}, deepClone(this.sourceInfoForm));
// console.log(this.defaultInfoForm);
}, 0);
},
methods: {
modalClose() {
this.modalInfo.visible = false;
}
},
}
\ No newline at end of file
<template>
<div class="Container">
<div class="main">
<a-tabs v-model="tabsActive" @change="tabsChange" :forceRender="false">
<a-tab-pane
:key="item.path"
v-for="(item, index) of tabsList['children']"
:tab="item['meta']['title']"
>
</a-tab-pane>
</a-tabs>
<router-view style="padding: 0 1rem" />
</div>
</div>
</template>
<script>
import { getItemData } from "@/utils/js/common.js";
import common from "@/mixins/common";
export default {
name: "PortalAdminVueModule",
mixins: [common],
data() {
return {
tabsActive: undefined,
};
},
computed: {
tabsList() {
return getItemData(this.$router.options.routes, "name", "SMS");
},
},
mounted() {
this.$nextTick(() => {
this.tabsActive = this.$route.path.substr(
this.$route.path.lastIndexOf("/") + 1
);
});
},
methods: {
tabsChange(val) {
this.$router.push({
path: `/home/dataManagement/SMS/${val}`,
// query: { testoption: "test001" },
});
},
},
};
</script>
<style lang="less" scoped>
@headerH: 4.5rem;
.Container {
height: 100% !important;
// background: #fac;
background: #f5f5f5;
display: flex;
flex-direction: column;
.main {
// background: #afc;
background: #ffffff;
border-radius: 6px;
flex: 1;
overflow-y: auto;
overflow-x: hidden;
margin: 1.2rem 2rem;
}
&::before {
content: "";
display: block;
width: 100%;
height: @headerH;
background: rgb(59, 135, 255);
background: -moz-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: -webkit-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
/deep/ .ant-tabs-tab {
font-size: 1rem !important;
& + .ant-tabs-tab {
margin: 0 !important;
margin-left: 0.7rem !important;
}
}
}
</style>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment