buildingManagement.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920
  1. <template>
  2. <div class="buildingManagement">
  3. <div class="max-left-box">
  4. <div class="tree-box scrollbar-box">
  5. <div class="terr-max-box" v-for="(item,index) in treeList" :key="index">
  6. <div class="max-name-box">
  7. <p class="max-name" :class="checkTreeId==item.id?'check-color':''" @click="clickCheckTree(item.id,1)">{{item.name}}</p>
  8. <el-dropdown @command="(command)=>handleCommand(command,item)">
  9. <img src="@/assets/ZDimages/evacuation3_2/icon_bjgl_gd.png" style="cursor:pointer;width:16px;height:4px;margin-top:7px;">
  10. <el-dropdown-menu slot="dropdown">
  11. <el-dropdown-item command="1">编辑</el-dropdown-item>
  12. <el-dropdown-item command="2">删除</el-dropdown-item>
  13. </el-dropdown-menu>
  14. </el-dropdown>
  15. </div>
  16. <div class="terr-big-box" v-for="(itemOne,indexOne) in item.childList" :key="indexOne">
  17. <div class="big-name-box">
  18. <img v-if="!itemOne.type" src="@/assets/ZDimages/evacuation3_2/icon_bjgl_jt.png" @click="terrClick(itemOne)">
  19. <img v-if="itemOne.type" src="@/assets/ZDimages/evacuation3_2/icon_bjgl_xjt.png" @click="terrClick(itemOne)">
  20. <p :class="checkTreeId==itemOne.id?'check-color':''" @click="clickCheckTree(itemOne.id,2)">{{itemOne.name}}</p>
  21. </div>
  22. <div v-if="itemOne.type" class="terr-min-box" v-for="(itemTwo,indexTwo) in itemOne.childList" :key="indexTwo">
  23. <p class="min-name" :class="checkTreeId==itemTwo.id?'check-color':''" @click="clickCheckTree(itemTwo.id,3)">{{itemTwo.name}}</p>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. <p class="max-left-big-button" @click="handleCommand(3)">+ 新增校区</p>
  29. </div>
  30. <div class="max-right-box">
  31. <div class="school-box" v-if="checkTreeType == 1">
  32. <div class="max-right-button-box">
  33. <p class="null-p"></p>
  34. <p class="max-right-big-button" @click="handleCommand(4)">+ 新增楼栋</p>
  35. </div>
  36. <div class="right-big-list-box scrollbar-box">
  37. <div class="for-max-box" v-for="(item,index) in buildingList" :key="index"
  38. @dragover.prevent="dragoverPrevent(item)">
  39. <div class="for-big-box">
  40. <div class="for-big-box-left">
  41. <img src="@/assets/ZDimages/evacuation3_2/icon_bjgl_td.png" class="for-img-one"
  42. draggable="true"
  43. @dragstart="dragstartPlay($event)"
  44. @dragend="dragEnterOver($event, item)">
  45. <p class="for-text-one">{{item.name}}</p>
  46. <img src="@/assets/ZDimages/evacuation3_2/icon_bjgl_lcs.png" class="for-img-two">
  47. <div class="for-text-box-one">
  48. <p>6</p>
  49. <p>楼层数</p>
  50. </div>
  51. <img src="@/assets/ZDimages/evacuation3_2/icon_bjgl_fj.png" class="for-img-three">
  52. <div class="for-text-box-two">
  53. <p>160</p>
  54. <p>房间数</p>
  55. </div>
  56. </div>
  57. <div class="for-button-min-box">
  58. <div>
  59. <img src="@/assets/ZDimages/evacuation3_2/icon_znwl_bj.png">
  60. <p @click="handleCommand(8)">编辑</p>
  61. </div>
  62. <div>
  63. <img src="@/assets/ZDimages/evacuation3_2/icon_znwl_sc.png">
  64. <p @click="handleCommand(9)">删除</p>
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. <div class="building-box" v-if="checkTreeType == 2">
  72. <div class="max-right-button-box">
  73. <p class="null-p"></p>
  74. <p class="max-right-big-button" style="margin-right:20px;" @click="handleCommand(7)">+ 新增楼层</p>
  75. <p class="max-right-big-button" @click="floorZK(1)">{{floorZkType==1?'一键收起':'一键展开'}}</p>
  76. </div>
  77. <div class="right-big-list-box scrollbar-box">
  78. <div class="for-max-box" v-for="(item,index) in buildingList" :key="index"
  79. @dragover.prevent="dragoverPrevent(item)">
  80. <div class="for-big-box">
  81. <div class="for-big-box-left">
  82. <img src="@/assets/ZDimages/evacuation3_2/icon_bjgl_td.png" class="for-img-one"
  83. draggable="true"
  84. @dragstart="dragstartPlay($event)"
  85. @dragend="dragEnterOver($event, item)">
  86. <p class="for-text-one">{{item.name}}</p>
  87. </div>
  88. <div class="for-button-min-box">
  89. <div>
  90. <img src="@/assets/ZDimages/evacuation3_2/icon_znwl_bj.png">
  91. <p @click="handleCommand(8)">编辑</p>
  92. </div>
  93. <div>
  94. <img src="@/assets/ZDimages/evacuation3_2/icon_znwl_sc.png">
  95. <p @click="handleCommand(9)">删除</p>
  96. </div>
  97. <div>
  98. <img src="@/assets/ZDimages/evacuation3_2/icon_bjgl_zk.png">
  99. <p @click="floorZK(2,index)">{{item.type?'收起':'展开'}}</p>
  100. </div>
  101. </div>
  102. </div>
  103. <p v-if="item.type" style="border:1px solid #000;text-align: center;margin-left:36px;">暂无数据</p>
  104. </div>
  105. </div>
  106. </div>
  107. <div class="floor-box" v-if="checkTreeType == 3">
  108. <div class="map-max-big-box">
  109. <p class="position-button-p">设置布局</p>
  110. </div>
  111. <div class="table-box">
  112. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
  113. <el-form-item label="关键字" prop="searchValue" style="margin-right:20px;margin-bottom:20px;">
  114. <el-input
  115. v-model="queryParams.searchValue"
  116. placeholder="请输入关键字"
  117. clearable
  118. size="small"
  119. />
  120. </el-form-item>
  121. <el-form-item label="房间类型" prop="searchValue" style="margin-right:20px;margin-bottom:20px;">
  122. <el-input
  123. v-model="queryParams.searchValue"
  124. placeholder="请选择关键字"
  125. clearable
  126. size="small"
  127. />
  128. </el-form-item>
  129. <el-form-item>
  130. <p class="inquire-button-one" @click="handleQuery" style="margin-right:20px;margin-bottom:20px;">查询</p>
  131. <p class="reset-button-one" @click="resetQuery">重置</p>
  132. </el-form-item>
  133. </el-form>
  134. <el-table v-loading="loading" border :data="dataList">
  135. <el-table-column label="房间号" align="left" prop="moldName" width="100"/>
  136. <el-table-column label="房间名称" align="left" prop="createBy"/>
  137. <el-table-column label="房间类型" align="left" prop="createBy" width="200"/>
  138. <el-table-column label="创建人" align="left" prop="createBy" width="200"/>
  139. <el-table-column label="创建时间" align="left" prop="createTime" width="200"/>
  140. <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="200">
  141. <template slot-scope="scope">
  142. <div class="table-button-box">
  143. <p class="table-button-null"></p>
  144. <p class="table-button-p" @click="roomClick(1,item)">编辑</p>
  145. <p class="table-button-p" @click="roomClick(3)">删除</p>
  146. <p class="table-button-null"></p>
  147. </div>
  148. </template>
  149. </el-table-column>
  150. </el-table>
  151. <pagination
  152. style="margin-top:20px;"
  153. v-show="total>0"
  154. :total="total"
  155. :page.sync="queryParams.pageNum"
  156. :limit.sync="queryParams.pageSize"
  157. @pagination="getList"
  158. />
  159. </div>
  160. </div>
  161. </div>
  162. <!-- 新增/编辑校区 -->
  163. <el-dialog :title="dialogTitle" v-if="dialogOpen" :visible.sync="dialogOpen" width="600px" append-to-body>
  164. <el-form ref="dialogForm" :model="dialogForm" :rules="rules" label-width="110px">
  165. <el-form-item label="校区名称:" prop="nameOne">
  166. <el-input v-model="dialogForm.nameOne" maxlength="10" placeholder="请输入校区名称" :disabled="dialogType==2 || dialogType==3"/>
  167. </el-form-item>
  168. <el-form-item label="楼栋名称:" prop="nameTwo" v-if="dialogType==2 || dialogType==3">
  169. <el-input v-model="dialogForm.nameTwo" maxlength="10" placeholder="请输入楼栋名称" :disabled="dialogType==3"/>
  170. </el-form-item>
  171. <el-form-item label="楼层名称:" prop="nameThree" v-if="dialogType==3">
  172. <el-input v-model="dialogForm.nameThree" maxlength="10" placeholder="请输入楼层名称" />
  173. </el-form-item>
  174. <el-form-item label="排序序号:" prop="key">
  175. <el-input v-model="dialogForm.key" maxlength="10" placeholder="请输入排序序号" />
  176. </el-form-item>
  177. </el-form>
  178. <div slot="footer" class="dialog-footer">
  179. <div style="display: flex">
  180. <p style="flex:1;"></p>
  181. <p style="border-radius:6px;width:70px;line-height:30px;font-size:12px;text-align:center;margin-right:17px;color:#999999;background:#E0E0E0;" @click="cancel">取消</p>
  182. <p style="border-radius:6px;width:70px;line-height:30px;font-size:12px;text-align:center;color:#fff;background:#0045AF;" @click="submitForm">确定</p>
  183. <p style="flex:1;"></p>
  184. </div>
  185. </div>
  186. </el-dialog>
  187. <el-dialog title="房间配置" v-if="dialogOpenRoom" :visible.sync="dialogOpenRoom" width="600px" append-to-body>
  188. <el-form ref="dialogForm" :model="dialogForm" :rules="rules" label-width="110px">
  189. <el-form-item label="楼栋名称:" prop="nameTwo">
  190. <el-input v-model="dialogForm.nameTwo" maxlength="10" placeholder="请输入楼栋名称" disabled/>
  191. </el-form-item>
  192. <el-form-item label="楼层名称:" prop="nameThree">
  193. <el-input v-model="dialogForm.nameThree" maxlength="10" placeholder="请输入楼层名称" />
  194. </el-form-item>
  195. <el-form-item label="房间类型:" prop="key">
  196. <el-input v-model="dialogForm.key" maxlength="10" placeholder="请输入房间类型" />
  197. </el-form-item>
  198. <el-form-item label="房间号:" prop="key">
  199. <el-input v-model="dialogForm.key" maxlength="10" placeholder="请输入房间号" />
  200. </el-form-item>
  201. <el-form-item label="房间名称:" prop="key">
  202. <el-input v-model="dialogForm.key" maxlength="10" placeholder="请输入房间名称" />
  203. </el-form-item>
  204. <el-form-item label="房间选择:" prop="key">
  205. <el-input v-model="dialogForm.key" maxlength="10" placeholder="请输入房间选择" />
  206. </el-form-item>
  207. <el-form-item label="房间位置:" prop="key">
  208. <el-input v-model="dialogForm.key" maxlength="10" placeholder="请输入房间位置" />
  209. </el-form-item>
  210. </el-form>
  211. <div slot="footer" class="dialog-footer">
  212. <div style="display: flex">
  213. <p style="flex:1;"></p>
  214. <p style="border-radius:6px;width:70px;line-height:30px;font-size:12px;text-align:center;margin-right:17px;color:#999999;background:#E0E0E0;" @click="cancel">取消</p>
  215. <p style="border-radius:6px;width:70px;line-height:30px;font-size:12px;text-align:center;color:#fff;background:#0045AF;" @click="submitForm">确定</p>
  216. <p style="flex:1;"></p>
  217. </div>
  218. </div>
  219. </el-dialog>
  220. </div>
  221. </template>
  222. <script>
  223. export default {
  224. name: "buildingManagement",
  225. data() {
  226. return {
  227. //拖拽起始Y点(用于计算朝向)
  228. clientY:null,
  229. clientId:null,
  230. treeList:[
  231. {
  232. id:'1',
  233. name:'西安电子科技大学东校区',
  234. childList:[
  235. {
  236. id:'2',
  237. name:'一号实验楼',
  238. type:false,
  239. childList:[
  240. {
  241. id:'3',
  242. name:'二层',
  243. childList:[]
  244. }
  245. ]
  246. },
  247. {
  248. id:'4',
  249. name:'一号实验楼',
  250. type:false,
  251. childList:[
  252. {
  253. id:'5',
  254. name:'二层',
  255. childList:[]
  256. }
  257. ]
  258. },
  259. ]
  260. }
  261. ],
  262. //选中状态
  263. checkTreeId:1,
  264. checkTreeType:1,
  265. buildingList:[
  266. {id:1,name:"名称1",type:false},{id:2,name:"名称2",type:true},{id:3,name:"名称3",type:false},{id:4,name:"名称1",type:false},{id:5,name:"名称2",type:true},{id:6,name:"名称3",type:false},{id:7,name:"名称1",type:false},{id:8,name:"名称2",type:true},{id:9,name:"名称3",type:false},
  267. ],
  268. //楼层展开/关闭状态
  269. floorZkType:null, //1.全部展开 2.全部关闭 3.有关有开
  270. //编辑弹窗开关
  271. dialogOpen:false,
  272. dialogType:null,
  273. dialogTitle:'',
  274. // 表单参数
  275. dialogForm: {},
  276. // 表单校验
  277. rules: {
  278. nameOne: [
  279. { required: true, message: "请输入校区名称", trigger: "blur" },
  280. { required: true, message: "请输入校区名称", validator: this.spaceJudgment, trigger: "blur" }
  281. ],
  282. nameTwo: [
  283. { required: true, message: "请输入楼栋名称", trigger: "blur" },
  284. { required: true, message: "请输入楼栋名称", validator: this.spaceJudgment, trigger: "blur" }
  285. ],
  286. nameThree: [
  287. { required: true, message: "请输入楼层名称", trigger: "blur" },
  288. { required: true, message: "请输入楼层名称", validator: this.spaceJudgment, trigger: "blur" }
  289. ],
  290. key: [
  291. { required: true, message: "请输入排序序号", trigger: "blur" },
  292. { required: true, message: "请输入排序序号", validator: this.spaceJudgment, trigger: "blur" }
  293. ],
  294. },
  295. // 显示搜索条件
  296. showSearch: true,
  297. loading:false,
  298. //楼层查询数据
  299. queryParams:{},
  300. //楼层表单数据
  301. dataList:[],
  302. total:10,
  303. //房间配置相关
  304. dialogOpenRoom:false,
  305. }
  306. },
  307. created() {
  308. },
  309. mounted(){
  310. this.floorZkFor();
  311. },
  312. methods:{
  313. //房间操作按钮
  314. roomClick(type){
  315. if(type == 1){
  316. this.dialogOpenRoom = true;
  317. }else if(type == 2){
  318. this.$confirm('确定要删除该房间吗?', "警告", {
  319. confirmButtonText: "确定",
  320. cancelButtonText: "取消",
  321. type: "warning"
  322. }).then(function() {
  323. console.log('删除校区',item)
  324. }).then(() => {
  325. }).catch(() => {});
  326. }else if(type == 3){
  327. this.dialogOpenRoom = true;
  328. }
  329. },
  330. //楼栋弹出下啦列表选中事件
  331. handleCommand(command,item){
  332. if (command == 1){
  333. //编辑校区
  334. this.$set(this,'dialogTitle','编辑校区');
  335. this.$set(this,'dialogType',1);
  336. this.$set(this,'dialogOpen',true);
  337. }else if(command == 2){
  338. //删除校区
  339. this.$confirm('确定要删除该校区吗?', "警告", {
  340. confirmButtonText: "确定",
  341. cancelButtonText: "取消",
  342. type: "warning"
  343. }).then(function() {
  344. console.log('删除校区',item)
  345. }).then(() => {
  346. }).catch(() => {});
  347. }else if(command == 3){
  348. //新增校区
  349. this.$set(this,'dialogTitle','新增校区');
  350. this.$set(this,'dialogType',1);
  351. this.$set(this,'dialogOpen',true);
  352. }else if(command == 4){
  353. //新增楼栋
  354. this.$set(this,'dialogTitle','新增楼栋');
  355. this.$set(this,'dialogType',2);
  356. this.$set(this,'dialogOpen',true);
  357. }else if(command == 5){
  358. //编辑楼栋
  359. this.$set(this,'dialogTitle','编辑楼栋');
  360. this.$set(this,'dialogType',2);
  361. this.$set(this,'dialogOpen',true);
  362. }else if(command == 6){
  363. //删除楼栋
  364. this.$confirm('确定要删除该楼栋吗?', "警告", {
  365. confirmButtonText: "确定",
  366. cancelButtonText: "取消",
  367. type: "warning"
  368. }).then(function() {
  369. console.log('删除楼栋',item)
  370. }).then(() => {
  371. }).catch(() => {});
  372. }else if(command == 7){
  373. //新增楼层
  374. this.$set(this,'dialogTitle','新增楼层');
  375. this.$set(this,'dialogType',3);
  376. this.$set(this,'dialogOpen',true);
  377. }else if(command == 8){
  378. //编辑楼层
  379. this.$set(this,'dialogTitle','编辑楼层');
  380. this.$set(this,'dialogType',3);
  381. this.$set(this,'dialogOpen',true);
  382. }else if(command == 9){
  383. //删除楼层
  384. this.$confirm('确定要删除该楼层吗?', "警告", {
  385. confirmButtonText: "确定",
  386. cancelButtonText: "取消",
  387. type: "warning"
  388. }).then(function() {
  389. console.log('删除楼层',item)
  390. }).then(() => {
  391. }).catch(() => {});
  392. }
  393. },
  394. //树状结构选中
  395. clickCheckTree(id,type){
  396. this.$set(this,'checkTreeId',id)
  397. this.$set(this,'checkTreeType',type)
  398. },
  399. // 取消按钮
  400. cancel() {
  401. this.$set(this,'dialogOpen',false);
  402. this.$set(this,'dialogForm',{});
  403. this.$set(this,'dialogType',null);
  404. },
  405. //确定按钮
  406. submitForm(){
  407. },
  408. //树状结构展开收回
  409. terrClick(itemOne){
  410. itemOne.type = !itemOne.type;
  411. },
  412. //展开/收起开关
  413. floorZK(type,index){
  414. let self = this;
  415. //type等于1时全部开关功能 等于2时单个开关
  416. if(type == 1){
  417. let list = JSON.parse(JSON.stringify(self.buildingList))
  418. for(let i=0;i<list.length;i++){
  419. if(self.floorZkType == 1){
  420. list[i].type = false;
  421. console.log('self.floorZkType == 1',list[i].type)
  422. }else if(self.floorZkType == 2){
  423. list[i].type = true;
  424. console.log('self.floorZkType == 2',list[i].type)
  425. }else if(self.floorZkType == 3){
  426. list[i].type = true;
  427. console.log('self.floorZkType == 3',list[i].type)
  428. }
  429. }
  430. this.$set(this,'buildingList',list);
  431. this.floorZkFor();
  432. }else if(type == 2){
  433. this.$set(this.buildingList[index],'type',this.buildingList[index].type?false:true)
  434. this.floorZkFor();
  435. }
  436. },
  437. //层展开关闭判断
  438. floorZkFor(){
  439. let self = this;
  440. let numOne = 0;
  441. let numTwo = 0;
  442. for(let i=0;i<self.buildingList.length;i++){
  443. if(self.buildingList[i].type){
  444. numOne++
  445. }else{
  446. numTwo++
  447. }
  448. }
  449. console.log('numOne',numOne)
  450. console.log('numTwo',numTwo)
  451. console.log('self.buildingList.length',self.buildingList.length)
  452. if(numOne == self.buildingList.length){
  453. this.$set(this,'floorZkType',1);
  454. }else if(numTwo == self.buildingList.length){
  455. this.$set(this,'floorZkType',2);
  456. }else{
  457. this.$set(this,'floorZkType',3);
  458. }
  459. console.log('floorZkType',self.floorZkType)
  460. },
  461. //拖拽抓取时触发
  462. dragstartPlay(event) {
  463. this.$set(this,'clientY',event.clientY)
  464. },
  465. //拖拽途径触发
  466. dragoverPrevent(item){
  467. this.$set(this,'clientId',item.id)
  468. },
  469. //拖拽释放触发
  470. dragEnterOver(event,item) {
  471. let self = this;
  472. if(this.clientId && item.id != this.clientId){
  473. let list = [];
  474. let obj = null;
  475. for(let i=0;i<self.buildingList.length;i++){
  476. if(self.buildingList[i].id == item.id){
  477. obj = JSON.parse(JSON.stringify(self.buildingList[i]))
  478. }
  479. }
  480. if(event.clientY>this.clientY){
  481. for(let i=0;i<self.buildingList.length;i++){
  482. if(self.buildingList[i].id != item.id && self.buildingList[i].id != this.clientId){
  483. list.push(self.buildingList[i]);
  484. }else if(self.buildingList[i].id == this.clientId){
  485. list.push(self.buildingList[i]);
  486. list.push(obj);
  487. }
  488. }
  489. }else if(event.clientY<this.clientY){
  490. for(let i=0;i<self.buildingList.length;i++){
  491. if(self.buildingList[i].id == this.clientId){
  492. list.push(obj);
  493. list.push(self.buildingList[i]);
  494. }else if(self.buildingList[i].id != item.id && self.buildingList[i].id != this.clientId){
  495. list.push(self.buildingList[i]);
  496. }
  497. }
  498. }
  499. this.$set(this,'buildingList',list);
  500. this.$set(this,'clientId',null);
  501. }
  502. },
  503. getList(){
  504. },
  505. /** 搜索按钮操作 */
  506. handleQuery() {
  507. this.queryParams.pageNum = 1;
  508. this.getList();
  509. },
  510. /** 重置按钮操作 */
  511. resetQuery() {
  512. // this.resetForm("queryForm");
  513. this.$set(this,'queryParams',{
  514. pageNum: 1,
  515. pageSize:20,
  516. typeName:"",
  517. title: '',
  518. });
  519. this.handleQuery();
  520. },
  521. }
  522. }
  523. </script>
  524. <style scoped lang="scss">
  525. .buildingManagement{
  526. flex:1;
  527. display: flex!important;
  528. overflow: hidden;
  529. padding:22px 28px 22px 32px;
  530. *{
  531. margin:0;
  532. font-weight:100;
  533. }
  534. .max-left-box{
  535. width:281px;
  536. border-right:1px dashed #A2A2A2;
  537. display: flex;
  538. flex-direction: column;
  539. .tree-box{
  540. flex:1;
  541. .terr-max-box{
  542. .max-name-box{
  543. display: flex;
  544. margin-right:20px;
  545. margin-bottom:10px;
  546. color:#D8D8D8;
  547. font-size:20px;
  548. .max-name{
  549. flex:1;
  550. margin-right:19px;
  551. color:#333;
  552. font-size:16px;
  553. line-height:16px;
  554. margin-top:3px;
  555. cursor: pointer;
  556. }
  557. }
  558. .terr-big-box{
  559. margin-left:30px;
  560. .big-name-box{
  561. cursor: pointer;
  562. height:40px;
  563. line-height:40px;
  564. display: flex;
  565. font-size:16px;
  566. color:#333;
  567. img{
  568. width:16px;
  569. height:16px;
  570. margin-top:12px;
  571. margin-right:4px;
  572. }
  573. }
  574. .terr-min-box{
  575. margin-left:30px;
  576. .min-name{
  577. cursor: pointer;
  578. height:40px;
  579. line-height:40px;
  580. display: flex;
  581. font-size:16px;
  582. color:#333;
  583. }
  584. }
  585. }
  586. .check-color{
  587. color:#0183FA!important;
  588. }
  589. }
  590. }
  591. .max-left-big-button{
  592. color:#0183FA;
  593. border:1px dashed #0183FA;
  594. -webkit-border-radius: 6px;
  595. -moz-border-radius: 6px;
  596. border-radius: 6px;
  597. width:180px;
  598. line-height:40px;
  599. margin: 20px 0 20px 40px;
  600. text-align: center;
  601. font-size:14px;
  602. cursor: pointer;
  603. }
  604. .max-left-big-button:hover{
  605. color:#fff;
  606. background: #0183FA;
  607. border:1px solid #0183FA;
  608. }
  609. }
  610. .max-right-box{
  611. flex:1;
  612. display: flex;
  613. flex-direction: column;
  614. overflow: hidden;
  615. .school-box{
  616. flex:1;
  617. display: flex;
  618. flex-direction: column;
  619. overflow: hidden;
  620. .max-right-button-box{
  621. height:40px;
  622. display: flex;
  623. margin-bottom:22px;
  624. .null-p{
  625. flex:1;
  626. }
  627. .max-right-big-button{
  628. color:#fff;
  629. background: #0045AF;
  630. -webkit-border-radius: 6px;
  631. -moz-border-radius: 6px;
  632. border-radius: 6px;
  633. width:130px;
  634. line-height:40px;
  635. text-align: center;
  636. font-size:14px;
  637. cursor: pointer;
  638. }
  639. .max-right-big-button:hover{
  640. color:#fff;
  641. background: #0183FA;
  642. }
  643. }
  644. .right-big-list-box{
  645. flex:1;
  646. .for-max-box{
  647. .for-big-box{
  648. display: flex;
  649. border:1px solid #dedede;
  650. height:100px;
  651. box-shadow: 0px 3px 8px 0px rgba(0,0,0,0.16);
  652. margin-bottom:30px;
  653. margin-left:36px;
  654. border-radius:6px;
  655. .for-big-box-left{
  656. flex:1;
  657. display: flex;
  658. .for-img-one{
  659. cursor: pointer;
  660. height:30px;
  661. width:30px;
  662. margin:35px 0 0 30px;
  663. }
  664. .for-text-one{
  665. font-size:16px;
  666. line-height:100px;
  667. margin-left:95px;
  668. width:230px;
  669. font-weight:500;
  670. }
  671. .for-img-two{
  672. height:48px;
  673. width:48px;
  674. margin:26px 23px 0 30px;
  675. }
  676. .for-text-box-one{
  677. width:88px;
  678. margin-right:73px;
  679. p{
  680. text-align: center;
  681. }
  682. p:nth-child(1){
  683. margin-top:20px;
  684. font-size:24px;
  685. line-height:30px;
  686. color:#0183FA;
  687. }
  688. p:nth-child(2){
  689. margin-top:10px;
  690. font-size:16px;
  691. line-height:16px;
  692. color:#333;
  693. }
  694. }
  695. .for-img-three{
  696. height:48px;
  697. width:48px;
  698. margin:26px 23px 0 0;
  699. }
  700. .for-text-box-two{
  701. width:88px;
  702. p{
  703. text-align: center;
  704. }
  705. p:nth-child(1){
  706. margin-top:20px;
  707. font-size:24px;
  708. line-height:30px;
  709. color:#0183FA;
  710. }
  711. p:nth-child(2){
  712. margin-top:10px;
  713. font-size:16px;
  714. line-height:16px;
  715. color:#333;
  716. }
  717. }
  718. }
  719. .for-button-min-box{
  720. width:220px;
  721. margin-top:9px;
  722. height:82px;
  723. border-left:1px dashed rgba(0,0,0,0.3);
  724. display: flex;
  725. line-height:82px;
  726. div{
  727. margin-left: 34px;
  728. display: flex;
  729. width: 60px;
  730. cursor: pointer;
  731. img{
  732. width:16px;
  733. height:16px;
  734. margin-right:8px;
  735. margin-top:33px;
  736. }
  737. p{
  738. font-size:14px;
  739. color:#333;
  740. }
  741. }
  742. }
  743. }
  744. }
  745. }
  746. }
  747. .building-box{
  748. flex:1;
  749. display: flex;
  750. flex-direction: column;
  751. overflow: hidden;
  752. .max-right-button-box{
  753. height:40px;
  754. display: flex;
  755. margin-bottom:22px;
  756. .null-p{
  757. flex:1;
  758. }
  759. .max-right-big-button{
  760. color:#fff;
  761. background: #0045AF;
  762. -webkit-border-radius: 6px;
  763. -moz-border-radius: 6px;
  764. border-radius: 6px;
  765. width:130px;
  766. line-height:40px;
  767. text-align: center;
  768. font-size:14px;
  769. cursor: pointer;
  770. }
  771. .max-right-big-button:hover{
  772. color:#fff;
  773. background: #0183FA;
  774. }
  775. }
  776. .right-big-list-box{
  777. flex:1;
  778. .for-max-box{
  779. margin-bottom:30px;
  780. .for-big-box{
  781. display: flex;
  782. border:1px solid #dedede;
  783. height:100px;
  784. box-shadow: 0px 3px 8px 0px rgba(0,0,0,0.16);
  785. margin-left:36px;
  786. border-radius:6px;
  787. .for-big-box-left{
  788. flex:1;
  789. display: flex;
  790. .for-img-one{
  791. cursor: pointer;
  792. height:30px;
  793. width:30px;
  794. margin:35px 0 0 30px;
  795. }
  796. .for-text-one{
  797. font-size:16px;
  798. line-height:100px;
  799. margin-left:95px;
  800. width:230px;
  801. font-weight:500;
  802. }
  803. .for-img-two{
  804. height:48px;
  805. width:48px;
  806. margin:26px 23px 0 30px;
  807. }
  808. .for-text-box-one{
  809. width:88px;
  810. margin-right:73px;
  811. p{
  812. text-align: center;
  813. }
  814. p:nth-child(1){
  815. margin-top:20px;
  816. font-size:24px;
  817. line-height:30px;
  818. color:#0183FA;
  819. }
  820. p:nth-child(2){
  821. margin-top:10px;
  822. font-size:16px;
  823. line-height:16px;
  824. color:#333;
  825. }
  826. }
  827. .for-img-three{
  828. height:48px;
  829. width:48px;
  830. margin:26px 23px 0 0;
  831. }
  832. .for-text-box-two{
  833. width:88px;
  834. p{
  835. text-align: center;
  836. }
  837. p:nth-child(1){
  838. margin-top:20px;
  839. font-size:24px;
  840. line-height:30px;
  841. color:#0183FA;
  842. }
  843. p:nth-child(2){
  844. margin-top:10px;
  845. font-size:16px;
  846. line-height:16px;
  847. color:#333;
  848. }
  849. }
  850. }
  851. .for-button-min-box{
  852. width:330px;
  853. margin-top:9px;
  854. height:82px;
  855. border-left:1px dashed rgba(0,0,0,0.3);
  856. display: flex;
  857. line-height:82px;
  858. div{
  859. margin-left: 34px;
  860. display: flex;
  861. width: 60px;
  862. cursor: pointer;
  863. img{
  864. width:16px;
  865. height:16px;
  866. margin-right:8px;
  867. margin-top:33px;
  868. }
  869. p{
  870. font-size:14px;
  871. color:#333;
  872. }
  873. }
  874. }
  875. }
  876. }
  877. }
  878. }
  879. .floor-box{
  880. flex:1;
  881. display: flex;
  882. flex-direction: column;
  883. overflow: hidden;
  884. .map-max-big-box{
  885. height:400px;
  886. position:relative;
  887. border:1px solid #E0E0E0;
  888. margin-bottom:20px;
  889. margin-left:36px;
  890. .position-button-p{
  891. position:absolute;
  892. right:12px;
  893. top:13px;
  894. width:100px;
  895. line-height:40px;
  896. font-size:14px;
  897. color:#fff;
  898. background: #0045AF;
  899. border-radius:6px;
  900. text-align: center;
  901. cursor: pointer;
  902. }
  903. }
  904. .table-box{
  905. margin-left:36px;
  906. flex:1;
  907. display: flex;
  908. flex-direction: column;
  909. overflow: hidden;
  910. }
  911. }
  912. }
  913. }
  914. </style>