Initial commit
|
@ -0,0 +1,50 @@
|
|||
######################################################################
|
||||
# Build Tools
|
||||
|
||||
.gradle
|
||||
/build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
|
||||
######################################################################
|
||||
# IDE
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### JRebel ###
|
||||
rebel.xml
|
||||
|
||||
### NetBeans ###
|
||||
nbproject/private/
|
||||
build/*
|
||||
nbbuild/
|
||||
dist/
|
||||
nbdist/
|
||||
.nb-gradle/
|
||||
*.css.map
|
||||
|
||||
######################################################################
|
||||
# Others
|
||||
*.log
|
||||
*.xml.versionsBackup
|
||||
*.swp
|
||||
|
||||
|
||||
!*/build/*.java
|
||||
!*/build/*.html
|
||||
!*/build/*.xml
|
||||
glendale.demo2/node_modules/
|
|
@ -0,0 +1,3 @@
|
|||
> 1%
|
||||
last 2 versions
|
||||
not ie <= 10
|
|
@ -0,0 +1,39 @@
|
|||
[*]
|
||||
charset=utf-8
|
||||
end_of_line=lf
|
||||
insert_final_newline=false
|
||||
indent_style=space
|
||||
indent_size=2
|
||||
|
||||
[{*.ng,*.sht,*.html,*.shtm,*.shtml,*.htm}]
|
||||
indent_style=space
|
||||
indent_size=2
|
||||
|
||||
[{*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}]
|
||||
indent_style=space
|
||||
indent_size=2
|
||||
|
||||
[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}]
|
||||
indent_style=space
|
||||
indent_size=2
|
||||
|
||||
[*.svg]
|
||||
indent_style=space
|
||||
indent_size=2
|
||||
|
||||
[*.js.map]
|
||||
indent_style=space
|
||||
indent_size=2
|
||||
|
||||
[*.less]
|
||||
indent_style=space
|
||||
indent_size=2
|
||||
|
||||
[*.vue]
|
||||
indent_style=space
|
||||
indent_size=2
|
||||
|
||||
[{.analysis_options,*.yml,*.yaml}]
|
||||
indent_style=space
|
||||
indent_size=2
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
NODE_ENV=production
|
||||
VUE_APP_PREVIEW=false
|
||||
VUE_APP_TITLE=服务器端渲染3D/BIM/GIS轻量化引擎-葛兰岱尔
|
||||
VUE_APP_GRANT_TYPE=password
|
||||
VUE_APP_SCOPE=Design
|
||||
VUE_APP_CLIENT_ID=Design_BIM
|
||||
VUE_APP_CLIENT_SECRET=1q2w3e*
|
||||
|
||||
VUE_APP_GRANT_TYPE_Phone=PhoneCodeGrantType
|
||||
VUE_APP_SCOPE_Phone=Design
|
||||
VUE_APP_CLIENT_ID_Phone=Design_Phone
|
||||
VUE_APP_CLIENT_SECRET_Phone=1q2w3e*
|
||||
|
||||
#项目默认封面图片
|
||||
VUE_APP_PROJECT_IMG=/image/pro-bg.png
|
||||
|
||||
#签名:复制分享链接
|
||||
VUE_APP_COPY_SIGN=----中国“数字孪生”3D轻量化技术专家葛兰岱尔为您提供技术支持!----
|
||||
|
||||
#广告API
|
||||
VUE_APP_ADVISE_API=http://tmadv.glendale.top
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
NODE_ENV=development
|
||||
VUE_APP_PREVIEW=true
|
||||
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
NODE_ENV=production
|
||||
VUE_APP_PREVIEW=true
|
||||
#项目默认封面图片
|
||||
VUE_APP_PROJECT_IMG=/image/pro-bg.png
|
||||
#签名:复制分享链接
|
||||
VUE_APP_COPY_SIGN=----中国“数字孪生”3D轻量化技术专家葛兰岱尔为您提供技术支持!----
|
|
@ -0,0 +1,75 @@
|
|||
module.exports = {
|
||||
root: true,
|
||||
env: {
|
||||
node: true
|
||||
},
|
||||
'extends': [
|
||||
'plugin:vue/strongly-recommended',
|
||||
// '@vue/standard'
|
||||
],
|
||||
rules: {
|
||||
'no-console': 'off',
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
'generator-star-spacing': 'off',
|
||||
'no-mixed-operators': 0,
|
||||
'vue/max-attributes-per-line': [
|
||||
2,
|
||||
{
|
||||
'singleline': 100,
|
||||
'multiline': {
|
||||
'max': 1,
|
||||
'allowFirstLine': true
|
||||
}
|
||||
}
|
||||
],
|
||||
'vue/attribute-hyphenation': 0,
|
||||
'vue/html-self-closing': 0,
|
||||
'vue/component-name-in-template-casing': 0,
|
||||
'vue/html-closing-bracket-spacing': 0,
|
||||
'vue/singleline-html-element-content-newline': 0,
|
||||
'vue/no-unused-components': 0,
|
||||
'vue/multiline-html-element-content-newline': 0,
|
||||
'vue/no-use-v-if-with-v-for': 0,
|
||||
'vue/html-closing-bracket-newline': 0,
|
||||
'vue/no-parsing-error': 0,
|
||||
'no-tabs': 0,
|
||||
'quotes': [
|
||||
2,
|
||||
'single',
|
||||
{
|
||||
'avoidEscape': true,
|
||||
'allowTemplateLiterals': true
|
||||
}
|
||||
],
|
||||
'semi': [
|
||||
2,
|
||||
'never',
|
||||
{
|
||||
'beforeStatementContinuationChars': 'never'
|
||||
}
|
||||
],
|
||||
'no-delete-var': 2,
|
||||
'prefer-const': [
|
||||
2,
|
||||
{
|
||||
'ignoreReadBeforeAssign': false
|
||||
}
|
||||
],
|
||||
'template-curly-spacing': 'off',
|
||||
'indent': 'off'
|
||||
},
|
||||
parserOptions: {
|
||||
parser: 'babel-eslint'
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: [
|
||||
'**/__tests__/*.{j,t}s?(x)',
|
||||
'**/tests/unit/**/*.spec.{j,t}s?(x)'
|
||||
],
|
||||
env: {
|
||||
jest: true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"rules": {
|
||||
"space-before-function-paren": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"printWidth": 120,
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"prettier.spaceBeforeFunctionParen": true
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
language: node_js
|
||||
node_js:
|
||||
- 10.15.0
|
||||
cache: yarn
|
||||
script:
|
||||
- yarn
|
||||
- yarn run lint --no-fix && yarn run build
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2018 Anan Yang
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -0,0 +1,31 @@
|
|||
const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV)
|
||||
const IS_PREVIEW = process.env.VUE_APP_PREVIEW === 'true'
|
||||
|
||||
const plugins = []
|
||||
if (IS_PROD && !IS_PREVIEW) {
|
||||
// 去除日志的插件,
|
||||
plugins.push('transform-remove-console')
|
||||
}
|
||||
|
||||
// lazy load ant-design-vue
|
||||
// if your use import on Demand, Use this code
|
||||
plugins.push(['import', {
|
||||
'libraryName': 'ant-design-vue',
|
||||
'libraryDirectory': 'es',
|
||||
'style': true // `style: true` 会加载 less 文件
|
||||
}])
|
||||
|
||||
module.exports = {
|
||||
presets: [
|
||||
'@vue/cli-plugin-babel/preset',
|
||||
[
|
||||
'@babel/preset-env',
|
||||
{
|
||||
'useBuiltIns': 'entry',
|
||||
'corejs': 3
|
||||
}
|
||||
]
|
||||
],
|
||||
plugins,
|
||||
compact:false
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
const ThemeColorReplacer = require('webpack-theme-color-replacer')
|
||||
const generate = require('@ant-design/colors/lib/generate').default
|
||||
|
||||
const getAntdSerials = (color) => {
|
||||
// 淡化(即less的tint)
|
||||
const lightens = new Array(9).fill().map((t, i) => {
|
||||
return ThemeColorReplacer.varyColor.lighten(color, i / 10)
|
||||
})
|
||||
const colorPalettes = generate(color)
|
||||
const rgb = ThemeColorReplacer.varyColor.toNum3(color.replace('#', '')).join(',')
|
||||
return lightens.concat(colorPalettes).concat(rgb)
|
||||
}
|
||||
|
||||
const themePluginOption = {
|
||||
fileName: 'css/theme-colors-[contenthash:8].css',
|
||||
matchColors: getAntdSerials('#1890ff'), // 主色系列
|
||||
// 改变样式选择器,解决样式覆盖问题
|
||||
changeSelector (selector) {
|
||||
switch (selector) {
|
||||
case '.ant-calendar-today .ant-calendar-date':
|
||||
return ':not(.ant-calendar-selected-date):not(.ant-calendar-selected-day)' + selector
|
||||
case '.ant-btn:focus,.ant-btn:hover':
|
||||
return '.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger)'
|
||||
case '.ant-btn.active,.ant-btn:active':
|
||||
return '.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger)'
|
||||
case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon':
|
||||
case '.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon':
|
||||
return ':not(.ant-steps-item-process)' + selector
|
||||
// fixed https://github.com/vueComponent/ant-design-vue-pro/issues/876
|
||||
case '.ant-steps-item-process .ant-steps-item-icon':
|
||||
return ':not(.ant-steps-item-custom)' + selector
|
||||
case '.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover':
|
||||
case '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal > .ant-menu-submenu-selected,.ant-menu-horizontal > .ant-menu-submenu:hover':
|
||||
return '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover'
|
||||
case '.ant-menu-horizontal > .ant-menu-item-selected > a':
|
||||
case '.ant-menu-horizontal>.ant-menu-item-selected>a':
|
||||
return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a'
|
||||
case '.ant-menu-horizontal > .ant-menu-item > a:hover':
|
||||
case '.ant-menu-horizontal>.ant-menu-item>a:hover':
|
||||
return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover'
|
||||
default :
|
||||
return selector
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const createThemeColorReplacerPlugin = () => new ThemeColorReplacer(themePluginOption)
|
||||
|
||||
module.exports = createThemeColorReplacerPlugin
|
|
@ -0,0 +1,115 @@
|
|||
export default {
|
||||
theme: [
|
||||
{
|
||||
key: 'dark',
|
||||
fileName: 'dark.css',
|
||||
theme: 'dark'
|
||||
},
|
||||
{
|
||||
key: '#F5222D',
|
||||
fileName: '#F5222D.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#F5222D'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#FA541C',
|
||||
fileName: '#FA541C.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#FA541C'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#FAAD14',
|
||||
fileName: '#FAAD14.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#FAAD14'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#13C2C2',
|
||||
fileName: '#13C2C2.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#13C2C2'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#52C41A',
|
||||
fileName: '#52C41A.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#52C41A'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#2F54EB',
|
||||
fileName: '#2F54EB.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#2F54EB'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#722ED1',
|
||||
fileName: '#722ED1.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#722ED1'
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
key: '#F5222D',
|
||||
theme: 'dark',
|
||||
fileName: 'dark-#F5222D.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#F5222D'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#FA541C',
|
||||
theme: 'dark',
|
||||
fileName: 'dark-#FA541C.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#FA541C'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#FAAD14',
|
||||
theme: 'dark',
|
||||
fileName: 'dark-#FAAD14.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#FAAD14'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#13C2C2',
|
||||
theme: 'dark',
|
||||
fileName: 'dark-#13C2C2.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#13C2C2'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#52C41A',
|
||||
theme: 'dark',
|
||||
fileName: 'dark-#52C41A.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#52C41A'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#2F54EB',
|
||||
theme: 'dark',
|
||||
fileName: 'dark-#2F54EB.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#2F54EB'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '#722ED1',
|
||||
theme: 'dark',
|
||||
fileName: 'dark-#722ED1.css',
|
||||
modifyVars: {
|
||||
'@primary-color': '#722ED1'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
为首屏增加 加载动画
|
||||
====
|
||||
|
||||
|
||||
|
||||
## 需求
|
||||
|
||||
> 为了缓解用户第一次访问时,加载 JS 过大所导致用户等待白屏时间过长导致的用户体验不好,进行的一个优化动效。
|
||||
|
||||
|
||||
|
||||
## 实现方案
|
||||
|
||||
1. 将 动画加载 dom 元素放在 #app 内,Vue 生命周期开始时,会自动清掉 #app 下的所有元素。
|
||||
2. 将 动画加载 dom 元素放在 body 下,Vue 生命周期开始时 App.vue (created, mounted) 调用 `@/utils/utll` 下的 removeLoadingAnimate(#id, timeout) 则会移除加载动画
|
||||
|
||||
最后一步:
|
||||
将样式插入到 `public/index.html` 文件的 `<head></head>` 最好写成内联 `<style>动画样式</style>`
|
||||
|
||||
|
||||
|
||||
----
|
||||
|
||||
目前提供有两个样式,均在 `public/loading` 文件夹内。且 pro 已经默认使用了一套 loading 动画方案,可以直接参考 `public/index.html`
|
||||
|
||||
|
||||
## 写在最后
|
||||
|
||||
目前 pro 有页面 overflow 显示出浏览器滚动条时,页面会抖动一下的问题。
|
||||
|
||||
欢迎各位提供能解决的方案和实现 demo。如果在条件允许的情况下,建议请直接使用 pro 进行改造,也欢迎直接 PR 到 pro 的仓库
|
|
@ -0,0 +1,40 @@
|
|||
先增加依赖
|
||||
|
||||
```bash
|
||||
// npm
|
||||
$ npm install --save-dev webpack-bundle-analyzer
|
||||
|
||||
// or yarn
|
||||
$ yarn add webpack-bundle-analyzer -D
|
||||
```
|
||||
|
||||
配置文件 `vue.config.js` 增加 `configureWebpack.plugins` 参数
|
||||
|
||||
```
|
||||
const path = require('path')
|
||||
const webpack = require('webpack')
|
||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
||||
|
||||
function resolve (dir) {
|
||||
return path.join(__dirname, dir)
|
||||
}
|
||||
|
||||
// vue.config.js
|
||||
module.exports = {
|
||||
configureWebpack: {
|
||||
plugins: [
|
||||
// Ignore all locale files of moment.js
|
||||
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
|
||||
// 依赖大小分析工具
|
||||
new BundleAnalyzerPlugin(),
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
启动 `cli` 的 `build` 命令进行项目编译,编译完成时,会自动运行一个 http://localhost:8888 的地址,完整显示了支持库依赖
|
|
@ -0,0 +1,23 @@
|
|||
module.exports = {
|
||||
moduleFileExtensions: [
|
||||
'js',
|
||||
'jsx',
|
||||
'json',
|
||||
'vue'
|
||||
],
|
||||
transform: {
|
||||
'^.+\\.vue$': 'vue-jest',
|
||||
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
|
||||
'^.+\\.jsx?$': 'babel-jest'
|
||||
},
|
||||
moduleNameMapper: {
|
||||
'^@/(.*)$': '<rootDir>/src/$1'
|
||||
},
|
||||
snapshotSerializers: [
|
||||
'jest-serializer-vue'
|
||||
],
|
||||
testMatch: [
|
||||
'**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
|
||||
],
|
||||
testURL: 'http://localhost/'
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "es6",
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@/*": ["src/*"]
|
||||
}
|
||||
},
|
||||
"exclude": ["node_modules", "dist"],
|
||||
"include": ["src/**/*"]
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
{
|
||||
"name": "glendale.design.bim",
|
||||
"version": "3.0.2",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build",
|
||||
"test:unit": "vue-cli-service test:unit",
|
||||
"lint": "vue-cli-service lint",
|
||||
"build:preview": "vue-cli-service build --mode preview",
|
||||
"lint:nofix": "vue-cli-service lint --no-fix"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ant-design-vue/pro-layout": "^1.0.8",
|
||||
"@antv/data-set": "^0.10.2",
|
||||
"@logicflow/core": "^0.7.9",
|
||||
"@logicflow/extension": "^0.7.9",
|
||||
"@vue/composition-api": "^1.4.5",
|
||||
"ant-design-vue": "^1.7.6",
|
||||
"axios": "^0.26.1",
|
||||
"canvas": "^3.1.0",
|
||||
"core-js": "^3.1.2",
|
||||
"downloadjs": "^1.4.7",
|
||||
"echarts": "^4.9.0",
|
||||
"echarts-liquidfill": "^3.1.0",
|
||||
"file-saver": "^2.0.5",
|
||||
"html2canvas": "^1.4.1",
|
||||
"lib-flexible": "^0.3.2",
|
||||
"lodash.clonedeep": "^4.5.0",
|
||||
"lodash.get": "^4.4.2",
|
||||
"lodash.pick": "^4.4.0",
|
||||
"moment": "^2.24.0",
|
||||
"nprogress": "^0.2.0",
|
||||
"pdfobject": "^2.2.7",
|
||||
"postcss-px2rem": "^0.3.0",
|
||||
"px2rem-loader": "^0.1.9",
|
||||
"spark-md5": "^3.0.2",
|
||||
"store": "^2.0.12",
|
||||
"v-viewer": "^1.6.4",
|
||||
"vcolorpicker": "^1.1.0",
|
||||
"vconsole": "^3.9.5",
|
||||
"vue": "^2.6.14",
|
||||
"vue-clipboard2": "^0.2.1",
|
||||
"vue-cropper": "0.4.9",
|
||||
"vue-i18n": "8.26.7",
|
||||
"vue-monoplasty-slide-verify": "^1.3.1",
|
||||
"vue-pdf": "^4.3.0",
|
||||
"vue-qr": "3.2.4",
|
||||
"vue-router": "^3.5.2",
|
||||
"vue-svg-component-runtime": "^1.0.1",
|
||||
"vuescroll": "^4.17.3",
|
||||
"vuex": "^3.1.1",
|
||||
"xlsx": "^0.17.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "^4.0.4",
|
||||
"@vue/cli-plugin-eslint": "^4.0.4",
|
||||
"@vue/cli-plugin-router": "^4.0.4",
|
||||
"@vue/cli-plugin-unit-jest": "^4.0.4",
|
||||
"@vue/cli-plugin-vuex": "^4.0.4",
|
||||
"@vue/cli-service": "^4.0.4",
|
||||
"@vue/eslint-config-standard": "^4.0.0",
|
||||
"@vue/test-utils": "^1.0.0-beta.29",
|
||||
"babel-eslint": "^10.0.1",
|
||||
"babel-plugin-import": "^1.12.2",
|
||||
"babel-plugin-transform-remove-console": "^6.9.4",
|
||||
"copy-webpack-plugin": "5.1.2",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-plugin-html": "^5.0.0",
|
||||
"eslint-plugin-vue": "^5.2.3",
|
||||
"git-revision-webpack-plugin": "^3.0.6",
|
||||
"less": "^3.0.4",
|
||||
"less-loader": "^5.0.0",
|
||||
"script-loader": "^0.7.2",
|
||||
"vue-svg-icon-loader": "^2.1.1",
|
||||
"vue-template-compiler": "^2.6.14",
|
||||
"webpack-theme-color-replacer": "^1.3.12"
|
||||
},
|
||||
"main": "index.js",
|
||||
"license": "MIT"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = {
|
||||
plugins: {
|
||||
autoprefixer: {}
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 472 KiB |
|
@ -0,0 +1,141 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh-cmn-Hans">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<link rel="icon" href="<%= BASE_URL %>bimlogo.ico">
|
||||
<title>
|
||||
<%= htmlWebpackPlugin.options.title %>
|
||||
</title>
|
||||
<style>
|
||||
body{
|
||||
overflow: hidden;
|
||||
}
|
||||
.first-loading-wrp {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
min-height: 420px;
|
||||
height: 100%
|
||||
}
|
||||
|
||||
.first-loading-wrp>h1 {
|
||||
font-size: 26px
|
||||
}
|
||||
|
||||
.first-loading-wrp .loading-wrp {
|
||||
padding: 98px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.dot {
|
||||
animation: antRotate 1.2s infinite linear;
|
||||
transform: rotate(45deg);
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
font-size: 32px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
box-sizing: border-box
|
||||
}
|
||||
|
||||
.dot i {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
position: absolute;
|
||||
display: block;
|
||||
background-color: #1890ff;
|
||||
border-radius: 100%;
|
||||
transform: scale(.75);
|
||||
transform-origin: 50% 50%;
|
||||
opacity: .3;
|
||||
animation: antSpinMove 1s infinite linear alternate
|
||||
}
|
||||
|
||||
.dot i:nth-child(1) {
|
||||
top: 0;
|
||||
left: 0
|
||||
}
|
||||
|
||||
.dot i:nth-child(2) {
|
||||
top: 0;
|
||||
right: 0;
|
||||
-webkit-animation-delay: .4s;
|
||||
animation-delay: .4s
|
||||
}
|
||||
|
||||
.dot i:nth-child(3) {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
-webkit-animation-delay: .8s;
|
||||
animation-delay: .8s
|
||||
}
|
||||
|
||||
.dot i:nth-child(4) {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
-webkit-animation-delay: 1.2s;
|
||||
animation-delay: 1.2s
|
||||
}
|
||||
|
||||
@keyframes antRotate {
|
||||
to {
|
||||
-webkit-transform: rotate(405deg);
|
||||
transform: rotate(405deg)
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes antRotate {
|
||||
to {
|
||||
-webkit-transform: rotate(405deg);
|
||||
transform: rotate(405deg)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antSpinMove {
|
||||
to {
|
||||
opacity: 1
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes antSpinMove {
|
||||
to {
|
||||
opacity: 1
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<!-- require cdn assets css 0x1ea2-->
|
||||
<% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %>
|
||||
<link rel="stylesheet" href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" />
|
||||
<% } %>
|
||||
<script src="/static/BIMGISEngine2.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>We're sorry but vue-antd-pro doesn't work properly without JavaScript enabled. Please enable it to
|
||||
continue.</strong>
|
||||
</noscript>
|
||||
<div id="app">
|
||||
<div class="first-loading-wrp">
|
||||
<h1>正在加载中...</h1>
|
||||
<div class="loading-wrp">
|
||||
<span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<!-- <div style="display: flex; justify-content: center; align-items: center;">Ant Design</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- require cdn assets js -->
|
||||
<% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %>
|
||||
<script type="text/javascript" src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
|
||||
<% } %>
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
<script>
|
||||
var api;
|
||||
</script>
|
After Width: | Height: | Size: 550 B |
After Width: | Height: | Size: 539 B |
After Width: | Height: | Size: 505 B |
After Width: | Height: | Size: 289 B |
After Width: | Height: | Size: 413 B |
After Width: | Height: | Size: 551 B |
|
@ -0,0 +1,37 @@
|
|||
<template>
|
||||
<a-config-provider :locale="locale">
|
||||
<div id="app">
|
||||
<router-view />
|
||||
</div>
|
||||
</a-config-provider>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
import qs from 'qs'
|
||||
import zhCN from 'ant-design-vue/es/locale/zh_CN'
|
||||
// import zhtw from 'ant-design-vue/lib/locale-provider/zh_TW.js'
|
||||
// import { i18nRender } from '@/locales'
|
||||
// 以下3句作用于日期控件显示中文
|
||||
// import moment from 'moment'
|
||||
// import 'moment/locale/zh-tw'
|
||||
// moment.locale('zh-tw')
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
locale: zhCN,
|
||||
}
|
||||
},
|
||||
// computed: {
|
||||
// locale () {
|
||||
// // 只是为了切换语言时,更新标题
|
||||
// const { title } = this.$route.meta
|
||||
// title && (setDocumentTitle(`${i18nRender(title)} - ${domTitle}`))
|
||||
|
||||
// // 原先的en-US改成zh-CN即可
|
||||
// return this.$i18n.getLocaleMessage('zh-CN').antLocale
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,166 @@
|
|||
import request from '@/utils/request'
|
||||
import { transformAbpListQuery, buildPagingQueryResult } from '@/utils/abpParamsTransform'
|
||||
|
||||
const api = {
|
||||
combine: `/api/app/combine`,//合摸
|
||||
flatten: `/api/app/combine-flatten`,//合摸压平
|
||||
}
|
||||
|
||||
//保存合模
|
||||
export function saveModelClosing(parameter) {
|
||||
let url = api.combine;
|
||||
return request({
|
||||
url: url,
|
||||
method: 'post',
|
||||
data: parameter
|
||||
});
|
||||
}
|
||||
|
||||
//getCombineList
|
||||
/**查询合摸列表 */
|
||||
export function getCombineList(parameter) {
|
||||
const queryParams = transformAbpListQuery(parameter)//使用stable展示列表需要转换一下数据格式
|
||||
return request({
|
||||
url: api.combine,
|
||||
method: 'get',
|
||||
params: queryParams
|
||||
}).then(data => {
|
||||
return buildPagingQueryResult(parameter, data)
|
||||
})
|
||||
}
|
||||
|
||||
//getCombineList
|
||||
/**查询文档列表 */
|
||||
export function getDocumentList(id) {
|
||||
return request({
|
||||
url: api.combine / GetDocument,
|
||||
method: 'get',
|
||||
params: { id: id }
|
||||
}).then(data => {
|
||||
return data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询合模树结构-并且带
|
||||
* @param {*} projectId 项目Id
|
||||
* @param {*} combineName 合模名称
|
||||
* @returns
|
||||
*/
|
||||
export function getCombine(projectId, combineName) {
|
||||
return request({
|
||||
url: `${api.combine}/getalllistasync`,
|
||||
method: 'get',
|
||||
params: { projectId: projectId, combineName: combineName }
|
||||
})
|
||||
}
|
||||
|
||||
export function deleted(id) {
|
||||
return request({
|
||||
url: `${api.combine}/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
|
||||
export function getClampById(id) {
|
||||
return request({
|
||||
url: `${api.combine}/${id}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export function getHasClampById(docId) {
|
||||
return request({
|
||||
url: `${api.combine}/has-combine/${docId}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
//公开
|
||||
export function openStatusClamping(parameter) {
|
||||
return request({
|
||||
url: `${api.combine}/set-open`,
|
||||
method: 'post',
|
||||
params: { isOpen: parameter.isOpen },
|
||||
data: parameter.id,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取合模日志
|
||||
*/
|
||||
export function getCombineLogs(combineId) {
|
||||
return request({
|
||||
url: `${api.combineLog}/by-combine-id/${combineId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询合模压平列表
|
||||
* @param {*} CombineId 合模ID
|
||||
* @param {*} MaxResultCount 一页多少条数据
|
||||
* @param {*} SkipCount
|
||||
* @returns
|
||||
*/
|
||||
export function getCombineFlatten(parameter) {
|
||||
return request({
|
||||
url: `${api.flatten}`,
|
||||
method: 'get',
|
||||
params: parameter,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加合模压平
|
||||
* @param {*} combineId 合模id
|
||||
* @param {*} flattenName 压平名称
|
||||
* @param {*} flattenHeight 压平高度
|
||||
* @param {*} flattenScope 压平范围
|
||||
* @returns
|
||||
*/
|
||||
export function addCombineFlatten(parameter) {
|
||||
return request({
|
||||
url: `${api.flatten}`,
|
||||
method: 'post',
|
||||
data: parameter,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据压平id删除压平
|
||||
* @param {*} id 压平id
|
||||
* @returns
|
||||
*/
|
||||
export function deleteCombineFlatten(id) {
|
||||
return request({
|
||||
url: `${api.flatten}/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
|
||||
}
|
||||
/**合模封面设置 */
|
||||
export function combineProjectCover(id, BlobName) {
|
||||
return request({
|
||||
url: `${api.combine}/${id}/blob-name?BlobName=${BlobName}`,
|
||||
method: 'put',
|
||||
})
|
||||
}
|
||||
|
||||
/**存储可视距离等配置 */
|
||||
export function combineModelConfig(params) {
|
||||
return request({
|
||||
url: `${api.combine}/${params.id}/model-config/${params.DocumentId}?ModelConfig=${params.ModelConfig}`,
|
||||
method: 'put',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
|
||||
/**存储场景设置等配置 */
|
||||
export function combineSceneConfig(params) {
|
||||
return request({
|
||||
url: `${api.combine}/${params.id}/scene-config?SceneConfig=${params.SceneConfig}`,
|
||||
method: 'put',
|
||||
data: params
|
||||
})
|
||||
}
|
|
@ -0,0 +1,274 @@
|
|||
var PI = 3.1415926535897932384626;
|
||||
var a = 6378245.0;
|
||||
var ee = 0.00669342162296594323;
|
||||
var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
|
||||
function gcj02towgs84(lng, lat) {
|
||||
lng = lng * 1;
|
||||
lat = lat * 1;
|
||||
if (out_of_china(lng, lat)) {
|
||||
return [lng, lat]
|
||||
}
|
||||
else {
|
||||
var dlat = transformlat(lng - 105.0, lat - 35.0);
|
||||
var dlng = transformlng(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]
|
||||
}
|
||||
};
|
||||
|
||||
function transformlat(lng, lat) {
|
||||
var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
|
||||
ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
|
||||
ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
|
||||
ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
|
||||
return ret
|
||||
};
|
||||
|
||||
function transformlng(lng, lat) {
|
||||
var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
|
||||
ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
|
||||
ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
|
||||
ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;
|
||||
return ret
|
||||
};
|
||||
function out_of_china(lng, lat) {
|
||||
return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);
|
||||
};
|
||||
// 百度坐标系转WGS-84坐标
|
||||
function bd09_to_wgs84(lng, lat) {
|
||||
lng = lng * 1;
|
||||
lat = lat * 1;
|
||||
var gcj02Coord = bd09_to_gcj02(lng, lat);
|
||||
var wgs84Coord = gcj02_to_wgs84(gcj02Coord[0], gcj02Coord[1]);
|
||||
return wgs84Coord;
|
||||
};
|
||||
|
||||
// 百度坐标系(BD-09)转火星坐标系(GCJ-02)
|
||||
function bd09_to_gcj02(lng, lat) {
|
||||
var x = lng - 0.0065;
|
||||
var y = lat - 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(y * x_PI);
|
||||
var gg_lng = z * Math.cos(theta);
|
||||
var gg_lat = z * Math.sin(theta);
|
||||
return [gg_lng, gg_lat];
|
||||
};
|
||||
// 火星坐标系(GCJ-02)转WGS-84
|
||||
function gcj02_to_wgs84(lng, lat) {
|
||||
if (out_of_china(lng, lat)) {
|
||||
return [lng, lat];
|
||||
}
|
||||
else {
|
||||
var dlat = transformlat(lng - 105.0, lat - 35.0);
|
||||
var dlng = transformlng(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];
|
||||
}
|
||||
};
|
||||
|
||||
var _FE = 500000;// 东纬偏移FE = 500000米
|
||||
var _FN = 0;//纬度偏移
|
||||
//var _a = 6378240;// 长半轴 a(米)西安80为 6378240,北京54为 6378245
|
||||
// var _af = 1 / 298.25722101;// 扁率α西安80为 1 / 298.25722101 北京54为 1 / 298.257223563
|
||||
|
||||
//西安80或北京54转WGS-84
|
||||
function c80_to_wgs84(coor_x, coor_y, _a, _af) {
|
||||
|
||||
var a = 0, Alfa = 0;
|
||||
var a0, a2, a4, a6, a8;
|
||||
//double radlat, radlon, radl0, l;
|
||||
var b, t, sb, cb, ita, e1, ee;
|
||||
var X, CentralData;
|
||||
var N, c, v;
|
||||
var Bf0, Bf1, dB, FBf, bf;
|
||||
var itaf, tf;
|
||||
var Nf, Mf;
|
||||
var B, L, dietaB, dietal;
|
||||
var sinBf, cosBf;
|
||||
var Coeficient_a0 = new Array(5);
|
||||
var divNames = "BIMDiv";
|
||||
if (CurrentScenario == 2) {
|
||||
divNames = "GISDiv";
|
||||
}
|
||||
var Central = $("." + divNames + " #centralLongitude").val();//中央经度
|
||||
CentralData = Central * Math.PI / 180.0;
|
||||
a = _a; //长半轴 a(米)
|
||||
Alfa = _af; //扁率
|
||||
|
||||
//东纬偏移FE = 500000米 + 带号 * 1000000;
|
||||
coor_y -= _FE;
|
||||
|
||||
/*计算b,e1,e*/
|
||||
b = a * (1 - Alfa);
|
||||
var ms_e1 = (a / b) * (a / b) - 1;
|
||||
var ms_e2 = 1 - (b / a) * (b / a);
|
||||
e1 = Math.sqrt(ms_e1);//(a / b) * (a / b) - 1
|
||||
ee = Math.sqrt(ms_e2);//1 - (b / a) * (b / a)
|
||||
//ES5Math.Sqrt不能输入非数值变量计算,ES6加入扩展运算符可以...
|
||||
//var test = Math.sqrt(0.0067);
|
||||
|
||||
//try {
|
||||
// e1 = Math.Sqrt(...ms_e1);//(a / b) * (a / b) - 1
|
||||
// ee = Math.Sqrt(...ms_e2);//1 - (b / a) * (b / a)
|
||||
|
||||
//} catch (e) {
|
||||
// console.log(e.msg());
|
||||
//}
|
||||
|
||||
|
||||
/*计算a0 a2 a4 a6 a8*/
|
||||
a0a2a4a6a8(a, ee, Coeficient_a0);
|
||||
|
||||
a0 = Coeficient_a0[0];
|
||||
a2 = Coeficient_a0[1];
|
||||
a4 = Coeficient_a0[2];
|
||||
a6 = Coeficient_a0[3];
|
||||
a8 = Coeficient_a0[4];
|
||||
|
||||
X = coor_x;
|
||||
Bf0 = X / a0;
|
||||
|
||||
do {
|
||||
sinBf = Math.sin(Bf0); cosBf = Math.cos(Bf0);
|
||||
FBf = -sinBf * cosBf * ((a2 - a4 + a6) + (2.0 * a4 - 16.0 * a6 / 3.0) * sinBf * sinBf +
|
||||
(16.0 / 3.0) * a6 * (sinBf * sinBf * sinBf * sinBf));
|
||||
Bf1 = (X - FBf) / a0;
|
||||
dB = Bf1 - Bf0;
|
||||
Bf0 = Bf1;
|
||||
} while (Math.abs(dB * 180.0 / Math.PI * 3600.0) > 0.00001);
|
||||
|
||||
bf = Bf1;
|
||||
/*计算c,v,N,M*/
|
||||
c = a * a / b;
|
||||
v = Math.sqrt(1 + e1 * e1 * Math.cos(bf) * Math.cos(bf));
|
||||
Nf = c / v;
|
||||
Mf = c / (v * v * v);
|
||||
tf = Math.sin(bf) / Math.cos(bf);
|
||||
itaf = e1 * Math.cos(bf);
|
||||
|
||||
/*计算dietaB,dietal*/
|
||||
dietaB = tf * coor_y * coor_y / (2 * Mf * Nf) - tf * (5 + 3 * tf * tf + itaf * itaf - 9 * tf * tf * itaf * itaf) * coor_y * coor_y * coor_y * coor_y / (24 * Mf * Nf * Nf * Nf) + (61 + 90 * tf * tf + 45 * tf * tf * tf * tf) * coor_y * coor_y * coor_y * coor_y * coor_y * coor_y / (720 * Mf * Nf * Nf * Nf * Nf * Nf);
|
||||
dietal = coor_y / (Nf * Math.cos(bf) + (1 + 2 * tf * tf + itaf * itaf) * Math.cos(bf) * coor_y * coor_y / (6 * Nf)) + (5 + 44 * tf * tf + 32 * tf * tf * tf * tf - 2 * itaf * itaf - 16 * itaf * itaf * tf * tf) / (360 * Nf * Nf * Nf * Mf * Mf * Math.cos(bf));
|
||||
|
||||
B = bf - dietaB;//0.43685200205184482
|
||||
L = CentralData + dietal;//1.88716896792179
|
||||
|
||||
dmslat = RADTODMS(B) - _FN;
|
||||
dmslon = RADTODMS(L);
|
||||
|
||||
return [dmslat, dmslon]
|
||||
};
|
||||
///西安80/北京54/2000转wgs84
|
||||
///x经度,y,维度
|
||||
///ZoneWide 3为3度带,6为6度带
|
||||
///Coord 0 西安80 1 北京 54 2 cgcs2000
|
||||
function GaussPrjInvCalculate(X, Y, Coord) {
|
||||
var _a, _f;
|
||||
var PI = 3.14159265353846;
|
||||
_a = Coord = 0 ? 6378140.0 : Coord == 1 ? 6378245 : 6378137;
|
||||
_f = Coord = 0 ? 1.0 / 298.257 : Coord == 1 ? 1.0 / 298.3 : 1 / 298.257222101;
|
||||
var ProjNo, longitude, latitude;
|
||||
var longitude1, latitude1, longitude0, latitude0, X0, Y0, xval, yval;
|
||||
var e1, e2, ee, NN, T, C, M, D, R, u, fai, iPI;
|
||||
iPI = 0.0174532925199433; //3.1415926535898/180.0;
|
||||
ProjNo = parseInt(X / 1000000); //查找带号
|
||||
//这里中央子午线经度为
|
||||
//三度带 L = 带号 * 3
|
||||
//六度带 L=带号*6-3
|
||||
longitude0 = ProjNo >= 24 ? ProjNo * 3 : ProjNo * 6 - 3;
|
||||
longitude0 = longitude0 * iPI; //中央经线
|
||||
X0 = ProjNo * 1000000 + 500000;
|
||||
Y0 = 0;
|
||||
xval = X - X0;
|
||||
yval = Y - Y0; //带内大地坐标
|
||||
e2 = 2 * _f - _f * _f;
|
||||
e1 = (1.0 - Math.sqrt(1 - e2)) / (1.0 + Math.sqrt(1 - e2));
|
||||
ee = e2 / (1 - e2);
|
||||
M = yval;
|
||||
u = M / (_a * (1 - e2 / 4 - 3 * e2 * e2 / 64 - 5 * e2 * e2 * e2 / 256));
|
||||
fai = u + (3 * e1 / 2 - 27 * e1 * e1 * e1 / 32) * Math.sin(2 * u) + (21 * e1 * e1 / 16 - 55 * e1 * e1 * e1 * e1 / 32) * Math.sin(4 * u)
|
||||
+ (151 * e1 * e1 * e1 / 96) * Math.sin(6 * u) + (1097 * e1 * e1 * e1 * e1 / 512) * Math.sin(8 * u);
|
||||
C = ee * Math.cos(fai) * Math.cos(fai);
|
||||
T = Math.tan(fai) * Math.tan(fai);
|
||||
NN = _a / Math.sqrt(1.0 - e2 * Math.sin(fai) * Math.sin(fai));
|
||||
R = _a * (1 - e2) / Math.sqrt((1 - e2 * Math.sin(fai) * Math.sin(fai)) * (1 - e2 * Math.sin(fai) * Math.sin(fai)) * (1 - e2 * Math.sin(fai) * Math.sin(fai)));
|
||||
D = xval / NN;
|
||||
//计算经度(Longitude) 纬度(Latitude)
|
||||
longitude1 = longitude0 + (D - (1 + 2 * T + C) * D * D * D / 6 + (5 - 2 * C + 28 * T - 3 * C * C + 8 * ee + 24 * T * T) * D * D * D * D * D / 120) / Math.cos(fai);
|
||||
latitude1 = fai - (NN * Math.tan(fai) / R) * (D * D / 2 - (5 + 3 * T + 10 * C - 4 * C * C - 9 * ee) * D * D * D * D / 24 + (61 + 90 * T + 298 * C + 45 * T * T - 256 * ee - 3 * C * C) * D * D * D * D * D * D / 720);
|
||||
//转换为度 DD
|
||||
longitude = Math.round((longitude1 / iPI) * 10000000000) / 10000000000.0;
|
||||
latitude = Math.round((latitude1 / iPI) * 10000000000) / 10000000000.0;
|
||||
return [longitude, latitude];
|
||||
}
|
||||
|
||||
////十进制双精度角度转度分秒
|
||||
//function DD2DMS(DecimalDegree) {
|
||||
// var Degree = (int)DecimalDegree;
|
||||
// var Minute = (int)((DecimalDegree - Degree) * 60.0);
|
||||
// var Second = Math.Round((DecimalDegree * 60 - Degree * 60 - Minute) * 60 * 100) / 100.0;
|
||||
// return Degree + "'" + Minute + "'" + Second;
|
||||
//}
|
||||
////度分秒转双精度
|
||||
//function DMS2DD(iDegree, Minute, Second) {
|
||||
// var DecimalDegree = Degree + Minute / 60.0 + Second / 60.0 / 60.0;
|
||||
// return DecimalDegree;
|
||||
//}
|
||||
function a0a2a4a6a8(a, e, Coeficient_a0) {
|
||||
var m0, m2, m4, m6, m8;
|
||||
m0 = a * (1 - e * e);
|
||||
m2 = 3 * e * e * m0 / 2;
|
||||
m4 = 5 * e * e * m2 / 4;
|
||||
m6 = 7 * e * e * m4 / 6;
|
||||
m8 = 9 * e * e * m6 / 8;
|
||||
|
||||
/*计算a0 a2 a4 a6 a8*/
|
||||
|
||||
Coeficient_a0[0] = m0 + m2 / 2 + 3 * m4 / 8 + 5 * m6 / 16 + 35 * m8 / 128;
|
||||
Coeficient_a0[1] = m2 / 2 + m4 / 2 + 15 * m6 / 32 + 7 * m8 / 16;
|
||||
Coeficient_a0[2] = m4 / 8 + 3 * m6 / 16 + 7 * m8 / 32;
|
||||
Coeficient_a0[3] = m6 / 32 + m8 / 16;
|
||||
Coeficient_a0[4] = m8 / 128;
|
||||
};
|
||||
|
||||
function RADTODMS(radAngle) {
|
||||
intSignOfRad = 1;
|
||||
if (radAngle < 0) {
|
||||
intSignOfRad = -1
|
||||
}
|
||||
radAngle = Math.abs(radAngle);
|
||||
|
||||
dmsAngle = radAngle * 180 / Math.PI;
|
||||
dmsAngle = dmsAngle * intSignOfRad;
|
||||
return dmsAngle;
|
||||
};
|
||||
|
||||
function DMSTORAD(dmsAngle1) {
|
||||
intSignOfDms = 1;
|
||||
if (dmsAngle1 < 0) intSignOfDms = -1;
|
||||
dmsAngle1 = Math.abs(dmsAngle1);
|
||||
|
||||
radAngle = dmsAngle1 * Math.PI / 180.0;
|
||||
radAngle = radAngle * intSignOfDms;
|
||||
return radAngle;
|
||||
}
|
||||
export {
|
||||
gcj02towgs84,
|
||||
bd09_to_wgs84,
|
||||
GaussPrjInvCalculate,
|
||||
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
import request from '@/utils/request'
|
||||
const api = {
|
||||
dic: `/api/app/dictionary`,
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取基础数据
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getList (params) {
|
||||
return await request(
|
||||
{
|
||||
url: api.dic,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
export async function getPositionList () {
|
||||
return await request({
|
||||
url: api.dic + '/parent?parent=position',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
export async function getTagsList(){
|
||||
return await request({
|
||||
url: api.dic + '/parent?parent=tags',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export async function getYearList(){
|
||||
return await request({
|
||||
url: api.dic + '/parent?parent=year',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export async function getParent (p) {
|
||||
return await request({
|
||||
url: api.dic + `/parent?parent=${p}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增基础数据
|
||||
* @param name 名称
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function add (formData) {
|
||||
return await request(
|
||||
{
|
||||
url: api.dic,
|
||||
method: 'post',
|
||||
data: formData
|
||||
}
|
||||
)
|
||||
}
|
||||
/**
|
||||
* 编辑基础数据
|
||||
* @param name 名称
|
||||
*/
|
||||
export async function edit (formData) {
|
||||
const url = `${api.dic}/${formData.id}`
|
||||
return await request({ url: url, method: 'put', data: formData })
|
||||
}
|
||||
/**
|
||||
* 删除基础数据
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function deleted (id) {
|
||||
return await request({ url: `${api.dic}/${id}`, method: 'delete' })
|
||||
}
|
||||
|
||||
export async function getTree () {
|
||||
return await request({ url: `${api.dic}/tree`, method: 'get' })
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
import request from '@/utils/request'
|
||||
const api = {
|
||||
version:'/api/app/document-version',
|
||||
documentHandle: '/api/app/document-handle'
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 版本详情
|
||||
*/
|
||||
export async function getDocVer(id){
|
||||
return await request(
|
||||
{
|
||||
url: `${api.version}/${id}`,
|
||||
method: 'get',
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function uploadDocumentFile (docId,formData) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.documentHandle}/upload-file/?docId=${docId}`,
|
||||
method: 'post',
|
||||
data: formData
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 新版本模型上传
|
||||
*/
|
||||
export async function uploadVersion (param) {
|
||||
return await request(
|
||||
{
|
||||
url: api.version,
|
||||
method: 'post',
|
||||
data: param
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询版本信息
|
||||
* @param {*} parameter
|
||||
* @returns
|
||||
*/
|
||||
export async function getDocVerList(params){
|
||||
return await request({
|
||||
url: api.version,
|
||||
method: 'get',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
|
||||
///删除模型信息
|
||||
export function DocVerDeleted(id) {
|
||||
return request({
|
||||
url: `${api.version}/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
//设置版本
|
||||
export function SetDocVerCurrent(id){
|
||||
return request({
|
||||
url: `${api.version}/${id}/set-current`,
|
||||
method: 'post',
|
||||
})
|
||||
}
|
|
@ -0,0 +1,746 @@
|
|||
import qs from 'qs'
|
||||
import request from '@/utils/request'
|
||||
import { transformAbpListQuery, buildPagingQueryResult } from '@/utils/abpParamsTransform'
|
||||
import requestModel from '@/utils/requestModel'
|
||||
import store from '@/store'
|
||||
import cloneDeep from 'lodash.clonedeep'
|
||||
|
||||
const api = {
|
||||
// 文档
|
||||
doc: `/api/app/document`,
|
||||
children: `/api/app/document/children`,
|
||||
//文档日志
|
||||
docLog: `/api/app/document-log`,
|
||||
docMerge: `/api/app/document-merge`,//合模
|
||||
documentHandle: '/api/app/document-handle',
|
||||
roomSpace: `/api/app/model/GetRoomStructureData`,
|
||||
modelSpace: `api/app/model/GetSpatialStructureData`,
|
||||
modelSpaceData:`/api/app/model/GetModelSpaceFeatureIdByPid`,
|
||||
modelProperty: `api/app/model/GetSpatialStructurePropertyData`
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**移动文档文件 */
|
||||
export function moveDoc({ moveId, documentIds }) {
|
||||
return request({
|
||||
url: `${api.doc}/move/${moveId}`,
|
||||
method: 'put',
|
||||
data: documentIds
|
||||
})
|
||||
}
|
||||
/**公开文档文件 */
|
||||
export function setPublic({ isPublic, documentIds }) {
|
||||
return request({
|
||||
url: `${api.doc}/public?isPublic=${isPublic}`,
|
||||
method: 'put',
|
||||
data: documentIds
|
||||
})
|
||||
}
|
||||
|
||||
/**删除文档 */
|
||||
export function delDoc(id) {
|
||||
return request({
|
||||
url: `${api.doc}/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 删除多个文档
|
||||
*/
|
||||
export function mdeleteDoc(ids) {
|
||||
return request({
|
||||
url: `${api.doc}/mdelete`,
|
||||
method: 'post',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 查询一个对象
|
||||
*/
|
||||
export function getDocById(id) {
|
||||
return request({
|
||||
url: `${api.doc}/` + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询多个
|
||||
*/
|
||||
export function getArray(parameter) {
|
||||
return request({
|
||||
url: `${api.doc}/array`,
|
||||
method: 'get',
|
||||
params: { ids: parameter },
|
||||
paramsSerializer: function (parameter) {
|
||||
return qs.stringify(parameter, { indices: false })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**查询文档列表 */
|
||||
export function getDocList(parameter) {
|
||||
return request({
|
||||
url: api.doc,
|
||||
method: 'get',
|
||||
params: parameter,
|
||||
paramsSerializer: params => {
|
||||
return qs.stringify(params, { indices: false })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**查询文档列表 */
|
||||
export function getDocListAll(parameter) {
|
||||
return request({
|
||||
url: `${api.doc}/children`,
|
||||
method: 'get',
|
||||
params: parameter,
|
||||
paramsSerializer: params => {
|
||||
return qs.stringify(params, { indices: false })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function uploadDocumentFiles(projectId, parentId, formData) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.documentHandle}/${parentId}/upload-files?projectId=${projectId}`,
|
||||
method: 'post',
|
||||
data: formData
|
||||
}
|
||||
)
|
||||
}
|
||||
/**
|
||||
* 下载文件
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function downloadFile(documentId) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.documentHandle}/${documentId}/download-files`,
|
||||
method: 'post',
|
||||
responseType: 'arraybuffer'
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取目录用户
|
||||
* @param {*} documentId
|
||||
* @returns
|
||||
*/
|
||||
export function getDocUsers(documentId) {
|
||||
return request({
|
||||
url: `${api.doc}/${documentId}/users`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
/**根据Id获取文档信息操作记录 */
|
||||
export function getDocLog(id) {
|
||||
return request({
|
||||
url: `${api.docLog}/by-docid/${id}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
/**新增文档记录*/
|
||||
export function createLog(docId, logType) {
|
||||
return request({
|
||||
url: `${api.docLog}/log/${docId}?logType=${logType}`,
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
/**根据Id获取Word Html */
|
||||
export function getWordHtml(fileName, page) {
|
||||
return request({
|
||||
url: `${api.doc}/word-html?blobName=${fileName}&page=${page}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
/**根据Id获取Excel Html */
|
||||
export function getExcelHtml(fileName) {
|
||||
return request({
|
||||
url: `${api.doc}/excel-html?fileName=${fileName}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取视频地址
|
||||
*/
|
||||
export function getVideoPath(id) {
|
||||
return request({
|
||||
url: `${api.doc}/${id}/video-path`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**移动文件 */
|
||||
export function moveFile(id, parameter) {
|
||||
return request({
|
||||
url: `${api.doc}/move/${id}`,
|
||||
method: 'put',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 获取文档合模
|
||||
* @param {*} documentId
|
||||
* @returns
|
||||
*/
|
||||
export function getDocMerges(documentId) {
|
||||
return request({
|
||||
url: `${api.doc}/${documentId}/merge`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
/**获取模型统计和资料统计的数量*/
|
||||
export function getNumOfEachFormat(id) {
|
||||
return request({
|
||||
url: `${api.doc}/${id}/num-of-each-format`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function breakpointContinuation(params) {
|
||||
return request({
|
||||
url: `${api.documentHandle}/breakpoint-continuation/${params.parentId}`,
|
||||
method: 'post',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
|
||||
export function merge(params) {
|
||||
return request({
|
||||
url: `${api.documentHandle}/${params.id}/merge`,
|
||||
method: 'post',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取文件大小
|
||||
*/
|
||||
export function getDownloadFileSize(fileName) {
|
||||
return request({
|
||||
url: `${api.documentHandle}/download-file-size`,
|
||||
method: 'get',
|
||||
params: { fileName: fileName }
|
||||
})
|
||||
}
|
||||
|
||||
export function downloadFileSlice(params) {
|
||||
return request({
|
||||
url: `${api.documentHandle}/download-files`,
|
||||
method: 'post',
|
||||
params: params,
|
||||
responseType: 'arraybuffer',
|
||||
})
|
||||
}
|
||||
|
||||
export function splitUploadFile(params) {
|
||||
return requestModel({
|
||||
url: `/api/app/model/SplitUploadFile`,
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: { 'Accept': 'application/octet-stream' }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* BIM文件上传接口
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export function uploadModelFile(params) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file, params.input.Name)
|
||||
formData.append('chunk', params.chunk)
|
||||
formData.append('chunks', params.chunks)
|
||||
let input = cloneDeep(store.state.modelInput)
|
||||
params.ConfigJson ? input.ConfigJson = { ...input.ConfigJson, ...params.ConfigJson } : ''
|
||||
input = { ...input, ...params.input }
|
||||
formData.append('input', JSON.stringify(input))
|
||||
return requestModel({
|
||||
url: `/api/app/model/SplitUploadFile`,
|
||||
method: 'post',
|
||||
data: formData,
|
||||
headers: { 'Content-Type': 'application/octet-stream' }
|
||||
})
|
||||
}
|
||||
/**
|
||||
* GLB/GLTF文件上传接口
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export function uploadGLBFile(params) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file, params.input.Name)
|
||||
formData.append('chunk', params.chunk)
|
||||
formData.append('chunks', params.chunks)
|
||||
let input = cloneDeep(store.state.modelInput)
|
||||
params.ConfigJson ? input.ConfigJson = { ...input.ConfigJson, ...params.ConfigJson } : ''
|
||||
input = { ...input, ...params.input }
|
||||
formData.append('input', JSON.stringify(input))
|
||||
return requestModel({
|
||||
url: `/api/app/model/Upload3DModelsStandardFiles`,
|
||||
method: 'post',
|
||||
data: formData,
|
||||
headers: { 'Content-Type': 'application/octet-stream' }
|
||||
})
|
||||
}
|
||||
/**
|
||||
* PAK文件上传接口
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export function uploadPakFile(params) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file, params.input.Name)
|
||||
formData.append('chunk', params.chunk)
|
||||
formData.append('chunks', params.chunks)
|
||||
formData.append('LightweightName', params.input.LightweightName ? params.input.LightweightName : '')
|
||||
formData.append('CallBackUrl', params.CallBackUrl)
|
||||
// let input = cloneDeep(store.state.modelInput)
|
||||
// params.ConfigJson ? input.ConfigJson = { ...input.ConfigJson, ...params.ConfigJson } : ''
|
||||
// input = { ...input, ...params.input }
|
||||
// formData.append('input', JSON.stringify(input))
|
||||
return requestModel({
|
||||
url: `/api/app/Pak/PakSplitUploadFile`,
|
||||
method: 'post',
|
||||
data: formData,
|
||||
headers: { 'Content-Type': 'application/octet-stream' }
|
||||
})
|
||||
}
|
||||
/**
|
||||
* CAD文件上传接口
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export function uploadCADFile(params) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file, params.input.Name)
|
||||
formData.append('chunk', params.chunk)
|
||||
formData.append('chunks', params.chunks)
|
||||
let input = {}
|
||||
input = { ...input, ...params.input }
|
||||
formData.append('input', JSON.stringify(input))
|
||||
return requestModel({
|
||||
url: `/api/app/cad-drawing/SplitUploadFile`,
|
||||
method: 'post',
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Osgb文件上传接口
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export function uploadOsgbFile(params) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file, params.input.Name) //此处name值一直保持一致,因此不能用params.fileName
|
||||
formData.append('chunk', params.chunk)
|
||||
formData.append('chunks', params.chunks)
|
||||
let input = store.state.gisInput
|
||||
input = { ...input, ...params.input }
|
||||
formData.append('input', JSON.stringify(input))
|
||||
return requestModel({
|
||||
url: `/api/app/gismodel/OSGBSplitUploadFile`,
|
||||
method: 'post',
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Osgb文件上传接口
|
||||
* file 要上传的文件
|
||||
* chunk 分段索引
|
||||
* modelname 接口返回的模型名称
|
||||
* blockSize 分块后每块的大小
|
||||
* UploadSend 方法执行中的回调,返回执行进度
|
||||
* UploadOver 方法执行完成后的回调
|
||||
*/
|
||||
export function uploadOsgbSplitFile(file, chunk, modelname, blockSize, UploadSend, UploadOver) {
|
||||
var chunkCont = Math.ceil(file.size / blockSize)
|
||||
var nextSize = Math.min((chunk + 1) * blockSize, file.size);//读取到结束位置
|
||||
var fileData = file.slice(chunk * blockSize, nextSize);//截取 部分文件 块
|
||||
var filename = encodeURIComponent(file.name);
|
||||
|
||||
const formData = new FormData()
|
||||
formData.append('file', fileData, filename);//将 部分文件 塞入FormData
|
||||
formData.append("chunk", chunk);
|
||||
formData.append("chunks", chunkCont);
|
||||
|
||||
var index1 = filename.lastIndexOf(".");
|
||||
var index2 = filename.length;
|
||||
var postf = filename.substring(index1 + 1, index2).toLowerCase();//后缀名
|
||||
|
||||
//模型文件上传接口传递的参数
|
||||
var params = {
|
||||
Name: file.name,
|
||||
LightweightName: modelname,
|
||||
Priority: '203',
|
||||
}
|
||||
|
||||
let input = store.state.gisInput
|
||||
input = { ...input, ...params }
|
||||
|
||||
formData.append('input', JSON.stringify(input))
|
||||
return requestModel({
|
||||
url: `/api/app/gismodel/OSGBSplitUploadFile`,
|
||||
method: 'post',
|
||||
data: formData
|
||||
}).then((retdata) => {
|
||||
if (chunk + 1 == chunkCont) {//如果上传完成,则跳出继续上传
|
||||
if (UploadOver) {
|
||||
UploadOver(retdata, file.name);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (UploadSend) {
|
||||
var sendint = (nextSize / file.size * 100).toFixed(2)
|
||||
UploadSend(parseFloat(sendint))
|
||||
}
|
||||
uploadOsgbSplitFile(file, ++chunk, retdata.datas.lightweightName, blockSize, UploadSend, UploadOver);//递归调用
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* shp文件上传接口
|
||||
*/
|
||||
export function uploadShpFile(params) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file, params.input.Name)
|
||||
formData.append('chunk', params.chunk)
|
||||
formData.append('chunks', params.chunks)
|
||||
let input = store.state.gisInput
|
||||
input = { ...input, ...params.input }
|
||||
formData.append('input', JSON.stringify(input))
|
||||
return requestModel({
|
||||
url: `/api/app/gismodel/ShpSplitUploadFile`,
|
||||
method: 'post',
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 点云文件上传
|
||||
*/
|
||||
export function uploadPointCloudFile(params) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file, params.input.Name)
|
||||
formData.append('chunk', params.chunk)
|
||||
formData.append('chunks', params.chunks)
|
||||
let input = store.state.gisInput
|
||||
input = { ...input, ...params.input }
|
||||
formData.append('input', JSON.stringify(input))
|
||||
return requestModel({
|
||||
url: `/api/app/gismodel/PointCloudSplitUploadFile`,
|
||||
method: 'post',
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* tif上传接口
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export function uploadTifFile(params) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file, params.input.Name)
|
||||
formData.append('chunk', params.chunk)
|
||||
formData.append('chunks', params.chunks)
|
||||
let input = {}
|
||||
input = { ...input, ...params.input }
|
||||
formData.append('input', JSON.stringify(input))
|
||||
return requestModel({
|
||||
url: `/api/app/gismodel/TifSplitUploadFile`,
|
||||
method: 'post',
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* BIM下载
|
||||
*/
|
||||
export function downloadModel(params) {
|
||||
return requestModel({
|
||||
url: `/api/app/model/model-SourceFileurl?LightweightName=${params}`,
|
||||
method: 'get',
|
||||
// responseType: 'blob',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* cad下载
|
||||
*/
|
||||
export function downloadCAD(params) {
|
||||
return requestModel({
|
||||
url: `/api/app/model/model-SourceFileurl?LightweightName=${params}`,
|
||||
method: 'get',
|
||||
responseType: 'blob',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Osgb下载, gis模型文件下载
|
||||
*/
|
||||
export function downloadOsgb(params) {
|
||||
return requestModel({
|
||||
url: `/api/app/gismodel/OSGB-SourceFileurl?LightweightName=${params}`,
|
||||
method: 'get',
|
||||
// responseType: 'blob',
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 上传document
|
||||
*/
|
||||
export function createDocument(params) {
|
||||
return request({
|
||||
url: `${api.doc}`,
|
||||
method: 'post',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 坐标校正
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export function uploadCoordinate(params) {
|
||||
return requestModel({
|
||||
url: `/api/app/model/coordinate-correction-service?LightweightName=${params.LightweightName}&lon=${params.lon}&lat=${params.lat}&height=${params.height}`,
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json;charset=utf8', 'Token': store.state.bim.defaults.secretkey }
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**存储默认视点 */
|
||||
export function setSceneInformation(id, documentIds) {
|
||||
return request({
|
||||
url: `${api.doc}/${id}`,
|
||||
method: 'put',
|
||||
data: documentIds
|
||||
})
|
||||
}
|
||||
|
||||
/**封面设置 */
|
||||
export function modelProjectCover(id, BlobName) {
|
||||
return request({
|
||||
url: `${api.doc}/${id}/blob-name?BlobName=${BlobName}`,
|
||||
method: 'put',
|
||||
})
|
||||
}
|
||||
|
||||
/**存储默认视点 */
|
||||
export function setModelDefaultPerspective(id, documentIds) {
|
||||
return request({
|
||||
url: `${api.doc}/${id}/camera?Camera=${documentIds}`,
|
||||
method: 'put',
|
||||
data: documentIds
|
||||
})
|
||||
}
|
||||
|
||||
/**存储模型设置等配置 */
|
||||
export function setModelConfig(id, documentIds) {
|
||||
return request({
|
||||
url: `${api.doc}/${id}/model-config?ModelConfig=${documentIds}`,
|
||||
method: 'put',
|
||||
data: documentIds
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**存储场景设置配置 */
|
||||
export function setSceneConfig(id, documentIds) {
|
||||
return request({
|
||||
url: `${api.doc}/${id}/scene-config?SceneConfig=${documentIds}`,
|
||||
method: 'put',
|
||||
data: documentIds
|
||||
})
|
||||
}
|
||||
|
||||
/**存储模型位置 */
|
||||
export function setMatrix(id, documentIds) {
|
||||
return request({
|
||||
url: `${api.doc}/${id}/matrix?Matrix=${documentIds}`,
|
||||
method: 'put',
|
||||
data: documentIds
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 模型多视图获取
|
||||
*/
|
||||
export function getModel3DViews(params) {
|
||||
return requestModel({
|
||||
url: `/api/app/model/model3DViews?LightweightName=${params.LightweightName}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启碰撞检测
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export function startInitiateCollision(params) {
|
||||
const formData = new FormData();
|
||||
formData.append("LightweightNameA", params.LightweightNameA);
|
||||
formData.append("LightweightNameB", params.LightweightNameB);
|
||||
return requestModel({
|
||||
url: `/api/app/Collision/InitiateCollision`,
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json;charset=utf8', 'Token': store.state.bim.defaults.secretkey },
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取碰撞检测数据
|
||||
*/
|
||||
export function getCollisionInfo(CollisionId) {
|
||||
return requestModel({
|
||||
url: `/api/app/Collision/GetCollisionInfo?CollisionId=${CollisionId}`,
|
||||
method: 'get',
|
||||
headers: { 'Content-Type': 'application/json;charset=utf8', 'Token': store.state.bim.defaults.secretkey },
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 下载碰撞检测数据
|
||||
*/
|
||||
export function downloadCollisionInfo(CollisionId) {
|
||||
return requestModel({
|
||||
url: `/api/app/Collision/DownloadCollisionResultFile?CollisionId=${CollisionId}`,
|
||||
method: 'get',
|
||||
headers: { 'Content-Type': 'application/json;charset=utf8', 'Token': store.state.bim.defaults.secretkey },
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 房间结构树
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getRoomStructureTree(params) {
|
||||
return await requestModel(
|
||||
{
|
||||
url: api.roomSpace,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 空间结构树
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getModelSpaceTree (params) {
|
||||
return await requestModel(
|
||||
{
|
||||
url: api.modelSpace,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 空间结构树
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getModelSpaceTreeIdList (params) {
|
||||
return await requestModel(
|
||||
{
|
||||
url: api.modelSpaceData,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 房间结构树
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getModelPropertySpace(params) {
|
||||
return await requestModel(
|
||||
{
|
||||
url: api.modelProperty,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 坐标转换
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export function positionChange(params) {
|
||||
// const formData = new FormData();
|
||||
// formData.append("LightweightNameA", params.LightweightNameA);
|
||||
// formData.append("LightweightNameB", params.LightweightNameB);
|
||||
return requestModel({
|
||||
url: `/api/app/CoordinateTransform/SpatialReferenceToWgs84`,
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json;charset=utf8', 'Token': store.state.bim.defaults.secretkey},
|
||||
data: params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* lod编辑器文件上传接口
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export function uploadLodModelFile(params) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file, params.input.Name)
|
||||
formData.append('chunk', params.chunk)
|
||||
formData.append('chunks', params.chunks)
|
||||
let input = cloneDeep(store.state.modelInput)
|
||||
params.ConfigJson ? input.ConfigJson = { ...input.ConfigJson, ...params.ConfigJson } : ''
|
||||
input = { ...input, ...params.input }
|
||||
formData.append('input', JSON.stringify(input))
|
||||
return requestModel({
|
||||
url: `/api/app/model/LodModelUpload`,
|
||||
method: 'post',
|
||||
data: formData,
|
||||
headers: { 'Content-Type': 'application/octet-stream' }
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取lod模型信息
|
||||
*/
|
||||
export function getLodLightweightName(params) {
|
||||
return requestModel({
|
||||
url: `/api/app/model/GetLodModelNameList?LightweightName=${params}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
import request from '@/utils/request'
|
||||
const modelApi = {
|
||||
SetModelClosingData: `/api/app/combine`,
|
||||
SharedRoaming: `/api/app/sharerecordlink/getroamingdata`,
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 合模数据保存
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function setModelClosingData (params) {
|
||||
return await request(
|
||||
{
|
||||
url: modelApi.SetModelClosingData,
|
||||
method: 'post',
|
||||
data: params
|
||||
}
|
||||
)
|
||||
}
|
||||
/**
|
||||
* 合模数据查询
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getModelClosingData (id) {
|
||||
return await request(
|
||||
{
|
||||
url: `${modelApi.SetModelClosingData}/${id}`,
|
||||
method: 'get',
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 分享漫游
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function sharedRoaming (params) {
|
||||
return await request(
|
||||
{
|
||||
url: modelApi.SharedRoaming,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
import request from '@/utils/request'
|
||||
import store from '@/store'
|
||||
|
||||
const api = {
|
||||
file: `/api/app/file`,
|
||||
download:`/api/file-management/files`,
|
||||
downloadtype:`/api/file-management/files/GetModel`
|
||||
// preview: `/api/file-management/files`
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件-普通上传
|
||||
* @param {*} parameter
|
||||
* @returns
|
||||
*/
|
||||
export function uploadFile (parameter) {
|
||||
return request({
|
||||
url: api.file,
|
||||
method: 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 断点续传,自动合并
|
||||
*/
|
||||
export function uploadBreakpoint(params){
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file, params.fileName)
|
||||
return request({
|
||||
url:`${api.file}/breakpoint-continuation?fileName=${params.fileName}&hashName=${params.hashName}&chunks=${params.chunks}&chunk=${params.chunk}`,
|
||||
method:'post',
|
||||
data:formData
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 断点续传,自动合并
|
||||
*/
|
||||
export function getBlobName(params){
|
||||
return request({
|
||||
url:`/api/app/uploads/${params}`,
|
||||
method:'post',
|
||||
})
|
||||
}
|
||||
|
||||
// ${apiurl}/uploads/${blobName}
|
||||
|
||||
|
||||
/**
|
||||
* 下载文件
|
||||
*/
|
||||
export function downloadFile(blobName){
|
||||
return request({
|
||||
url: `${api.download}/${blobName}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 查看文件
|
||||
* @returns
|
||||
*/
|
||||
export function getFileByBlobName (blobName) {
|
||||
return `${store.state.baseUrl}${api.file}/?blobName=${blobName}`
|
||||
}
|
||||
|
||||
export function getDocumentById (id) {
|
||||
return `${store.state.baseUrl}${api.fileManagement}/?blobName=${id}`
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载文件
|
||||
*/
|
||||
export function downloadFiletype(blobName, filetype){
|
||||
window.open(`${store.state.baseUrl}${api.downloadtype}/${blobName}?filetype=${filetype}`)
|
||||
// return request({
|
||||
// url: `${api.downloadtype}/${blobName}?filetype=${filetype}`,
|
||||
// method: 'get'
|
||||
// })
|
||||
}
|
||||
// /**
|
||||
// * 文件浏览
|
||||
// * @param {*} blobName
|
||||
// * @returns
|
||||
// */
|
||||
// export function previewFile (blobName) {
|
||||
// return request({
|
||||
// url: `${api.preview}/` + blobName,
|
||||
// method: 'get',
|
||||
// })
|
||||
// }
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import request from '@/utils/request'
|
||||
const api = {
|
||||
label:'/api/app/label'
|
||||
}
|
||||
export async function saveLabel(params) {
|
||||
return await request({
|
||||
url: `${api.label}`,
|
||||
method: 'post',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
export async function deleteLabel(id) {
|
||||
return await request({
|
||||
url: `${api.label}/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export async function getListLabel(params) {
|
||||
return await request({
|
||||
url: `${api.label}`,
|
||||
method: 'get',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
import qs from 'qs'
|
||||
import request from '@/utils/request'
|
||||
const userApi = {
|
||||
Login: `/connect/token`,
|
||||
Logout: `/api/account/logout`,
|
||||
UserInfo: `/api/identity/my-profile`,
|
||||
SignUp: `/api/app/user-register/register`
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册账号
|
||||
*/
|
||||
export function logon(parameter) {
|
||||
return request({
|
||||
url: userApi.SignUp,
|
||||
method: 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 密码登录
|
||||
* parameter: {
|
||||
* username: '',
|
||||
* password: '',
|
||||
* remember_me: true,
|
||||
* captcha: '12345'
|
||||
* }
|
||||
* @param parameter
|
||||
* @returns {*}
|
||||
*/
|
||||
export function login(parameter) {
|
||||
const formData = qs.stringify(Object.assign({
|
||||
grant_type: process.env.VUE_APP_GRANT_TYPE,
|
||||
scope: process.env.VUE_APP_SCOPE,
|
||||
client_id: process.env.VUE_APP_CLIENT_ID,
|
||||
client_secret: process.env.VUE_APP_CLIENT_SECRET
|
||||
}, parameter))
|
||||
return request({
|
||||
url: userApi.Login,
|
||||
method: 'post',
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 手机验证码登录
|
||||
*/
|
||||
export function loginPhone(parameter) {
|
||||
const formData = qs.stringify(Object.assign({
|
||||
grant_type: process.env.VUE_APP_GRANT_TYPE_Phone,
|
||||
scope: process.env.VUE_APP_SCOPE_Phone,
|
||||
client_id: process.env.VUE_APP_CLIENT_ID_Phone,
|
||||
client_secret: process.env.VUE_APP_CLIENT_SECRET_Phone
|
||||
}, parameter))
|
||||
return request({
|
||||
url: userApi.Login,
|
||||
method: 'post',
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function getInfo() {
|
||||
return request({
|
||||
url: userApi.UserInfo,
|
||||
method: 'get',
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=UTF-8'
|
||||
}
|
||||
})
|
||||
}
|
||||
export function changePassword(formData) {
|
||||
return request({
|
||||
url: `/api/identity/my-profile/change-password`,
|
||||
// url: `/api/app/user-profile/change-password`,
|
||||
method: 'post',
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
|
||||
export function changePasswordNew(formData) {
|
||||
return request({
|
||||
url: `/api/app/user-profile/change-password`,
|
||||
// url: `/api/app/user-profile/change-password`,
|
||||
method: 'post',
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
export function logout() {
|
||||
return request({
|
||||
url: userApi.Logout,
|
||||
method: 'get',
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=UTF-8'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export function upInfo(formData) {
|
||||
return request({
|
||||
url: userApi.UserInfo,
|
||||
method: 'put',
|
||||
data: formData
|
||||
})
|
||||
}
|
||||
|
||||
//获取验证码
|
||||
export function sendVerifyCode(phone, isLogin) {
|
||||
return request({
|
||||
url: `/api/app/sms/send-verify-code?phoneNumber=${phone}&isLogin=${isLogin}`,
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
//修改手机号
|
||||
export function changePhoneNumber(params) {
|
||||
return request({
|
||||
url: `/api/app/user-profile/phone-number`,
|
||||
method: 'put',
|
||||
params
|
||||
})
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
/**写日志 */
|
||||
export async function createLog(param){
|
||||
return await request({
|
||||
url:`/api/app/logs`,
|
||||
method:'post',
|
||||
data:param
|
||||
})
|
||||
}
|
||||
//获取日志列表
|
||||
export function GetLogsList(parameter) {
|
||||
return request({
|
||||
url: `/api/app/logs`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
|
@ -0,0 +1,210 @@
|
|||
import request from '@/utils/request'
|
||||
const api = {
|
||||
modelProperty:`/api/app/model-property`,
|
||||
modelTree: `/api/app/model-tree`,
|
||||
modelType: `/api/app/model-type`,
|
||||
modelDrawing: `/api/app/model-drawing`,
|
||||
modelVersion: `/api/app/document-ver-than`,
|
||||
modelSpace: `/api/app/model-space`,
|
||||
modelPropertySpace: `/api/app/model-property-space`,
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取构件属性
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getFeatureProperty (params) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.modelProperty}/getproperty`,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 专业结构树
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getModelTypeTree (params) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.modelType}/gettypechild`,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取构件id数组
|
||||
*/
|
||||
export async function getModelTypeTreeIdList (params) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.modelType}/gettypechildextid`,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
export function getTreeList (parameter) {
|
||||
return request({
|
||||
url: `${api.modelTree}/tree`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
export function getChildrenTreeList (parameter) {
|
||||
return request({
|
||||
url: `${api.modelTree}/children-tree`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
export function getPartTreeList (parameter,data) {
|
||||
return request({
|
||||
url: `${api.modelTree}/get-part-tree`,
|
||||
method: 'post',
|
||||
params: parameter,
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取楼层结构树
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getModelFloorTree (params) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.modelTree}/gettreechild`,
|
||||
method: 'get',
|
||||
params: params,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取楼层结构下的所有构件id
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getModelFloorTreeId (params) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.modelTree}/gettreechildextid`,
|
||||
method: 'get',
|
||||
params: params,
|
||||
}
|
||||
)
|
||||
}
|
||||
// export function getTypeList (parameter) {
|
||||
// return request({
|
||||
// url: `${api.modelType}/tree`,
|
||||
// method: 'get',
|
||||
// params: parameter
|
||||
// })
|
||||
// }
|
||||
// export function getChildrenTypeList (parameter) {
|
||||
// return request({
|
||||
// url: `${api.modelType}/children-tree`,
|
||||
// method: 'get',
|
||||
// params: parameter
|
||||
// })
|
||||
// }
|
||||
|
||||
export function getDrawingType (parameter) {
|
||||
return request({
|
||||
url: `${api.modelDrawing}/type`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function getDrawingData (parameter) {
|
||||
return request({
|
||||
url: `${api.modelDrawing}/drawing`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function getDrawingGuid (parameter) {
|
||||
return request({
|
||||
url: `${api.modelDrawing}/drawing-rvt-id`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function getModelVersionHave (parameter) {
|
||||
return request({
|
||||
url: `${api.modelVersion}/entity`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function setModelVersion (parameter) {
|
||||
return request({
|
||||
url: `${api.modelVersion}`,
|
||||
method: 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function getModelVersion (id) {
|
||||
return request({
|
||||
url: `${api.modelVersion}/${id}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export function getModelVersionData (id,parameter) {
|
||||
return request({
|
||||
url: `${api.modelVersion}/${id}/start-than`,
|
||||
method: 'post',
|
||||
params: parameter,
|
||||
// data: {glid: parameter.glid}
|
||||
})
|
||||
}
|
||||
|
||||
export function setModelVersionData (id,parameter,data) {
|
||||
return request({
|
||||
url: `${api.modelVersion}/${id}/metadata-save`,
|
||||
method: 'post',
|
||||
params:parameter,
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取构件id数组
|
||||
*/
|
||||
export async function getModelSpaceTreeIdList (params) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.modelSpace}/type-child-id-list/${params.glId}`,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取构件id数组
|
||||
*/
|
||||
export async function getModelPropertySpace (params) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.modelPropertySpace}/getproperty`,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
export function savePostil(params) {
|
||||
return request({
|
||||
url: `/api/app/postil`,
|
||||
method: 'post',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 获取分页
|
||||
*/
|
||||
export function getPostilList(parameter) {
|
||||
return request({
|
||||
url: `/api/app/postil`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 分页-发起
|
||||
*/
|
||||
export function getPostilLaunch(parameter) {
|
||||
return request({
|
||||
url: `/api/app/postil/launch`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 分页-处理
|
||||
*/
|
||||
export function getPostilHandle(parameter) {
|
||||
return request({
|
||||
url: `/api/app/postil/handle`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改状态
|
||||
*/
|
||||
export function getPostilStatus(param) {
|
||||
return request({
|
||||
url: `/api/app/postil/${param.id}/status`,
|
||||
method: 'put',
|
||||
params: param
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 保存处理结果
|
||||
*/
|
||||
export function saveTask(postilId, params) {
|
||||
return request({
|
||||
url: `/api/app/postil/task/${postilId}`,
|
||||
method: 'post',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除批注
|
||||
*/
|
||||
export function deletePostil(id) {
|
||||
return request({
|
||||
url: `/api/app/postil/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取详情
|
||||
*/
|
||||
export function getPositil(id) {
|
||||
return request({
|
||||
url: `/api/app/postil/${id}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
|
@ -0,0 +1,192 @@
|
|||
import request from '@/utils/request'
|
||||
const api = {
|
||||
base: `/api/app/project`,
|
||||
folder:'/api/app/project-folder',
|
||||
folderArry:'/api/app/project-folder/arry',
|
||||
folderUser:'/api/app/project-folder-user',
|
||||
projectUserPermission:'/api/app/project/project-user-permission',
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存项目信息
|
||||
* @param {*} parameter
|
||||
* @returns
|
||||
*/
|
||||
export function saveProject (parameter) {
|
||||
const url = parameter.id ? `${api.base}/${parameter.id}` : api.base
|
||||
return request({
|
||||
url: url,
|
||||
method: parameter.id ? 'put' : 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否可以删除
|
||||
*/
|
||||
export function checkDelete(id){
|
||||
return request({
|
||||
url:`/api/app/project/${id}/check-delete`,
|
||||
method:'post'
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 删除项目
|
||||
* @param {*} id
|
||||
* @returns
|
||||
*/
|
||||
export function delProject (id) {
|
||||
return request({
|
||||
url: `${api.base}/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
|
||||
/** 根据项目id获取项目信息
|
||||
* @param {string} id 项目id
|
||||
* @returns
|
||||
*/
|
||||
export function getProject (id) {
|
||||
return request({
|
||||
url: `${api.base}/` + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
/** 根据项目id获取项目信息
|
||||
* @param {string} id 项目id
|
||||
* @returns
|
||||
*/
|
||||
export function getProjectUserPermission (id) {
|
||||
return request({
|
||||
url: `${api.projectUserPermission}/` + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目列表
|
||||
|
||||
* @param {*} keyword
|
||||
* @param {*} skipCount
|
||||
* @param {*} resCount
|
||||
* @param {bool} isMain true:项目,false:子项目
|
||||
* @param {*} parentId 可选 父级id
|
||||
* @returns
|
||||
*/
|
||||
export function getProjectList (parameter) {
|
||||
return request({
|
||||
url: api.base,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 项目展板统计数据
|
||||
* @returns
|
||||
*/
|
||||
export function getStatsCount(){
|
||||
return request({
|
||||
url:`/api/app/project/stats-count`,
|
||||
method:'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断人员是否已经参与项目
|
||||
* @param {人员Id} id
|
||||
* @returns
|
||||
*/
|
||||
export function hasJoin(id){
|
||||
return request({
|
||||
url:`/api/app/project/${id}/is-join`,
|
||||
method:'post'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取项目人员列表
|
||||
*/
|
||||
export function getProjectUsers(params){
|
||||
return request({
|
||||
url:`${api.base}/project-users`,
|
||||
method:'get',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目人员列表
|
||||
*/
|
||||
export function getProjectFolderUsers(params){
|
||||
return request({
|
||||
url:`${api.folderUser}/project-user-list`,
|
||||
method:'get',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/******以下是项目目录*********/
|
||||
|
||||
export function getFolder(id){
|
||||
return request({
|
||||
url:`${api.folder}/${id}`,
|
||||
method:'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getFolderTrees(projectId){
|
||||
return request({
|
||||
url:`${api.folder}/trees/${projectId}`,
|
||||
method:'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getFolderMyTrees(projectId){
|
||||
return request({
|
||||
url:`${api.folder}/my-trees/${projectId}`,
|
||||
method:'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addFolder(parameter){
|
||||
return request({
|
||||
url:`${api.folder}`,
|
||||
method:'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
export function folderArry(pid,parameter){
|
||||
return request({
|
||||
url:`${api.folderArry}/?ProjectID=${pid}`,
|
||||
method:'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function addFolderArr(parameter,id){
|
||||
return request({
|
||||
url:`${api.folder}/arry?ProjectID=${id}`,
|
||||
method:'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function delFolder(id) {
|
||||
return request({
|
||||
url: `${api.folder}/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
|
||||
export function updateFolder(id,parameter){
|
||||
return request({
|
||||
url:`${api.folder}/${id}`,
|
||||
method:'put',
|
||||
data: parameter
|
||||
})
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
export function colorHextoRGB(value) {
|
||||
let color = value.toLowerCase();
|
||||
//判断第一个字符是否是#
|
||||
if (color[0] !== '#') {
|
||||
color = '#' + color;
|
||||
value = color.toUpperCase();
|
||||
}
|
||||
//判断剩余的字符是否是十六进制
|
||||
for (let i = 1; i < color.length; i += 1) {
|
||||
let curChar = color[i];
|
||||
//console.log(curChar);
|
||||
if (isInHex(curChar) == false) {
|
||||
color = color.replace(curChar, '');
|
||||
value = color.toUpperCase();
|
||||
}
|
||||
}
|
||||
// 如果只有三位的值,需变成六位,如:#fff => #ffffff
|
||||
if (color.length === 4) {
|
||||
var colorNew = "#";
|
||||
for (let i = 1; i < 4; i += 1) {
|
||||
colorNew += color.slice(i, i + 1).concat(color.slice(i, i + 1));
|
||||
}
|
||||
color = colorNew;
|
||||
}
|
||||
// 处理六位的颜色值,转为RGB
|
||||
var colorChange = [];
|
||||
for (let i = 1; i < 7; i += 2) {
|
||||
colorChange.push(parseInt("0x" + color.slice(i, i + 2)));
|
||||
}
|
||||
let rgb = "rgba(" + colorChange.join(",") + ",1)";
|
||||
return rgb;
|
||||
};
|
||||
|
||||
function isInHex(c) {
|
||||
let hexArr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
|
||||
for (let i = 0; i < hexArr.length; i += 1) {
|
||||
if (hexArr[i] === c) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
export function genlabID(length) { //随机生成6位数
|
||||
return Number(Math.random().toString().substr(3, length));
|
||||
}
|
||||
|
||||
export function dateFormat(time) {
|
||||
var date = new Date(time);
|
||||
var year = date.getFullYear();
|
||||
/* 在日期格式中,月份是从0开始的,因此要加0
|
||||
* 使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05
|
||||
* */
|
||||
var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
|
||||
var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
||||
var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
|
||||
var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
|
||||
var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
|
||||
// 拼接
|
||||
return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
|
||||
}
|
||||
|
||||
export function _isMobile() {
|
||||
let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
|
||||
return flag;
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
import request from '@/utils/request'
|
||||
const api = {
|
||||
roaming: `/api/app/roaming`,
|
||||
viewPort: `/api/app/roaming/view-port`,
|
||||
}
|
||||
|
||||
/**
|
||||
* 存储漫游轨迹
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function setRoamingTrack (params) {
|
||||
return await request(
|
||||
{
|
||||
url: api.roaming,
|
||||
method: 'post',
|
||||
data: params
|
||||
}
|
||||
)
|
||||
}
|
||||
/**
|
||||
* 存自定义储漫游
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function setViewPort (params) {
|
||||
return await request(
|
||||
{
|
||||
url: api.viewPort,
|
||||
method: 'post',
|
||||
data: params
|
||||
}
|
||||
)
|
||||
}
|
||||
/**
|
||||
* 获取漫游轨迹
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getRoamingTrack (params) {
|
||||
return await request(
|
||||
{
|
||||
url: api.roaming,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改漫游名称和备注
|
||||
*/
|
||||
export async function updateRoamingTrack(params){
|
||||
return await request(
|
||||
{
|
||||
url: `${api.roaming}/${params.id}`,
|
||||
method: 'put',
|
||||
data: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除漫游轨迹
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function deleteRoamingTrack (id) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.roaming}/${id}`,
|
||||
method: 'delete',
|
||||
}
|
||||
)
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
import request from '@/utils/request'
|
||||
const api = {
|
||||
share: `/api/app/share-record`,
|
||||
SharedCode: `/api/app/share-record/getallasync`,
|
||||
}
|
||||
/**
|
||||
* 分享列表
|
||||
* @param {*} parameter
|
||||
* @returns
|
||||
*/
|
||||
export async function getList(params) {
|
||||
return await request(
|
||||
{
|
||||
url: api.share,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
export function saveShare(parameter) {
|
||||
let url = api.share
|
||||
if (parameter.id) url = `${url}/${parameter.id}`
|
||||
return request({
|
||||
url: url,
|
||||
method: parameter.id ? 'put' : 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
export function deleted(id) {
|
||||
return request({
|
||||
url: `${api.share}/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 获取分享对象
|
||||
*/
|
||||
export function getShare(id) {
|
||||
return request({
|
||||
url: `/api/app/share-record/${id}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 累加分享次数
|
||||
*/
|
||||
export function addPvm(id) {
|
||||
return request({
|
||||
url: `/api/app/share-record/${id}/pvm`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
//---------------------------------
|
||||
|
||||
/**
|
||||
* 分享保存
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function setSharedUrlSave(params) {
|
||||
return await request(
|
||||
{
|
||||
url: api.share,
|
||||
method: 'post',
|
||||
data: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
export async function ifIsAuthCode(id) {
|
||||
return await request({
|
||||
url: `${api.share}/${id}` + '/is-auth',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 分享信息获取
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function getSharedCode(params) {
|
||||
return await request(
|
||||
{
|
||||
url: api.share + `/${params.id}`,
|
||||
method: 'get',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证码验证
|
||||
* @returns {Promise<AxiosResponse<T>>}
|
||||
*/
|
||||
export async function checkSharedCode(params) {
|
||||
return await request(
|
||||
{
|
||||
url: api.share + `/${params.id}/auth-verify`,
|
||||
method: 'post',
|
||||
params: params
|
||||
}
|
||||
)
|
||||
}
|
|
@ -0,0 +1,274 @@
|
|||
import request from '@/utils/request'
|
||||
import store from '@/store'
|
||||
import { transformAbpListQuery, buildPagingQueryResult } from '@/utils/abpParamsTransform'
|
||||
|
||||
const api = {
|
||||
user: `/api/identity/users`,
|
||||
systemuser: `/api/app/system-user`,
|
||||
role: `/api/identity/roles`,
|
||||
systemrole: `/api/app/system-role`,
|
||||
permission: `/api/permission-management/permissions`,
|
||||
organizationUnit: `/api/app/organization-unit`,
|
||||
reset: `/api/app/user-profile`,
|
||||
isInitPwd:`/api/app/user-profile/is-init-pwd`,
|
||||
setting: `/api/app/system-setting`,
|
||||
roleOrgJoin: `/api/app/role-org-join`,
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户列表
|
||||
* @param {*} parameter
|
||||
* @returns
|
||||
*/
|
||||
export function getUserList (orgId, parameter) {
|
||||
return request({
|
||||
url: orgId ? `${api.organizationUnit}/users/${orgId}` : api.user,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 用户列表
|
||||
* @param {*} parameter
|
||||
* @returns
|
||||
*/
|
||||
export function getSystemAppUserList (orgId, parameter) {
|
||||
return request({
|
||||
url: orgId ? `${api.organizationUnit}/users/${orgId}` : api.systemuser,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
export function getSystemAppUserPageList (orgId, parameter) {
|
||||
return request({
|
||||
url: orgId ? `${api.organizationUnit}/users-list/${orgId}` : `${api.systemuser}/users-list`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
export function getUser (parameter) {
|
||||
return request({
|
||||
url: `${api.user}`,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function getUserInfo (id) {
|
||||
return request({
|
||||
url: `${api.user}/${id}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export function getAllUsers(){
|
||||
return request({
|
||||
url:'/api/app/user-profile',
|
||||
method:'get'
|
||||
})
|
||||
|
||||
}
|
||||
export function getRolesByUserId (userId) {
|
||||
return request({
|
||||
url: `${api.user}/${userId}/roles`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export function resetPassword (parameter) {
|
||||
const url = `${api.reset}/${parameter.id}/reset-password?password=` + parameter.password
|
||||
return request({
|
||||
url: url,
|
||||
method: 'post',
|
||||
data: null
|
||||
})
|
||||
}
|
||||
|
||||
export function roleOrgJoinAdd (parameter) {
|
||||
return request({
|
||||
url: `${api.roleOrgJoin}/arry`,
|
||||
method: 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function getRoleOrgJoinList (parameter) {
|
||||
return request({
|
||||
url: `${api.roleOrgJoin}/list`,
|
||||
method: 'get',
|
||||
params:parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function saveUser (parameter) {
|
||||
let url = api.user
|
||||
if (parameter.id) url = `${url}/${parameter.id}`
|
||||
return request({
|
||||
url: url,
|
||||
method: parameter.id ? 'put' : 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
export function delUser (id) {
|
||||
return request({
|
||||
url: `${api.user}/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
|
||||
export function getRoleList (orgId, parameter) {
|
||||
const queryParams = transformAbpListQuery(parameter)
|
||||
return request({
|
||||
url: orgId ? `${api.organizationUnit}/roles/${orgId}` : api.role,
|
||||
method: 'get',
|
||||
params: queryParams
|
||||
})
|
||||
}
|
||||
export function getSystemRoleList (parameter) {
|
||||
const queryParams = transformAbpListQuery(parameter)
|
||||
return request({
|
||||
url: `${api.systemrole}/list`,
|
||||
method: 'get',
|
||||
params: queryParams
|
||||
})
|
||||
}
|
||||
export function saveSystemRole (parameter) {
|
||||
let url = `${api.systemrole}/info`
|
||||
if (parameter.id) url = `${api.systemrole}/${parameter.id}/info`
|
||||
return request({
|
||||
url: url,
|
||||
method: parameter.id ? 'put' : 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
export function getRoleAll () {
|
||||
return request({
|
||||
url: `${api.role}/all`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
export function saveRole (parameter) {
|
||||
let url = api.role
|
||||
if (parameter.id) url = `${url}/${parameter.id}`
|
||||
return request({
|
||||
url: url,
|
||||
method: parameter.id ? 'put' : 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
export function delRole (id) {
|
||||
return request({
|
||||
url: `${api.role}/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
|
||||
export function getOrganizationUnitList (parameter) {
|
||||
const queryParams = transformAbpListQuery(parameter)
|
||||
return request({
|
||||
url: api.organizationUnit,
|
||||
method: 'get',
|
||||
params: queryParams
|
||||
}).then(data => {
|
||||
return buildPagingQueryResult(queryParams, data)
|
||||
})
|
||||
}
|
||||
|
||||
export function getOrganizationUnitTrees () {
|
||||
return request({
|
||||
url: `${api.organizationUnit}/trees`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export function getOrganizationUnitByUserId (userId) {
|
||||
return request({
|
||||
url: `${api.organizationUnit}/by-userid/${userId}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export function getNextChildCode (parentId) {
|
||||
let url = `${api.organizationUnit}/next-child-code`
|
||||
if (parentId) url = `${url}/${parentId}`
|
||||
return request({
|
||||
url: url,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export function saveOrganizationUnit (parameter) {
|
||||
let url = api.organizationUnit
|
||||
if (parameter.id) url = `${url}/${parameter.id}`
|
||||
return request({
|
||||
url: url,
|
||||
method: parameter.id ? 'put' : 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
export function delOrganizationUnit (id) {
|
||||
return request({
|
||||
url: `${api.organizationUnit}/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 所有父节点集合
|
||||
*/
|
||||
export function getParents(id){
|
||||
return request({
|
||||
url: `${api.organizationUnit}/${id}/parent`,
|
||||
method:'get'
|
||||
})
|
||||
}
|
||||
export function getRolePermissionList (roleName) {
|
||||
return request({
|
||||
url: `${api.permission}?providerName=R&providerKey=${roleName}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export function saveRolePermission (roleName, data) {
|
||||
const permissions = [{ 'name': 'AbpIdentity.Roles', 'isGranted': true },
|
||||
{ 'name': 'AbpIdentity.Roles.Create', 'isGranted': true },
|
||||
{ 'name': 'AbpIdentity.Roles.Update', 'isGranted': true },
|
||||
{ 'name': 'AbpIdentity.Roles.Delete', 'isGranted': true },
|
||||
{ 'name': 'AbpIdentity.Roles.ManagePermissions', 'isGranted': true },
|
||||
{ 'name': 'AbpIdentity.Users', 'isGranted': true },
|
||||
{ 'name': 'AbpIdentity.Users.Create', 'isGranted': true },
|
||||
{ 'name': 'AbpIdentity.Users.Update', 'isGranted': true },
|
||||
{ 'name': 'AbpIdentity.Users.Delete', 'isGranted': true },
|
||||
{ 'name': 'AbpIdentity.Users.ManagePermissions', 'isGranted': true },
|
||||
{ 'name': 'FeatureManagement.ManageHostFeatures', 'isGranted': true },
|
||||
{ 'name': 'SettingManagement.Emailing', 'isGranted': true }]
|
||||
data.permissions = data.permissions.concat(permissions)
|
||||
return request({
|
||||
url: `${api.permission}?providerName=R&providerKey=${roleName}`,
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*获取配置文件Settings对象
|
||||
*/
|
||||
export function getSettings () {
|
||||
return request({
|
||||
url: `${api.setting}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//是否需要修改密码
|
||||
export function isInitPwd(userName){
|
||||
return request({
|
||||
url:`${api.isInitPwd}?userName=${userName}`,
|
||||
method:'post'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
import request from '@/utils/request'
|
||||
const api = {
|
||||
viewpoint: `/api/app/view-point`,
|
||||
doc: `/api/app/document`,
|
||||
combine: `/api/app/combine`
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取视点列表分页
|
||||
*/
|
||||
export async function getViewpointList(params) {
|
||||
return await request({
|
||||
url: api.viewpoint,
|
||||
method: 'get',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存视点数据
|
||||
*/
|
||||
export async function saveViewpoint(params) {
|
||||
return await request(
|
||||
{
|
||||
url: api.viewpoint,
|
||||
method: 'post',
|
||||
data: params
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除视点
|
||||
*/
|
||||
export async function deleteViewPoint(id) {
|
||||
return await request(
|
||||
{
|
||||
url: `${api.viewpoint}/${id}`,
|
||||
method: 'delete',
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
/**修改视点列表状态 */
|
||||
export async function setViewPointState(id, documentIds) {
|
||||
return await request({
|
||||
url: `${api.viewpoint}/${id}/status?Status=${documentIds.Status}&OutStatus=${documentIds.OutStatus}`,
|
||||
method: 'put',
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**合模修改默认视点 */
|
||||
export function setCombineViewPoint(id, documentIds) {
|
||||
return request({
|
||||
url: `${api.combine}/${id}/camera?Camera=${documentIds}`,
|
||||
method: 'put',
|
||||
data: documentIds
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**合模修改默认视点 */
|
||||
export function setCombineSetting(id, documentIds) {
|
||||
return request({
|
||||
url: `${api.combine}/${id}`,
|
||||
method: 'put',
|
||||
data: documentIds
|
||||
})
|
||||
}
|
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 538 B |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 570 KiB |
After Width: | Height: | Size: 415 KiB |
After Width: | Height: | Size: 320 KiB |
After Width: | Height: | Size: 380 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,539 @@
|
|||
/* Logo 字体 */
|
||||
@font-face {
|
||||
font-family: "iconfont logo";
|
||||
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
|
||||
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
|
||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
|
||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
|
||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-family: "iconfont logo";
|
||||
font-size: 160px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
/* tabs */
|
||||
.nav-tabs {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-more {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#tabs {
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
#tabs li {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
border-bottom: 2px solid transparent;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin-bottom: -1px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
|
||||
#tabs .active {
|
||||
border-bottom-color: #f00;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.tab-container .content {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* 页面布局 */
|
||||
.main {
|
||||
padding: 30px 100px;
|
||||
width: 960px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.main .logo {
|
||||
color: #333;
|
||||
text-align: left;
|
||||
margin-bottom: 30px;
|
||||
line-height: 1;
|
||||
height: 110px;
|
||||
margin-top: -50px;
|
||||
overflow: hidden;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.main .logo a {
|
||||
font-size: 160px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.helps {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.helps pre {
|
||||
padding: 20px;
|
||||
margin: 10px 0;
|
||||
border: solid 1px #e7e1cd;
|
||||
background-color: #fffdef;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.icon_lists {
|
||||
width: 100% !important;
|
||||
overflow: hidden;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.icon_lists li {
|
||||
width: 100px;
|
||||
margin-bottom: 10px;
|
||||
margin-right: 20px;
|
||||
text-align: center;
|
||||
list-style: none !important;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.icon_lists li .code-name {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.icon_lists .icon {
|
||||
display: block;
|
||||
height: 100px;
|
||||
line-height: 100px;
|
||||
font-size: 42px;
|
||||
margin: 10px auto;
|
||||
color: #333;
|
||||
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
|
||||
-moz-transition: font-size 0.25s linear, width 0.25s linear;
|
||||
transition: font-size 0.25s linear, width 0.25s linear;
|
||||
}
|
||||
|
||||
.icon_lists .icon:hover {
|
||||
font-size: 100px;
|
||||
}
|
||||
|
||||
.icon_lists .svg-icon {
|
||||
/* 通过设置 font-size 来改变图标大小 */
|
||||
width: 1em;
|
||||
/* 图标和文字相邻时,垂直对齐 */
|
||||
vertical-align: -0.15em;
|
||||
/* 通过设置 color 来改变 SVG 的颜色/fill */
|
||||
fill: currentColor;
|
||||
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
|
||||
normalize.css 中也包含这行 */
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.icon_lists li .name,
|
||||
.icon_lists li .code-name {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
/* markdown 样式 */
|
||||
.markdown {
|
||||
color: #666;
|
||||
font-size: 14px;
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.markdown img {
|
||||
vertical-align: middle;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.markdown h1 {
|
||||
color: #404040;
|
||||
font-weight: 500;
|
||||
line-height: 40px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.markdown h2,
|
||||
.markdown h3,
|
||||
.markdown h4,
|
||||
.markdown h5,
|
||||
.markdown h6 {
|
||||
color: #404040;
|
||||
margin: 1.6em 0 0.6em 0;
|
||||
font-weight: 500;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.markdown h1 {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.markdown h2 {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.markdown h3 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.markdown h4 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.markdown h5 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.markdown h6 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.markdown hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background: #e9e9e9;
|
||||
margin: 16px 0;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.markdown p {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.markdown>p,
|
||||
.markdown>blockquote,
|
||||
.markdown>.highlight,
|
||||
.markdown>ol,
|
||||
.markdown>ul {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.markdown ul>li {
|
||||
list-style: circle;
|
||||
}
|
||||
|
||||
.markdown>ul li,
|
||||
.markdown blockquote ul>li {
|
||||
margin-left: 20px;
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.markdown>ul li p,
|
||||
.markdown>ol li p {
|
||||
margin: 0.6em 0;
|
||||
}
|
||||
|
||||
.markdown ol>li {
|
||||
list-style: decimal;
|
||||
}
|
||||
|
||||
.markdown>ol li,
|
||||
.markdown blockquote ol>li {
|
||||
margin-left: 20px;
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.markdown code {
|
||||
margin: 0 3px;
|
||||
padding: 0 5px;
|
||||
background: #eee;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.markdown strong,
|
||||
.markdown b {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.markdown>table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0px;
|
||||
empty-cells: show;
|
||||
border: 1px solid #e9e9e9;
|
||||
width: 95%;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.markdown>table th {
|
||||
white-space: nowrap;
|
||||
color: #333;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.markdown>table th,
|
||||
.markdown>table td {
|
||||
border: 1px solid #e9e9e9;
|
||||
padding: 8px 16px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.markdown>table th {
|
||||
background: #F7F7F7;
|
||||
}
|
||||
|
||||
.markdown blockquote {
|
||||
font-size: 90%;
|
||||
color: #999;
|
||||
border-left: 4px solid #e9e9e9;
|
||||
padding-left: 0.8em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.markdown blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.markdown .anchor {
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.markdown .waiting {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.markdown h1:hover .anchor,
|
||||
.markdown h2:hover .anchor,
|
||||
.markdown h3:hover .anchor,
|
||||
.markdown h4:hover .anchor,
|
||||
.markdown h5:hover .anchor,
|
||||
.markdown h6:hover .anchor {
|
||||
opacity: 1;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.markdown>br,
|
||||
.markdown>p>br {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
background: white;
|
||||
padding: 0.5em;
|
||||
color: #333333;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-meta {
|
||||
color: #969896;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-strong,
|
||||
.hljs-emphasis,
|
||||
.hljs-quote {
|
||||
color: #df5000;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-type {
|
||||
color: #a71d5d;
|
||||
}
|
||||
|
||||
.hljs-literal,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-attribute {
|
||||
color: #0086b3;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-name {
|
||||
color: #63a35c;
|
||||
}
|
||||
|
||||
.hljs-tag {
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-attr,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo {
|
||||
color: #795da3;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
color: #55a532;
|
||||
background-color: #eaffea;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
color: #bd2c00;
|
||||
background-color: #ffecec;
|
||||
}
|
||||
|
||||
.hljs-link {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* 代码高亮 */
|
||||
/* PrismJS 1.15.0
|
||||
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
|
||||
/**
|
||||
* prism.js default theme for JavaScript, CSS and HTML
|
||||
* Based on dabblet (http://dabblet.com)
|
||||
* @author Lea Verou
|
||||
*/
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: black;
|
||||
background: none;
|
||||
text-shadow: 0 1px white;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
word-spacing: normal;
|
||||
word-break: normal;
|
||||
word-wrap: normal;
|
||||
line-height: 1.5;
|
||||
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
tab-size: 4;
|
||||
|
||||
-webkit-hyphens: none;
|
||||
-moz-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
|
||||
pre[class*="language-"]::-moz-selection,
|
||||
pre[class*="language-"] ::-moz-selection,
|
||||
code[class*="language-"]::-moz-selection,
|
||||
code[class*="language-"] ::-moz-selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
|
||||
pre[class*="language-"]::selection,
|
||||
pre[class*="language-"] ::selection,
|
||||
code[class*="language-"]::selection,
|
||||
code[class*="language-"] ::selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
|
||||
@media print {
|
||||
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Code blocks */
|
||||
pre[class*="language-"] {
|
||||
padding: 1em;
|
||||
margin: .5em 0;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
:not(pre)>code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
background: #f5f2f0;
|
||||
}
|
||||
|
||||
/* Inline code */
|
||||
:not(pre)>code[class*="language-"] {
|
||||
padding: .1em;
|
||||
border-radius: .3em;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
.token.prolog,
|
||||
.token.doctype,
|
||||
.token.cdata {
|
||||
color: slategray;
|
||||
}
|
||||
|
||||
.token.punctuation {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.namespace {
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.token.property,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.number,
|
||||
.token.constant,
|
||||
.token.symbol,
|
||||
.token.deleted {
|
||||
color: #905;
|
||||
}
|
||||
|
||||
.token.selector,
|
||||
.token.attr-name,
|
||||
.token.string,
|
||||
.token.char,
|
||||
.token.builtin,
|
||||
.token.inserted {
|
||||
color: #690;
|
||||
}
|
||||
|
||||
.token.operator,
|
||||
.token.entity,
|
||||
.token.url,
|
||||
.language-css .token.string,
|
||||
.style .token.string {
|
||||
color: #9a6e3a;
|
||||
background: hsla(0, 0%, 100%, .5);
|
||||
}
|
||||
|
||||
.token.atrule,
|
||||
.token.attr-value,
|
||||
.token.keyword {
|
||||
color: #07a;
|
||||
}
|
||||
|
||||
.token.function,
|
||||
.token.class-name {
|
||||
color: #DD4A68;
|
||||
}
|
||||
|
||||
.token.regex,
|
||||
.token.important,
|
||||
.token.variable {
|
||||
color: #e90;
|
||||
}
|
||||
|
||||
.token.important,
|
||||
.token.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.token.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.token.entity {
|
||||
cursor: help;
|
||||
}
|
|
@ -0,0 +1,319 @@
|
|||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 2856283 */
|
||||
src: url('iconfont.woff2?t=1646898329944') format('woff2'),
|
||||
url('iconfont.woff?t=1646898329944') format('woff'),
|
||||
url('iconfont.ttf?t=1646898329944') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
font-family: "iconfont" !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-mianji::after {
|
||||
content: "\e612";
|
||||
}
|
||||
|
||||
.icon-shuxing::after {
|
||||
content: "\e727";
|
||||
}
|
||||
|
||||
.icon-zhushitu::after {
|
||||
content: "\e619";
|
||||
}
|
||||
|
||||
.icon-juli::after {
|
||||
content: "\e635";
|
||||
}
|
||||
|
||||
.icon-mianjiceliang::after {
|
||||
content: "\e613";
|
||||
}
|
||||
|
||||
.icon-iconfonttubiao_tiji::after {
|
||||
content: "\e614";
|
||||
}
|
||||
|
||||
.icon-shituzhushitu::after {
|
||||
content: "\e650";
|
||||
}
|
||||
|
||||
.icon-yincangbukejian::after {
|
||||
content: "\e8d5";
|
||||
}
|
||||
|
||||
.icon-celiang::after {
|
||||
content: "\e615";
|
||||
}
|
||||
|
||||
.icon-jihuajindu::after {
|
||||
content: "\e611";
|
||||
}
|
||||
|
||||
.icon-guanbi::after {
|
||||
content: "\e60e";
|
||||
}
|
||||
|
||||
.icon-close::after {
|
||||
content: "\e60f";
|
||||
}
|
||||
|
||||
.icon-zhuanyi::after {
|
||||
content: "\e686";
|
||||
}
|
||||
|
||||
.icon-icon_list_zhuanyi::after {
|
||||
content: "\e61d";
|
||||
}
|
||||
|
||||
.icon-wentifankui::after {
|
||||
content: "\e63a";
|
||||
}
|
||||
|
||||
.icon-Icon-daichuli::after {
|
||||
content: "\e60d";
|
||||
}
|
||||
|
||||
.icon-24gf-shieldCheck::after {
|
||||
content: "\e9d9";
|
||||
}
|
||||
|
||||
.icon-wenti::after {
|
||||
content: "\e649";
|
||||
}
|
||||
|
||||
.icon-zhuanfa::after {
|
||||
content: "\e6c4";
|
||||
}
|
||||
|
||||
.icon-withdraw::after {
|
||||
content: "\e60c";
|
||||
}
|
||||
|
||||
.icon-fasonggeihaoyou-::after {
|
||||
content: "\e6ac";
|
||||
}
|
||||
|
||||
.icon-fanhui-chehui-06::after {
|
||||
content: "\e81d";
|
||||
}
|
||||
|
||||
.icon-shezhi::after {
|
||||
content: "\e8b7";
|
||||
}
|
||||
|
||||
.icon-bianji::after {
|
||||
content: "\e60b";
|
||||
}
|
||||
|
||||
.icon-mima1::after {
|
||||
content: "\e8b2";
|
||||
}
|
||||
|
||||
.icon-liebiao::after {
|
||||
content: "\e618";
|
||||
}
|
||||
|
||||
.icon-shuanglieliebiao::after {
|
||||
content: "\e6e5";
|
||||
}
|
||||
|
||||
.icon-liebiao1::after {
|
||||
content: "\ec6b";
|
||||
}
|
||||
|
||||
.icon-liebiaomoshi_kuai::after {
|
||||
content: "\ec7e";
|
||||
}
|
||||
|
||||
.icon-yanzhengma1::after {
|
||||
content: "\e637";
|
||||
}
|
||||
|
||||
.icon-yanzhengma2::after {
|
||||
content: "\e624";
|
||||
}
|
||||
|
||||
.icon-shoucang2::after {
|
||||
content: "\e8c6";
|
||||
}
|
||||
|
||||
.icon-weixin2::after {
|
||||
content: "\e607";
|
||||
}
|
||||
|
||||
.icon-shoujihao1::after {
|
||||
content: "\e60a";
|
||||
}
|
||||
|
||||
.icon-lishibanben::after {
|
||||
content: "\e63f";
|
||||
}
|
||||
|
||||
.icon-weixin3::after {
|
||||
content: "\e608";
|
||||
}
|
||||
|
||||
.icon-yanzhengma3::after {
|
||||
content: "\e609";
|
||||
}
|
||||
|
||||
.icon-suoxiao::after {
|
||||
content: "\e600";
|
||||
}
|
||||
|
||||
.icon-fangda::after {
|
||||
content: "\e601";
|
||||
}
|
||||
|
||||
.icon-quanping::after {
|
||||
content: "\e602";
|
||||
}
|
||||
|
||||
.icon-weixin::after {
|
||||
content: "\e603";
|
||||
}
|
||||
|
||||
.icon-shoucang::after {
|
||||
content: "\e604";
|
||||
}
|
||||
|
||||
.icon-xiazai::after {
|
||||
content: "\e605";
|
||||
}
|
||||
|
||||
.icon-erweima::after {
|
||||
content: "\e65f";
|
||||
}
|
||||
|
||||
.icon-shanchutianchong::after {
|
||||
content: "\e68c";
|
||||
}
|
||||
|
||||
.icon-31shoucang::after {
|
||||
content: "\e606";
|
||||
}
|
||||
|
||||
.icon-yanzhengma::after {
|
||||
content: "\e71c";
|
||||
}
|
||||
|
||||
.icon-shoujihao::after {
|
||||
content: "\e6c1";
|
||||
}
|
||||
|
||||
.icon-weixin1::after {
|
||||
content: "\e64f";
|
||||
}
|
||||
|
||||
.icon-mima::after {
|
||||
content: "\e646";
|
||||
}
|
||||
|
||||
.icon-tupian::after {
|
||||
content: "\e64a";
|
||||
}
|
||||
|
||||
.icon-jiazai::after {
|
||||
content: "\e699";
|
||||
}
|
||||
|
||||
.icon-saomiaoerweima::after {
|
||||
content: "\e66c";
|
||||
}
|
||||
|
||||
.icon-200yonghu_yonghu::after {
|
||||
content: "\e63c";
|
||||
}
|
||||
|
||||
.icon-201yonghu_yonghu2::after {
|
||||
content: "\e63d";
|
||||
}
|
||||
|
||||
.icon-202yonghu_yonghu3::after {
|
||||
content: "\e63e";
|
||||
}
|
||||
|
||||
.icon-jiazaizhong::after {
|
||||
content: "\e6b0";
|
||||
}
|
||||
|
||||
.icon-sousuo::after {
|
||||
content: "\e8ba";
|
||||
}
|
||||
|
||||
.icon-shoucang1::after {
|
||||
content: "\e8c2";
|
||||
}
|
||||
|
||||
.icon-yonghuziliao-xianxing::after {
|
||||
content: "\e91c";
|
||||
}
|
||||
|
||||
.icon-jiantoushang::after {
|
||||
content: "\e62c";
|
||||
}
|
||||
|
||||
.icon-jiantoushang1::after {
|
||||
content: "\e62d";
|
||||
}
|
||||
|
||||
.icon-jiantouyou::after {
|
||||
content: "\e62e";
|
||||
}
|
||||
|
||||
.icon-jiantouxia::after {
|
||||
content: "\e62f";
|
||||
}
|
||||
|
||||
.icon-shujutansuoshujuzhongxinmoxingguanli::after {
|
||||
content: "\e65c";
|
||||
}
|
||||
|
||||
.icon-jiantou_xiangyou::after {
|
||||
content: "\eb08";
|
||||
}
|
||||
|
||||
.icon-jiantou_xiangzuo::after {
|
||||
content: "\eb09";
|
||||
}
|
||||
|
||||
.icon-jiantou_shangxiaqiehuan::after {
|
||||
content: "\eb0a";
|
||||
}
|
||||
|
||||
.icon-jiantou_xiangxia::after {
|
||||
content: "\eb0b";
|
||||
}
|
||||
|
||||
.icon-jiantou_xiangshang::after {
|
||||
content: "\eb0c";
|
||||
}
|
||||
|
||||
.icon-jiantou_youshang::after {
|
||||
content: "\eb0d";
|
||||
}
|
||||
|
||||
.icon-jiantou_zuoshang::after {
|
||||
content: "\eb0e";
|
||||
}
|
||||
|
||||
.icon-jiantou_youxia::after {
|
||||
content: "\eb0f";
|
||||
}
|
||||
|
||||
.icon-jiantou_zuoyouqiehuan::after {
|
||||
content: "\eb10";
|
||||
}
|
||||
|
||||
.icon-jiantou_zuoxia::after {
|
||||
content: "\eb11";
|
||||
}
|
||||
|
||||
.icon-_moxingguanli::after {
|
||||
content: "\e610";
|
||||
}
|
||||
|
|
@ -0,0 +1,541 @@
|
|||
{
|
||||
"id": "2856283",
|
||||
"name": "海尔项目",
|
||||
"font_family": "iconfont",
|
||||
"css_prefix_text": "icon-",
|
||||
"description": "",
|
||||
"glyphs": [
|
||||
{
|
||||
"icon_id": "36107",
|
||||
"name": "面积",
|
||||
"font_class": "mianji",
|
||||
"unicode": "e612",
|
||||
"unicode_decimal": 58898
|
||||
},
|
||||
{
|
||||
"icon_id": "680988",
|
||||
"name": "属性",
|
||||
"font_class": "shuxing",
|
||||
"unicode": "e727",
|
||||
"unicode_decimal": 59175
|
||||
},
|
||||
{
|
||||
"icon_id": "4236657",
|
||||
"name": "主视图",
|
||||
"font_class": "zhushitu",
|
||||
"unicode": "e619",
|
||||
"unicode_decimal": 58905
|
||||
},
|
||||
{
|
||||
"icon_id": "4888578",
|
||||
"name": "icon-design-33",
|
||||
"font_class": "juli",
|
||||
"unicode": "e635",
|
||||
"unicode_decimal": 58933
|
||||
},
|
||||
{
|
||||
"icon_id": "6677524",
|
||||
"name": "面积测量",
|
||||
"font_class": "mianjiceliang",
|
||||
"unicode": "e613",
|
||||
"unicode_decimal": 58899
|
||||
},
|
||||
{
|
||||
"icon_id": "9960705",
|
||||
"name": "iconfont图标_体积",
|
||||
"font_class": "iconfonttubiao_tiji",
|
||||
"unicode": "e614",
|
||||
"unicode_decimal": 58900
|
||||
},
|
||||
{
|
||||
"icon_id": "15773666",
|
||||
"name": "【视图】主视图",
|
||||
"font_class": "shituzhushitu",
|
||||
"unicode": "e650",
|
||||
"unicode_decimal": 58960
|
||||
},
|
||||
{
|
||||
"icon_id": "1727486",
|
||||
"name": "241隐藏、不可见",
|
||||
"font_class": "yincangbukejian",
|
||||
"unicode": "e8d5",
|
||||
"unicode_decimal": 59605
|
||||
},
|
||||
{
|
||||
"icon_id": "8718263",
|
||||
"name": "测量",
|
||||
"font_class": "celiang",
|
||||
"unicode": "e615",
|
||||
"unicode_decimal": 58901
|
||||
},
|
||||
{
|
||||
"icon_id": "8615575",
|
||||
"name": "计划进度",
|
||||
"font_class": "jihuajindu",
|
||||
"unicode": "e611",
|
||||
"unicode_decimal": 58897
|
||||
},
|
||||
{
|
||||
"icon_id": "538861",
|
||||
"name": "关闭",
|
||||
"font_class": "guanbi",
|
||||
"unicode": "e60e",
|
||||
"unicode_decimal": 58894
|
||||
},
|
||||
{
|
||||
"icon_id": "1368540",
|
||||
"name": "关闭",
|
||||
"font_class": "close",
|
||||
"unicode": "e60f",
|
||||
"unicode_decimal": 58895
|
||||
},
|
||||
{
|
||||
"icon_id": "167224",
|
||||
"name": "转移",
|
||||
"font_class": "zhuanyi",
|
||||
"unicode": "e686",
|
||||
"unicode_decimal": 59014
|
||||
},
|
||||
{
|
||||
"icon_id": "14197976",
|
||||
"name": "转移",
|
||||
"font_class": "icon_list_zhuanyi",
|
||||
"unicode": "e61d",
|
||||
"unicode_decimal": 58909
|
||||
},
|
||||
{
|
||||
"icon_id": "2448136",
|
||||
"name": "问题反馈",
|
||||
"font_class": "wentifankui",
|
||||
"unicode": "e63a",
|
||||
"unicode_decimal": 58938
|
||||
},
|
||||
{
|
||||
"icon_id": "6334892",
|
||||
"name": "Icon - 待处理",
|
||||
"font_class": "Icon-daichuli",
|
||||
"unicode": "e60d",
|
||||
"unicode_decimal": 58893
|
||||
},
|
||||
{
|
||||
"icon_id": "7577443",
|
||||
"name": "24gf-shieldCheck",
|
||||
"font_class": "24gf-shieldCheck",
|
||||
"unicode": "e9d9",
|
||||
"unicode_decimal": 59865
|
||||
},
|
||||
{
|
||||
"icon_id": "11239062",
|
||||
"name": "问题",
|
||||
"font_class": "wenti",
|
||||
"unicode": "e649",
|
||||
"unicode_decimal": 58953
|
||||
},
|
||||
{
|
||||
"icon_id": "119107",
|
||||
"name": "转发",
|
||||
"font_class": "zhuanfa",
|
||||
"unicode": "e6c4",
|
||||
"unicode_decimal": 59076
|
||||
},
|
||||
{
|
||||
"icon_id": "1368553",
|
||||
"name": "撤回",
|
||||
"font_class": "withdraw",
|
||||
"unicode": "e60c",
|
||||
"unicode_decimal": 58892
|
||||
},
|
||||
{
|
||||
"icon_id": "3581375",
|
||||
"name": "发送给好友-01",
|
||||
"font_class": "fasonggeihaoyou-",
|
||||
"unicode": "e6ac",
|
||||
"unicode_decimal": 59052
|
||||
},
|
||||
{
|
||||
"icon_id": "24858654",
|
||||
"name": "返回-撤回-06",
|
||||
"font_class": "fanhui-chehui-06",
|
||||
"unicode": "e81d",
|
||||
"unicode_decimal": 59421
|
||||
},
|
||||
{
|
||||
"icon_id": "11372694",
|
||||
"name": "设置",
|
||||
"font_class": "shezhi",
|
||||
"unicode": "e8b7",
|
||||
"unicode_decimal": 59575
|
||||
},
|
||||
{
|
||||
"icon_id": "1264",
|
||||
"name": "编辑",
|
||||
"font_class": "bianji",
|
||||
"unicode": "e60b",
|
||||
"unicode_decimal": 58891
|
||||
},
|
||||
{
|
||||
"icon_id": "11372676",
|
||||
"name": "密码",
|
||||
"font_class": "mima1",
|
||||
"unicode": "e8b2",
|
||||
"unicode_decimal": 59570
|
||||
},
|
||||
{
|
||||
"icon_id": "1282",
|
||||
"name": "列表",
|
||||
"font_class": "liebiao",
|
||||
"unicode": "e618",
|
||||
"unicode_decimal": 58904
|
||||
},
|
||||
{
|
||||
"icon_id": "1046066",
|
||||
"name": "双列列表",
|
||||
"font_class": "shuanglieliebiao",
|
||||
"unicode": "e6e5",
|
||||
"unicode_decimal": 59109
|
||||
},
|
||||
{
|
||||
"icon_id": "5961366",
|
||||
"name": "列表",
|
||||
"font_class": "liebiao1",
|
||||
"unicode": "ec6b",
|
||||
"unicode_decimal": 60523
|
||||
},
|
||||
{
|
||||
"icon_id": "6237287",
|
||||
"name": "列表模式_块",
|
||||
"font_class": "liebiaomoshi_kuai",
|
||||
"unicode": "ec7e",
|
||||
"unicode_decimal": 60542
|
||||
},
|
||||
{
|
||||
"icon_id": "6929427",
|
||||
"name": "验证码",
|
||||
"font_class": "yanzhengma1",
|
||||
"unicode": "e637",
|
||||
"unicode_decimal": 58935
|
||||
},
|
||||
{
|
||||
"icon_id": "8594072",
|
||||
"name": "验证码",
|
||||
"font_class": "yanzhengma2",
|
||||
"unicode": "e624",
|
||||
"unicode_decimal": 58916
|
||||
},
|
||||
{
|
||||
"icon_id": "11372777",
|
||||
"name": "收藏",
|
||||
"font_class": "shoucang2",
|
||||
"unicode": "e8c6",
|
||||
"unicode_decimal": 59590
|
||||
},
|
||||
{
|
||||
"icon_id": "11463944",
|
||||
"name": "微信",
|
||||
"font_class": "weixin2",
|
||||
"unicode": "e607",
|
||||
"unicode_decimal": 58887
|
||||
},
|
||||
{
|
||||
"icon_id": "11855574",
|
||||
"name": "手机号",
|
||||
"font_class": "shoujihao1",
|
||||
"unicode": "e60a",
|
||||
"unicode_decimal": 58890
|
||||
},
|
||||
{
|
||||
"icon_id": "15192652",
|
||||
"name": "历史版本",
|
||||
"font_class": "lishibanben",
|
||||
"unicode": "e63f",
|
||||
"unicode_decimal": 58943
|
||||
},
|
||||
{
|
||||
"icon_id": "15933094",
|
||||
"name": "微信",
|
||||
"font_class": "weixin3",
|
||||
"unicode": "e608",
|
||||
"unicode_decimal": 58888
|
||||
},
|
||||
{
|
||||
"icon_id": "21435107",
|
||||
"name": "验证码",
|
||||
"font_class": "yanzhengma3",
|
||||
"unicode": "e609",
|
||||
"unicode_decimal": 58889
|
||||
},
|
||||
{
|
||||
"icon_id": "1365",
|
||||
"name": "缩小",
|
||||
"font_class": "suoxiao",
|
||||
"unicode": "e600",
|
||||
"unicode_decimal": 58880
|
||||
},
|
||||
{
|
||||
"icon_id": "1366",
|
||||
"name": "放大",
|
||||
"font_class": "fangda",
|
||||
"unicode": "e601",
|
||||
"unicode_decimal": 58881
|
||||
},
|
||||
{
|
||||
"icon_id": "1368",
|
||||
"name": "全屏",
|
||||
"font_class": "quanping",
|
||||
"unicode": "e602",
|
||||
"unicode_decimal": 58882
|
||||
},
|
||||
{
|
||||
"icon_id": "77156",
|
||||
"name": "微信",
|
||||
"font_class": "weixin",
|
||||
"unicode": "e603",
|
||||
"unicode_decimal": 58883
|
||||
},
|
||||
{
|
||||
"icon_id": "77828",
|
||||
"name": "收藏",
|
||||
"font_class": "shoucang",
|
||||
"unicode": "e604",
|
||||
"unicode_decimal": 58884
|
||||
},
|
||||
{
|
||||
"icon_id": "136387",
|
||||
"name": "下载",
|
||||
"font_class": "xiazai",
|
||||
"unicode": "e605",
|
||||
"unicode_decimal": 58885
|
||||
},
|
||||
{
|
||||
"icon_id": "145488",
|
||||
"name": "二维码",
|
||||
"font_class": "erweima",
|
||||
"unicode": "e65f",
|
||||
"unicode_decimal": 58975
|
||||
},
|
||||
{
|
||||
"icon_id": "145719",
|
||||
"name": "删除_填充",
|
||||
"font_class": "shanchutianchong",
|
||||
"unicode": "e68c",
|
||||
"unicode_decimal": 59020
|
||||
},
|
||||
{
|
||||
"icon_id": "200845",
|
||||
"name": "3.1收藏",
|
||||
"font_class": "31shoucang",
|
||||
"unicode": "e606",
|
||||
"unicode_decimal": 58886
|
||||
},
|
||||
{
|
||||
"icon_id": "765220",
|
||||
"name": "验证码",
|
||||
"font_class": "yanzhengma",
|
||||
"unicode": "e71c",
|
||||
"unicode_decimal": 59164
|
||||
},
|
||||
{
|
||||
"icon_id": "859294",
|
||||
"name": "手机号",
|
||||
"font_class": "shoujihao",
|
||||
"unicode": "e6c1",
|
||||
"unicode_decimal": 59073
|
||||
},
|
||||
{
|
||||
"icon_id": "859693",
|
||||
"name": "微信",
|
||||
"font_class": "weixin1",
|
||||
"unicode": "e64f",
|
||||
"unicode_decimal": 58959
|
||||
},
|
||||
{
|
||||
"icon_id": "947480",
|
||||
"name": "密码",
|
||||
"font_class": "mima",
|
||||
"unicode": "e646",
|
||||
"unicode_decimal": 58950
|
||||
},
|
||||
{
|
||||
"icon_id": "947484",
|
||||
"name": "图片",
|
||||
"font_class": "tupian",
|
||||
"unicode": "e64a",
|
||||
"unicode_decimal": 58954
|
||||
},
|
||||
{
|
||||
"icon_id": "1239930",
|
||||
"name": "加载",
|
||||
"font_class": "jiazai",
|
||||
"unicode": "e699",
|
||||
"unicode_decimal": 59033
|
||||
},
|
||||
{
|
||||
"icon_id": "1250958",
|
||||
"name": "扫描二维码",
|
||||
"font_class": "saomiaoerweima",
|
||||
"unicode": "e66c",
|
||||
"unicode_decimal": 58988
|
||||
},
|
||||
{
|
||||
"icon_id": "1308383",
|
||||
"name": "200用户_用户",
|
||||
"font_class": "200yonghu_yonghu",
|
||||
"unicode": "e63c",
|
||||
"unicode_decimal": 58940
|
||||
},
|
||||
{
|
||||
"icon_id": "1308388",
|
||||
"name": "201用户_用户2",
|
||||
"font_class": "201yonghu_yonghu2",
|
||||
"unicode": "e63d",
|
||||
"unicode_decimal": 58941
|
||||
},
|
||||
{
|
||||
"icon_id": "1308389",
|
||||
"name": "202用户_用户3",
|
||||
"font_class": "202yonghu_yonghu3",
|
||||
"unicode": "e63e",
|
||||
"unicode_decimal": 58942
|
||||
},
|
||||
{
|
||||
"icon_id": "1617823",
|
||||
"name": "1105加载中",
|
||||
"font_class": "jiazaizhong",
|
||||
"unicode": "e6b0",
|
||||
"unicode_decimal": 59056
|
||||
},
|
||||
{
|
||||
"icon_id": "1727425",
|
||||
"name": "206搜索",
|
||||
"font_class": "sousuo",
|
||||
"unicode": "e8ba",
|
||||
"unicode_decimal": 59578
|
||||
},
|
||||
{
|
||||
"icon_id": "1727441",
|
||||
"name": "213收藏",
|
||||
"font_class": "shoucang1",
|
||||
"unicode": "e8c2",
|
||||
"unicode_decimal": 59586
|
||||
},
|
||||
{
|
||||
"icon_id": "2126754",
|
||||
"name": "257用户资料-线性",
|
||||
"font_class": "yonghuziliao-xianxing",
|
||||
"unicode": "e91c",
|
||||
"unicode_decimal": 59676
|
||||
},
|
||||
{
|
||||
"icon_id": "2674878",
|
||||
"name": "箭头 上",
|
||||
"font_class": "jiantoushang",
|
||||
"unicode": "e62c",
|
||||
"unicode_decimal": 58924
|
||||
},
|
||||
{
|
||||
"icon_id": "2674927",
|
||||
"name": "箭头 上",
|
||||
"font_class": "jiantoushang1",
|
||||
"unicode": "e62d",
|
||||
"unicode_decimal": 58925
|
||||
},
|
||||
{
|
||||
"icon_id": "2674928",
|
||||
"name": "箭头 右",
|
||||
"font_class": "jiantouyou",
|
||||
"unicode": "e62e",
|
||||
"unicode_decimal": 58926
|
||||
},
|
||||
{
|
||||
"icon_id": "2674929",
|
||||
"name": "箭头 下",
|
||||
"font_class": "jiantouxia",
|
||||
"unicode": "e62f",
|
||||
"unicode_decimal": 58927
|
||||
},
|
||||
{
|
||||
"icon_id": "4773265",
|
||||
"name": "数据探索(数据中心)—模型管理",
|
||||
"font_class": "shujutansuoshujuzhongxinmoxingguanli",
|
||||
"unicode": "e65c",
|
||||
"unicode_decimal": 58972
|
||||
},
|
||||
{
|
||||
"icon_id": "5387583",
|
||||
"name": "箭头_向右",
|
||||
"font_class": "jiantou_xiangyou",
|
||||
"unicode": "eb08",
|
||||
"unicode_decimal": 60168
|
||||
},
|
||||
{
|
||||
"icon_id": "5387584",
|
||||
"name": "箭头_向左",
|
||||
"font_class": "jiantou_xiangzuo",
|
||||
"unicode": "eb09",
|
||||
"unicode_decimal": 60169
|
||||
},
|
||||
{
|
||||
"icon_id": "5387586",
|
||||
"name": "箭头_上下切换",
|
||||
"font_class": "jiantou_shangxiaqiehuan",
|
||||
"unicode": "eb0a",
|
||||
"unicode_decimal": 60170
|
||||
},
|
||||
{
|
||||
"icon_id": "5387588",
|
||||
"name": "箭头_向下",
|
||||
"font_class": "jiantou_xiangxia",
|
||||
"unicode": "eb0b",
|
||||
"unicode_decimal": 60171
|
||||
},
|
||||
{
|
||||
"icon_id": "5387589",
|
||||
"name": "箭头_向上",
|
||||
"font_class": "jiantou_xiangshang",
|
||||
"unicode": "eb0c",
|
||||
"unicode_decimal": 60172
|
||||
},
|
||||
{
|
||||
"icon_id": "5387593",
|
||||
"name": "箭头_右上",
|
||||
"font_class": "jiantou_youshang",
|
||||
"unicode": "eb0d",
|
||||
"unicode_decimal": 60173
|
||||
},
|
||||
{
|
||||
"icon_id": "5387594",
|
||||
"name": "箭头_左上",
|
||||
"font_class": "jiantou_zuoshang",
|
||||
"unicode": "eb0e",
|
||||
"unicode_decimal": 60174
|
||||
},
|
||||
{
|
||||
"icon_id": "5387595",
|
||||
"name": "箭头_右下",
|
||||
"font_class": "jiantou_youxia",
|
||||
"unicode": "eb0f",
|
||||
"unicode_decimal": 60175
|
||||
},
|
||||
{
|
||||
"icon_id": "5387596",
|
||||
"name": "箭头_左右切换",
|
||||
"font_class": "jiantou_zuoyouqiehuan",
|
||||
"unicode": "eb10",
|
||||
"unicode_decimal": 60176
|
||||
},
|
||||
{
|
||||
"icon_id": "5387600",
|
||||
"name": "箭头_左下",
|
||||
"font_class": "jiantou_zuoxia",
|
||||
"unicode": "eb11",
|
||||
"unicode_decimal": 60177
|
||||
},
|
||||
{
|
||||
"icon_id": "5922287",
|
||||
"name": "154_模型管理",
|
||||
"font_class": "_moxingguanli",
|
||||
"unicode": "e610",
|
||||
"unicode_decimal": 58896
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1551058675966" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7872" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M85.333333 512h85.333334a340.736 340.736 0 0 1 99.712-241.621333 337.493333 337.493333 0 0 1 108.458666-72.96 346.453333 346.453333 0 0 1 261.546667-1.749334A106.154667 106.154667 0 0 0 746.666667 298.666667C805.802667 298.666667 853.333333 251.136 853.333333 192S805.802667 85.333333 746.666667 85.333333c-29.397333 0-55.978667 11.776-75.221334 30.933334-103.722667-41.514667-222.848-40.874667-325.76 2.517333a423.594667 423.594667 0 0 0-135.68 91.264 423.253333 423.253333 0 0 0-91.306666 135.637333A426.88 426.88 0 0 0 85.333333 512z m741.248 133.205333c-17.109333 40.618667-41.685333 77.141333-72.96 108.416s-67.797333 55.850667-108.458666 72.96a346.453333 346.453333 0 0 1-261.546667 1.749334A106.154667 106.154667 0 0 0 277.333333 725.333333C218.197333 725.333333 170.666667 772.864 170.666667 832S218.197333 938.666667 277.333333 938.666667c29.397333 0 55.978667-11.776 75.221334-30.933334A425.173333 425.173333 0 0 0 512 938.666667a425.941333 425.941333 0 0 0 393.258667-260.352A426.325333 426.325333 0 0 0 938.666667 512h-85.333334a341.034667 341.034667 0 0 1-26.752 133.205333z" p-id="7873"></path><path d="M512 318.378667c-106.752 0-193.621333 86.869333-193.621333 193.621333S405.248 705.621333 512 705.621333s193.621333-86.869333 193.621333-193.621333S618.752 318.378667 512 318.378667z m0 301.909333c-59.690667 0-108.288-48.597333-108.288-108.288S452.309333 403.712 512 403.712s108.288 48.597333 108.288 108.288-48.597333 108.288-108.288 108.288z" p-id="7874"></path></svg>
|
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 441 B |
After Width: | Height: | Size: 843 B |
After Width: | Height: | Size: 556 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 842 B |
After Width: | Height: | Size: 570 B |
After Width: | Height: | Size: 696 B |
After Width: | Height: | Size: 565 B |
After Width: | Height: | Size: 451 B |
After Width: | Height: | Size: 375 B |
After Width: | Height: | Size: 208 B |
After Width: | Height: | Size: 200 B |
After Width: | Height: | Size: 410 B |
After Width: | Height: | Size: 349 B |
After Width: | Height: | Size: 482 B |
After Width: | Height: | Size: 391 B |
After Width: | Height: | Size: 179 B |
After Width: | Height: | Size: 170 B |
After Width: | Height: | Size: 585 B |
After Width: | Height: | Size: 495 B |
After Width: | Height: | Size: 657 B |
After Width: | Height: | Size: 513 B |
After Width: | Height: | Size: 374 B |
After Width: | Height: | Size: 311 B |
After Width: | Height: | Size: 646 B |
After Width: | Height: | Size: 507 B |
After Width: | Height: | Size: 448 B |
After Width: | Height: | Size: 523 B |