index.vue 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. <template>
  2. <div class="MaterialStatistics_Contain">
  3. <el-radio-group v-model="currentMenu" style="margin-bottom: 20px;" @input="toModule">
  4. <el-radio-button label="0">用料统计</el-radio-button>
  5. <!--<el-radio-button label="1">进度统计</el-radio-button>-->
  6. <!--<el-radio-button label="2">可视化统计</el-radio-button>-->
  7. <!--<el-radio-button label="3">可视化进度</el-radio-button>-->
  8. </el-radio-group>
  9. <!-- <div class="topContain">-->
  10. <div style="width: 100%;height: 100%;display: flex;">
  11. <el-form :model="queryParams" :rules="searchRules" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="searchForm">
  12. <!--<el-form-item label="行政区" prop="district">-->
  13. <!--<el-select v-model="queryParams.district" placeholder="请选择行政区" clearable-->
  14. <!--@change="queryParams.areaId = undefined;getAreaList(queryParams.district)"-->
  15. <!--@clear="queryParams.areaId = undefined;areaList=[];-->
  16. <!--queryParams.buildingId = undefined;buildingList=[];-->
  17. <!--queryParams.unitId = undefined;unitList=[]">-->
  18. <!--<el-option-->
  19. <!--v-for="dict in dict.type.district"-->
  20. <!--:key="dict.value"-->
  21. <!--:label="dict.label"-->
  22. <!--:value="dict.value"-->
  23. <!--/>-->
  24. <!--</el-select>-->
  25. <!--</el-form-item>-->
  26. <!--<el-form-item label="小区名称" prop="areaId" label-width="80px">-->
  27. <!--<el-select v-model="queryParams.areaId" filterable clearable placeholder="请选择小区">-->
  28. <!--<el-option-->
  29. <!--v-for="item in areaList"-->
  30. <!--:key="item.id"-->
  31. <!--:label="item.name"-->
  32. <!--:value="item.id">-->
  33. <!--</el-option>-->
  34. <!--</el-select>-->
  35. <!--</el-form-item>-->
  36. <el-form-item label="工程名称" prop="enginName">
  37. <el-input v-model="queryParams.enginName" placeholder="请输入工程名称" clearable></el-input>
  38. </el-form-item>
  39. <!--<el-form-item label="工程类型" prop="enginType">-->
  40. <!--<el-select v-model="queryParams.enginType" placeholder="请选择工程类型" clearable-->
  41. <!--@change="enginTypeHasChangeds"-->
  42. <!--@clear="currentEnginTypeChangeOptions1=[];queryParams.enginClassification=undefined;queryParams.enginType=undefined">-->
  43. <!--<el-option-->
  44. <!--v-for="dict in enginTypeOption"-->
  45. <!--:key="dict.value"-->
  46. <!--:label="dict.label"-->
  47. <!--:value="dict.value"-->
  48. <!--/>-->
  49. <!--</el-select>-->
  50. <!--</el-form-item>-->
  51. <!--<el-form-item label="工程分类" prop="enginClassification">-->
  52. <!--<el-select v-model="queryParams.enginClassification" placeholder="请选择工程分类" clearable-->
  53. <!--@change="nodeTypeHasChangeds"-->
  54. <!--@clear="currentEnginTypeChangeOptions1=[];queryParams.enginClassification=undefined;queryParams.enginType=undefined">-->
  55. <!--<el-option-->
  56. <!--v-for="dict in currentEnginTypeChangeOptions1"-->
  57. <!--:key="dict.dictValue"-->
  58. <!--:label="dict.dictLabel"-->
  59. <!--:value="dict.dictValue"-->
  60. <!--/>-->
  61. <!--</el-select>-->
  62. <!--</el-form-item>-->
  63. <!-- <el-form-item label="工程步骤" prop="enginClassification">-->
  64. <!-- <el-select v-model="queryParams.nodeType" placeholder="请选择工程步骤" clearable-->
  65. <!-- @clear="currentEnginTypeChangeOptions2=[];queryParams.enginClassification=undefined;queryParams.enginType=undefined;queryParams.nodeType=undefined">-->
  66. <!-- <el-option-->
  67. <!-- v-for="dict in currentEnginTypeChangeOptions2"-->
  68. <!-- :key="dict.dictValue"-->
  69. <!-- :label="dict.dictLabel"-->
  70. <!-- :value="dict.dictValue"-->
  71. <!-- />-->
  72. <!-- </el-select>-->
  73. <!-- </el-form-item>-->
  74. <el-form-item label="材质" prop="realityQuality" label-width="45px">
  75. <el-select v-model="queryParams.realityQuality" placeholder="请选择材质" filterable clearable
  76. @change="queryParams.realityQuality != undefined;getEnginSpecificationsList(queryParams.realityQuality)"
  77. @clear="queryParams.realityQuality = undefined;"
  78. >
  79. <el-option
  80. v-for="obj in EnginMaterialQualityList"
  81. :key="obj.id"
  82. :label="obj.name"
  83. :value="obj.id"
  84. ></el-option>
  85. </el-select>
  86. </el-form-item>
  87. <!--<el-form-item label="规格" prop="realitySpecifications"label-width="45px">-->
  88. <!--<el-select v-model="queryParams.realitySpecifications" filterable clearable placeholder="请选择规格"-->
  89. <!--&gt;-->
  90. <!--<el-option-->
  91. <!--v-for="item in EnginSpecificationsList"-->
  92. <!--:key="item.id"-->
  93. <!--:label="item.name"-->
  94. <!--:value="item.id">-->
  95. <!--</el-option>-->
  96. <!--</el-select>-->
  97. <!--</el-form-item>-->
  98. <!-- <el-form-item label="工程周期" prop="enginCycle" label-width="80px">-->
  99. <!-- <el-select v-model="queryParams.enginCycle" filterable clearable placeholder="请选择规格"-->
  100. <!-- >-->
  101. <!-- <el-option-->
  102. <!-- v-for="dict in dict.type.engin_cycle"-->
  103. <!-- :key="dict.value"-->
  104. <!-- :label="dict.label"-->
  105. <!-- :value="dict.value"-->
  106. <!-- />-->
  107. <!-- </el-select>-->
  108. <!-- </el-form-item>-->
  109. <el-form-item>
  110. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  111. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  112. <el-button
  113. icon="el-icon-download"
  114. @click="handleExport"
  115. size="mini"
  116. v-hasPermi="['zdsz:visual_house:export']"
  117. >导出</el-button>
  118. </el-form-item>
  119. </el-form>
  120. </div>
  121. <el-table
  122. v-if="false"
  123. class="materialStatisticsTable"
  124. :data="AreaCompletionInformationList"
  125. style="width: 100%">
  126. <el-table-column
  127. prop="areaName"
  128. width="250"
  129. label="小区"
  130. >
  131. </el-table-column>
  132. <el-table-column
  133. prop="scale"
  134. label="规模(户)"
  135. >
  136. </el-table-column>
  137. <el-table-column
  138. prop="notInstall"
  139. label="未安装(户)"
  140. >
  141. </el-table-column>
  142. <el-table-column
  143. prop="notstart"
  144. label="未施工(户)"
  145. >
  146. </el-table-column>
  147. <el-table-column
  148. prop="willDone"
  149. label="施工中(户)">
  150. </el-table-column>
  151. <el-table-column
  152. prop="done"
  153. label="竣工(户)">
  154. </el-table-column>
  155. </el-table>
  156. <div style="width: 100%; height: 100%;">
  157. <el-table
  158. class="materialStatisticsTable"
  159. :data="tableData"
  160. style="width: 100%">
  161. <el-table-column
  162. prop="enginName"
  163. label="工程名称">
  164. </el-table-column>
  165. <!--<el-table-column-->
  166. <!--prop="enginType"-->
  167. <!--label="工程类型">-->
  168. <!--</el-table-column>-->
  169. <el-table-column
  170. prop="enginClassification"
  171. label="工程分类">
  172. </el-table-column>
  173. <el-table-column
  174. prop="actualityPE"
  175. label="PE实际用料">
  176. </el-table-column>
  177. <el-table-column
  178. prop="anticipationPE"
  179. label="PE预计用料">
  180. </el-table-column>
  181. <el-table-column
  182. prop="percentagePE"
  183. label="PE用料占比">
  184. </el-table-column>
  185. <el-table-column
  186. prop="actualityIron"
  187. label="钢材实际用料">
  188. </el-table-column>
  189. <el-table-column
  190. prop="anticipationIron"
  191. label="钢材预计用料">
  192. </el-table-column>
  193. <el-table-column
  194. prop="percentageIron"
  195. label="钢材用料占比">
  196. </el-table-column>
  197. </el-table>
  198. </div>
  199. <div id="zhuzhuangtu" style="width: 100%;height: 75vh"></div>
  200. </div>
  201. </template>
  202. <script>
  203. import {
  204. getAreaList, // 获取当前小区集合
  205. getBuildingList, getHousesList, // 获取当前楼栋集合
  206. getUnitList, // 获取当前单元集合
  207. } from '@/api/zdsz/enginee'
  208. import {
  209. getAreaCompletionInformationList,
  210. getEnginMaterialQualityList, getEnginSpecificationsList,
  211. materialStatistics // 获取当前单元集合
  212. } from '@/api/zdsz/countInfrastructure'
  213. import {getUnits} from "@/api/zdsz/unit";
  214. import {getDicts} from "@/api/system/dict/data";
  215. import * as echarts from "echarts";
  216. export default {
  217. name:'MaterialStatistics',
  218. dicts:['district','engin_cycle'],
  219. data(){
  220. return {
  221. currentEnginTypeChangeOptions1: [],
  222. currentEnginTypeChangeOptions2: [],
  223. buildingList: [],
  224. areaList:[],
  225. unitList: [],
  226. showSearch: true,
  227. currentDate:null,
  228. currentMenu:0, // 0:用料管理 1:进度统计 2:可视化进度
  229. typeOptions:[
  230. {
  231. value: '0',
  232. label: '市政工程'
  233. },
  234. {
  235. value: '1',
  236. label: '工业工程'
  237. },
  238. {
  239. value: '2',
  240. label: '民用工程'
  241. },
  242. {
  243. value: '3',
  244. label: '危险作业'
  245. },
  246. {
  247. value: '4',
  248. label: '顶管工程'
  249. },
  250. {
  251. value: '5',
  252. label: '基建工程'
  253. }
  254. ],
  255. communityOptions:[
  256. {
  257. value: '0',
  258. label: '领秀世家'
  259. },
  260. {
  261. value: '1',
  262. label: '上东府里'
  263. },
  264. {
  265. value: '2',
  266. label: '清华园'
  267. },
  268. {
  269. value: '3',
  270. label: '万科蓝山'
  271. },
  272. {
  273. value: '4',
  274. label: '龙腾香格里'
  275. },
  276. ],
  277. buildingOptions:[], // 楼栋集合
  278. unitOptions:[], // 单元集合
  279. currentType:null,
  280. currentDistrict:null, // 当前行政区
  281. currentCommunity:null, // 当前小区
  282. currentBuilding:null, // 当前楼宇
  283. currentUnit:null,// 当前单元
  284. AreaCompletionInformationList:[],
  285. queryParams:{
  286. pageNum:1,
  287. pageSize:10,
  288. district:null,
  289. areaId:undefined,
  290. realityQuality:undefined,
  291. realitySpecifications:undefined,
  292. enginClassification:undefined,
  293. enginType:undefined,
  294. nodeType:undefined,
  295. enginCycle:0
  296. },
  297. EnginMaterialQualityList:[],
  298. EnginSpecificationsList:[],
  299. tableData: [],
  300. searchRules:{
  301. district: [
  302. {required: true, message: "行政区不能为空", trigger: ['change']}
  303. ],
  304. areaId: [
  305. {required: true, message: "小区不能为空", trigger: ['change']}
  306. ],
  307. },
  308. enginTypeOption: [
  309. {
  310. value: 'old_renovation',
  311. label: '旧改'
  312. }, {
  313. value: 'new_built',
  314. label: '新建'
  315. },
  316. ]
  317. }
  318. },
  319. mounted(){
  320. console.log(this.dict)
  321. this.getEnginMaterialQualityList()
  322. //this.getEnginSpecificationsList()
  323. },
  324. methods:{
  325. enginTypeHasChangeds(enginType = null) {
  326. if (this.queryParams.enginType == undefined || this.queryParams.enginType == null || this.queryParams.enginType == '')
  327. return
  328. this.currentCheckList = []
  329. this.queryParams.enginClassification = ''
  330. this.currentEnginTypeChangeOptions1 = []
  331. getDicts(enginType || this.queryParams1.enginType).then(res => {
  332. this.currentEnginTypeChangeOptions1 = res.data
  333. })
  334. },
  335. nodeTypeHasChangeds(enginType = null,enginClassification = null) {
  336. if ((this.queryParams.enginType == undefined || this.queryParams.enginType == null || this.queryParams.enginType == '')&&(this.queryParams.enginClassification == undefined || this.queryParams.enginClassification == null || this.queryParams.enginClassification == ''))
  337. return
  338. this.currentCheckList = []
  339. this.queryParams.nodeType = ''
  340. this.currentEnginTypeChangeOptions2 = []
  341. getDicts(enginType&&enginClassification || this.queryParams.enginType+'_'+this.queryParams.enginClassification).then(res => {
  342. this.currentEnginTypeChangeOptions2 = res.data
  343. })
  344. },
  345. enginTypeHasChanged(enginType = null) {
  346. this.currentCheckList = []
  347. this.queryParams.enginClassification = ''
  348. this.currentEnginTypeChangeOptions = []
  349. getDicts(enginType || this.queryParams.enginType).then(res => {
  350. this.currentEnginTypeChangeOptions = res.data
  351. })
  352. },
  353. getLongestCollectionLength(jsonObj) {
  354. let longestLength = 0;
  355. for (let key in jsonObj) {
  356. if (Array.isArray(jsonObj[key])) {
  357. longestLength = Math.max(longestLength, jsonObj[key].length);
  358. }
  359. }
  360. return longestLength;
  361. },
  362. getList(){
  363. this.queryParams.enginSort = this.queryParams.enginClassification; // 工程分类
  364. this.queryParams.materialStatistics = this.queryParams.realityQuality; // 工程材质
  365. console.log('this.queryParams=',this.queryParams)
  366. materialStatistics(this.queryParams).then(res=>{
  367. this.tableData=res.data;
  368. let seriesData = [];
  369. let names = [];
  370. let dataG = [];
  371. let dataGP = [];
  372. let dataPE = [];
  373. let dataPEP = [];
  374. for (let item in res.data) {
  375. names.push(res.data[item].enginName)
  376. dataG.push(res.data[item].actualityIron)
  377. dataGP.push(res.data[item].percentageIron.replace("%",""))
  378. dataPE.push(res.data[item].actualityPE)
  379. dataPEP.push(res.data[item].percentagePE.replace("%",""))
  380. }
  381. const colors = ['#5470C6', '#91CC75', '#EE6666'];
  382. let option = {
  383. color: colors,
  384. tooltip: {
  385. trigger: 'axis',
  386. axisPointer: {
  387. type: 'cross'
  388. }
  389. },
  390. grid: {
  391. left:'10%',
  392. right: '10%'
  393. },
  394. toolbox: {
  395. feature: {
  396. saveAsImage: { show: true }
  397. }
  398. },
  399. legend: {
  400. data: ['Evaporation', 'Precipitation', 'Temperature']
  401. },
  402. xAxis: [
  403. {
  404. type: 'category',
  405. axisTick: {
  406. alignWithLabel: true
  407. },
  408. // prettier-ignore
  409. // data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  410. data: names
  411. }
  412. ],
  413. yAxis: [
  414. {
  415. type: 'value',
  416. name: '数量',
  417. position: 'right',
  418. alignTicks: true,
  419. axisLine: {
  420. show: true,
  421. lineStyle: {
  422. color: colors[0]
  423. }
  424. },
  425. axisLabel: {
  426. formatter: '{value}'
  427. }
  428. },
  429. {
  430. type: 'value',
  431. name: '占比',
  432. position: 'left',
  433. alignTicks: true,
  434. axisLine: {
  435. show: true,
  436. lineStyle: {
  437. color: colors[2]
  438. }
  439. },
  440. axisLabel: {
  441. formatter: '{value} %'
  442. }
  443. }
  444. ],
  445. series: [
  446. {
  447. name: '钢材实际用料',
  448. type: 'bar',
  449. // data: [
  450. // 2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3
  451. // ]
  452. data: dataG
  453. },
  454. {
  455. name: '钢材用料占比',
  456. type: 'line',
  457. yAxisIndex: 1,
  458. // data: [
  459. // 20,10,50,60
  460. // ]
  461. data: dataGP,
  462. },
  463. {
  464. name: 'PE实际用料',
  465. type: 'bar',
  466. data: dataPE
  467. },
  468. {
  469. name: 'PE用料占比',
  470. type: 'line',
  471. yAxisIndex: 1,
  472. data: dataPEP }
  473. ]
  474. };
  475. var myChart = echarts.init(document.getElementById('zhuzhuangtu'));
  476. myChart.clear()
  477. myChart.setOption(option);
  478. })
  479. },
  480. getAreaCompletionInformationList()
  481. {
  482. getAreaCompletionInformationList(this.queryParams).then(res=>{
  483. //this.AreaCompletionInformationList=res.total
  484. this.AreaCompletionInformationList=res.rows
  485. })
  486. },
  487. getEnginMaterialQualityList()
  488. {
  489. getEnginMaterialQualityList().then(res=>{
  490. this.EnginMaterialQualityList=res.data
  491. this.getList();
  492. })
  493. },
  494. getEnginSpecificationsList(materId)
  495. {
  496. getEnginSpecificationsList(materId).then(res=>{
  497. this.EnginSpecificationsList=res.data
  498. })
  499. },
  500. /** 搜索按钮操作 */
  501. handleQuery() {
  502. this.$refs.queryForm.validate(valid => {
  503. if(valid){
  504. // 校验 pass
  505. this.getList();
  506. this.getAreaCompletionInformationList()
  507. } else {
  508. this.$message.error('请填写必填项!')
  509. }
  510. })
  511. // this.queryParams = 1;
  512. },
  513. /** 重置按钮操作 */
  514. resetQuery() {
  515. this.resetForm("queryForm");
  516. this.queryParams = {
  517. district:null,
  518. areaId:undefined,
  519. realityQuality:undefined,
  520. realitySpecifications:undefined,
  521. enginCycle:0
  522. }
  523. this.AreaCompletionInformationList=[]
  524. this.tableData=[]
  525. //this.handleQuery();
  526. this.getList();
  527. },
  528. getAreaList(district) {
  529. if (district === undefined || district == null || district === '')
  530. return
  531. getAreaList({district: district}).then(res => this.areaList = res.data)
  532. },
  533. getBuildingList1(areaId) {
  534. if (areaId === undefined || areaId == null || areaId === '')
  535. return
  536. getBuildingList({areaId: areaId}).then(res => this.buildingList = res.data)
  537. },
  538. getUnitList1(buildingId) {
  539. if (buildingId === undefined || buildingId == null || buildingId === '')
  540. return
  541. getUnits(buildingId).then(res => this.unitList = res.data)
  542. },
  543. currentEnginTypeChange(val){
  544. const enginDict = val[1]
  545. const enginType = val[0]
  546. this.queryParams.enginType = enginType
  547. this.enginClassification=enginDict
  548. this.enginClassificationOption = this.dict.type[enginDict]
  549. console.log(this.value)
  550. },
  551. // 当前所选行政区发生改变 查询当前小区集合
  552. districtHasChanged(district){
  553. this.queryParams.areaId = null
  554. this.queryParams.buildingId = null
  555. this.queryParams.unitId = null
  556. getAreaList({district}).then(res => {
  557. this.communityOptions = res.data
  558. })
  559. },
  560. // 当前所选小区发生改变 查询当前楼栋集合
  561. communityHasChanged(areaId){
  562. this.queryParams.buildingId = null
  563. this.queryParams.unitId = null
  564. getBuildingList({areaId}).then(res => {
  565. this.buildingOptions = res.data
  566. })
  567. },
  568. buildingHasChanged(buildingId){
  569. console.log(buildingId)
  570. this.queryParams.unitId = null
  571. getUnitList({buildingId}).then(res => {
  572. this.unitOptions = res.data
  573. })
  574. },
  575. unitHasChanged(unitId){
  576. getHousesList({unitId}).then(res => {
  577. console.log(res)
  578. this.houseOptions = res.data
  579. })
  580. },
  581. // // 当前所选行政区发生改变 查询当前小区集合
  582. // districtHasChanged(district){
  583. // this.currentCommunity = null
  584. // getAreaList({district}).then(res => {
  585. // this.communityOptions = res.data
  586. // })
  587. // },
  588. // // 当前所选小区发生改变 查询当前楼栋集合
  589. // communityHasChanged(areaId){
  590. // this.currentBuilding = null
  591. // getBuildingList({areaId}).then(res => {
  592. // this.buildingOptions = res.data
  593. // })
  594. // },
  595. // buildingHasChanged(buildingId){
  596. // this.currentUnit = null
  597. // getUnitList({buildingId}).then(res => {
  598. // console.log(res)
  599. // this.unitOptions = res.data
  600. // })
  601. // },
  602. /** 导出按钮操作 */
  603. handleExport() {
  604. this.download('zdsz/materialStatistics/export', {
  605. ...this.queryParams
  606. }, `用料统计${new Date().getTime()}.xlsx`)
  607. },
  608. tableRowClassName(){
  609. // return "background:#199ED8;border: 2px solid #000066"
  610. },
  611. toModule(){
  612. console.log(this.$router)
  613. const currentPage = this.currentMenu == 0 ? 'material_statistics' : this.currentMenu == 1 ? 'progres_statistics' :this.currentMenu == 2 ? 'echarts_statistics': 'progres_visual'
  614. this.$router.push({
  615. path:`/${currentPage}`
  616. })
  617. }
  618. }
  619. }
  620. </script>
  621. <style lang="scss" scoped>
  622. ::v-deep .searchForm{
  623. .el-input__inner{
  624. width: 190px;
  625. }
  626. }
  627. .tags-view-container{
  628. display: none;
  629. }
  630. .MaterialStatistics_Contain{
  631. width: 100%;
  632. height: 100%;
  633. padding: 1%;
  634. .topContain{
  635. display: flex;
  636. justify-content: space-between;
  637. width: 100%;
  638. height: 40px;
  639. ::v-deep .projectSelect{
  640. width: 16%;
  641. .el-input__inner{
  642. // font-size: 15px;
  643. // height: 40px ;
  644. // background-color: #1890FF;
  645. background: linear-gradient(to right, #2197F2, #0BB0DE);
  646. color: #fff;
  647. }
  648. }
  649. ::v-deep .districtSelect{
  650. width: 200px;
  651. }
  652. ::v-deep .communitySelect{
  653. margin-left: 2%;
  654. width: 200px;
  655. }
  656. ::v-deep .projectSelect:not(:nth-child(1)){
  657. margin-left: 1%;
  658. }
  659. ::v-deep .projectSelect:nth-child(3){
  660. width: 10%;
  661. }
  662. ::v-deep .projectSelect:nth-child(4){
  663. width: 10%;
  664. }
  665. .projectDropDown{
  666. background-color: #1890FF;
  667. .el-select-dropdown__item{
  668. background-color: #1890FF;
  669. color: #fff;
  670. }
  671. ::v-deep .el-select-dropdown__list {
  672. padding-top: 0 !important;
  673. padding-bottom: 0;
  674. }
  675. }
  676. .projectDropDown >ul{
  677. padding-top: 0 ;
  678. padding-bottom: 0;
  679. }
  680. }
  681. .materialStatisticsTable{
  682. margin-top: 1%;
  683. // border: 2px solid #000066 !important;
  684. }
  685. .materialStatisticsTable::before{
  686. background-color:#000066 ;
  687. }
  688. .materialStatisticsTable::after{
  689. background-color:#000066 ;
  690. }
  691. }
  692. </style>
  693. <style lang="scss" scoped>
  694. .customTable{
  695. .el-table__header-wrapper th{
  696. background-color: #199ED8;
  697. }
  698. .el-table--border th.el-table__cell{
  699. // border: 2px solid #000066 !important;
  700. }
  701. .el-table__empty-block{
  702. background-color: #199ED8;
  703. }
  704. .el-table__empty-text{
  705. color: #000066;
  706. }
  707. .el-table__cell{
  708. background-color: #199ED8 ;
  709. // border: 2px solid #000066 !important;
  710. }
  711. .el-table__cell >div{
  712. text-align: center;
  713. }
  714. .el-button{
  715. background-color: #169BD5;
  716. color: #fff;
  717. }
  718. }
  719. </style>