HomeView.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748
  1. <template>
  2. <div id="LayoutContent">
  3. <MapHolder ref="mapLoaderRef"></MapHolder>
  4. <Header @navSelect="navSelect"></Header>
  5. <!-- 全流程管理 4 -->
  6. <div id="stepsBox" v-if="$ifMenu('4', '')">
  7. <WholeProcessManagement />
  8. </div>
  9. <!-- 底部菜单 2 -- 疑点筛查 -->
  10. <div id="leftMenusB" v-show="$ifMenu('3', '')">
  11. <BottomMenus />
  12. </div>
  13. <!-- 镇域专题 -->
  14. <div id="TownContainer" v-if="$ifMenu('2', '5')">
  15. <Legend
  16. id="TownContainer_bottomLegend"
  17. :legendData="{
  18. boxWidth: '150',
  19. boxHeight: '180',
  20. menuIndex: '2',
  21. subMenuIndex: '5',
  22. legendIcon: legendIcon,
  23. legendTitle: legendTitle,
  24. }"
  25. />
  26. <div class="select-title">所属街道</div>
  27. <NewSelect
  28. class="select-container"
  29. @selectEvent="specialTownSelect"
  30. v-model="streetSelectVal"
  31. :options="streetOptions"
  32. :value="streetSelectVal"
  33. />
  34. <div class="town-problems">
  35. <div class="town-problems-top">
  36. <MenuCard
  37. :menuData="{
  38. type: 'card',
  39. title: streetSelectVal + '资源问题',
  40. titleWidth: 40,
  41. boxWidth: '780',
  42. }"
  43. >
  44. <template slot="top">
  45. <div class="town-problems-top-inner">
  46. <TagProblemCard class="problem-item" v-for="n in 4" :key="n" />
  47. </div>
  48. </template>
  49. </MenuCard>
  50. </div>
  51. <div class="town-problems-bottom">
  52. <MenuCard
  53. :menuData="{
  54. type: 'card',
  55. title: '资金投入TOP10',
  56. titleWidth: 85,
  57. boxWidth: '400',
  58. }"
  59. ><template slot="top"><TopCard :dataSize="10" /></template
  60. ></MenuCard>
  61. <MenuCard
  62. :menuData="{
  63. type: 'card',
  64. title: '历年频发问题TOP10',
  65. titleWidth: 85,
  66. boxWidth: '400',
  67. }"
  68. ><template slot="top"><TopCard :dataSize="10" /></template
  69. ></MenuCard>
  70. </div>
  71. </div>
  72. </div>
  73. <!-- 综合分析 -->
  74. <ComprehensiveAnalysis
  75. id="ComprehensiveContainer"
  76. v-if="$ifMenu('3', '')"
  77. />
  78. <!-- 法律法规 -->
  79. <LawView id="LawContainer" v-if="$ifMenu('5', '1')" />
  80. <!-- 频发问题 -->
  81. <FrequencyView id="FrequencyContainer" v-if="$ifMenu('5', '2')" />
  82. <!-- Home页面(因为客户要求需要动画,所以不能用v-if控制首页元素的显示与隐藏,而是改为组件内部动态v-show控制元素的样式) -->
  83. <!-- 左侧菜单列 -- 首页 -->
  84. <div id="leftMenus">
  85. <MenuCard v-for="item in menus.left" :menuData="item" :key="item.title" />
  86. </div>
  87. <!-- 左侧菜单列(较宽,两列) -- 疑点筛查 -->
  88. <div id="leftMenusW">
  89. <MenuCard v-for="item in menus.leftW" :menuData="item" :key="item.title">
  90. </MenuCard>
  91. </div>
  92. <!-- 中部菜单列 -->
  93. <div id="mainMenus">
  94. <div id="mainMenus_topLeft" v-if="$ifMenu('1', '')">所属街道</div>
  95. <NewSelect
  96. id="mainMenus_topSelect"
  97. v-model="streetSelectVal"
  98. :options="streetOptions"
  99. :value="streetSelectVal"
  100. @selectEvent="homeSelect"
  101. v-if="$ifMenu('1', '')"
  102. />
  103. <div id="mainMenus_topRight">
  104. <MenuCard :menuData="menus.main[0]">
  105. <div class="bar-btn">
  106. <div
  107. class="btn-style"
  108. v-for="item in buttonData"
  109. :key="item"
  110. @click="clickEvent(item)"
  111. :class="{ 'button-selected': item === btnChecked }"
  112. >
  113. {{ item }}
  114. </div>
  115. </div>
  116. <div class="bar-content">
  117. <BarChart
  118. ref="barChartRef"
  119. class="bar"
  120. :categoryData="categoryData"
  121. :soilValueData="soil"
  122. :waterValueData="water"
  123. :forestryValueData="forestry"
  124. :sourceType="btnChecked"
  125. />
  126. </div>
  127. </MenuCard>
  128. </div>
  129. <Legend
  130. id="mainMenus_bottomLegend"
  131. :legendData="{
  132. boxWidth: '150',
  133. boxHeight: '180',
  134. menuIndex: '1',
  135. legendIcon: legendIcon,
  136. legendTitle: legendTitle,
  137. }"
  138. />
  139. </div>
  140. <!-- 首页右侧菜单列 -->
  141. <div class="rightMenus">
  142. <MenuCard :menuData="menus.right[0]"></MenuCard>
  143. <MenuCard :menuData="menus.right[1]"></MenuCard>
  144. <MenuCard :menuData="menus.right[2]">
  145. <template slot="top">
  146. <TopCard :dataSize="5" />
  147. </template>
  148. </MenuCard>
  149. </div>
  150. <!-- 土地资源右侧菜单列 -->
  151. <div class="rightMenus">
  152. <MenuCard :menuData="menus.right[3]"></MenuCard>
  153. <MenuCard :menuData="menus.right[4]">
  154. <template slot="top">
  155. <TopCard :dataSize="5" />
  156. </template>
  157. </MenuCard>
  158. </div>
  159. </div>
  160. </template>
  161. <script>
  162. import MapHolder from "@/components/map/MapHolder.vue";
  163. import Header from "@/components/layout/Header.vue";
  164. import MenuCard from "@/components/layout/MenuCard.vue";
  165. import NewSelect from "@/components/common/NewSelect.vue";
  166. import BarChart from "@/components/chart/BarChart.vue";
  167. import {
  168. street,
  169. streetLocation,
  170. soilData,
  171. waterData,
  172. forestryData,
  173. menusMap,
  174. } from "@/config/common";
  175. import publicFun from "@/utils/publicFunction.js";
  176. import TagCard from "@/components/common/TagCard";
  177. import ChartCard from "@/components/common/ChartCard.vue";
  178. import TopCard from "@/components/common/TopCard";
  179. import BottomMenus from "@/components/common/BottomMenus";
  180. // 图例
  181. import Legend from "@/components/map/Legend.vue";
  182. // 综合分析
  183. import ComprehensiveAnalysis from "@/views/ComprehensiveAnalysis.vue";
  184. import TagProblemCard from "@/components/common/TagProblemCard.vue";
  185. // 全流程管理
  186. import WholeProcessManagement from "@/components/common/WholeProcessManagement.vue";
  187. // 智能辅助 -- 频发问题
  188. import FrequencyView from "@/views/FrequencyView.vue";
  189. // 智能辅助 -- 法律法规
  190. import LawView from "@/views/LawView.vue";
  191. export default {
  192. name: "HomeView",
  193. components: {
  194. MapHolder,
  195. Header,
  196. MenuCard,
  197. NewSelect,
  198. BarChart,
  199. TagCard,
  200. ChartCard,
  201. TopCard,
  202. BottomMenus,
  203. ComprehensiveAnalysis,
  204. TagProblemCard,
  205. Legend,
  206. WholeProcessManagement,
  207. FrequencyView,
  208. LawView,
  209. },
  210. data() {
  211. return {
  212. tagCardData3: {
  213. type: "lr",
  214. title: "林地面积",
  215. value: 654,
  216. unit: "公顷",
  217. },
  218. testTitle: "土地资源",
  219. activeIndex: 1,
  220. // 菜单配置,后期最好根据用户权限通过后台动态返回。
  221. menus: {},
  222. // 首页饼图相关
  223. buttonData: ["A", "B", "C"],
  224. legendTitle: [
  225. {
  226. name: "A类",
  227. info: "耕地林地总和占镇域面积约 45%以上,或超过3000公顷",
  228. },
  229. {
  230. name: "B类",
  231. info: "有一定的自然资源资产(耕地林地总和 900-3000公项)",
  232. },
  233. {
  234. name: "C类",
  235. info: "自然资源资产较少(耕地林地总和低于 900公项)",
  236. },
  237. ],
  238. // legendData: ["#E565FF", "#0055FF", "#00FFD5"],
  239. legendIcon: [
  240. {
  241. background: "#E565FF",
  242. border: "none",
  243. },
  244. {
  245. background: "#0055FF",
  246. border: "none",
  247. },
  248. {
  249. background: "#00FFD5",
  250. border: "none",
  251. },
  252. ],
  253. btnChecked: "A",
  254. soil: [],
  255. water: [],
  256. forestry: [],
  257. categoryData: [],
  258. AData: {
  259. soil: [],
  260. water: [],
  261. forestry: [],
  262. categoryData: [],
  263. },
  264. BData: {
  265. soil: [],
  266. water: [],
  267. forestry: [],
  268. categoryData: [],
  269. },
  270. CData: {
  271. soil: [],
  272. water: [],
  273. forestry: [],
  274. categoryData: [],
  275. },
  276. streetSelectVal: "全部",
  277. streetOptions: [],
  278. // 街镇专题
  279. townCollection: [
  280. { name: "土地资源问题", num: 67 },
  281. { name: "水资源问题", num: 37 },
  282. { name: "林地资源问题", num: 60 },
  283. { name: "生态资源问题", num: 55 },
  284. ],
  285. // 综合分析
  286. analysis: {
  287. searchInput: "",
  288. },
  289. };
  290. },
  291. methods: {
  292. navSelect: function (data) {
  293. this.$store.commit("changeNavSelect", data);
  294. this.$store.commit("changeBackMenu", {});
  295. },
  296. clickEvent(type) {
  297. this.btnChecked = type;
  298. switch (type) {
  299. case "A":
  300. this.soil = this.AData.soil;
  301. this.water = this.AData.water;
  302. this.forestry = this.AData.forestry;
  303. this.categoryData = this.AData.categoryData;
  304. break;
  305. case "B":
  306. this.soil = this.BData.soil;
  307. this.water = this.BData.water;
  308. this.forestry = this.BData.forestry;
  309. this.categoryData = this.BData.categoryData;
  310. break;
  311. case "C":
  312. this.soil = this.CData.soil;
  313. this.water = this.CData.water;
  314. this.forestry = this.CData.forestry;
  315. this.categoryData = this.CData.categoryData;
  316. break;
  317. }
  318. },
  319. // home页面下拉框
  320. homeSelect(val) {
  321. this.$store.commit("changeHomeSpecialTown", val);
  322. if (val === "全部") {
  323. this.$refs.mapLoaderRef.setView(townLocationMap.get(val), 10);
  324. } else {
  325. let polygon = townPolygonMap.get(val);
  326. map2DViewer.map.fitBounds(polygon.getBounds());
  327. }
  328. },
  329. // 镇域专题下拉框
  330. specialTownSelect(val) {
  331. this.$store.commit("changeHomeSpecialTown", val);
  332. if (val === "全部") {
  333. this.$refs.mapLoaderRef.setView(townLocationMap.get(val), 10);
  334. } else {
  335. let polygon = townPolygonMap.get(val);
  336. map2DViewer.map.fitBounds(polygon.getBounds());
  337. }
  338. },
  339. // 获取自然资源分类数据接口(24个镇的数据)
  340. getSourcesData() {
  341. // town_type -- A:1; B:2; C:3;
  342. let params = new FormData();
  343. params = {
  344. columnId: 90,
  345. states: 3,
  346. pageSize: 30,
  347. page: 0,
  348. };
  349. this.$Post(this.urlsCollection.selectContentList, params)
  350. .then((res) => {
  351. if (res.code === 200 && res.content.data.length > 0) {
  352. // console.log(res.content.data, "getSourcesData接口获取成功");
  353. this.soil = [];
  354. this.water = [];
  355. this.forestry = [];
  356. let data = res.content.data;
  357. let ADataArr = [];
  358. let BDataArr = [];
  359. let CDataArr = [];
  360. data.map((v) => {
  361. if (v.c_town_type === "1") {
  362. ADataArr.push({
  363. name: v.title,
  364. soil: v.c_land_area,
  365. water: v.c_water_area,
  366. forest: v.c_forest_area,
  367. sum: v.c_land_area + v.c_water_area + v.c_forest_area,
  368. });
  369. }
  370. if (v.c_town_type === "2") {
  371. BDataArr.push({
  372. name: v.title,
  373. soil: v.c_land_area,
  374. water: v.c_water_area,
  375. forest: v.c_forest_area,
  376. sum: v.c_land_area + v.c_water_area + v.c_forest_area,
  377. });
  378. }
  379. if (v.c_town_type === "3") {
  380. CDataArr.push({
  381. name: v.title,
  382. soil: v.c_land_area,
  383. water: v.c_water_area,
  384. forest: v.c_forest_area,
  385. sum: v.c_land_area + v.c_water_area + v.c_forest_area,
  386. });
  387. }
  388. });
  389. ADataArr.sort(publicFun.compare("sum"));
  390. BDataArr.sort(publicFun.compare("sum"));
  391. CDataArr.sort(publicFun.compare("sum"));
  392. // 按A,B,C分出各自资源的排序数组
  393. ADataArr.forEach((item) => {
  394. this.AData.soil.push(item.soil);
  395. this.AData.water.push(item.water);
  396. this.AData.forestry.push(item.forest);
  397. this.AData.categoryData.push(item.name);
  398. });
  399. BDataArr.forEach((item) => {
  400. this.BData.soil.push(item.soil);
  401. this.BData.water.push(item.water);
  402. this.BData.forestry.push(item.forest);
  403. this.BData.categoryData.push(item.name);
  404. });
  405. CDataArr.forEach((item) => {
  406. this.CData.soil.push(item.soil);
  407. this.CData.water.push(item.water);
  408. this.CData.forestry.push(item.forest);
  409. this.CData.categoryData.push(item.name);
  410. });
  411. this.$nextTick(() => {
  412. if (this.$refs.barChartRef) {
  413. this.$refs.barChartRef.initEchart(
  414. this.AData.categoryData,
  415. this.AData.soil,
  416. this.AData.water,
  417. this.AData.forestry
  418. );
  419. }
  420. });
  421. }
  422. })
  423. .catch((error) => {
  424. console.log(error, "getSourcesData");
  425. });
  426. },
  427. },
  428. created() {
  429. this.menus = menusMap;
  430. // // 街道下拉框
  431. for (let key in street) {
  432. this.streetOptions.push({
  433. value: street[key],
  434. label: street[key],
  435. });
  436. }
  437. this.getSourcesData();
  438. },
  439. };
  440. </script>
  441. <style lang="less" scoped>
  442. @commonBorderColor: #00aaff;
  443. #LayoutContent {
  444. position: relative;
  445. width: 100%;
  446. height: 100%;
  447. box-sizing: border-box;
  448. overflow: hidden;
  449. }
  450. /* 镇域专题 */
  451. #TownContainer {
  452. position: relative;
  453. height: calc(100% - 60px);
  454. width: 100%;
  455. top: 60px;
  456. z-index: 999;
  457. pointer-events: none;
  458. &_bottomLegend {
  459. position: absolute;
  460. color: #fff;
  461. left: 60px;
  462. bottom: 30px;
  463. pointer-events: auto;
  464. }
  465. .select-title {
  466. position: absolute;
  467. left: 60px;
  468. top: 30px;
  469. width: 80px;
  470. height: 30px;
  471. color: #fff;
  472. line-height: 30px;
  473. font-size: 18px;
  474. cursor: auto;
  475. pointer-events: auto;
  476. }
  477. .select-container {
  478. position: absolute;
  479. left: 150px;
  480. top: 33px;
  481. cursor: pointer;
  482. pointer-events: auto;
  483. }
  484. .town-right-problems {
  485. position: absolute;
  486. right: 10px;
  487. top: 25px;
  488. pointer-events: auto;
  489. }
  490. .town-problems {
  491. position: absolute;
  492. right: 10px;
  493. width: 800px;
  494. height: 100%;
  495. color: #fff;
  496. pointer-events: auto;
  497. &-top {
  498. width: 100%;
  499. height: 220px;
  500. display: flex;
  501. align-items: center;
  502. justify-content: center;
  503. &-inner {
  504. width: 100%;
  505. height: 130px;
  506. display: flex;
  507. align-items: center;
  508. justify-content: space-around;
  509. .problem-item {
  510. width: 170px;
  511. height: 100px;
  512. }
  513. }
  514. }
  515. &-bottom {
  516. // background: plum;
  517. width: 100%;
  518. height: calc(95% - 220px);
  519. display: flex;
  520. align-items: center;
  521. justify-content: space-between;
  522. }
  523. }
  524. }
  525. /* 综合分析 */
  526. #ComprehensiveContainer {
  527. position: relative;
  528. height: calc(100% - 60px);
  529. width: 100%;
  530. top: 60px;
  531. z-index: 999;
  532. pointer-events: none;
  533. }
  534. /* 法律法规 */
  535. #LawContainer {
  536. position: relative;
  537. height: calc(100% - 60px);
  538. width: 100%;
  539. top: 60px;
  540. z-index: 999;
  541. background: rgba(0, 0, 0, 0.9);
  542. }
  543. /* 法律法规详细细节弹窗 */
  544. // #LawDetailsContainer {
  545. // position: absolute;
  546. // height: calc(90% - 60px);
  547. // width: 50%;
  548. // top: 80px;
  549. // z-index: 999;
  550. // left: 25%;
  551. // }
  552. /* 频发问题 */
  553. #FrequencyContainer {
  554. position: relative;
  555. height: calc(100% - 60px);
  556. width: 100%;
  557. top: 60px;
  558. z-index: 999;
  559. background: rgba(0, 0, 0, 0.9);
  560. }
  561. /* Home目录 -- 左侧菜单列 */
  562. #leftMenus {
  563. position: absolute;
  564. left: 5px;
  565. top: 60px;
  566. width: 420px;
  567. padding-right: 10px;
  568. margin-right: 10px;
  569. height: calc(100% - 60px);
  570. box-sizing: border-box;
  571. overflow-x: hidden;
  572. overflow-y: auto;
  573. scrollbar-width: none; /* Firefox */
  574. -ms-overflow-style: none; /* IE 10+ */
  575. &::-webkit-scrollbar {
  576. display: none; /* Chrome Safari */
  577. }
  578. }
  579. #leftMenusW {
  580. position: absolute;
  581. display: flex;
  582. flex-direction: row;
  583. flex-wrap: wrap;
  584. align-content: flex-start;
  585. left: 5px;
  586. top: 60px;
  587. width: 870px;
  588. padding-right: 10px;
  589. margin-right: 10px;
  590. height: calc(100% - 65px);
  591. float: left;
  592. box-sizing: border-box;
  593. overflow-x: hidden;
  594. overflow-y: auto;
  595. scrollbar-width: none; /* Firefox */
  596. -ms-overflow-style: none; /* IE 10+ */
  597. &::-webkit-scrollbar {
  598. display: none; /* Chrome Safari */
  599. }
  600. }
  601. // 底部菜单定位
  602. #leftMenusB {
  603. position: absolute;
  604. top: 0;
  605. width: 100%;
  606. height: 100%;
  607. }
  608. #stepsBox {
  609. position: absolute;
  610. top: 0;
  611. width: 100%;
  612. height: 100%;
  613. }
  614. #mainMenus {
  615. position: absolute;
  616. left: 430px;
  617. top: 60px;
  618. width: calc(100% - 850px);
  619. height: calc(100% - 60px);
  620. box-sizing: border-box;
  621. &_topLeft {
  622. position: absolute;
  623. left: 20px;
  624. top: 30px;
  625. font-size: 18px;
  626. z-index: 99999;
  627. color: #fff;
  628. }
  629. &_bottomLegend {
  630. position: absolute;
  631. left: 20px;
  632. bottom: 30px;
  633. color: #fff;
  634. }
  635. &_topSelect {
  636. position: absolute;
  637. left: 100px;
  638. top: 30px;
  639. z-index: 3;
  640. }
  641. &_topRight {
  642. position: absolute;
  643. right: 10px;
  644. top: 30px;
  645. z-index: 3;
  646. overflow: hidden;
  647. .bar-btn {
  648. width: 100%;
  649. height: 10%;
  650. display: flex;
  651. align-items: center;
  652. justify-content: center;
  653. .btn-style {
  654. width: 65px;
  655. height: 35px;
  656. background: url("../assets/home/btn_unselected.png") no-repeat center;
  657. margin-bottom: 2px;
  658. cursor: pointer;
  659. border-radius: 3px;
  660. display: flex;
  661. align-items: center;
  662. justify-content: center;
  663. color: #fff;
  664. }
  665. .button-selected {
  666. background: url("../assets/home/btn_selected.png") no-repeat center;
  667. }
  668. }
  669. .bar-content {
  670. width: 100%;
  671. height: 90%;
  672. background: rgba(100, 100, 100, 0);
  673. .bar {
  674. width: 100%;
  675. height: 98%;
  676. }
  677. }
  678. }
  679. }
  680. // 右侧菜单列
  681. .rightMenus {
  682. position: absolute;
  683. right: 10px;
  684. top: 60px;
  685. width: 420px;
  686. height: calc(100% - 60px);
  687. box-sizing: border-box;
  688. overflow-x: hidden;
  689. overflow-y: auto;
  690. scrollbar-width: none; /* Firefox */
  691. -ms-overflow-style: none; /* IE 10+ */
  692. &::-webkit-scrollbar {
  693. display: none; /* Chrome Safari */
  694. }
  695. }
  696. .menuCardFlex {
  697. display: flex;
  698. align-content: center;
  699. align-items: center;
  700. justify-content: space-between;
  701. flex-wrap: nowrap;
  702. position: relative;
  703. .borders {
  704. position: absolute;
  705. left: 50%;
  706. top: 50%;
  707. transform: translate(-50%, -50%) rotate(45deg);
  708. width: 110px;
  709. height: 100px;
  710. background: linear-gradient(to left, @commonBorderColor, @commonBorderColor)
  711. left top no-repeat,
  712. linear-gradient(to bottom, @commonBorderColor, @commonBorderColor) left
  713. top no-repeat,
  714. linear-gradient(to left, @commonBorderColor, @commonBorderColor) right top
  715. no-repeat,
  716. linear-gradient(to bottom, @commonBorderColor, @commonBorderColor) right
  717. top no-repeat,
  718. linear-gradient(to left, @commonBorderColor, @commonBorderColor) left
  719. bottom no-repeat,
  720. linear-gradient(to bottom, @commonBorderColor, @commonBorderColor) left
  721. bottom no-repeat,
  722. linear-gradient(to left, @commonBorderColor, @commonBorderColor) right
  723. bottom no-repeat,
  724. linear-gradient(to left, @commonBorderColor, @commonBorderColor) right
  725. bottom no-repeat;
  726. background-size: 6px 6px, 6px 6px, 6px 6px, 6px 6px;
  727. }
  728. }
  729. </style>