Commit 61021f02 authored by 李苏's avatar 李苏 💬

调整

parent 87ee4950
......@@ -149,76 +149,36 @@ const permission = {
newmenus.push(mi)
}
})
// res.data=[...
// newCommonList, ...newErpList, ...newPowerRoutes]
// res.data=[...
// newCommonList, ...newErpList, ...newPowerRoutes]
res.data = dynamicRouter([...newCommonList, ...newErpList, ...newPowerRoutes], asymenus) || [...
newCommonList, ...newErpList, ...newPowerRoutes
]
/* 重置首页路由*/
// let hompePage = treeToList([...newCommonList,...newErpList,...newPowerRoutes]).filter(item=>item.mkid==localStorage.getItem('homeMkid'))
let ttlist = treeToList([...newCommonList, ...newErpList, ...newPowerRoutes])
let homePage = ttlist.filter(item => item.mkid == localStorage.getItem('homeMkid'))
/* 替换首页*/
if (homePage && homePage[0]) {
if (homePage[0].component) {
// Layout ParentView 组件特殊处理
if (homePage[0].component === 'Layout') {
homePage[0].component = Layout
} else if (homePage[0].component === 'ParentView') {
homePage[0].component = ParentView
} else if (homePage[0].component === 'InnerLink') {
homePage[0].component = InnerLink
} else {
if (homePage[0].commonComponent) {
homePage[0].component = loadCommonView(homePage[0].component)
} else if (homePage[0].erpComponent) {
homePage[0].component = loadErpView(homePage[0].component)
} else {
homePage[0].component = loadView(homePage[0].component)
}
}
}
/* 移除默认路由*/
if (true) {
let newHome = {
path: '',
component: Layout,
redirect: 'index',
hidden: true,
children: [{
path: 'index',
component: homePage[0].component ,
name: 'Index',
meta: {
title: '首页',
icon: 'dashboard',
affix: true
}
}]
}
router.addRoutes([newHome])
constantRoutes.push(newHome)
}else{
let newHome= {
path: '',
component: Layout,
path: '',
// component: () => import('@/views/yhlywsytst/yhlywsytst/index.vue'),
component: () => import('common/src/erpViews/template/index.vue'),
redirect: 'index',
hidden: true,
children: [{
noCache: true,
children: [{
path: 'index',
component: () => import('@/views/index'),
component: () => import('@/views/yhlywsytst/yhlywsytst/index.vue'),
name: 'Index',
meta: {
title: '首页',
icon: 'dashboard',
affix: true
}
}]
}
router.addRoutes([newHome])
constantRoutes.push(newHome)
},
noCache: true,
}]
}
router.addRoutes([newHome])
constantRoutes.push(newHome)
}
......
......@@ -78,7 +78,7 @@
"type": "RelSelect",
"value": "",
"typeConfig": {
"src": "/sbgl/usbxx/init/zt ",
"src": "/sbgl/usbxx/init/zt",
"match": {
"value": "id",
"label": "name"
......
......@@ -5,7 +5,61 @@
一回路异物溯源态势图
</div>
<!-- 视角工具栏-->
<div class="toolButton">
<div class="flex1 text-center">
<div class="menu"><router-link to="/jyfkgl/jyfkgl">
经验反馈信息
</router-link></div>
</div>
<div class="flex1 text-center">
<div class="menu">
<router-link to="/jcxxgl/gjxx">
基础数据
</router-link>
</div>
</div>
<div class="flex1 text-center">
<div class="menu">
<router-link to="/system/menuManage">
系统管理
</router-link>
</div>
</div>
</div>
<div class="toolButton2">
<div class="flex1 text-center">
<div class="menu"> <router-link to="/sbxxgl/sbxx">
设备信息
</router-link>
</div>
</div>
<div class="flex1 text-center">
<div class="menu">
<router-link to="/sbjxgl/sbjxxx">
设备检修信息
</router-link>
</div>
</div>
<div class="flex1 text-center">
<div class="menu"> <router-link to="/ywxxgl/ywxxgl">
异物信息
</router-link>
</div>
</div>
</div>
<div class="toolButton3">
<div class="flex1 text-center">
<el-checkbox v-model="xzjj">选中时近景</el-checkbox>
</div>
<!-- <div class="flex1 text-center">
<span style="cursor: pointer;" @click="reView"><i class="el-icon-view"></i>重置视角</span>
</div>
<div class="flex1 text-center">
<span style="cursor: pointer;" @click="viewCenter"><i class="el-icon-view"></i>中心视角</span>
</div> -->
</div>
<!-- <div class="toolButton2">
<div class="flex1 text-center">
<el-checkbox v-model="xzjj">选中时近景</el-checkbox>
</div>
......@@ -21,10 +75,8 @@
<el-switch style="color: #fff ;font-size: 12px;" v-model="flowDirection" active-text="正向" inactive-text="反向">
</el-switch>
</div>
</div>
</div> -->
<!--
<div class="toolButton">
<div class="flex1 text-center">
<span @click="reView"><i class="el-icon-view"></i>重置视角</span>
......@@ -35,30 +87,156 @@
<div class="flex1 text-center">
<span @click="clearSelected"><i class="el-icon-circle-close"></i>清除选中</span>
</div>
<!-- <el-select @change="flowPieDataChange" v-model="flowPieData" clearable placeholder="请选择">
<el-option v-for="(item, index) in allPieData" :key="index" :value="item.name">
{{ item.name }}
</el-option>
</el-select> -->
</div>
</div> -->
<!-- 左侧操作边框-->
<!-- <div class="leftOpt">
<div class="full padding5" style="padding-top: 10px;">
<div class="full data-box1" style="position: relative;">
<i class="topL"></i>
<i class="topR"></i>
<i class="bottomL"></i>
<i class="bottomR"></i>
<div class="full" >
<div class="leftOpt">
<div class="flex1">
<!-- 设备检修-->
<div class="full">
<div class="mktitle">
<span>设备检修</span>
<img :src="ksh33" alt="">
</div>
<div class="mkbody data-box1">
</div>
</div>
</div>
<div class="flex1" style="height: 50%;overflow: hidden;">
<!-- 设备检修-->
<div class="full">
<div class="mktitle">
<span>异物信息</span>
<img :src="ksh33" alt="">
</div>
<div class="mkbody data-box1">
<div class="com-count-body" style="height: 100%;overflow: hidden;">
<!-- 标题-->
<div class="lbbt" style="font-size: 13px;">
<div class="flex1 text-center ">
名称
</div>
<div class="flex1 text-center ">
规格
</div>
<div class="flex1 text-center ">
尺寸
</div>
<div class="flex1 text-center ">
材质
</div>
<div class="flex1 text-center ">
标高
</div>
</div>
<ScrollSeamless :class-option="optionSingleHeight" :data="listData" class="lbbody"
style="overflow: hidden;">
<div class="full lbtit">
<div style="line-height: 25px;display: flex;font-size: 12px;text-align: center" v-for="item in listData" >
<div class="flex1" style="color: #68D8FE;white-space: nowrap;overflow: hidden;text-overflow: ellipsis; ;"
v-text="item.name"></div>
<div class="flex1" style="color: #68D8FE ;" v-text="item.ggxh"></div>
<div class="flex1" style="color: #68D8FE ;" v-text="item.cc"></div>
<div class="flex1" style="color: #68D8FE ;" v-text="item.cz"></div>
<div class="flex1" style="color: #68D8FE ;" v-text="item.bg"></div>
</div>
</div>
</ScrollSeamless>
</div>
</div>
</div>
</div>
</div>
</div>
</div> -->
<!-- <div class="full padding5" style="padding-top: 10px;">
<div class="full data-box1" style="position: relative;">
<i class="topL"></i>
<i class="topR"></i>
<i class="bottomL"></i>
<i class="bottomR"></i>
<div class="full">
</div>
</div>
</div> -->
</div>
<!-- 溯源排查-->
<div class="sypc">
<div class="full data-box1" style="position: relative;">
<i class="topL"></i>
<i class="topR"></i>
<i class="bottomL"></i>
<i class="bottomR"></i>
<div class="data-title1">
<b class="data-title-left">[</b>
<span>溯源排查</span>
<b class="data-title-right">]</b>
</div>
<div class="full flex " style="height: calc(100% - 14px);padding-top: 12px;">
<el-row :gutter="20" class="search-row-1" style="width: 100%;">
<el-col :span="8" class="search-col">
<div class="search-item">
<span class="search-span">机组:</span>
<el-input v-model="queryParams.jzbm"></el-input>
</div>
</el-col>
<el-col :span="8" class="search-col">
<div class="search-item">
<span class="search-span">状态:</span>
<RelSelect placeholder='' style="width: 100%;" src='sbgl/usbxx/init/zt ' filterable clearable
:match="{value:'id',label:'name'}" v-model='queryParams.kshZt'></RelSelect>
</div>
</el-col>
<el-col :span="8" class="search-col flex-center">
<el-button style="background-color: rgba(7,32,96,0.0);border: 1px solid #68D8FE; color: #68D8FE;"
size="mini" @click="apiJzbm()" type="primary">溯源排查</el-button>
</el-col>
</el-row>
</div>
</div>
</div>
<!-- 设备查询-->
<div class="sbcx">
<div class="full data-box1" style="position: relative;">
<i class="topL"></i>
<i class="topR"></i>
<i class="bottomL"></i>
<i class="bottomR"></i>
<div class="data-title1">
<b class="data-title-left">[</b>
<span>设备查询</span>
<b class="data-title-right">]</b>
</div>
<div class="full flex " style="height: calc(100% - 14px);padding-top: 12px;">
<el-row :gutter="20" class="search-row-1" style="width: 100%;">
<el-col :span="12" class="search-col">
<div class="search-item">
<span class="search-span">编码:</span>
<el-input v-model="sbxxQueryParams.code"></el-input>
</div>
</el-col>
<el-col :span="12" class="search-col flex-center">
<el-button style="background-color: rgba(7,32,96,0.0);border: 1px solid #68D8FE; color: #68D8FE;"
size="mini" @click="sbcx()" type="primary">设备查询</el-button>
<!-- 暂无信息-->
<span v-if="sbcxwcxdxx" style="color: red;font-size: 12px;padding-left: 10px;">{{sbcxwcxdxxText}}</span>
</el-col>
</el-row>
</div>
</div>
</div>
<!-- 右侧操作边框-->
<div class="rightOpt" ref="rightOpt">
<!-- <div class="rightOpt" ref="rightOpt">
<div class="full padding5" style="height: 100%;">
<div class="optTitle">
{{selectedModel.name?selectedModel.name+'的':''}}设备信息
......@@ -96,7 +274,7 @@
</div>
</div>
</div>
</div> -->
<!-- threeDdiv-->
<div id="container" ref="container" class="full">
......@@ -121,6 +299,7 @@
import Viewer from '@/common/threeModules/Viewer'
import Lights from '@/common/threeModules/Lights'
import ModelLoader from '@/common/threeModules/ModelLoader'
import ksh33 from './static/ksh33.png'
// import Labels from '@/common/threeModules/Labels'
function fullScreen(element) {
const elem = element || document.documentElement;
......@@ -143,46 +322,63 @@
}
export default {
name: 'yhlywsytst',
// name: 'yhlywsytst',
mounted() {
this.apiGetYwxx()
/* 测试列表*/
this.$nextTick(() => {
this.$refs.app.addEventListener('dblclick', () => {
fullScreen(this.$refs.app);
})
// this.$refs.app.addEventListener('dblclick', () => {
// fullScreen(this.$refs.app);
// })
this.init()
this.loadAll()
this.tdClick()
this.getData()
this.canNotMousedown([
this.$refs.rightOpt
])
// this.canNotMousedown([
// this.$refs.rightOpt
// ])
})
},
computed: {
optionSingleHeight() {
return {
singleHeight: 25
}
}
},
beforeDestroy() {
this.viewer.canRequestAnimationFrame = false
},
deactivated() {
this.viewer.canRequestAnimationFrame = false
},
activated() {
try {
this.viewer.canRequestAnimationFrame = true
this.viewer.reInit()
} catch (e) {
rconsole.error(e)
}
/* 开启渲染*/
console.log(this.viewer)
this.viewer.destroy()
},
// deactivated() {
// this.viewer.canRequestAnimationFrame = false
// },
// activated() {
// try {
// this.viewer.canRequestAnimationFrame = true
// this.viewer.reInit()
// } catch (e) {
// rconsole.error(e)
// }
// },
data() {
return {
listData:[],
/* 引用图片*/
ksh33:ksh33,
/* 测试代码*/
queryParams:{
jzbm:'',
kshZt:''
queryParams: {
jzbm: '',
kshZt: ''
},
sbxxQueryParams: {
code: ''
},
sbcxwcxdxx: false,
sbcxwcxdxxText: '',
xzjj: true,
flowDirection: true,
flowPieData: '',
......@@ -195,6 +391,7 @@
loading: true,
loadingText: '正在加载模型,请等待!',
viewer: null,
scene: null,
/* 模型加载器*/
modelLoader: null,
/* */
......@@ -215,37 +412,107 @@
}
},
methods: {
apiJzbm(){
apiGetYwxx(){
this.$post('ywxxgl/uywxx/query',{}).then(res=>{
this.listData=res.data.records||[]
})
},
sbcx() {
if (!this.sbxxQueryParams.code) {
this.sbcxwcxdxx = true
this.sbcxwcxdxxText = '请输入设备编码!'
setTimeout(() => {
this.sbcxwcxdxx = false
}, 2000)
} else {
this.sbxxQueryParams.code=this.sbxxQueryParams.code.replace(/\s+/g, '');
/* 查询*/
let iscx=false
this.viewer.scene.traverse((model) => {
if (model.isMesh) {
if (model.name == this.sbxxQueryParams.code) {
this.selectedModel = model
iscx=true
/* 执行并情况材料队列 */
this.reMaterialQue.forEach(item => {
item.revert()
})
this.reMaterialQue.splice(0, this.reMaterialQue.length)
/* 添加材质模型队列*/
let reMaterialQueItem = {
model,
material: model.material.clone(),
revert: function() {
this.model.material = this.material
}
}
this.reMaterialQue.push(reMaterialQueItem)
model.material = new THREE.MeshPhongMaterial({
color: new THREE.Color('rgba(255, 255, 0, 0.8)'),
transparent: true,
opacity: 0.8,
wireframe: false,
})
/* */
if (this.xzjj) {
const object =model;
if (object) {
this.viewer.cameraControl.fitTo(object);
}
}
}
}
});
if(iscx==false){
this.sbcxwcxdxx = true
this.sbcxwcxdxxText = '未查询到设备!'
setTimeout(() => {
this.sbcxwcxdxx = false
}, 2000)
}
}
},
apiJzbm() {
/* 先清空 选中的机组*/
this.jzReMaterialQue.forEach(item => {
item.revert()
})
this.$post('ksh/query',
this.queryParams
).then(res=>{
if(res.success){
let sbxxList=res.data.records||[]
const sbxxCodeList=sbxxList.map(item=>item.sbxxCode)
this.viewer.scene.traverse((model)=>{
if (model.isMesh) {
if(sbxxCodeList.includes(model.name)){
let jzReMaterialQueItem = {
model,
material: model.material.clone(),
revert: function() {
this.model.material = this.material
}
}
this.jzReMaterialQue.push(jzReMaterialQueItem)
model.material = new THREE.MeshPhongMaterial({
color: new THREE.Color('rgba(255, 164, 7, 0.8)'),
transparent: true,
opacity: 0.8,
wireframe: false,
})
this.queryParams
).then(res => {
if (res.success) {
let sbxxList = res.data.records || []
const sbxxCodeList = sbxxList.map(item => item.sbxxCode)
this.viewer.scene.traverse((model) => {
if (model.isMesh) {
if (sbxxCodeList.includes(model.name)) {
let jzReMaterialQueItem = {
model,
material: model.material.clone(),
revert: function() {
this.model.material = this.material
}
}
this.jzReMaterialQue.push(jzReMaterialQueItem)
model.material = new THREE.MeshPhongMaterial({
color: new THREE.Color('rgba(255, 164, 7, 0.8)'),
transparent: true,
opacity: 0.8,
wireframe: false,
})
}
}
});
......@@ -335,18 +602,18 @@
cornerSplit: 10,
},
material: {
// color: "#0099ff",
color: "lightgreen",
side: 2,
map: {
image: "vt/resources/texture/arrow.png",
repeat: [1, 4],
// rotation: direction ? Math.PI : 0,
wrapS: THREE.RepeatWrapping,
wrapT: THREE.RepeatWrapping,
},
transparent: true,
depthTest: true,
// color: "#0099ff",
color: "lightgreen",
side: 2,
map: {
image: "vt/resources/texture/arrow.png",
repeat: [1, 4],
// rotation: direction ? Math.PI : 0,
wrapS: THREE.RepeatWrapping,
wrapT: THREE.RepeatWrapping,
},
transparent: true,
depthTest: true,
},
});
flowObject.line.onBeforeRender = () => {
......@@ -395,57 +662,98 @@
},
init() {
this.viewer = new Viewer('container')
this.viewer.camera.position.set(0, 17, -60)
const manager = new THREE.LoadingManager();
manager.onProgress = (item, loaded, total) => {
let process = (loaded / total * 100).toFixed(2)
if (process == 100) {
this.loading = false
}
// 这里可以根据加载进度执行其他操作
};
this.modelLoader = new ModelLoader(this.viewer, manager)
this.loadAll()
/* scene*/
// this.scene = new Viewer('scene')
// this.scene.camera.position.set(0, 17, -60)
/* viewer*/
// this.viewer = new Viewer('container')
// this.viewer.camera.position.set(0, 17, -60)
// const manager = new THREE.LoadingManager();
// manager.onProgress = (item, loaded, total) => {
// let process = (loaded / total * 100).toFixed(2)
// if (process == 100) {
// this.loading = false
// }
// // 这里可以根据加载进度执行其他操作
// };
// this.modelLoader = new ModelLoader(this.viewer, manager)
const lights = new Lights(this.viewer)
const ambientLight = lights.addAmbientLight() // 添加环境光
ambientLight.setOption({
color: 0xff0000,
intensity: 6 // 环境光强度
})
ambientLight.light.name = 'AmbientLight'
// 添加平行光
lights.addDirectionalLight([200, 200, 200], {
color: 'rgb(253,253,253)',
intensity: 3,
castShadow: false // 是否投射阴影
})
// this.viewer.addAxis()
/* 添加地面*/
this.loadDm()
// const lights = new Lights(this.viewer)
// const ambientLight = lights.addAmbientLight() // 添加环境光
// ambientLight.setOption({
// color: 0xff0000,
// intensity: 6 // 环境光强度
// })
// ambientLight.light.name = 'AmbientLight'
// // 添加平行光
// lights.addDirectionalLight([200, 200, 200], {
// color: 'rgb(253,253,253)',
// intensity: 3,
// castShadow: false // 是否投射阴影
// })
// this.loadDm()
this.viewer = new VT.Viewer({
container: this.$refs.container,
scene: {
helper: {
grid: {
visible: true,
},
},
background: {
skyboxPath: "dark",
},
},
view: {
position: [44.81080132492321, 48.62916741352805, -75.73966237503983],
center: [48.15565686619112, 5.221820594458009, 5.975771281142078],
far: 10000,
near: 0.1,
aspect: null,
fov: 45,
isOrtho: false,
zoom: 1,
rotation: [-2.6532966628149923, -0.036133545863119475, -3.1224049976510337, "XYZ"],
},
});
},
loadAll() {
this.modelLoader.loadModelToScene('/glb/all.glb', (model) => {
model.object.position.set(-42, -10, 0)
model.object.scale.set(1, 1, 1)
}, (num) => {
let showNum = num * 100
if (showNum == 100) {
this.loadingText = `模型加载完毕,请稍等!`
/* 机组高亮测试*/
setTimeout(()=>{
this.apiJzbm()
},2000)
} else {
this.loadingText = `正在加载模型${showNum}%!`
}
/* */
var model = new VT.Model({
modelType: "gltf",
src: "/glb/all.glb",
})
model.addEventListener("loaded", () => {
this.loading=false
});
this.viewer.scene.add(model);
// this.modelLoader.loadModelToScene('/glb/all.glb', (model) => {
// model.object.position.set(-42, -10, 0)
// model.object.scale.set(1, 1, 1)
// model.object.updateMatrixWorld(true);
// console.log(model,'console.log(model)console.log(model)')
// }, (num) => {
// let showNum = num * 100
// if (showNum == 100) {
// this.loadingText = `模型加载完毕,请稍等!`
// /* 机组高亮测试*/
// setTimeout(() => {
// this.apiJzbm()
// }, 2000)
// } else {
// this.loadingText = `正在加载模型${showNum}%!`
// }
// /* */
// })
},
loadDm() {
const geometry = new THREE.PlaneGeometry(1000, 1000, 500, 500); // 创建一个100x100的平面,水平和垂直各10条线
......@@ -464,12 +772,9 @@
this.viewer.renderer.domElement.addEventListener('click', (e) => {
const rayCaster = new THREE.Raycaster()
const mouse = new THREE.Vector2()
// 将鼠标位置归一化为设备坐标。x 和 y 方向的取值范围是 (-1 to +1)
mouse.x = (e.offsetX / this.viewer.renderer.domElement.clientWidth) * 2 - 1
mouse.y = -(e.offsetY / this.viewer.renderer.domElement.clientHeight) * 2 + 1
// 通过摄像机和鼠标位置更新射线
rayCaster.setFromCamera(mouse, this.viewer.camera)
// TODO: 第一个参数是否需要指定模型
const intersects = rayCaster.intersectObject(this.viewer.scene, true) // 计算物体和射线的焦点
if (intersects[0]) {
if (intersects[0].object.name == '地面') {
......@@ -482,8 +787,8 @@
} else {
model = intersects[0].object
}
this.selectedModel = model
rconsole.log('选择设备',model.name)
/* 执行并情况材料队列 */
this.reMaterialQue.forEach(item => {
item.revert()
......@@ -503,16 +808,18 @@
model.material = new THREE.MeshPhongMaterial({
color: new THREE.Color('rgba(7,32,96,0.76)'),
color: new THREE.Color('rgba(255, 255, 0, 0.8)'),
transparent: true,
opacity: 0.8,
wireframe: false,
})
/* */
if (this.xzjj) {
let point = intersects[0].point
let finallyPoint = this.getCameraPosition(5, point)
this.cameraTo(finallyPoint.x, finallyPoint.y, finallyPoint.z, point.x, point.y, point.z)
const object =model;
if (object) {
this.viewer.cameraControl.fitTo(object);
}
}
......@@ -561,7 +868,8 @@
},
/* 封装相机转向方法动画*/
cameraTo(x, y, z, px, py, pz) {
let _camera = this.viewer.camera
let _camera = this.viewer.cameraControl.camera
let currentPosition = _camera.position.clone();
let oldx = currentPosition.x
let oldy = currentPosition.y
......@@ -595,6 +903,35 @@
</script>
<style scoped lang="scss">
.mktitle {
line-height: 35px;
font-size: 14px;
color: #68D8FE;
font-weight: 600;
height: 35px;
position: relative;
overflow: hidden
}
.mktitle img {
height: 15px;
width: 100%;
position: absolute;
left: 0;
bottom: 0;
}
.mkbody {
width: 100%;
height: calc(100% - 35px);
background-color: rgba(0, 0, 0, 0.6)!important;
}
.min_full {
height: 100vh;
width: 100vw;
}
::v-deep .el-switch__core {
height: 16px;
}
......@@ -621,8 +958,9 @@
}
::v-deep .el-input__inner {
border: 1px solid #68D8FE;
background-color: rgba(0, 0, 0, 0.0);
color: #fff;
color: #68D8FE;
}
.nullbp {
......@@ -632,7 +970,8 @@
}
.bigTitle {
position: relative;
text-shadow: 4px 4px 4px rgba(0, 0, 0, 0.6);
position: absolute;
height: 60px;
width: 100%;
background-image: url('./static/title.png');
......@@ -662,29 +1001,42 @@
}
.toolButton {
color: #68D8FE;
display: flex;
margin-top: 18px;
margin-top: 28px;
position: absolute;
right: 100px;
right: 80px;
z-index: 12;
height: 40px;
line-height: 40px;
min-width: 250px;
color: #fff;
min-width: 400px;
font-size: 12px;
// background-color: #07417a;
}
.toolButton2 {
display: flex;
margin-top: 18px;
margin-top: 28px;
position: absolute;
left: 100px;
left: 80px;
z-index: 12;
height: 40px;
line-height: 40px;
min-width: 350px;
color: #26c6f0;
min-width: 400px;
color: #68D8FE;
font-size: 13px;
// background-color: #07417a;
}
.toolButton3 {
display: flex;
bottom: 12px;
position: absolute;
right: 15px;
z-index: 12;
height: 40px;
line-height: 40px;
min-width: 300px;
color: #fff;
font-size: 13px;
// background-color: #07417a;
}
......@@ -696,10 +1048,35 @@
.leftOpt {
position: absolute;
margin-top: 80px;
width: 22%;
width: 28%;
left: 15px;
height: 85%;
height: 88%;
z-index: 12;
display: flex;
flex-direction: column;
}
.sypc {
top: 105px;
left: 50%;
transform: translate(-50%, 0%);
/* 使元素居中 */
position: absolute;
height: 90px;
width: 40%;
z-index: 12;
background-color: rgba(0, 0, 0, 0.6);
}
.sbcx {
top: 105px;
right: 15px;
/* 使元素居中 */
position: absolute;
height: 90px;
width: 28%;
z-index: 12;
background-color: rgba(0, 0, 0, 0.6);
}
......@@ -779,4 +1156,59 @@
text-align: center;
color: #fff;
}
/* 第二个scene*/
.menu {
float: left;
width: 142px;
height: 48px;
margin: 5px 6px 0;
background: url(./static/dhbg.png) no-repeat;
text-align: center;
line-height: 48px;
}
.data-title {
width: 200px;
margin: -14px auto 0 auto;
color: #83c7e3;
font-size: 20px;
letter-spacing: 2px;
font-weight: 600
}
.data-title1 {
width: 90px;
margin: -14px auto 0 auto;
color: #83c7e3;
font-size: 16px;
letter-spacing: 2px;
font-weight: 600
}
.data-title span {
margin: 0 15px;
}
.data-title-left,
.data-title-right {
color: #105eda;
}
.search-span {
color: #68D8FE !important;
}
.lbbt {
height: 4vh;
width: 100%;
font-size: .9vw;
display: flex;
line-height: 4vh;
color: #61d2f7;
background-color:rgba(22, 84, 198, 0.7) ;
}
.lbbody {
height: calc(100% - 4vh);
}
</style>
......@@ -43,9 +43,11 @@ module.exports = {
[process.env.VUE_APP_BASE_API]: {
// target: `http://192.168.30.254:18080/dmg`,
// target: `http://192.168.30.254:28084/erp`,
// target: `http://192.168.30.108:9080/lxyl`,
target: 'http://localhost:9080/lxyl',
// target: `http://192.168.30.117:9080/lxyl`,
// target: 'http://192.168.30.109:9078/zghywpc',
target: 'http://localhost:9078/zghywpc',
// target: 'http://119.3.92.249:28090/zghywpc',
// target: `http://192.168.30.118:9077/zghywpc`,
// target:'http://192.168.30.105:9080/lxyl',
changeOrigin: true,
pathRewrite: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment