Forráskód Böngészése

可视化进度样式修改

JX.Li 1 éve
szülő
commit
80db59eb08
1 módosított fájl, 469 hozzáadás és 447 törlés
  1. 469 447
      src/views/zdsz/enginee/material/progres_visual/index.vue

+ 469 - 447
src/views/zdsz/enginee/material/progres_visual/index.vue

@@ -1,192 +1,192 @@
-
- <!--
-    *@description: 可视化进度
-    *@author: yh Fu
-    *@date: 2023-12-25 13:27:19
-    *@version: V1.0.5
-    -->
+<!--
+   *@description: 可视化进度
+   *@author: yh Fu
+   *@date: 2023-12-25 13:27:19
+   *@version: V1.0.5
+   -->
 
 <template>
-    <div class="progresVisualContainer">
-        <el-radio-group v-model="currentMenu" style="margin-bottom: 20px;" @input="toModule">
-            <el-radio-button label="0">用料统计</el-radio-button>
-            <el-radio-button label="1">进度统计</el-radio-button>
-          <el-radio-button label="2">可视化统计</el-radio-button>
-          <el-radio-button label="3">可视化进度</el-radio-button>
-        </el-radio-group>
-        <div class="topContain">
-            <el-form :model="searchParam" ref="searchForm" class="searchForm" :rules="searchRules">
-                <el-form-item label="行政区" prop="district">
-                    <el-select v-model="searchParam.district" placeholder="请选择行政区" clearable
-                            @change="searchParam.areaId = undefined;getAreaList(searchParam.district)"
-                            @clear="searchParam.areaId = undefined;areaList=[];
+  <div class="progresVisualContainer">
+    <el-radio-group v-model="currentMenu" style="margin-bottom: 20px;" @input="toModule">
+      <el-radio-button label="0">用料统计</el-radio-button>
+      <el-radio-button label="1">进度统计</el-radio-button>
+      <el-radio-button label="2">可视化统计</el-radio-button>
+      <el-radio-button label="3">可视化进度</el-radio-button>
+    </el-radio-group>
+    <div class="topContain">
+      <el-form :model="searchParam" ref="searchForm" class="searchForm" :rules="searchRules">
+        <el-form-item label="行政区" prop="district">
+          <el-select v-model="searchParam.district" placeholder="请选择行政区" clearable
+                     @change="searchParam.areaId = undefined;getAreaList(searchParam.district)"
+                     @clear="searchParam.areaId = undefined;areaList=[];
                             searchParam.buildingId = undefined;buildingList=[];
                             searchParam.unitId = undefined;unitList=[]">
-                    <el-option
-                        v-for="dict in dict.type.district"
-                        :key="dict.value"
-                        :label="dict.label"
-                        :value="dict.value"
-                    />
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="小区名称" prop="areaId" style="width: 218px;">
-                    <el-select v-model="searchParam.areaId" filterable clearable placeholder="请选择小区"
-                            @change="searchParam.buildingId = undefined;getBuildingList1(searchParam.areaId)"
-                            @clear="searchParam.buildingId = undefined;buildingList=[];
+            <el-option
+              v-for="dict in dict.type.district"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="小区名称" prop="areaId" style="width: 218px;">
+          <el-select v-model="searchParam.areaId" filterable clearable placeholder="请选择小区"
+                     @change="searchParam.buildingId = undefined;getBuildingList1(searchParam.areaId)"
+                     @clear="searchParam.buildingId = undefined;buildingList=[];
                             searchParam.unitId = undefined;unitList=[]">
