|
@@ -3,7 +3,7 @@
|
|
|
<div class="condition">
|
|
|
<div class="header">
|
|
|
<el-button style="float:left;" size="small" type="default" icon="el-icon-back" @click="goBack"></el-button>
|
|
|
- <span>{{spaceDetails.RoomLocalName||spaceDetails.RoomName||''}}</span>
|
|
|
+ <span>{{exampleData.RoomLocalName||exampleData.RoomName||''}}</span>
|
|
|
</div>
|
|
|
<el-row class="spaceTypes">
|
|
|
<div class="types">
|
|
@@ -17,8 +17,47 @@
|
|
|
<el-button size="small" @click="deleteSpace">删除业务空间</el-button>
|
|
|
</div>
|
|
|
</el-row>
|
|
|
- <div v-if="activeTab=='detail'" style="height:calc(100% - 110px)">
|
|
|
- <iframe height="100%" width="100%" :src="iframeSrc"></iframe>
|
|
|
+ <div v-if="activeTab=='detail'" class="content">
|
|
|
+ <iframe v-if="params.isMyTab == 1" height="100%" width="100%" :src="iframeSrc"></iframe>
|
|
|
+ <div v-else class="content-left">
|
|
|
+ <div class="content-showType">
|
|
|
+ <selectRadio
|
|
|
+ :selectRadio="selectRadio"
|
|
|
+ @changeRadio="changeRadio"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="content-point">
|
|
|
+ <div class="content-point-left">
|
|
|
+ <el-scrollbar style="height:100%;">
|
|
|
+ <div >
|
|
|
+ <exhibitionBaseInformation :exhibitionBaseInformation="exhibitionBaseInformation"/>
|
|
|
+ </div>
|
|
|
+ </el-scrollbar>
|
|
|
+ </div>
|
|
|
+ <div class="content-point-right">
|
|
|
+ <el-scrollbar style="height:100%;">
|
|
|
+ <div>
|
|
|
+ <exhibitionEnergy :exhibitionEnergy="exhibitionEnergy" />
|
|
|
+ </div>
|
|
|
+ </el-scrollbar>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="content-right">
|
|
|
+ <div class="content-repair">
|
|
|
+ <exhibitionMaintain :exhibitionMaintain="exhibitionMaintain"/>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="content-media">
|
|
|
+ <el-scrollbar style="height:100%;">
|
|
|
+ <div >
|
|
|
+ <exhibitionImage :exhibitionImage="exhibitionImage"/>
|
|
|
+ <exhibitionVideo :exhibitionVideo="exhibitionVideo"/>
|
|
|
+ <exhibitionFile :exhibitionFile="exhibitionFile"/>
|
|
|
+ </div>
|
|
|
+ </el-scrollbar>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!-- 空间内设备列表--服务于空间的设备 -->
|
|
|
<eqToSpaceTable v-else-if="activeTab=='Equipment' || activeTab=='EquipmentFor'" :params="params" :type="activeTab"></eqToSpaceTable>
|
|
@@ -30,42 +69,114 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { mapGetters } from "vuex"
|
|
|
-import { zoneQuery, zoneCreate } from '@/api/scan/request'
|
|
|
-import eqToSpaceTable from '@/components/business_space/newTables/eqToSpaceTable'
|
|
|
-import syInSpaceTable from '@/components/business_space/newTables/syInSpaceTable'
|
|
|
-export default {
|
|
|
- data() {
|
|
|
- return {
|
|
|
- params: {}, //参数-包含空间id 分区类型 进入方式(1-平面图 2-列表)
|
|
|
- tabsList: [
|
|
|
- { Code: 'detail', Name: '空间详情' },
|
|
|
- { Code: 'Equipment', Name: '空间内设备' },
|
|
|
- { Code: 'EquipmentFor', Name: '服务于空间的设备' },
|
|
|
- { Code: 'generalSystem', Name: '空间内系统' },
|
|
|
- ], //tab页
|
|
|
- activeTab: 'detail', //当前选中的tab
|
|
|
- spaceDetails: {}, //空间信息
|
|
|
- iframeSrc: '', //空间详情iframe
|
|
|
- }
|
|
|
+ import {mapGetters} from "vuex";
|
|
|
+ import tools from "@/utils/scan/tools";
|
|
|
+ import {deleteZone, getDataDictionary, zoneQuery} from '@/api/scan/request';
|
|
|
+
|
|
|
+ import eqToSpaceTable from '@/components/business_space/newTables/eqToSpaceTable';
|
|
|
+ import syInSpaceTable from '@/components/business_space/newTables/syInSpaceTable';
|
|
|
+ import exhibitionBaseInformation from "@/components/ledger/details/detail/exhibitionBaseInformation";
|
|
|
+ import exhibitionFile from "@/components/ledger/details/detail/exhibitionFile";
|
|
|
+ import exhibitionImage from "@/components/ledger/details/detail/exhibitionImage";
|
|
|
+ import exhibitionVideo from "@/components/ledger/details/detail/exhibitionVideo";
|
|
|
+ import exhibitionCrux from "@/components/ledger/details/detail/exhibitionCrux";
|
|
|
+ import exhibitionEnergy from "@/components/ledger/details/detail/exhibitionEnergy";
|
|
|
+ import exhibitionMaintain from "@/components/ledger/details/detail/exhibitionMaintain";
|
|
|
+ import selectRadio from "@/components/ledger/details/detail/selectRadio";
|
|
|
+
|
|
|
+
|
|
|
+ export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ params: {}, //参数-包含空间id 分区类型 进入方式(1-平面图 2-列表)
|
|
|
+ tabsList: [
|
|
|
+ {Code: 'detail', Name: '空间详情'},
|
|
|
+ {Code: 'Equipment', Name: '空间内设备'},
|
|
|
+ {Code: 'EquipmentFor', Name: '服务于空间的设备'},
|
|
|
+ {Code: 'generalSystem', Name: '空间内系统'},
|
|
|
+ ], //tab页
|
|
|
+ activeTab: 'detail', //当前选中的tab
|
|
|
+ pointData: [], //信息点数据
|
|
|
+ exampleData: {}, //实例数据
|
|
|
+ criterias: [], //动态参数
|
|
|
+ instance: {},
|
|
|
+ iframeSrc: '', //空间详情iframe
|
|
|
+ selectRadio: {
|
|
|
+ information: '设备信息点',
|
|
|
+ initRadio: '1',
|
|
|
+ radioList: [
|
|
|
+ {
|
|
|
+ value: '显示需采集信息点',
|
|
|
+ label: '1'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '显示有值信息点',
|
|
|
+ label: '2'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '显示全部信息点',
|
|
|
+ label: '3'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ exhibitionBaseInformation: {
|
|
|
+ information: {},
|
|
|
+ style:2
|
|
|
+ },
|
|
|
+ exhibitionEnergy: {
|
|
|
+ title: '能耗信息',
|
|
|
+ dynamic: [],
|
|
|
+ },
|
|
|
+ exhibitionMaintain: {
|
|
|
+ title: '维修/维保记录'
|
|
|
+ },
|
|
|
+ exhibitionFile: {
|
|
|
+ title: '文件',
|
|
|
+ list: {}
|
|
|
+ },
|
|
|
+ exhibitionCrux: {
|
|
|
+ title: '关键信息点:',
|
|
|
+ cruxArray: [],
|
|
|
+ allMessage: [],//全部信息点
|
|
|
+ },
|
|
|
+ exhibitionImage: {
|
|
|
+ title: '图片',
|
|
|
+ list: {}
|
|
|
+ },
|
|
|
+ exhibitionVideo: {
|
|
|
+ title: '视频',
|
|
|
+ list: {}
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
computed: {
|
|
|
...mapGetters("layout", ["projectId", "userId", "secret"])
|
|
|
},
|
|
|
components: {
|
|
|
eqToSpaceTable,
|
|
|
- syInSpaceTable
|
|
|
+ syInSpaceTable,
|
|
|
+ exhibitionBaseInformation,
|
|
|
+ exhibitionFile,
|
|
|
+ exhibitionVideo,
|
|
|
+ exhibitionImage,
|
|
|
+ exhibitionMaintain,
|
|
|
+ selectRadio,
|
|
|
+ exhibitionCrux,
|
|
|
+ exhibitionEnergy
|
|
|
},
|
|
|
created() {
|
|
|
this.params = this.$route.query;
|
|
|
- this.getSpaceDetails();
|
|
|
- this.setFrame()
|
|
|
+ this.getData();
|
|
|
+ this.setFrame();
|
|
|
},
|
|
|
mounted() { },
|
|
|
watch: {
|
|
|
projectId() { }
|
|
|
},
|
|
|
methods: {
|
|
|
+ deepCopy(obj) {
|
|
|
+ return JSON.parse(JSON.stringify(obj))
|
|
|
+ },
|
|
|
// 返回
|
|
|
goBack() {
|
|
|
this.$router.push({
|
|
@@ -74,20 +185,262 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
// 查询空间详情
|
|
|
- getSpaceDetails() {
|
|
|
- let pa = {
|
|
|
- Filters: `RoomID="${this.params.RoomID}"`,
|
|
|
+ getData() {
|
|
|
+ let params1 = {
|
|
|
+ data: {
|
|
|
+ Orders: "sort asc",
|
|
|
+ PageNumber: 1,
|
|
|
+ PageSize: 1000
|
|
|
+ },
|
|
|
+ type: this.params.zone
|
|
|
+ }, params2 = {
|
|
|
+ Filters: `RoomID='${this.params.RoomID}'`,
|
|
|
ZoneType: this.params.zone
|
|
|
+ };
|
|
|
+ let promise1 = new Promise((resolve, reject) => {
|
|
|
+ getDataDictionary(params1, res => {
|
|
|
+ resolve(res)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ let promise2 = new Promise((resolve, reject) => {
|
|
|
+ zoneQuery(params2, res => {
|
|
|
+ resolve(res)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ Promise.all([promise1, promise2]).then(values => {
|
|
|
+ this.pointData = values[0].Content;
|
|
|
+ this.exampleData = values[1].Content[0];
|
|
|
+
|
|
|
+ let obj = this.deepCopy(values[1].Content[0]);
|
|
|
+ obj = tools.flattenKeys(obj);
|
|
|
+ this.instance = obj;
|
|
|
+ this.handleRadios(1)
|
|
|
+ this.pointData.forEach(item => {
|
|
|
+ if (item.InputMode == "L" || item.InputMode == "L1" || item.InputMode == "L2" || item.InputMode == "M") {
|
|
|
+ let cur = tools.dataForKey(this.exampleData, item.Path);
|
|
|
+ if (cur) {
|
|
|
+ this.criterias.push({
|
|
|
+ id: exampleData.EquipID,
|
|
|
+ code: item.InfoPointCode
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ let params = { //获取动态参数
|
|
|
+ secret: this.secret,
|
|
|
+ ProjId: this.projectId,
|
|
|
+ data: {
|
|
|
+ criterias: this.criterias
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (this.criterias.length) {
|
|
|
+ BeatchQueryParam(params, res => {
|
|
|
+ res.Content.map(child => {
|
|
|
+ this.pointData.forEach(head => {
|
|
|
+ if (head.InfoPointCode == child.code) {
|
|
|
+ this.exhibitionEnergy.dynamic.push({
|
|
|
+ InfoPointCode: head.InfoPointCode,
|
|
|
+ InfoPointName: head.InfoPointName,
|
|
|
+ Path: head.Path,
|
|
|
+ value: child.value,
|
|
|
+ data: child.data || '--',
|
|
|
+ receivetime: child.receivetime || '',
|
|
|
+ error: child.error || '',
|
|
|
+ Unit: head.Unit || ''
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ });
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleRadios(val) { //判断radio的值显示关键信息,基本信息,图片,文件
|
|
|
+ let arr = []
|
|
|
+ //关键信息点
|
|
|
+ this.exhibitionCrux.cruxArray = this.pointData.filter(i => i.KeyWord)
|
|
|
+ this.exhibitionCrux.cruxArray.map(i => {
|
|
|
+ if (this.instance.hasOwnProperty(i.Path)) {
|
|
|
+ return {
|
|
|
+ ...i,
|
|
|
+ value: this.instance[i.Path]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (val == 1) { //需采集信息
|
|
|
+ arr = this.pointData.filter(i => i.Visible)
|
|
|
+ // 图片和的处理
|
|
|
+ this.handlePicList(arr)
|
|
|
+ // 文件处理
|
|
|
+ this.handleFileList(arr)
|
|
|
+
|
|
|
+ } else if (val == 2) { //有值信息点
|
|
|
+ let list = this.pointData
|
|
|
+ list.map(j => {
|
|
|
+ if (this.instance.hasOwnProperty(j.Path)) {
|
|
|
+ return {
|
|
|
+ ...j,
|
|
|
+ value: this.instance[j.Path]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ arr = list.filter(k => k.value)
|
|
|
+ this.handlePicList(arr)
|
|
|
+ this.handleFileList(arr)
|
|
|
+ })
|
|
|
+ } else { //全部信息点
|
|
|
+ arr = this.pointData
|
|
|
+ this.handlePicList(arr)
|
|
|
+ this.handleFileList(arr)
|
|
|
}
|
|
|
- zoneQuery(pa, res => {
|
|
|
- this.spaceDetails = res.Content[0];
|
|
|
+ this.displayData(arr)
|
|
|
+ },
|
|
|
+ handlePicList(arr) {
|
|
|
+ let picObject = {}
|
|
|
+ //处理数据格式
|
|
|
+ arr.map(i => {
|
|
|
+ if (i.InputMode == 'F2') {
|
|
|
+ switch (i.Path) {
|
|
|
+ case 'LedgerParam.PhotoDoc.Drawing':
|
|
|
+ case 'LedgerParam.Siteinstall.InstallPic':
|
|
|
+ case 'LedgerParam.Siteinstall.InstallDrawing':
|
|
|
+ case 'LedgerParam.PhotoDoc.Nameplate':
|
|
|
+ if (this.instance.hasOwnProperty(i.Path)) {
|
|
|
+ i.PicList = this.instance[i.Path]
|
|
|
+ }
|
|
|
+ if (picObject[i.InfoPointName]) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ picObject[i.InfoPointName] = []
|
|
|
+ }
|
|
|
+ picObject[i.InfoPointName].push({
|
|
|
+ ...i,
|
|
|
+ })
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
})
|
|
|
+ //展示图片
|
|
|
+ this.exhibitionImage.list = picObject
|
|
|
+ },
|
|
|
+ handleFileList(arr) {
|
|
|
+ let picObject = {}
|
|
|
+ //处理数据格式
|
|
|
+ arr.map(i => {
|
|
|
+ if (i.InputMode == 'F2') {
|
|
|
+ switch (i.Path) {
|
|
|
+ case 'LedgerParam.InsuranceDoc.InsuranceFile':
|
|
|
+ case 'LedgerParam.PhotoDoc.Archive':
|
|
|
+ case 'LedgerParam.Siteinstall.CheckReport':
|
|
|
+ if (this.instance.hasOwnProperty(i.Path)) {
|
|
|
+ i.fileList = this.instance[i.Path]
|
|
|
+ }
|
|
|
+ if (picObject[i.InfoPointName]) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ picObject[i.InfoPointName] = []
|
|
|
+ }
|
|
|
+
|
|
|
+ picObject[i.InfoPointName].push({
|
|
|
+ ...i,
|
|
|
+ })
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ //展示文件
|
|
|
+ this.exhibitionFile.list = picObject
|
|
|
+ },
|
|
|
+ changeRadio(val) { //1,需采集,2,有值,3,全部
|
|
|
+ this.handleRadios(val)
|
|
|
+ this.currentRadio = val
|
|
|
+ },
|
|
|
+ formatDate(str) {
|
|
|
+ return str ? str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2) :'--'
|
|
|
+ },
|
|
|
+ displayData(arr) {//对数据进行处理传给组件展示
|
|
|
+ const result = {}
|
|
|
+ arr.forEach(i => {
|
|
|
+ if (this.instance.hasOwnProperty(i.Path) && this.currentRadio != 2) {
|
|
|
+ i.value = this.instance[i.Path]
|
|
|
+ }
|
|
|
+ if (i.InputMode == 'C5') {
|
|
|
+ if (this.instance.hasOwnProperty(i.Path)) {
|
|
|
+ let time = this.instance[i.Path]
|
|
|
+ i.value = this.formatDate(time)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (i.DataSource && i.DataSource.length) {
|
|
|
+ let source = JSON.parse(i.DataSource)
|
|
|
+ //判断输入类型
|
|
|
+ if (i.InputMode == 'D1L') {
|
|
|
+ let d1l = tools.formatDataSource(i.DataSource)
|
|
|
+ d1l.forEach(k => {
|
|
|
+ if (k.Code == this.instance[i.Path]) {
|
|
|
+ i.value = k.Name
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else if (i.InputMode == 'D2' || i.InputMode == 'C6') {
|
|
|
+ if (this.instance.hasOwnProperty(i.Path)) {
|
|
|
+ if (!Array.isArray(this.instance[i.Path])) {
|
|
|
+ let transArray = this.instance[i.Path].split(',')
|
|
|
+ i.value = source.filter(item => transArray.includes(item.Code)).map(item => item.Name).join(',')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ source.forEach(j => {
|
|
|
+ if (j.Code == this.instance[i.Path]) {
|
|
|
+ console.log(j.Name, '===name===')
|
|
|
+ i.value = j.Name
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ switch (i.InputMode) {
|
|
|
+ case "L":
|
|
|
+ case "L1":
|
|
|
+ case "L2":
|
|
|
+ case "M":
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ if (result[`${i.FirstName}${i.SecondName ? '/' + i.SecondName : ''}`]) {
|
|
|
+ result[`${i.FirstName}${i.SecondName ? '/' + i.SecondName : ''}`].paths.push({
|
|
|
+ Path: i.Path,
|
|
|
+ InfoPointName: i.InfoPointName,
|
|
|
+ InfoPointCode: i.InfoPointCode,
|
|
|
+ Value: i.value,
|
|
|
+ Visible: i.Visible,
|
|
|
+ KeyWord: i.KeyWord,
|
|
|
+ InputMode:i.InputMode
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ result[`${i.FirstName}${i.SecondName ? '/' + i.SecondName : ''}`] = {
|
|
|
+ paths: [{
|
|
|
+ Path: i.Path,
|
|
|
+ InfoPointName: i.InfoPointName,
|
|
|
+ InfoPointCode: i.InfoPointCode,
|
|
|
+ Value: i.value,
|
|
|
+ Visible: i.Visible,
|
|
|
+ KeyWord: i.KeyWord,
|
|
|
+ InputMode:i.InputMode
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ })
|
|
|
+ this.exhibitionBaseInformation.information = result
|
|
|
+ this.exhibitionCrux.allMessage = result
|
|
|
},
|
|
|
// 设置iframe
|
|
|
setFrame() {
|
|
|
- this.iframeSrc = this.params.isMyTab == 2 ?
|
|
|
- `${process.env.BASE_URL}:8889/#/details?perjectId=${this.projectId}&secret=${this.secret}&FmId=${this.params.RoomID}&type=0&code=${this.params.zone}`
|
|
|
- : `${process.env.BASE_URL}:8889/#/changeMess?perjectId=${this.projectId}&secret=${this.secret}&id=${this.params.RoomID}&type=${this.params.zone}`;
|
|
|
+ this.iframeSrc = `${process.env.BASE_URL}:8889/#/changeMess?perjectId=${this.projectId}&secret=${this.secret}&id=${this.params.RoomID}&type=${this.params.zone}`;
|
|
|
+ // this.iframeSrc = this.params.isMyTab == 2 ?
|
|
|
+ // `${process.env.BASE_URL}:8889/#/details?perjectId=${this.projectId}&secret=${this.secret}&FmId=${this.params.RoomID}&type=0&code=${this.params.zone}`
|
|
|
+ // : `${process.env.BASE_URL}:8889/#/changeMess?perjectId=${this.projectId}&secret=${this.secret}&id=${this.params.RoomID}&type=${this.params.zone}`;
|
|
|
},
|
|
|
// 删除业务空间
|
|
|
deleteSpace() {
|
|
@@ -96,8 +449,13 @@ export default {
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
- let pa = [{RoomID: this.spaceDetails.RoomID}]
|
|
|
- zoneCreate(pa, res => {
|
|
|
+ let pa = {
|
|
|
+ data: [{
|
|
|
+ RoomID: this.exampleData.RoomID
|
|
|
+ }],
|
|
|
+ zone: this.params.zone
|
|
|
+ }
|
|
|
+ deleteZone(pa, res => {
|
|
|
this.$message.success('删除成功')
|
|
|
this.goBack()
|
|
|
})
|
|
@@ -105,7 +463,8 @@ export default {
|
|
|
this.getData()
|
|
|
this.$message("取消删除")
|
|
|
})
|
|
|
- }
|
|
|
+ },
|
|
|
+
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
@@ -118,8 +477,8 @@ export default {
|
|
|
height: 100%;
|
|
|
flex-direction: column;
|
|
|
border: 1px solid #dfe6ec;
|
|
|
+ box-sizing: border-box;
|
|
|
background: #fff;
|
|
|
- margin-bottom: 10px;
|
|
|
.header {
|
|
|
padding-bottom: 10px;
|
|
|
span {
|
|
@@ -146,6 +505,55 @@ export default {
|
|
|
border-bottom: 1px solid #e4e7ed;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .content {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ box-sizing: border-box;
|
|
|
+ height: calc(100% - 99px);
|
|
|
+ .content-left {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ flex: 1;
|
|
|
+ .content-showType {
|
|
|
+ height: 50px;
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ border-bottom: none;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+ .content-point {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ height: calc(100% - 50px);
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ box-sizing: border-box;
|
|
|
+ .content-point-left {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ .content-point-right {
|
|
|
+ width: 400px;
|
|
|
+ border-left: 1px solid #ccc;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .content-right {
|
|
|
+ width: 400px;
|
|
|
+ margin-left: 10px;
|
|
|
+ .content-repair {
|
|
|
+ height: 50px;
|
|
|
+ line-height: 50px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+ .content-media {
|
|
|
+ height: calc(100% - 60px);
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
.main {
|
|
|
margin-top: 10px;
|
|
|
height: calc(100% - 96px);
|
|
@@ -153,6 +561,10 @@ export default {
|
|
|
.footer {
|
|
|
margin-bottom: 10px;
|
|
|
}
|
|
|
+
|
|
|
+ /deep/ .el-scrollbar__wrap {
|
|
|
+ overflow-x: hidden;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</style>
|