Commit e946ada6 authored by zhangxuanyu's avatar zhangxuanyu

cli4

parent 34eb8efd
Pipeline #52679 failed with stage
......@@ -7,6 +7,21 @@ clone:
dns: 223.5.5.5
pipeline:
read-cache:
image: registry.cn-qingdao.aliyuncs.com/wod/devops-cache:1.0
restore: true
mount:
- ./node_modules
volumes:
- /data/cache:/cache
build:
image: registry.cn-qingdao.aliyuncs.com/wod/devops-node:12.18.0-stretch
dns: 223.5.5.5
volumes:
- /data/cache/yarn:/usr/local/share/.cache/yarn
commands:
- yarn install
- yarn run build
docker-master:
image: registry.cn-qingdao.aliyuncs.com/wod/devops-docker:1.0
volumes:
......@@ -23,11 +38,11 @@ pipeline:
- source: REGISTRY_PASSWORD
target: REGISTRY_PASSWORD
when:
branch: master
branch: [master,dev,cli4]
deploy:
image: registry.cn-qingdao.aliyuncs.com/wod/devops-kubernetes:1.0
namespace: tongliao
deployment: zj-hl
container: zj-hl
when:
branch: [master,dev]
branch: [master,dev,cli4]
.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?
# cli4
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Lints and fixes files
```
npm run lint
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
module.exports = {
    presets: [
        '@vue/cli-plugin-babel/preset'
    ]
}
# prefix: /tyyh/login/
index: /zjhl/
# login: /tyyh/login/#/
# logout: /tyyh/logout
\ No newline at end of file
......@@ -10,4 +10,4 @@ ARG TARGETOS
ARG TARGETARCH
ADD ./dist /www
ADD ./build/conf.yaml /www/conf.yaml
\ No newline at end of file
ADD ./build/conf.yaml /www/conf.yaml
<!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">
<title>Document</title>
</head>
<body>
hello 111
</body>
</html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "cli4",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"@fortawesome/fontawesome-free": "^5.5.0",
"axios": "^0.19.2",
"core-js": "^3.6.5",
"echarts": "^4.9.0",
"element-ui": "^2.15.3",
"material-design-icons-iconfont": "^4.0.2",
"mavon-editor": "^2.6.17",
"vue": "^2.6.11",
"vue-cookies": "^1.7.4",
"vue-echarts": "^4.0.4",
"vue-i18n": "^8.18.2",
"vue-print-nb": "^1.7.4",
"vue-resource": "^1.5.1",
"vue-router": "^3.0.2",
"vuex": "^3.0.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"vue-template-compiler": "^2.6.11"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
]
}
<!DOCTYPE html>
<html lang="">
<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>
<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>
; DO NOT EDIT (unless you know what you are doing)
;
; This subdirectory is a git "subrepo", and this file is maintained by the
; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme
;
[subrepo]
remote = https://github.com/vuetifyjs/templates-common.git
branch = subrepo/webpack-src
commit = 090741fa8ba4da0c6f85db64eff64550704123e1
parent = e05204fc0583a8c99f1963ce873eba1266838215
method = merge
cmdver = 0.4.0
<template>
<div id="app">
app
<router-view></router-view>
</div>
</template>
<script>
import services from "@/services";
export default {
data: () => ({}),
props: {},
mounted() {
console.log(this.$store);
},
components: {
},
methods: {
},
};
</script>
<style>
@import "./assets/css/index.css";
.container {
position: absolute;
width: 100%;
top: 60px;
bottom: 0px;
}
.wrap {
width: 100%;
height: 100%;
}
</style>
[v-cloak]{
display: none
}
a{
text-decoration: none;
}
body{
font-size: 12px;
font-family: "Microsoft YaHei";
}
/* 滚动条样式 */
.bg_scroll::-webkit-scrollbar {
width: 7px;
height: 7px;
border-radius: 7px;
}
.bg_scroll::-webkit-scrollbar-track-piece {
-webkit-border-radius: 7px;
}
.bg_scroll::-webkit-scrollbar-thumb:vertical {
background-color: #bcc1d0;
-webkit-border-radius: 7px;
}
.bg_scroll::-webkit-scrollbar-thumb:horizontal {
width: 5px;
-webkit-border-radius: 7px;
}
/* 文字超出省略 */
.text-hide1{
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
/* 左右布局 */
.flex {
width: 100%;
height: 100%;
display: -webkit-box; /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */
display: -moz-box; /* Firefox 17- */
display: -webkit-flex; /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */
display: -moz-flex; /* Firefox 18+ */
display: -ms-flexbox; /* IE 10 */
display: flex; /* Chrome 29+, Firefox 22+, IE 11+, Opera 12.1/17/18, Android 4.4+ */
}
.flex-left {
width: 180px;
background-color: #1a284c;
height: 100%;
}
.flex-right {
padding: 0 20px 20px;
box-sizing: border-box;
-webkit-box-flex: auto;
-ms-flex: auto;
-webkit-flex: auto;
flex: 1;
overflow-y: auto;
background: #fafafa;
}
.flex-right-box{
width: 100%;
height: 100%;
position: relative;
}
.has_left_menu {
height: calc(100vh - 60px);
display: flex;
justify-content: flex-start;
align-items: stretch;
}
.side_nav_bar {
width: 180px;
flex-shrink: 0;
}
.ces-main{
height: 100%;
width: 100%;
display: flex;
flex-direction:column;
}
.ces-main .el-breadcrumb{
/* height: 46px; */
width: 100%;
}
.card_container{
flex: 1;
/* margin-top: 20px; */
width:100%;
background-color: #ffffff;
box-shadow: 0px 3px 6px 0px
#f4f7fc;
border-radius: 8px;
}
/* input */
.el-input__inner{
border-radius: 4px!important;
border: 1px solid #e3e5ef!important;
background: #f7f8f9!important;
color: #242c43!important;
}
.el-input .el-input__inner {
height: 34px ;
line-height: 34px !important;
}
.el-form--label-top .el-form-item__label{
font-weight: 800;
line-height: 32px;
color: #242c43;
}
.el-form-item .el-form-item__label{
font-weight: 800;
color: #242c43;
}
.el-input__count{
background-color: #f7f8f9!important;
color: #a9aec0!important;
}
.el-form-item.is-error .el-input__inner, .el-form-item.is-error .el-input__inner:focus, .el-form-item.is-error .el-textarea__inner, .el-form-item.is-error .el-textarea__inner:focus, .el-message-box__input input.invalid, .el-message-box__input input.invalid:focus{
border-color: #F56C6C !important;
}
.el-input__icon {
height: auto;
}
/* textarea */
.el-textarea__inner{
border-radius: 8px!important;
border: 1px solid #e3e5ef!important;
background: #f7f8f9!important;
color: #a9aec0!important;
font-family: "Microsoft YaHei";
}
/* 取消按钮颜色 */
.form_c{
background-color: #dde4ff!important;
border-color: #dde4ff!important;
color:#264dd9!important ;
padding: 9px 25px!important;
font-size: 14px !important;
border-radius: 4px;
}
/* 确定按钮颜色 */
.form_t{
background-color: #264dd9!important;
border-color: #264dd9!important;
color:#f4f7fc!important ;
padding: 9px 25px!important;
font-size: 14px !important;
border-radius: 4px;
}
/* 高级按钮颜色 */
.form_h{
background-color: #242c43!important;
border-color: #242c43!important;
color:#f4f7fc!important ;
padding: 9px 25px!important;
font-size: 14px !important;
border-radius: 4px;
}
/* table 上班新增按钮部分 */
.form-group {
padding: 20px 20px 15px;
box-sizing: border-box;
border-bottom: 1px solid #edf0ff;
}
.space_bet{
display: flex;
justify-content: space-between;
}
/* 新增按钮 */
.form-group .el-button--primary{
background-color: #264dd9!important;
border-color: #264dd9!important;
height: 30px!important;
}
.el-button.is-round {
border-radius: 4px!important;
}
/* *********************************下拉框 */
.el-select-dropdown {
border: 1px solid #3b476a !important;
background-color: #3b476a !important;
}
.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover,
.el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
background: #242c43 !important;
}
.el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
color: #fff !important;
font-weight: 400 !important;
}
.el-select-dropdown__item.hover,
.el-select-dropdown__item:hover {
background: #3b476a !important;
}
.el-select-dropdown__item {
font-size: 12px !important;
padding: 0 20px !important;
color: #f4f7fc !important;
height: 34px !important;
line-height: 34px !important;
background-color: #242c43 !important;
}
.el-select-dropdown__list {
padding: 0 !important;
background-color: #242c43 !important;
top: 10px !important;
border-radius: 8px !important;
}
.el-popper[x-placement^="bottom"] .popper__arrow,
.el-popper[x-placement^="bottom"] .popper__arrow::after {
border-bottom-color: #242c43 !important;
}
.el-popper[x-placement^="top"] .popper__arrow,
.el-popper[x-placement^="top"] .popper__arrow::after {
border-top-color: #242c43 !important;
}
/* input icon line-height 高度 */
.el-form-item--mini .el-form-item__content, .el-form-item--mini .el-form-item__label {
line-height: 34px!important;
}
.el-input__suffix {
right: 8px!important;
}
/* 去掉面包屑滑过颜色 */
.el-breadcrumb__inner.is-link{
color:#606266;
font-weight: 400;
}
.el-breadcrumb__inner.is-link:hover{
color:#264dd9 !important;
}
/* 去掉必填* */
.el-form-item.is-required:not(.is-no-asterisk)
.el-form-item__label-wrap
> .el-form-item__label:before,
.el-form-item.is-required:not(.is-no-asterisk)
> .el-form-item__label:before {
content: ""!important;
}
/* input dislable */
.el-input.is-disabled .el-input__inner,
.el-textarea.is-disabled .el-textarea__inner {
background-color: #f7f8f9 !important;
border-color: #bcc1d0 !important;
color: #242c43 !important;
}
/* icon 加粗 */
button i {
font-weight: bold !important;
}
[class*="el-icon-"], [class^=el-icon-]{
font-weight: 800 !important;
}
/* 设置分页的样式 */
.el-pagination /deep/ button,
.el-pagination /deep/ span:not([class*=suffix]){
height: 34px!important;
line-height: 34px!important;
font-size: 14px!important;
}
.el-pagination /deep/ .el-pagination__jump,
.el-pagination /deep/ .el-pagination__total{
color: #8890a7;
}
.el-pager /deep/ li{
color: #a9aec0;
font-size: 14px;
font-weight: 400;
}
.el-pager /deep/ li:hover,
.el-pager /deep/ li.active{
color: #264dd9!important;
}
.el-pagination /deep/ .btn-next .el-icon,
.el-pagination .btn-prev .el-icon {
display: block;
font-size: 14px;
color: #315efc!important;
}
.el-pagination__sizes{
font-size: 14px;
color: #58617a;
}
.el-pagination /deep/ .el-input__inner{
color: #58617a;
background-color: #f4f7fc;
border-radius: 5px!important;
border: solid 1px #e3e5ef;
}
.el-pagination /deep/ .el-select .el-input.is-focus .el-input__inner,
.el-pagination /deep/ .el-input__inner:focus ,
.el-pagination /deep/ .el-pagination__sizes .el-input .el-input__inner:hover,
.el-pagination /deep/ .el-pagination__editor:hover,
.el-pagination /deep/ .el-icon-arrow-up:hover{
border-color: #315efc!important;
}
.el-pagination__sizes .el-select:hover .el-input__inner,
.is-in-pagination:hover .el-input__inner{
border-color: #315efc!important;
}
.el-pagination /deep/ .el-select .el-input .el-select__caret{
color: #bcc1d0!important;
}
.el-pagination__editor.el-input .el-input__inner,
.el-pagination__sizes .el-input .el-input__inner{
height: 34px;
line-height: 34px;
}
.el-pagination .el-select-dropdown__item span{
font-size: 14px;
}
.el-pager li.btn-quicknext, .el-pager li.btn-quickprev{
color: #a9aec0;
}
/* 设置下拉框的颜色 */
.el-select .el-input .el-select__caret{
color: #58617a!important;
}
/* 设置提示框行高 */
.el-tooltip__popper{
line-height: 1.75;
}
/* 设置提示框样式 */
.el-tooltip__popper {
background-color: #242c43 !important;
border-radius: 8px !important;
color: #f4f7fc!important;
font-size: 12px!important;
/* line-height: 1.75!important; */
}
.el-tooltip__popper[x-placement^="top"] .popper__arrow,
.el-tooltip__popper[x-placement^="top"] .popper__arrow::after {
border-top-color: #242c43 !important;
}
.el-tooltip__popper[x-placement^="bottom"] .popper__arrow,
.el-tooltip__popper[x-placement^="bottom"] .popper__arrow::after {
border-bottom-color: #242c43 !important;
}
/* 设置el-dropdown样式 */
.el-dropdown-menu {
background-color: #242c43!important;
border: 1px solid #242c43!important;
border-radius: 8px!important;
padding: 0!important;
}
.el-dropdown-menu .el-dropdown-menu__item {
color: #f4f7fc!important;
line-height: 30px !important;
font-size: 12px !important;
}
.el-dropdown-menu__item:focus,
.el-dropdown-menu__item:not(.is-disabled):hover {
background-color: #3b476a!important;
color: #f4f7fc!important;
}
.el-dropdown-menu.el-popper[x-placement^="bottom"] .popper__arrow,
.el-dropdown-menu.el-popper[x-placement^="bottom"] .popper__arrow::after {
border-bottom-color: #242c43 !important;
}
/* 设置下拉框的样式 */
.el-scrollbar {
border-radius: 8px;
}
.select .el-input--suffix .el-input__inner {
background-color: #f4f7fc;
border-radius: 15px;
font-size: 12px;
color: #242c43;
height: 30px!important;
line-height: 30px!important;
}
.el-select-dropdown {
border: 1px solid #242c43 !important;
background-color: #242c43 !important;
border-radius: 8px!important;
}
.el-select-dropdown__empty{
background: #242c43;
color: #f4f7fc;
}
/* 单选 */
.el-select-dropdown .el-select-dropdown__item.selected {
color: #409eff!important;
font-weight: 400 !important;
}
/* 多选 */
.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{
color: #f4f7fc!important;
font-weight: 400 !important;
}
.el-select__tags .el-tag.el-tag--info {
/* background-color: #5c82ff !important;
border-radius: 4px !important;
color: #f4f7fc !important; */
background-color: #e6ebfe !important;
border-radius: 4px !important;
color: #264dd9 !important;
}
.el-select .el-tag__close.el-icon-close {
background-color: #e6ebfe !important;
color: #264dd9 !important;
right: -4px!important;
}
.has_left_menu {
height: calc(100vh - 60px);
display: flex;
justify-content: flex-start;
align-items: stretch;
}
.side_nav_bar {
width: 180px;
flex-shrink: 0;
}
.main_container {
width: calc(100% - 180px);
flex-grow: 1;
flex-shrink: 1;
background-color: #f6f7fb;
overflow: auto;
}
/* switch开关 */
.switchStyle{
height: 32px;
line-height: 32px;
font-size: 12px;
}
.switchStyle .el-switch__label {
position: absolute;
display: none;
color: #fff;
}
.switchStyle .el-switch__label--left {
z-index: 9;
left: 6px;
top: -1px;
}
.switchStyle .el-switch__label--right {
z-index: 9;
left: -14px;
top: -1px;
}
.switchStyle .el-switch__label.is-active {
display: block;
}
.switchStyle.el-switch .el-switch__core,
.el-switch .el-switch__label {
width: 68px !important;
height: 32px;
line-height: 32px;
border-radius: 16px;
}
.el-switch__core {
background: #f8f9fd !important;
border: 3px solid #8890a7 !important;
}
.el-switch__core:after {
width: 20px;
height: 20px;
background: #8890a7 !important;
left: 3px;
top: 3px;
}
.el-switch.is-checked .el-switch__core {
background: #f8f9fd !important;
border: 3px solid #5c82ff !important;
}
.el-switch.is-checked .el-switch__core:after {
background: #5c82ff !important;
margin-left: -23px;
}
.el-switch .el-switch__label--right.is-active span{
margin-right: 3px;
}
.el-switch__label * {
font-size: 10px !important;
font-weight: 800;
}
.el-switch .el-switch__label {
color: #8890a7 !important;
}
.el-switch.is-checked .el-switch__label {
color: #5c82ff !important;
}
.el-switch:hover {
opacity: 0.8;
}
/* 辖区多层下拉选 */
.el-cascader-panel{
background-color: #242c43 !important;
/* border-radius: 8px!important; */
font-size: 12px!important;
}
.el-cascader-node.in-active-path, .el-cascader-node.is-active, .el-cascader-node.is-selectable.in-checked-path {
color: #409eff!important;
font-weight: 700;
}
.el-cascader-menu{
color:#f4f7fc!important;
border-right: none!important;
}
.el-cascader-node:not(.is-disabled):focus, .el-cascader-node:not(.is-disabled):hover {
background: #3b476a !important;
}
.el-cascader-menu__wrap {
/* height: 100px; */
}
/* 时间控件样式 */
.el-picker-panel{
background-color: #242c43 !important;
border-radius: 8px!important;
font-size: 12px!important;
color: #e3e5ef!important;
box-shadow:0 !important;
border:none!important;
}
.el-picker-panel__footer {
border-top: 1px solid #3f4864 !important;
background-color: #242c43 !important;
}
.el-date-table th {
border-bottom: 1px solid #3f4864 !important;
color: #e3e5ef!important;
}
.el-date-table td.current:not(.disabled) span {
color: #e3e5ef !important;
background-color: #315efc!important;
}
.el-date-table td.next-month, .el-date-table td.prev-month {
color: #58617a !important;
}
.el-date-picker__time-header {
border-bottom: 1px solid #3f4864 !important;
}
.el-picker-panel__body .el-input__inner {
height: 24px !important;
line-height: 24px !important;
background-color: #1a2236!important;
border-radius: 12px!important;
border: solid 1px #3f4864!important;
color: #e3e5ef!important;
font-size: 12px;
}
.el-picker-panel__footer .el-button{
background-color: #264dd9;
border-radius: 12px;
padding:5px 12px;
color: #f4f7fc;
font-size: 12px;
border: none!important;
}
.el-picker-panel__footer .el-button--text{
background-color: #dde4ff;
border-radius: 12px;
padding:5px 12px;
color: #264dd9;
font-size: 12px;
}
.el-button.is-plain:focus, .el-button.is-plain:hover{
background-color: #264dd9;
color: #f4f7fc;
}
.el-button--text:focus, .el-button--text:hover{
color: #264dd9;
}
.el-time-panel{
border-radius: 8px!important;
border: 1px solid #3f4864 !important;
background-color: #242c43 !important;
}
.el-time-panel__footer {
border: 1px solid #3f4864 !important;
}
.el-time-panel__btn.confirm{
background-color: #264dd9;
border-radius: 12px!important;
padding:0px 12px;
color: #f4f7fc!important;
font-size: 12px!important;
}
.el-time-panel__btn{
line-height: 22px!important;
height: 22px!important;
}
.el-time-spinner__item:hover:not(.disabled):not(.active){
background-color: #264dd9!important;
border-radius: 12px!important;
color: #f4f7fc;
}
.el-time-spinner__item{
color: #58617a!important;
}
.el-date-table td.in-range div,
.el-date-table td.in-range div:hover,
.el-date-table.is-week-mode .el-date-table__row.current div,
.el-date-table.is-week-mode .el-date-table__row:hover div {
background-color: #646C83;
}
.el-date-table td.end-date span,
.el-date-table td.start-date span {
background-color: #264DD9;
}
.el-date-table td.today span {
color: #0c3ff7;
}
.el-date-editor .el-range-separator {
width: 15%;
line-height: 28px;
}
/* 地图小图标 */
.mapIcon{
width: 30px;
position: absolute;
right: 2px;
top:6px;
cursor: pointer;
height: 30px;
}
/* 标题信息样式调整 */
.titlezy {
font-size: 17px;
color: #1d1e20;
font-weight: 600;
display: flex;
align-items: center;
margin: 20px 0;
}
.buleline {
width: 4px;
height: 17px;
background: #0367f6;
border-radius: 2px;
margin-right: 10px;
display: inline-block;
vertical-align: sub;
}
/* alert提示信息 */
.el-alert--info.is-light{
background-color: #f8f9fd;
border-radius: 8px;
}
.el-alert__title{
font-size: 12px;
color: #8890a7;
}
/* 面包屑样式 */
.el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner{
color: rgb(36, 44, 67);
}
/* 设置多选按钮的样式 */
.el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner{
background-color: #626de9;
border-color: #515fe7;
}
.el-checkbox__inner:hover{
border-color: #515fe7;
}
.el-radio__input.is-checked .el-radio__inner{
border-color: #315efc;
background: #315efc;
}
/* 表格样式提升至全局,其它地方也需要用 */
.ces-table-page .ces-table .el-table::before {
height: 0 !important;
}
.ces-table-page .ces-table .el-table th.gutter {
display: table-cell !important;
}
.ces-table-page .ces-table .el-table colgroup.gutter {
display: table-cell !important;
}
.ces-table-page .ces-table .el-table tbody tr:nth-child(odd) {
background: #f8f9fd;
}
.ces-table-page .ces-table .el-table td,
.ces-table-page .ces-table .el-table th.is-leaf {
border-bottom: none !important;
}
.ces-table-page .ces-table .el-table tbody tr:hover > td {
background-color: #e4ecf8 !important;
}
.ces-table-page .ces-table .theme--light.el-table tbody tr:not(:last-child) {
border-bottom: none;
}
.ces-table-page .ces-table .el-table th > .cell {
color: #1a2236;
}
.ces-table-page .ces-table .el-table th > .cell,
.ces-table-page .ces-table .el-table td > .cell {
/* text-align: center; */
font-size: 14px;
}
.ces-table-page .ces-table .el-table tr {
color: #58617a;
}
.ces-table-page .ces-table .el-table__empty-text {
color: #58617a;
font-size: 14px;
}
.ces-table-page .ces-table .el-input__inner {
border: 1px solid #bcc1d0;
border-radius: 17px;
color: #58617a;
background: #fff;
}
.ces-table-page em {
font-style: normal;
}
.ces-table-page .ces-table .el-input.is-disabled .el-input__inner {
background-color: #e3e5ef;
border-color: #bcc1d0;
color: #242c43;
}
.ces-table-page .ces-table .el-table--mini td,
.ces-table-page .ces-table .el-table--mini th {
padding: 0;
}
.ces-table-page .ces-table .el-table--mini td .cell,
.ces-table-page .ces-table .el-table--mini th .cell {
padding: 11px 0 !important;
width: 100% !important;
}
.ces-table-page .ces-table .el-table--border::after,
.ces-table-page .ces-table .el-table--group::after,
.ces-table-page .ces-table .el-table::before {
background: #fff;
}
.ces-table-page .ces-table .el-table .cell,
.ces-table-page .ces-table .el-table th div {
padding-right: 0 !important;
}
.ces-table-page .ces-pagination {
margin-top: 20px;
padding-bottom: 20px;
}
.ces-table-page .chName.is-dark {
background: #5c82ff !important;
}
.ces-table-page .chName[x-placement^="top"] .popper__arrow,
.ces-table-page .chName[x-placement^="top"] .popper__arrow::after {
border-top-color: #5c82ff !important;
}
.ces-table-page .ces-table .disfail {
color: #58617a !important;
}
.ces-table-page .ces-table .disture {
color: #bcc1d0 !important;
}
.ces-table-page .ces-table .moreList .el-dropdown-link {
color: #264dd9;
outline: none;
}
.ces-table-page .ces-table .moreList .el-dropdown-link .el-icon-arrow-down {
display: none;
}
.ces-table-page .ces-table .input-style {
display: flex;
align-items: center;
padding: 0 24px 0 8px;
box-sizing: border-box;
}
.ces-table-page .ces-table .input-style span,
.ces-table-page .ces-table .table-label {
width: 100px;
font-weight: bold;
color: #242c43;
font-size: 14px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.ces-table-page .ces-table .el-form-item {
margin-bottom: 0px;
padding: 3px 0;
}
.ces-table-page .ces-table .el-form-item__content {
line-height: 0;
}
.ces-table-page .ces-table .el-form-item__error {
padding-top: 0;
}
.ces-table-page .primary-del {
font-family: MicrosoftYaHei-Bold;
font-size: 14px;
color: #264dd9;
cursor: pointer;
}
.ces-table-page .hrefclass {
color: #264dd9;
cursor: pointer;
}
.ces-table-page .rework {
background-color: #fffee8;
border-radius: 4px;
border: solid 1px #e4c884;
padding: 2px 3px;
color: #ef9433;
font-size: 12px;
}
/* 禁用样式 */
.el-input.is-disabled .el-input__inner, .el-textarea.is-disabled .el-textarea__inner{
background-color: #e3e4e6 !important;
border-color: #e3e5ef !important;
color: #a9aec0 !important;
}
/* 批量导入 */
.sys_menus_box .el-upload-dragger,
.sys_menus_box .el-upload,
.sys_menus_box .upload-demo {
width: 100%;
height: 100%;
}
.sys_menus_box .dark-image {
display: none !important;
}
.sys_menus_box .upload_alert {
flex: 0 0 auto;
width: 28%;
margin-left: 2%;
height: 66px;
background-color: #f8f9fd;
border-radius: 8px;
padding: 8px;
color: #8890a7;
font-size: 12px;
line-height: 26px;
display: flex;
align-items: flex-start;
}
.sys_menus_box .example_excle {
position: absolute;
left: 72%;
bottom: 0;
}
.sys_menus_box .up_alert_i {
margin-right: 8px;
line-height: 26px;
}
.sys_menus_box .el-form-item {
margin-bottom: 10px;
}
.date-box {
display: inline-block;
padding: 5px 10px;
}
\ No newline at end of file
export const lang = {
event: 'event',
}
\ No newline at end of file
export const lang = {
totalelement:"全要素管理",
event: '事件管理',
pendingevent: '待受理事件',
eventdetail: '事件详情',
addevent: '新增事件',
dispatch: '待派遣事件 ',
toclose: '待结案事件 ',
closed: '已结案事件 ',
inquire: '事件查询 ',
myevent: '我的派遣事件 ',
handles: '待处置事件 ',
checkpending: '待审核事件 ',
judge: '研判分析 ',
personControl:"公共管理人员管控",
nonInterviewees:"非访人员预判",
earlywarning:"预警风险列表",
analyze:"专题研判分析",
organization:"组织管理",
nopubic:"非公有制经济组织",
nopubicdetail:"非公有制经济组织",
actualpopulation: "实有人口",
hjlist: "户籍人口",
hjdetail: "户籍详情",
emphasis:"重点人员",
jsbrlist:"精神病人",
jsbrdetail:"精神病人详情",
careobject:"关怀对象",
cjrlist:"残疾人",
cjrdetail:"残疾人详情",
keyunit:"重点单位",
ylcslist:"娱乐场所",
ylcsdetail:"娱乐场所详情",
ggsjyf:"公共管理事件预防",
gpsjyf:"高频事件预防",
highevent:"公共管理事件预防",
actualpopulation:"实有人口研判",
}
\ No newline at end of file
import '@fortawesome/fontawesome-free/css/all.css'
import 'material-design-icons-iconfont/dist/material-design-icons.css'
import Vue from 'vue'
import Vuex from 'vuex';
Vue.use(Vuex);
import store from '@/store';
import VueResource from 'vue-resource';
Vue.use(VueResource);
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
import App from './App'
import router from './router'
// cookies
import VueCookies from 'vue-cookies'
Vue.use(VueCookies)
import mavonEditor from 'mavon-editor'
Vue.use(mavonEditor)
import 'mavon-editor/dist/css/index.css'
import "@/services/routeblocking";
Vue.config.productionTip = false
import Echarts from "echarts"
Vue.prototype.$chart = Echarts
import ECharts from 'vue-echarts/components/ECharts'
Vue.component('chart', ECharts)
// i18n
import VueI18n from 'vue-i18n'
Vue.use(VueI18n) // 通过插件的形式挂载
const i18n = new VueI18n({
locale: 'zh', // 语言标识 //this.$i18n.locale // 通过切换locale的值来实现语言切换
messages: {
'zh': require('./i18n/language-zh'), //引入language-zh.js language-en,js
'en': require('./i18n/language-en')
}
})
// 超级打印
import Print from 'vue-print-nb'
Vue.use(Print);
Vue.prototype.echartsResize = (ref) =>
{
window.onresize = function ()
{
for (var i = 0; i < ref.length; i++) {
ref[i].resize()
}
}
};
import api from '@/request/api.js'
Vue.prototype.$api = api;
new Vue({
router,
store,
i18n,
render: h => h(App)
}).$mount("#app")
<template>
<div>
index
<el-table
:data="tableData"
style="width: 100%">
<el-table-column
prop="date"
label="日期"
width="180">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column
prop="address"
label="地址">
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data: () => ({
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}],
}),
created() {},
methods: {},
};
</script>
<style scoped>
</style>
// 容器服务
import common from '@/request/api/common';
import event from '@/request/api/event';
import system from '@/request/api/system';
import contact from '@/request/api/contact';
import personcontrol from '@/request/api/personcontrol';
import gis from '@/request/api/gis';
export default {
common,
event,
system,
contact,
personcontrol,
gis
}
\ No newline at end of file
import axios from '@/request/http'; // 导入http中创建的axios实例
import services from "@/services";
import qs from 'qs'; // 根据需求是否导入qs模块
const common = {
tablePagination(urlParams) {
return axios.get(`${urlParams.url}`,{
params:urlParams.params
});
},
getNowMenu(params) {
return axios.get(`/apaas/backmgt/menu/user/menu?teamName=${params.teamName}`);
},
deleteFile(params) {
return axios.delete(`/bgfile/bg/delete?url=${params.file_path}`);
},
logout(params) {
return axios.get(`/bgiam/api/logout?ReturnUrl=${params.return_url}`)
},
getNowUser() {
return axios.get(`/bgiam/api/getCurUser`);
},
headersave(data) {
return axios.post(`/sjgl/api/events/setlistview`,data);
},
getheaders(params) {
return axios.get(`/sjgl/api/events/getlistviewsetting?name=${params.name}`);
},
//菜单管理
getMenuList(){
return axios.get(`${services.systemapi}/menu/tree`);
},
//当前用户菜单
getUserMenuList(){
return axios.get(`/system/api/menu/userMenu`);
},
}
export default common;
\ No newline at end of file
import axios from '@/request/http'; // 导入http中创建的axios实例
import services from "@/services";
const contact = {
// 获取列表
contactList (data)
{
//?page=1&limit=5&search=
return axios.get(`/jczl/app/rest/equip/list?page=${data.page}&limit=${data.limit}&search=${data.search ? data.search : ''}`);
},
equipmentInfo (equipmentId)
{
return axios.get(`/jczl/app/rest/equip/object/${equipmentId}`);
},
groupList (data)
{
return axios.get(`/jczl/app/rest/group/groupList?page=${data.page}&limit=${data.limit}&name=${data.search ? data.search : ''}`);
},
addGroup (data)
{
return axios.post(`/jczl/app/rest/group/addGroup`, data);
},
delGroup (id)
{
return axios.get(`/jczl/app/rest/group/delGroup?id=` + id);
}
}
export default contact;
\ No newline at end of file
import axios from '@/request/http'; // 导入http中创建的axios实例
import services from "@/services";
import qs from 'qs'; // 根据需求是否导入qs模块
const event = {
// 新增事件
dialogSubmitjs(data) {
return axios.post(`${services.event}/add`, data);
},
// 事件详情
detailInfo(urlParams, user) {
if (user == 3 || user == 4) {
return axios.get(`/sjgl/api/village/events/detail?event_id=${urlParams.event_id}`);
} else {
return axios.get(`${services.event}/detail?event_id=${urlParams.event_id}`);
}
},
//事件编辑详情提交
editDetailSubmit(data, user) {
if (user == 1) {
return axios.post(`${services.event}/update/event/waitaccept`, data);
} else if (user == 2) {
return axios.post(`${services.event}/update/event/waitdispatch`, data);
} else if (user == 3) {
return axios.post(`/sjgl/api/village/events/update/event/waitaccept`, data);
} else if (user == 4) {
return axios.post(`/sjgl/api/village/events/update/event/waitdispatch`, data);
}
},
//撤销,受理
dialogSubmitRevoke(urlParams, data) {
console.log(urlParams)
if (urlParams.nextstep == '撤销') {
console.log('撤销')
return axios.post(`${services.event}/cancel`, data);
} else if (urlParams.nextstep == '受理' && urlParams.behavior <= 1 && urlParams.type == '转派遣') {
console.log('受理---市')
return axios.post(`${services.event}/accept`, data);
} else if (urlParams.nextstep == '受理' && urlParams.type == '退回') {
console.log('退回')
return axios.post(`/sjgl/api/events/back/village`, data);
} else if (urlParams.nextstep == '受理' && urlParams.type == '转派遣' && (urlParams.behavior == 2 || urlParams.behavior == 3 || urlParams.behavior == 4)) {
console.log('转派遣----乡')
return axios.post(`/sjgl/api/village/events/accept`, data);
} else if (urlParams.nextstep == '受理' && urlParams.type == '申请退回' && urlParams.behavior == 2) {
console.log('申请退回')
return axios.post(`/sjgl/api/village/events/back/accepttocounty`, data);
} else if (urlParams.nextstep == '受理' && urlParams.behavior == 5) {
console.log('同意自办自结')
return axios.post(`/sjgl/api/village/events/selfcase/accept`, data);
} else if (urlParams.nextstep == '拒绝') {
console.log('拒绝')
return axios.post(`/sjgl/api/village/events/refuse`, data);
}
},
//派遣,退回
dialogSubmitDispatch(urlParams, data) {
console.log(data)
console.log(urlParams)
if (urlParams.type == '派遣' && urlParams.user == 2 && urlParams.nextstep == '派遣') {
// console.log('市-派遣')
return axios.post(`${services.event}/dispatch`, data);
} else if (urlParams.nextstep == '退回' && urlParams.user == 2) {
// console.log('市-退回')
return axios.post(`${services.event}/back/accepts`, data);
} else if (urlParams.type == '转乡镇受理' && urlParams.user == 2) {
// console.log('市-转乡镇受理')
return axios.post(`${services.event}/tovillageaccept`, data);
} else if (urlParams.type == '派遣' && urlParams.user == 4 && urlParams.nextstep == '派遣') {
// console.log('乡-派遣')
return axios.post(`/sjgl/api/village/events/dispatch`, data);
} else if (urlParams.nextstep == '派遣' && urlParams.type == '转市级受理' && urlParams.user == 4) {
// console.log('乡-转市级受理')
return axios.post(`/sjgl/api/village/events/dispatchto/county`, data);
} else if (urlParams.nextstep == '退回' && urlParams.user == 4) {
// console.log('乡-退回')
return axios.post(`/sjgl/api/village/events/back/accepts`, data);
}
},
//结案审核
dialogSubmitToclose(urlParams, data) {
if (urlParams.type == '结案' && urlParams.user == 1) {
console.log('市-结案')
return axios.post(`${services.event}/finish`, data);
} else if (urlParams.type == '返工' && urlParams.user == 1) {
console.log('市-返工')
return axios.post(`${services.event}/back/dispatchs`, data);
} else if (urlParams.type == '结案' && urlParams.user == 3) {
console.log('乡-结案')
return axios.post(`/sjgl/api/village/events/finish`, data);
} else if (urlParams.type == '返工' && urlParams.user == 3) {
console.log('乡-返工')
return axios.post(`/sjgl/api/village/events/back/dispatchs`, data);
}
},
//审核
dialogSubmitCheck(urlParams, data) {
if (urlParams.type == '同意') {
return axios.post(`${services.event}/toaudit/pass`, data);
} else {
return axios.post(`${services.event}/toaudit/refuse`, data);
}
},
// 地图拾点
mapGetPoint(keywords) {
return axios.get(`https://restapi.amap.com/v3/place/text?keywords=${keywords}&city=320481&citylimit=true&output=json&offset=20&page=1&key=966cdd04fb6b722679bc24c5d630f04d`);
},
// 选择辖区列表
codeInfo() {
return axios.get(`${services.event}/area/listall`);
},
// 坐标点获取该点网格id
xyToGrid(x, y) {
return axios.get(`${services.gis}/xyToGrid?x=${x}&y=${y}`);
},
// 选择事件类型
eventTypeInfo() {
return axios.get(`/system/api/eventtypes/tree`);
},
// 立案条件-编辑页面
eventTypeInfo_latj(urlParams) {
return axios.get(`/system/api/eventtypes/latj?cate_id=${urlParams.cate_id}`);
},
// 处置时限-编辑页面
eventTypeInfo_czsj(urlParams) {
return axios.get(`/system/api/eventtypes/czsx?latj_id=${urlParams.latj_id}`);
},
// 选择处置人
handleuserInfo() {
return axios.get(`/system/api/department/list?limit=0`);
},
// 选择场所类型
placeTypeInfo() {
return axios.get(`/system/api/eventtypes/tree`);
},
}
export default event;
\ No newline at end of file
import axios from '@/request/http'; // 导入http中创建的axios实例
import services from "@/services";
import qs from 'qs'; // 根据需求是否导入qs模块
const event = {
}
export default event;
\ No newline at end of file
import axios from '@/request/http'; // 导入http中创建的axios实例
import services from "@/services";
import qs from 'qs'; // 根据需求是否导入qs模块
const personcontrol = {
typeInfo() {
return axios.get(`/sjgl/api/ffry/ffType`);
},
operateIgnore(data) {
return axios.post(`/sjgl/api/ffry/ignore/${data.id}`);
},
dialogSubmitjs(data,ids) {
return axios.post(`/sjgl/api/ffry/upEvent/${ids.id}`, data);
},
nondetails(data) {
return axios.get(`/sjgl/api/ffry/detail/${data.id}`);
},
}
export default personcontrol;
\ No newline at end of file
import axios from '@/request/http'; // 导入http中创建的axios实例
import services from "@/services";
import qs from 'qs'; // 根据需求是否导入qs模块
const system = {
//菜单管理
getMenuList(){
return axios.get(`${services.systemapi}/menu/tree`);
},
getMenu(query){
return axios.get(`${services.systemapi}/menu/object/${query.id}`);
},
addMenu(data){
return axios.post(`${services.systemapi}/menu`,data);
},
editMenu(query,data){
return axios.put(`${services.systemapi}/menu/object/${query.id}`,data);
},
delMenu(query){
return axios.delete(`${services.systemapi}/menu/object/${query.id}`);
},
positionMenu(params){
return axios.post(`${services.systemapi}/menu/order`,params);
},
// 事件类型管理
getEventTypeList(payload) {
return axios.get("/system/api/eventtypes/list", payload);
},
deleteEventTypeList(payload) {
return axios.post("/system/api/eventtypes/batchdel", payload);
},
updaterEventTypeList(payload) {
return axios.post("/system/api/eventtypes/update", payload);
},
getEventTypeDetail(payload) {
return axios.get("/system/api/eventtypes/detail", payload);
},
// 选择今日排班,明日排班
planersInfo() {
return axios.get(`/system/api/user/list?limit=0`);
},
}
export default system;
\ No newline at end of file
/**
* axios封装
* 请求拦截、响应拦截、错误统一处理
*/
import axios from 'axios';
import router from '../router';
import store from '../store/index';
function getCookie(name) {
var strCookie = document.cookie;
var arrCookie = strCookie.split("; ");
for (var i = 0; i < arrCookie.length; i++) {
var arr = arrCookie[i].split("=");
if (arr[0] == name) return arr[1];
}
return "";
}
const tip = msg => {
console.log(msg)
}
/**
* 跳转登录页
* 携带当前页面路由,以期在登录页面完成登录后返回当前页面
*/
// const toLogin = () => {
// router.replace({
// path: '/awecloud/login/#/',
// query: {
// redirect: router.currentRoute.fullPath
// }
// });
// }
/**
* 请求失败后的错误统一处理
* @param {Number} status 请求失败的状态码
*/
const errorHandle = (status, other) => {
// 状态码判断
switch (status) {
case 400: tip('请求错误(400)'); break;
// 401: 未登录状态,跳转登录页
case 401:
// toLogin();
break;
// 403 token过期
// 清除token并跳转登录页
case 403:
tip('登录过期,请重新登录');
localStorage.removeItem('token');
store.commit('loginSuccess', null);
setTimeout(() => {
// toLogin();
}, 1000);
break;
case 404: tip('请求的资源不存在'); break;
case 408: tip('请求超时(408)');
case 500: tip('服务器错误(500)');
case 501: tip('服务未实现(501)');
case 502: tip('网络错误(502)');
case 503: tip('服务不可用(503)');
case 504: tip('网络超时(504)');
case 505: tip('HTTP版本不受支持(505)');
default: tip(`连接出错,${other}`);
}
}
// 创建axios实例
var instance = axios.create({ timeout: 1000 * 12 });
// 设置post请求头
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
/**
* 请求拦截器
* 每次请求前,如果存在token则在请求头中携带token
*/
instance.interceptors.request.use(
config => {
// const token = store.state.token;
// var token = 'Basic cm9vdA%3D%3D'
// token && (config.headers.Authorization = token);
// const token = store.state.token;
// var token = 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZXh0IjoibGltaW5nZSIsInR5cGUiOiJ1c2VyIn0.YUPQ-3nttgfRGOUV4T06JZ6osH46nZ0UUolYdEBhvSQ'
// token && (config.headers.Authorization = token);
// if(config.headers.Authorization!="headers"){
// const token = process.env.DRONE_TOKEN ? process.env.DRONE_TOKEN : Conf.token;
// var Authorization = `Bearer ${token}`
// token && (config.headers.Authorization = Authorization);
// }else{
// config.headers.Authorization = '';
// }
return config;
},
error => Promise.error(error))
// 响应拦截器
instance.interceptors.response.use(
// 请求成功
res => res.status === 200|| res.status === 201? Promise.resolve(res) : Promise.reject(res),
// 请求失败
error => {
const { response } = error;
if (response) {
// 请求已发出,但是不在2xx的范围
errorHandle(response.status, response.data.errmessage);
return Promise.reject(response);
}
});
export default instance;
import Vue from 'vue'
import Router from 'vue-router'
// 解决重复点击导航路由报错
const originalPush = Router.prototype.push;
Router.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err);
}
Vue.use(Router)
export default new Router({
// base: "/ldzh/ui",
// mode: "history",
routes: [
{
path: "/",
component: () => import("@/pages/index"),
}
]
})
class TsdkClient
{
constructor()
{
this.createTsdkClient();
this.ecUserName = "0519779";
this.isbookConference = false;
};
createTsdkClient ()
{
var that = this;
var tsdkJsInitParam = {
invokeMode: 1,
svrAddr: "localhost.cloudec.huaweicloud.com",
svrPort: "7684",
ssl: 1
};
this.isNoLogin = false;
var listeners = {
OnEvtAuthSuccess: (ret) =>
{
console.debug('auth success!');
console.log("auth success!" + JSON.stringify(ret))
},
OnEvtLoginSuccess: (ret) =>
{
console.info('login success!' + JSON.stringify(ret));
that.isNoLogin = true;
console.log("login success!")
},
OnEvtAuthFailed: (ret) =>
{
that.isNoLogin = false;
console.log(ret);
console.log("OnEvtAuthFailed!")
},
OnEvtLogoutSuccess: (ret) =>
{
console.log("logout Sucesss!")
},
OnEvtLogoutFailed: (ret) =>
{
console.log('logout failed!')
},
OnEvtCallIncoming: (ret) =>
{
that.callInComingId = ret.param.callId
console.log("Please answer" + JSON.stringify(ret))
if (that.isbookConference) {
that.confId = ret.param.confId;
that.acceptCall(ret.param.callInfo.callId, ret.param.callInfo.isVideoCall);
that.requestChairman();
}
},
OnEvtOpenVideoReq: (ret) =>
{
console.log("Audio to video")
},
OnEvtCloseVideoInd: (ret) =>
{
console.log("video to audio")
},
OnEvtOpenVideoInd: (ret) =>
{
console.log("video to audio")
},
OnEvtRefuseOpenVideoInd: (ret) =>
{
console.log("rejected!!!")
},
OnEvtBookConfResult: (ret) =>
{
console.log("book join successs" + JSON.stringify(ret))
},
OnEvtQueryConfListResult: (ret) =>
{
that.consfList = ret
},
OnEvtJoinConfResult: (ret) =>
{
console.log("join sunccess" + JSON.stringify(ret))
that.handle = ret.param.handle
},
OnEvtQueryConfListResult: (ret) =>
{
that.callbackDatas = ret
},
OnError: function (ret)
{
if (390000003 == ret.info.errorCode) {
console.warn("Memory usage over 80%, please close the unrelated program.");
} else {
console.log(JSON.stringify(ret));
}
},
/***************************************************监听事件*****************************************************/
OnEvtCallOutgoing: (ret) =>//发送呼叫
{
console.log("呼叫信息发送成功!")
that.callId = ret.param.callId
if (that.OnCallOutgoing) {
that.OnCallOutgoing(ret);
}
console.log(ret)
},
OnEvtCallEnded: (ret) =>//呼叫挂断
{
console.log("通话连接挂断成功!")
that.callId = "";
if (that.OnCallEnded) {
that.OnCallEnded(ret);
}
console.log(ret)
},
OnEvtUiPluginClickHangupCall: (ret) =>//UI插件触发挂断呼叫事件
{
console.log("UI插件挂断呼叫!")
that.callId = ret.param.callId;
console.log(ret)
that.endCall();
//that.callId = "";
},
OnEvtUiPluginClickLeaveConf: (ret) =>//UI插件触发离开会议事件
{
console.log("UI插件离开会议!")
//that.callId = ret.param.callId;
console.log(ret)
that.endCall();
//that.callId = "";
},
OnEvtUiPluginClickEndConf: (ret) =>//UI插件触发结束会议事件
{
console.log("UI插件结束会议!")
//that.callId = ret.param.callId;
console.log(ret)
that.endCall();
//that.callId = "";
},
OnEvtCallConnected: (ret) =>//通话连接成功
{
console.log("通话连接建立!")
that.callId = ret.param.callId;
if (that.OnCallConnected) {
that.OnCallConnected(ret);
}
console.log(ret)
},
OnEvtUiPluginClickMuteMic: (ret) =>//UI插件触发闭音麦克风
{
console.log("UI插件闭音麦克风!")
console.log(ret)
that.tsdkClient.muteMic(ret.param.callId, !ret.param.micBtnStateInfo.isMute, function (data)
{
console.log("--进入muteMic的回调--")
console.log(data);
})
},
OnEvtUiPluginClickMuteSpeaker: (ret) =>//UI插件触发闭音扬声器
{
console.log("UI插件闭音扬声器!")
console.log(ret)
that.tsdkClient.muteSpeaker(ret.param.callId, !ret.param.speakerBtnStateInfo.isMute, function (data)
{
console.log("--进入muteMic的回调--")
console.log(data);
})
},
OnEvtUiPluginClickMuteCamera: (ret) =>//UI插件触发闭音摄像头
{
console.log("UI插件闭音摄像头!")
console.log(ret)
if (!ret.param.cameraBtnStateInfo.isMute) {
that.tsdkClient.delVideo(ret.param.callId, function (data)
{
console.log("--进入muteMic的回调--")
console.log(data);
})
} else {
that.tsdkClient.addVideo(ret.param.callId, function (data)
{
console.log("--进入muteMic的回调--")
console.log(data);
})
}
},
};
this.tsdkClient = terminalSDK.createTsdkClient(tsdkJsInitParam, listeners);
if (this.tsdkClient == null) {
console.log("createTsdkClient失败");
}
}
LoginTSDK (user_id)
{
var that = this;
if (user_id == "admin") {
this.ecUserName = "0519780";
}
console.log("当前登录设备:" + this.ecUserName);
setTimeout(() =>
{
console.log("--进入setTimeout--")
that.setConfigParam();
}, 3000);
}
setConfigParam ()
{
var that = this;
var configParam = {
logParam: 1,
tlsParam: 1,
proxyParam: 1,
serviceSecurityParam: 1,
iptServiceConfigParam: 1,
localAddress: 1,
filePathInfo: 1,
dpiInfo: 1,
networkInfo: 1,
ipCallSwitch: 0,
confCtrlParam: 1,
sendDataSwitch: 1,
baseInfoParam: 1,
frameParam: 1,
visibleInfo: 1
}
console.log("--进入setConfigParam--")
var callback = function (ret)
{
console.log("setConfigParam_callback");
console.log(ret)
that.init();
}
this.tsdkClient.setConfigParam(configParam, callback);
console.log("--setConfigParam执行完毕--")
}
init ()
{
var that = this;
var tsdkAppInfoParam = {
"clientType": 0,
"productName": "SoftClient on Desktop",
"deviceSn": "1",
"supportAudioAndVideoCall": 1,
"supportAudioAndVideoConf": 1,
"supportDataConf": 1,
"supportCtd": 0,
"supportIm": 0,
"supportRichMediaMessage": 0,
"supportEnterpriseAddressBook": 0,
"useUiPlugin": 1,
"isWsInvokeMode": 1,
};
var callbacks = function (res) { }
this.tsdkClient.init(tsdkAppInfoParam, (res) =>
{
console.log("init_callback");
console.log(res)
if (res.result == 0) {
console.log("init success!")
}
that.login();
});
}
login ()
{
var that = this;
console.log(this.isNoLogin)
var tsdkLoginParam = {
"userId": 1,
"authType": 0,
"userName": this.ecUserName,//SC上分配的预定义节点
"password": "huawei123",
"userTiket": "1",
"serverType": 2,//SMC服务器
"serverVersion": "",
"serverAddr": "2.49.137.84",//SMC服务器地址
"serverPort": 5060 // 5061
};
var callbacks = function (res)
{
console.log("login_callback");
console.log(res)
}
console.debug('login begin');
console.log(tsdkLoginParam)
this.tsdkClient.login(tsdkLoginParam, callbacks);
// console.debug('login ret:' + callbacks);
// passwd = "";
// proxyPassword = "";
// proxyParam = "";
// document.getElementById("call").style.display = "block";
}
//开始呼叫(呼叫的号码,是否视频呼叫)
startCall (calleeNum, isVideoCall)
{
console.log("--进入startCall--")
this.tsdkClient.startCall(calleeNum, isVideoCall, function (data)
{
//call_Id = data.param.callId
console.log("--进入startCall的回调--")
console.log(data);
if (data.result) {
}
});
}
//结束呼叫
endCall ()
{
var that = this;
this.tsdkClient.endCall(this.callId, function (data)
{
console.log("结束通话");
console.log(data);
that.callId = "";
});
}
//加入会议(会议id,是否视频会议)
acceptCall (callId, isVideoCall)
{
console.log("--acceptCall--")
this.callId = callId;
this.tsdkClient.acceptCall(callId, isVideoCall, function (data)
{
//call_Id = data.param.callId
console.log("--进入acceptCall的回调--")
console.log(data);
if (data.result) {
}
});
}
//创建会议
bookConference (users)
{
var attendeeList = [];
attendeeList.push({
displayName: "管理员",
number: this.ecUserName,
role: 0,
sms: "",
email: ""
})
users.forEach(function (item)
{
var attendeeParam = {}
attendeeParam.displayName = item.userName
attendeeParam.number = item.equipCode
attendeeParam.role = 0
attendeeParam.smsPhone = ""
attendeeParam.email = ""
attendeeList.push(attendeeParam)
})
var bookConfInfo = {
welcomePrompt: 2,//入会提示音类型
isMultiStreamConf: 0,//是否为多流视频会议,预留
language: 1,//会议的默认语言
isHdConf: 1,//是否高清视频会议
isAutoMute: 1,//非主席在入会后是否自动闭音
attendeeNum: 2,//与会者数量
confType: 0,//会议类型
recordMode: 0,//会议媒体录制模式
isAutoRecord: 0,//会议是否自动启动录制,预留
enterPrompt: 1,//有成员入会提示音类型
groupUri: "",//群组uri
attendeeList: attendeeList,//与会者列表
startTime: null,//会议开始时间,格式:YYYY-MM-DD HH:MM,立即会议时无需填写
confEncryptMode: 0,//会议媒体加密模式
duration: 60,//120分钟
confMediaType: 1,//视频
reminder: 0,//会议提醒方式
size: 2,//会议方数
leavePrompt: 0,//有成员离会提示音类型
isAutoProlong: 1,//是否自动延长会议
subject: "多人视频会议",//会议主题
}
console.log("发起会议");
console.log(bookConfInfo);
var that = this;
this.tsdkClient.bookConference(bookConfInfo, function (ret)
{
that.isbookConference = true;
console.log("bookConference callback" + JSON.stringify(ret))
})
}
//结束会议
endConference ()
{
var that = this;
this.tsdkClient.endConference(this.confId, function (ret)
{
console.log("endConference callback" + JSON.stringify(ret))
})
}
//申请主席
requestChairman ()
{
var that = this;
this.tsdkClient.requestChairman(this.confId, "", function (ret)
{
console.log("requestChairman callback" + JSON.stringify(ret))
})
}
}
export default TsdkClient;
let popupDomIndex = 1
class CustomPopup {
constructor(view, wkid, coord, appendDom, dom,offSet=[0,0]) {
this.view = view;
this.wkid = wkid;
this.appendDom = appendDom;
this.dom = dom;
this.coord = coord;
this.offSet = offSet //[x,y]
// this.domIndex = popupDomIndex //多弹窗时候 用于操作对应的弹窗
}
init() {
let _this = this
_this.view.when(function () {
let appendDom = typeof (_this.appendDom) === 'string' ? document.getElementById(_this.appendDom) : _this.appendDom
let fixedDom = document.createElement("div")
fixedDom.id = "cus_popup_id" + popupDomIndex++
fixedDom.className = "cus_popup_cls"
// fixedDom.setAttribute("style","position:absolute;z-index:999")
let isDom = typeof (_this.dom) === 'string' ? true : false
let dom;
if (isDom) {
dom = document.createElement('div')
dom.id = 'popupId' + _this.dom
dom.className = 'popup' + _this.dom
dom.setAttribute("style", "width:200px;height:200px;background:red;")
} else {
dom = _this.dom
}
let mapPoint = {
x: parseFloat(_this.coord[0]),
y: parseFloat(_this.coord[1]),
spatialReference: {
wkid: "4326",
},
};
fixedDom.appendChild(dom)
appendDom.appendChild(fixedDom)
let offSetLen = [dom.offsetWidth,dom.offsetHeight]
let screenPoint = _this.view.toScreen(mapPoint);
_this.locationPopup(fixedDom, screenPoint,offSetLen) //固定位置
_this.view.watch("extent", function () {
_this.upLocation(fixedDom, _this.coord,offSetLen);
});
_this.view.watch("rotation", function () {
_this.upLocation(fixedDom, _this.coord,offSetLen);
});
})
}
show() {
//先隐藏其他的弹窗
//再显示现有的弹窗
}
close() {
//关闭弹窗
let popupParent = document.getElementById("cus_popup_id")
if(popupParent){
popupParent.removeChild(popupParent.childNodes[0])
}
}
locationPopup(dom, screenPoint,offSetLen) {
let theDom = dom;
let screen_x = screenPoint.x - offSetLen[0]/2 - this.offSet[0]
let screen_y = screenPoint.y - offSetLen[1] - this.offSet[1]
console.log(screen_x)
theDom.setAttribute(
"style",
`position:absolute;z-index:999;transform:translate3d(${screen_x}px,${screen_y}px,0)`
);
}
upLocation(dom, point,offSetLen) {
// let theDom = dom;
let mapPoint = {
x: parseFloat(point[0]),
y: parseFloat(point[1]),
spatialReference: {
wkid: 4326
}
};
let screenPoint = this.view.toScreen(mapPoint);
let screen_x = screenPoint.x - offSetLen[0]/2 - this.offSet[0]
let screen_y = screenPoint.y - offSetLen[1] - this.offSet[1]
dom.setAttribute(
"style",
`position:absolute;z-index:999;transform:translate3d(${screen_x}px,${screen_y}px,0)`
);
}
}
export { CustomPopup }
// 导出页面为PDF格式
import html2Canvas from "html2canvas";
import JsPDF from "jspdf";
export default {
install(Vue, options) {
Vue.prototype.getPdf = function(id, title,imgw,top) {
return new Promise((resolve, reject) => {
let get1id = id.replace('#','')
debugger
html2Canvas(document.querySelector(id), {
allowTaint: true,
backgroundColor: 'white',
useCORS: true, //支持图片跨域
scale: 1, //设置放大的倍数
height: document.getElementById(get1id).scrollHeight+200,
windowHeight: document.getElementById(get1id).scrollHeight+200
}).then(function(canvas) {
debugger
let contentWidth = canvas.width;
let contentHeight = canvas.height;
let pageHeight = (contentWidth / 592.28) * 841.89;
let leftHeight = contentHeight;
let position = top;
const imgWidth = imgw;
let imgHeight = (imgw / contentWidth) * contentHeight;
let pageData = canvas.toDataURL("image/jpeg", 1.0);
// let PDF = new JsPDF("", "pt");
let PDF = new JsPDF("", "pt", "a4");
// PDF.addImage(pageData, "JPEG", 0, 0, contentWidth, contentHeight);
if (leftHeight < pageHeight) {
PDF.addImage(pageData, "JPEG", 65, 10, imgWidth, imgHeight);
} else {
while (leftHeight > 0) {
PDF.addImage(pageData, "JPEG", 65, position, imgWidth, imgHeight);
leftHeight -= pageHeight;
position -= 841.89;
if (leftHeight > 0) {
PDF.addPage();
}
}
}
PDF.save(title + ".pdf");
resolve(11);
});
});
};
}
};
module.exports.timestamp = function (timestamp) {
// 获取当前时间戳(毫秒)(new Date()).getTime()
// 毫秒->秒 /1000
let date = Math.floor(new Date().getTime() / 1000);
let time = date - timestamp;
if (time == 0) {
return 0;
} else if (time < 60) {
return time + "";
} else if (time / 60 < 60) {
return Math.round(time / 60) + "分钟前";
} else if (time / 60 / 60 < 24) {
return Math.round(time / 60 / 60) + "小时前";
} else if (time / 60 / 60 / 24 < 24) {
return Math.round(time / 60 / 60 / 24) + "天前";
} else if (time / 60 / 60 / 24 / 7 < 7) {
return Math.round(time / 60 / 60 / 24) + "周前";
}
}
module.exports.enqueuedtimes = function (finishedtime, starttime) {
let time = finishedtime - starttime;
if (time < 60 && time > 0) {
return time + "";
} else if (time / 60 < 60 && time > 0) {
return parseInt(time / 60) + "分钟" + (time % 60) + "";
} else if (time < 0) {
return "--";
}
}
module.exports.yuntimes = function (finishedtime, starttime) {
if (!finishedtime || !starttime) {
return "00:00"
}
let time = finishedtime - starttime;
var str = ""
if (time < 60 && time > 0) {
str += "00:"
if (time < 10) { str += "0" + time } else { str += time }
} else {
var minute = parseInt(time / 60)
var seconds = time % 60
console.log("m==>", minute, "| s==>", seconds)
if (minute < 10) {
str += "0" + minute
} else {
str += minute
}
str += ":"
if (seconds < 10) { str += "0" + seconds } else { str += seconds }
}
return str
}
module.exports.dateFormat = function (fmt, timestamp) {
let date = new Date(timestamp);
let ret;
const opt = {
"Y+": date.getFullYear().toString(), // 年
"m+": (date.getMonth() + 1).toString(), // 月
"d+": date.getDate().toString(), // 日
"H+": date.getHours().toString(), // 时
"M+": date.getMinutes().toString(), // 分
"S+": date.getSeconds().toString() // 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
};
};
return fmt;
}
module.exports.GetProperty = function (obj, prop) {
if (!obj) return null;
let res = obj;
if (prop) {
let props = prop.split('.');
for (let i = 0; i < props.length; i++) {
res = res[props[i]];
if (typeof res == "undefined" || res == null) {
return null;
}
}
}
return res;
}
module.exports.GetTimeDifference = function (stop_date) {
let nowdate = new Date();
let stoopdate = new Date(stop_date);
return nowdate > stoopdate;
}
module.exports.dateStringTransform = function (date) {
/*
input: 2020-06-12T16:38:11+08:00
output: 2020-06-12 16:38:11
*/
if (String(date).indexOf("T") != -1) {
let arr = date.split("T");
let t = arr[1];
let tarr = t.split('.000');
let marr = tarr[0].split(':');
let h = parseInt(marr[0]) >= 10 ? parseInt(marr[0]) : "0" + parseInt(marr[0]);
let m = parseInt(marr[1]) >= 10 ? parseInt(marr[1]) : "0" + parseInt(marr[1]);
let s = parseInt(marr[2]) >= 10 ? parseInt(marr[2]) : "0" + parseInt(marr[2]);
let dd = arr[0] + " " + h + ":" + m + ":" + s;
return dd;
} else {
return date;
}
}
//时间戳转时间格式
module.exports.formatDateTime_date = function (date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
}
\ No newline at end of file
module.exports = {
"event": "/sjgl/api/events",
"gis": "/sjgl/api/gis",
"systemapi": "/system/api",
};
\ No newline at end of file
/**
* wgs84 地心坐标系 GPS原始知坐标体系。在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密。GoogleEarth及GPS芯片使用
* bd09 百度
* gcj02 火星坐标系 高德、腾讯、Google中国地图使用
*/
let locationUtils = {};
var PI = 3.14159265358979324
var x_pi = PI * 3000.0 / 180.0;
function transformLat (x, y) {
var ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x))
ret += (20.0 * Math.sin(6.0 * x * PI) + 20.0 * Math.sin(2.0 * x * PI)) * 2.0 / 3.0
ret += (20.0 * Math.sin(y * PI) + 40.0 * Math.sin(y / 3.0 * PI)) * 2.0 / 3.0
ret += (160.0 * Math.sin(y / 12.0 * PI) + 320 * Math.sin(y * PI / 30.0)) * 2.0 / 3.0
return ret
}
function transformLon (x, y) {
var ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x))
ret += (20.0 * Math.sin(6.0 * x * PI) + 20.0 * Math.sin(2.0 * x * PI)) * 2.0 / 3.0
ret += (20.0 * Math.sin(x * PI) + 40.0 * Math.sin(x / 3.0 * PI)) * 2.0 / 3.0
ret += (150.0 * Math.sin(x / 12.0 * PI) + 300.0 * Math.sin(x / 30.0 * PI)) * 2.0 / 3.0
return ret
}
function locationDelta (lon, lat) {
var a = 6378245.0; // a: 卫星椭球坐标投影到平面地图坐标系的投影因子。
var ee = 0.00669342162296594323; // ee: 椭球的偏心率。
var dLat = transformLat(lon - 105.0, lat - 35.0)
var dLon = transformLon(lon - 105.0, lat - 35.0)
var radLat = lat / 180.0 * PI
var magic = Math.sin(radLat)
magic = 1 - ee * magic * magic
var sqrtMagic = Math.sqrt(magic)
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * PI)
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * PI)
return [dLon, dLat]
}
locationUtils.gcj02Towgs84 = function (lng, lat) {
var a = 6378245.0; // a: 卫星椭球坐标投影到平面地图坐标系的投影因子。
var ee = 0.00669342162296594323; // ee: 椭球的偏心率。
var lat = +lat;
var lng = +lng;
var dlat = transformLat(lng - 105.0, lat - 35.0);
var dlng = transformLon(lng - 105.0, lat - 35.0);
var radlat = lat / 180.0 * PI;
var magic = Math.sin(radlat);
magic = 1 - ee * magic * magic;
var sqrtmagic = Math.sqrt(magic);
dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
var mglat = lat + dlat;
var mglng = lng + dlng;
return [lng * 2 - mglng, lat * 2 - mglat]
}
locationUtils.gcj02Tobd09 = function (lon, lat) {
var x = lon
var y = lat
var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi)
var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi)
var bdLon = z * Math.cos(theta) + 0.0065
var bdLat = z * Math.sin(theta) + 0.006
return [bdLon, bdLat]
}
locationUtils.bd09Towgs84 = function (lng, lat) {
let bd09ToGcj02Location = locationUtils.bd09Togcj02(lng, lat)
let gcj02towgs84Location = locationUtils.gcj02Towgs84(bd09ToGcj02Location[0], bd09ToGcj02Location[1])
return gcj02towgs84Location
}
locationUtils.bd09Togcj02 = function(bdLon, bdLat) {
var x = bdLon - 0.0065
var y = bdLat - 0.006
var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
var gcjLon = z * Math.cos(theta);
var gcjLat = z * Math.sin(theta)
return [gcjLon, gcjLat]
}
locationUtils.wgs84Togcj02 = function (lon, lat) {
var lat = +lat;
var lon = +lon;
var d = locationDelta(lon, lat);
return [lon + d[0], lat + d[1]]
}
locationUtils.wgs84Tobd09 = function (lon, lat) {
var lat = +lat;
var lon = +lon;
let gcj02 = locationUtils.wgs84Togcj02(lon, lat)
return locationUtils.gcj02Tobd09(gcj02[0], gcj02[1])
}
export default locationUtils;
\ No newline at end of file
import esriLoader from "esri-loader";
esriLoader.loadScript({
url: window.location.origin + "/api_4.16/init.js"
// url: "https://js.arcgis.com/4.12/"
});
esriLoader.loadCss( window.location.origin + "/api_4.16/esri/css/main.css");
// window.dojoConfig = {
// // tell Dojo where to load other packages
// async: true,
// tlmSiblingOfDojo: false,
// packages: [
// {
// location: "/sjgl/ui/static/js/fcl",
// name: 'fcl'
// }
// ],
// has: {
// "esri-promise-compatibility": 1 // enable native promises and remove the warning about using when() instead of then(). https://developers.arcgis.com/javascript/latest/guide/release-notes/index.html#improved-compatibility-with-javascript-promises
// }
// };
export default esriLoader;
\ No newline at end of file
// 取得cookie
function getCookie(name) {
var nameEQ = name + '='
var ca = document.cookie.split(';') // 把cookie分割成组
for (var i = 0; i < ca.length; i++) {
var c = ca[i] // 取得字符串
while (c.charAt(0) == ' ') { // 判断一下字符串有没有前导空格
c = c.substring(1, c.length) // 有的话,从第二位开始取
}
if (c.indexOf(nameEQ) == 0) { // 如果含有我们要的name
return unescape(c.substring(nameEQ.length, c.length)) // 解码并截取我们要值
}
}
return false
}
// 清除cookie
function clearCookie(name) {
setCookie(name, "", -1);
}
// 设置cookie
function setCookie(name, value, seconds) {
seconds = seconds || 0; //seconds有值就直接赋值,没有为0,这个根php不一样。
var expires = "";
if (seconds != 0 ) { //设置cookie生存时间
var date = new Date();
date.setTime(date.getTime()+(seconds*1000));
expires = "; expires="+date.toGMTString();
}
document.cookie = name+"="+escape(value)+expires+"; path=/"; //转码并赋值
}
export {
getCookie,
clearCookie,
setCookie,
}
/**
* @fileOverview 天地图WMTS服务API
* @version 1.0
*/
import { getWidth, getTopLeft } from 'ol/extent';
import WMTS from 'ol/tilegrid/WMTS';
import { WMTS as WMTSSource } from 'ol/source';
import TileLayer from 'ol/layer/Tile';
import { get as getProjection, getTransform } from 'ol/proj';
import { applyTransform } from 'ol/extent';
/**
* @description 获得一个OpenLayers框架下的ol/layer/Tile类型天地图图层
* @param {options} Object 初始化参数
* @param {options.type} String 与官方名称相同的图层类型
* @param {options.proj} String 与官方名称相同的投影类型
* @param {options.key} String 开发者秘钥
*/
export function getTianditu(options) {
let layers = {
'全球境界': 'ibo',
'地形注记': 'cta',
'地形晕渲': 'ter',
'影像注记': 'cia',
'影像底图': 'img',
'矢量注记': 'cva',
'矢量底图': 'vec'
}
let projs = {
'经纬度投影': 'EPSG:4490',
'球面墨卡托投影': 'EPSG:900913'
}
let matrixSets = {
'经纬度投影': 'c',
'球面墨卡托投影': 'w'
}
let projection = getProjection(projs[options.proj]);
let projectionExtent = projection.getExtent();
let origin = projectionExtent ? getTopLeft(projectionExtent) : [-180, 90];
let fromLonLat = getTransform('EPSG:4326', projection);
let width = projectionExtent ? getWidth(projectionExtent) : getWidth(applyTransform([-180.0, -90.0, 180.0, 90.0], fromLonLat));
let resolutions = [];
let matrixIds = [];
for (let z = 1; z < 19; z++) {
resolutions[z] = width / (256 * Math.pow(2, z));
matrixIds[z] = z;
};
let wmtsTileGrid = new WMTS({
origin: origin,
resolutions: resolutions,
matrixIds: matrixIds
});
let wmtsSource = new WMTSSource({
url: "http://t0.tianditu.gov.cn/" + layers[options.type] + "_" + matrixSets[options.proj] + "/wmts?tk=" + options.key,
layer: layers[options.type],
version: '1.0.0',
matrixSet: matrixSets[options.proj],
format: 'tiles',
projection: projection,
requestEncoding: 'KVP',
style: 'default',
tileGrid: wmtsTileGrid
});
let wmtsLayer = new TileLayer({
source: wmtsSource
});
return wmtsLayer
}
\ No newline at end of file
import Vuex from "vuex";
import Vue from "vue";
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
name: "",
userInfo: {},
mapPoint: {},
direct_path:'',
userType:"",
},
mutations: {
change(state, name) {
state.name = name;
},
changeUserInfo(state, value) {
state.userInfo = value;
state.userType = value.user_type;
},
getMapPoint(state, value) {
state.mapPoint = value;
},
change_direct_path(state,path){
state.direct_path = path;
}
}
});
export default store;
module.exports = {
devServer: {
open: true,
proxy:{
'/shzl/api': {
target: 'https://sjgl.wodcloud.com/shzl/api', // 接口域名
changeOrigin: true, // 是否跨域
rewrite: (path) => path.replace('/shzl/api', ''),
},
}
},
transpileDependencies: ['vue-echarts','resize-detector', 'crypto-js'],
publicPath: "./",
outputDir: "dist/zjhl",
assetsDir:"static"
}
\ No newline at end of file
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