-                    <el-option
-                        v-for="item in areaList"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.id">
-                    </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="楼宇名称" prop="buildingId">
-                    <el-select v-model="searchParam.buildingId" filterable clearable placeholder="请选择楼宇"
-                            @change="searchParam.unitId = undefined;getUnitList1(searchParam.buildingId)"
-                            @clear="searchParam.unitId = undefined;unitList=[]"
-                    >
-                    <el-option
-                        v-for="item in buildingList"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.id">
-                    </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="单元" prop="unitId">
-                    <el-select v-model="searchParam.unitId" placeholder="请选择单元" filterable clearable>
-                    <el-option
-                        v-for="obj in unitList"
-                        :key="obj.id"
-                        :label="obj.name"
-                        :value="obj.id"
-                    ></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="工程周期" prop="enginCycle" style="width: 218px;">
-                    <el-select
-                        :disabled="title == '添加用料' "
-                        v-model="searchParam.enginCycle"
-                        placeholder="请填写工程周期"
-                    >
-                        <el-option
-                        v-for="e in dict.type.engin_cycle"
-                        :key="e.value"
-                        :label="e.label"
-                        :value="e.value"
-                        ></el-option>
-                    </el-select>
-                </el-form-item>
-            </el-form>
-            <!-- <div style="width: 100%;height: 100%;">
-                <el-select
-                    v-model="currentCommunity"
-                    placeholder="请选择行政区"
-                    class="projectSelect"
-                    popper-class="projectDropDown"
-                    :popper-append-to-body="false"
-                    >
-                    <el-option
-                        v-for="e in communityOptions"
-                        :key="e.value"
-                        :label="e.label"
-                        :value="e.value">
-                    </el-option>
-                </el-select>
-                <el-select
-                    v-model="currentCommunity"
-                    placeholder="请选择小区"
-                    class="projectSelect"
-                    popper-class="projectDropDown"
-                    :popper-append-to-body="false"
-                    >
-                    <el-option
-                        v-for="e in communityOptions"
-                        :key="e.value"
-                        :label="e.label"
-                        :value="e.value">
-                    </el-option>
-                </el-select>
-                <el-select
-                    v-model="currentType"
-                    placeholder="请选择工程类型"
-                    class="projectSelect"
-                    popper-class="projectDropDown"
-                    :popper-append-to-body="false"
-                    >
-                    <el-option
-                        v-for="e in typeOptions"
-                        :key="e.value"
-                        :label="e.label"
-                        :value="e.value">
-                    </el-option>
-                </el-select>
-                <el-date-picker
-                    v-model="currentDate"
-                    class="projectSelect"
-                    popper-class="projectDropDown"
-                    :popper-append-to-body="false"
-                    type="date"
-                    placeholder="选择日期">
-                </el-date-picker>
-            </div> -->
-            <el-button class="searchBtn" @click="searchCompletionInfo">查询</el-button>
-            <el-button class="searchBtn">导出</el-button>
-            <div class="unitStatus">
-                <div
-                    v-for="(e,idx) in unitStatusOption"
-                    :key="idx"
-                    :style="`background-color:${e.color};width: 22%;height: 35px;position: absolute;right:${idx*130}px;box-shadow:0 5px 5px 0 #CDCDCD`"
-                    >
-                    <div
-                        style="position: relative;left: 107%;width: 116%;top: 20%;"
-                        >
-                        {{ e.label }}
-                    </div>
-                </div>
-            </div>
+            <el-option
+              v-for="item in areaList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="楼宇名称" prop="buildingId">
+          <el-select v-model="searchParam.buildingId" filterable clearable placeholder="请选择楼宇"
+                     @change="searchParam.unitId = undefined;getUnitList1(searchParam.buildingId)"
+                     @clear="searchParam.unitId = undefined;unitList=[]"
+          >
+            <el-option
+              v-for="item in buildingList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="单元" prop="unitId">
+          <el-select v-model="searchParam.unitId" placeholder="请选择单元" filterable clearable>
+            <el-option
+              v-for="obj in unitList"
+              :key="obj.id"
+              :label="obj.name"
+              :value="obj.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="工程周期" prop="enginCycle" style="width: 218px;">
+          <el-select
+            :disabled="title == '添加用料' "
+            v-model="searchParam.enginCycle"
+            placeholder="请填写工程周期"
+          >
+            <el-option
+              v-for="e in dict.type.engin_cycle"
+              :key="e.value"
+              :label="e.label"
+              :value="e.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <!-- <div style="width: 100%;height: 100%;">
+          <el-select
+              v-model="currentCommunity"
+              placeholder="请选择行政区"
+              class="projectSelect"
+              popper-class="projectDropDown"
+              :popper-append-to-body="false"
+              >
+              <el-option
+                  v-for="e in communityOptions"
+                  :key="e.value"
+                  :label="e.label"
+                  :value="e.value">
+              </el-option>
+          </el-select>
+          <el-select
+              v-model="currentCommunity"
+              placeholder="请选择小区"
+              class="projectSelect"
+              popper-class="projectDropDown"
+              :popper-append-to-body="false"
+              >
+              <el-option
+                  v-for="e in communityOptions"
+                  :key="e.value"
+                  :label="e.label"
+                  :value="e.value">
+              </el-option>
+          </el-select>
+          <el-select
+              v-model="currentType"
+              placeholder="请选择工程类型"
+              class="projectSelect"
+              popper-class="projectDropDown"
+              :popper-append-to-body="false"
+              >
+              <el-option
+                  v-for="e in typeOptions"
+                  :key="e.value"
+                  :label="e.label"
+                  :value="e.value">
+              </el-option>
+          </el-select>
+          <el-date-picker
+              v-model="currentDate"
+              class="projectSelect"
+              popper-class="projectDropDown"
+              :popper-append-to-body="false"
+              type="date"
+              placeholder="选择日期">
+          </el-date-picker>
+      </div> -->
+      <el-button class="searchBtn" @click="searchCompletionInfo">查询</el-button>
+      <el-button class="searchBtn">导出</el-button>
+      <div class="unitStatus">
+        <div
+          v-for="(e,idx) in unitStatusOption"
+          :key="idx"
+          :style="`background-color:${e.color};width: 22%;height: 35px;position: absolute;right:${idx*130}px;box-shadow:0 5px 5px 0 #CDCDCD`"
+        >
+          <div
+            style="position: relative;left: 107%;width: 116%;top: 20%;"
+          >
+            {{ e.label }}
+          </div>
         </div>
-        <!-- 房间集合 -->
-          <!-- 楼栋 or 单元 -->
-          <div style="min-width: 1618px;display: flex;overflow: hidden;overflow-x: scroll;align-items: end;">
-            <div
-                v-for="(e,idx) in roomsInfo"
-                :key="idx"
-                class="buildingContain"
-            >
-                <!-- 楼层 -->
-                <div
-                    v-for="(v,vdx) in e.roomStatusVoList"
-                    :key="vdx"
-                    class="unitFloor"
-                >
-                    {{ v.notstart || '' }}
-                    <!-- 房间 -->
-                    <div
-                        v-for="(k,kdx) in v"
-                        :key="kdx"
-                        class="room"
-                        @click="toDetail(k)"
-                        :style="`background-color:${k.roomStatus == '未施工' ? '#FFC881' : k.roomStatus == '施工中' ? '#5DB3FF' : '#80D9AE'}`"
-                    >
-                        {{ k.roomName || '' }}
-                    </div>
-                </div>
-
-                <h2 style="text-align: center;">{{ e.unitName }}</h2>
-            </div>
+      </div>
+    </div>
+    <!-- 房间集合 -->
+    <!-- 楼栋 or 单元 -->
+    <div style="min-width: 1618px;display: flex;overflow: hidden;overflow-x: scroll;align-items: end;">
+      <div
+        v-for="(e,idx) in roomsInfo"
+        :key="idx"
+        class="buildingContain"
+      >
+        <!-- 楼层 -->
+        <div
+          v-for="(v,vdx) in e.roomStatusVoList"
+          :key="vdx"
+          class="unitFloor"
+        >
+          {{ v.notstart || '' }}
+          <!-- 房间 -->
+          <div
+            v-for="(k,kdx) in v"
+            :key="kdx"
+            class="room"
+            @click="toDetail(k)"
+            :style="`background-color:${k.roomStatus == '未施工' ? '#fec880' : k.roomStatus == '施工中' ? '#5ad3fe' : '#81d9af'};
+             border: solid 1px ${k.roomStatus == '未施工' ? '#ffa938' : k.roomStatus == '施工中' ? '#30b3e1' : '#62b98f'}`"
+          >
+            {{ k.roomName || '' }}
           </div>
-          <ConstructionDetails
-            ref="ConstructionDetails"
-            :currentCollapses="currentCollapses"
-            :type="nodeDetailType"
-            :status="status"
-            enginType="民用工程"
-          />
+        </div>
+
+        <h2 style="text-align: center; font-size: 1.1em;">{{ e.unitName }}</h2>
+      </div>
     </div>
+    <ConstructionDetails
+      ref="ConstructionDetails"
+      :currentCollapses="currentCollapses"
+      :type="nodeDetailType"
+      :status="status"
+      enginType="民用工程"
+    />
+  </div>
 </template>
 
 <script>
@@ -195,293 +195,315 @@ import {getAreaList} from "@/api/zdsz/area";
 import {getBuildingList} from "@/api/zdsz/building";
 import {getUnits} from "@/api/zdsz/unit";
 import {getDicts} from "@/api/system/dict/data";
-import { getObtainRoomcCompletionInformationList ,viewQueryProcessSource} from "@/api/zdsz/enginee"
+import {getObtainRoomcCompletionInformationList, viewQueryProcessSource} from "@/api/zdsz/enginee"
+
 export default {
-    name:'ProgreVisual',
-    components:{
-        ConstructionDetails
-    },
-    dicts:['district','engin_cycle','new_built','old_renovation'],
-    data(){
-        return {
-            currentMenu:3,   // 0:用料管理 1:进度统计 2:可视化进度
-            currentCollapses:[],
-            status:'',
-            typeOptions:[
-                {
-                    value: '0',
-                    label: '市政工程'
-                },
-                {
-                    value: '1',
-                    label: '工业工程'
-                },
-                {
-                    value: '2',
-                    label: '民用工程'
-                },
-                {
-                    value: '3',
-                    label: '危险作业'
-                },
-                {
-                    value: '4',
-                    label: '顶管工程'
-                },
-                {
-                    value: '5',
-                    label: '基建工程'
-                }
-            ],
-            communityOptions:[
-                {
-                    value: '0',
-                    label: '领秀世家'
-                },
-                {
-                    value: '1',
-                    label: '上东府里'
-                },
-                {
-                    value: '2',
-                    label: '清华园'
-                },
-                {
-                    value: '3',
-                    label: '万科蓝山'
-                },
-                {
-                    value: '4',
-                    label: '龙腾香格里'
-                },
-            ],
-            unitStatusOption:[
-                {
-                    label:'竣工',
-                    color:'#80D9AE'
-                },
-                {
-                    label:'施工中',
-                    color:'#5DB3FF'
-                },
-                {
-                    label:'未施工',
-                    color:'#FFC881'
-                },
-            ],
-            currentType:null,
-            currentCommunity:null,
-            areaList:[],
-            buildingList:[],
-            unitList:[],
-            info:{
-                district: undefined,
-            },
-            searchParam:{
-                district: null,
-                enginCycle:null,
-                areaId: null,
-                buildingId: null,
-                unitId: null,
-            },
-            roomsInfo:[],
-            updateParams:{},
-            currentRoomId:null,
-            currentEnginType:null,
-            currentEnginClassification:'indoor_engin',
-            searchRules:{
-                district: [
-                    {required: true, message: "行政区不能为空", trigger: ['change']}
-                ],
-                areaId: [
-                    {required: true, message: "小区不能为空", trigger: ['change']}
-                ],
-                enginCycle: [
-                    {required: true, message: "工程周期不能为空", trigger: ['change']}
-                ],
-            }
+  name: 'ProgreVisual',
+  components: {
+    ConstructionDetails
+  },
+  dicts: ['district', 'engin_cycle', 'new_built', 'old_renovation'],
+  data() {
+    return {
+      currentMenu: 3,   // 0:用料管理 1:进度统计 2:可视化进度
+      currentCollapses: [],
+      status: '',
+      typeOptions: [
+        {
+          value: '0',
+          label: '市政工程'
+        },
+        {
+          value: '1',
+          label: '工业工程'
+        },
+        {
+          value: '2',
+          label: '民用工程'
+        },
+        {
+          value: '3',
+          label: '危险作业'
+        },
+        {
+          value: '4',
+          label: '顶管工程'
+        },
+        {
+          value: '5',
+          label: '基建工程'
         }
-    },
-    methods:{
-        toDetail(e){
-            this.currentRoomId = e.roomId
-            let dictValue
-            // 拼接字典
-            console.log(e)
-            console.log(e.enginCycle)
-            console.log(this.dict.type[e.enginCycle])
-            this.dict.type[e.enginCycle].forEach(v => {
-                if(v.label.includes('室内')){
-                    this.currentEnginType = e.enginCycle
-                    dictValue = e.enginCycle + '_' + v.value
-                }
-            })
-            // 加工字典
-            getDicts(dictValue).then(res => {
-                let dict = []
-                for (let i = 0; i < res.data.length; i++) {
-                    dict.push({
-                        "label": res.data[i].dictLabel,
-                        "value": res.data[i].dictValue,
-                    })
-                }
-                console.log(dict)
-                setTimeout(() => {
-                    this.$refs.ConstructionDetails.open(dict)
-                })
-            })
-            this.status = 'read-only'
+      ],
+      communityOptions: [
+        {
+          value: '0',
+          label: '领秀世家'
         },
-        viewNodeSource(e) {
-            let params = {
-                type:e,
-                houseId:this.currentRoomId,
-                enginClassification:this.currentEnginClassification,
-                enginType:this.currentEnginType
-            }
-            viewQueryProcessSource(params).then(res => {
-                console.log('______',res)
-                try {
-                this.updateParams = res.data
-                this.currentCollapses = res.data.zEngineeringNodeBo.zEngineeringInfoBoList
-                } catch (error) {
-                this.currentCollapses = [];
-                }
-                console.log('折叠面板info',this.currentCollapses)
-            })
-            this.$forceUpdate()
+        {
+          value: '1',
+          label: '上东府里'
         },
-        // 查询进度
-        searchCompletionInfo(){
-            this.$refs.searchForm.validate(valid => {
-                if(valid){
-                    // 校验 pass
-                    let params = {
-                        enginCycle:this.searchParam.enginCycle,
-                        areaId: this.searchParam.areaId,
-                        buildingId: this.searchParam.buildingId,
-                        unitId: this.searchParam.unitId,
-                    }
-                    getObtainRoomcCompletionInformationList(params).then(res => {
-                        let info = []
-                        info = res.data
-                        info.forEach(e => {
-                            e.roomStatusVoList = e.roomStatusVoList.reverse()
-                        })
-                        this.roomsInfo = info
-                    })
-                } else {
-                    this.$message.error('请填写必填项!')
-                }
-            })
+        {
+          value: '2',
+          label: '清华园'
+        },
+        {
+          value: '3',
+          label: '万科蓝山'
+        },
+        {
+          value: '4',
+          label: '龙腾香格里'
         },
-        getAreaList(district) {
-            if (district === undefined || district == null || district === '')
-                return
-            console.log(getAreaList)
-            getAreaList({district: district}).then(res => this.areaList = res.data)
+      ],
+      unitStatusOption: [
+        {
+          label: '竣工',
+          color: '#81d9af'
         },
-        getBuildingList1(areaId) {
-            if (areaId === undefined || areaId == null || areaId === '')
-                return
-            getBuildingList({areaId: areaId}).then(res => this.buildingList = res.data)
+        {
+          label: '施工中',
+          color: '#5ad3fe'
         },
-        getUnitList1(buildingId) {
-            if (buildingId === undefined || buildingId == null || buildingId === '')
-                return
-            getUnits(buildingId).then(res => this.unitList = res.data)
+        {
+          label: '未施工',
+          color: '#fec880'
         },
-        toModule(){
-            console.log(this.$router)
-            const currentPage = this.currentMenu == 0 ? 'material_statistics' : this.currentMenu == 1 ? 'progres_statistics' :this.currentMenu == 2 ? 'echarts_statistics': 'progres_visual'
-            this.$router.push({
-            path:`/${currentPage}`
+      ],
+      currentType: null,
+      currentCommunity: null,
+      areaList: [],
+      buildingList: [],
+      unitList: [],
+      info: {
+        district: undefined,
+      },
+      searchParam: {
+        district: null,
+        enginCycle: null,
+        areaId: null,
+        buildingId: null,
+        unitId: null,
+      },
+      roomsInfo: [],
+      updateParams: {},
+      currentRoomId: null,
+      currentEnginType: null,
+      currentEnginClassification: 'indoor_engin',
+      searchRules: {
+        district: [
+          {required: true, message: "行政区不能为空", trigger: ['change']}
+        ],
+        areaId: [
+          {required: true, message: "小区不能为空", trigger: ['change']}
+        ],
+        enginCycle: [
+          {required: true, message: "工程周期不能为空", trigger: ['change']}
+        ],
+      }
+    }
+  },
+  methods: {
+    toDetail(e) {
+      this.currentRoomId = e.roomId
+      let dictValue
+      // 拼接字典
+      console.log(e)
+      console.log(e.enginCycle)
+      console.log(this.dict.type[e.enginCycle])
+      this.dict.type[e.enginCycle].forEach(v => {
+        if (v.label.includes('室内')) {
+          this.currentEnginType = e.enginCycle
+          dictValue = e.enginCycle + '_' + v.value
+        }
+      })
+      // 加工字典
+      getDicts(dictValue).then(res => {
+        let dict = []
+        for (let i = 0; i < res.data.length; i++) {
+          dict.push({
+            "label": res.data[i].dictLabel,
+            "value": res.data[i].dictValue,
+          })
+        }
+        console.log(dict)
+        setTimeout(() => {
+          this.$refs.ConstructionDetails.open(dict)
+        })
+      })
+      this.status = 'read-only'
+    },
+    viewNodeSource(e) {
+      let params = {
+        type: e,
+        houseId: this.currentRoomId,
+        enginClassification: this.currentEnginClassification,
+        enginType: this.currentEnginType
+      }
+      viewQueryProcessSource(params).then(res => {
+        console.log('______', res)
+        try {
+          this.updateParams = res.data
+          this.currentCollapses = res.data.zEngineeringNodeBo.zEngineeringInfoBoList
+        } catch (error) {
+          this.currentCollapses = [];
+        }
+        console.log('折叠面板info', this.currentCollapses)
+      })
+      this.$forceUpdate()
+    },
+    // 查询进度
+    searchCompletionInfo() {
+      this.$refs.searchForm.validate(valid => {
+        if (valid) {
+          // 校验 pass
+          let params = {
+            enginCycle: this.searchParam.enginCycle,
+            areaId: this.searchParam.areaId,
+            buildingId: this.searchParam.buildingId,
+            unitId: this.searchParam.unitId,
+          }
+          getObtainRoomcCompletionInformationList(params).then(res => {
+            let info = []
+            info = res.data
+            info.forEach(e => {
+              e.roomStatusVoList = e.roomStatusVoList.reverse()
             })
+            this.roomsInfo = info
+          })
+        } else {
+          this.$message.error('请填写必填项!')
         }
+      })
+    },
+    getAreaList(district) {
+      if (district === undefined || district == null || district === '')
+        return
+      console.log(getAreaList)
+      getAreaList({district: district}).then(res => this.areaList = res.data)
+    },
+    getBuildingList1(areaId) {
+      if (areaId === undefined || areaId == null || areaId === '')
+        return
+      getBuildingList({areaId: areaId}).then(res => this.buildingList = res.data)
+    },
+    getUnitList1(buildingId) {
+      if (buildingId === undefined || buildingId == null || buildingId === '')
+        return
+      getUnits(buildingId).then(res => this.unitList = res.data)
+    },
+    toModule() {
+      console.log(this.$router)
+      const currentPage = this.currentMenu == 0 ? 'material_statistics' : this.currentMenu == 1 ? 'progres_statistics' : this.currentMenu == 2 ? 'echarts_statistics' : 'progres_visual'
+      this.$router.push({
+        path: `/${currentPage}`
+      })
     }
+  }
 }
 </script>
 
 <style lang="scss" scoped>
-.progresVisualContainer{
-    width: 100%;
-    height: 100%;
-    padding: 1%;
-    .topContain{
-        display: flex;
-        justify-content: space-between;
-        width: 60%;
-        .searchBtn{
-            height: 100%;
-            width: 11%;
-            background-color: #1890FF;
-            color: #fff;
-        }
-        ::v-deep .projectSelect{
-            width: 20% !important;
-            .el-input__inner{
-                background-color: #1890FF;
-                color: #fff;
-            }
-        }
-        .projectDropDown{
-            background-color: #1890FF;
-            .el-select-dropdown__item{
-                background-color: #1890FF;
-                color: #fff;
-            }
-            ::v-deep .el-select-dropdown__list {
-                padding-top: 0 !important;
-                padding-bottom: 0;
-            }
-        }
-        .projectDropDown >ul{
-            padding-top: 0 ;
-            padding-bottom: 0;
-        }
-        .unitStatus{
-            width: 13%;
-            display: flex;
-            position: absolute;
-            right: 7%;
-            height: 5%;
-        }
+.progresVisualContainer {
+  width: 100%;
+  height: 100%;
+  padding: 1%;
+
+  .topContain {
+    display: flex;
+    justify-content: space-between;
+    width: 60%;
+
+    .searchBtn {
+      height: 100%;
+      width: 11%;
+      background-color: #1890FF;
+      color: #fff;
     }
-}
-.buildingContain{
-    height: 100%;
-    .unitFloor{
-        display: flex;
-        justify-content: space-around;
-        border: 1px solid #000;
-        .room{
-            flex: 1;
-            width: 50px;
-            height: 25px;
-            text-align: center;
-            line-height: 25px;
-            cursor: pointer;
-            box-shadow: inset 0px 0px 10px rgba(0,0,0,.6);
-        }
+
+    ::v-deep .projectSelect {
+      width: 20% !important;
+
+      .el-input__inner {
+        background-color: #1890FF;
+        color: #fff;
+      }
+    }
+
+    .projectDropDown {
+      background-color: #1890FF;
+
+      .el-select-dropdown__item {
+        background-color: #1890FF;
+        color: #fff;
+      }
+
+      ::v-deep .el-select-dropdown__list {
+        padding-top: 0 !important;
+        padding-bottom: 0;
+      }
     }
 
-    .unitFloor >div:not(:nth-child(1)){
-        margin-left: 2%;
+    .projectDropDown > ul {
+      padding-top: 0;
+      padding-bottom: 0;
     }
+
+    .unitStatus {
+      width: 13%;
+      display: flex;
+      position: absolute;
+      right: 7%;
+      height: 5%;
+    }
+  }
 }
-.buildingContain:not(:nth-child(1)){
-    margin-left: 5%;
-}
-.buildingContain .unitFloor:not(:nth-child(1)){
-    margin-top: 2%;
-}
-::v-deep .searchForm{
+
+.buildingContain {
+  height: 100%;
+  border: solid 5px #c7eafe;
+  padding: 10px;
+  background: #e2f4ff;
+
+  .unitFloor {
     display: flex;
-    .el-form-item{
-        width: 205px;
-    }
-    .el-select{
-        width: 135px;
+    justify-content: space-around;
+    //border: 1px solid #000;
+
+    .room {
+      flex: 1;
+      width: 50px;
+      height: 25px;
+      text-align: center;
+      line-height: 25px;
+      cursor: pointer;
+      font-size: 1em;
+      //box-shadow: inset 0px 0px 10px rgba(0, 0, 0, .6);
     }
+  }
+
+  .unitFloor > div:not(:nth-child(1)) {
+    margin-left: 2%;
+  }
+}
+
+.buildingContain:not(:nth-child(1)) {
+  margin-left: 5%;
+}
+
+.buildingContain .unitFloor:not(:nth-child(1)) {
+  margin-top: 2%;
+}
+
+::v-deep .searchForm {
+  display: flex;
+
+  .el-form-item {
+    width: 205px;
+  }
+
+  .el-select {
+    width: 135px;
+  }
 }
 </style>