Merge remote-tracking branch 'origin/master'
| | |
| | | v-model="value" |
| | | :type="dateType" |
| | | size="mini" |
| | | :clearable="false" |
| | | @change="getRataLists()" |
| | | :value-format="dateType === 'month' ? 'yyyy-MM' : 'yyyy'" |
| | | style="margin-left: 20px; width: 130px;" |
| | | placeholder="请选择"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div id="echart2" ref="deptRef" v-if="listZB.length > 0"></div> |
| | | <div class="echart2" ref="deptRef" v-if="listZB.length > 0"></div> |
| | | <div style="width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;" v-else> |
| | | <img style="width: 200px;" src="@/assets/images/default_homeimg.png" alt=""> |
| | | </div> |
| | |
| | | <el-date-picker |
| | | v-model="date1" |
| | | :type="radio" |
| | | :clearable="false" |
| | | size="mini" |
| | | @change="getReportLists()" |
| | | :value-format="radio === 'month' ? 'yyyy-MM' : 'yyyy'" |
| | |
| | | </div> |
| | | <div class="table_box"> |
| | | <div class="list_content" v-for="(item, index) in list" :key="index"> |
| | | <div class="list_head_item">储运科</div> |
| | | <div class="list_head_item">联合工房</div> |
| | | <div class="list_head_item">232</div> |
| | | <div class="list_head_item">储运科</div> |
| | | <div class="list_head_item">联合工房</div> |
| | | <div class="list_head_item">232</div> |
| | | <div class="list_head_item">储运科</div> |
| | | <div class="list_head_item">联合工房</div> |
| | | <div class="list_head_item">232</div> |
| | | <div class="list_head_item">232</div> |
| | | <div class="list_head_item" v-for="(child, i) in item" :key="i">{{child}}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <span>本年人员累计入园统计</span> |
| | | </div> |
| | | <div class="list_head"> |
| | | <div class="list_head_item">车辆分类</div> |
| | | <div class="list_head_item">入局次数</div> |
| | | <div class="list_head_item">人员分类</div> |
| | | <div class="list_head_item">入园次数</div> |
| | | </div> |
| | | <div class="table_box"> |
| | | <div class="list_content" v-for="(item, index) in info.yearSortList" :key="index"> |
| | |
| | | daochu() { |
| | | reportExportExcel({ dateStr: this.date1, isGroupBy: this.isGroupBy, type: 1 }).then(res => { |
| | | this.download(res) |
| | | console.log(res.data) |
| | | }) |
| | | }, |
| | | changeBB() { |
| | |
| | | getReportLists() { |
| | | getReportList({ dateStr: this.date1, isGroupBy: this.isGroupBy, type: 1 }) |
| | | .then(res => { |
| | | console.log(res) |
| | | if (res.length === 0) return |
| | | |
| | | this.column = res.data.map(item => item[0]) |
| | | |
| | | const keys = res.data.map(row => row[0]); // 获取键名 |
| | | const values = res.data.map(row => row.slice(1, row.length)); // 获取值 |
| | | |
| | | this.list = values[0].map((_, index) => { |
| | | return keys.reduce((obj, key, i) => { |
| | | obj[key] = values[i][index]; |
| | | return obj; |
| | | }, {}); |
| | | }); |
| | | this.column = res[0] |
| | | this.list = res.slice(1, res.length); |
| | | }) |
| | | }, |
| | | changeDateType() { |
| | |
| | | getRataLists() { |
| | | getRataList({ dateStr: this.value, isGroupBy: this.isGroupBy, type: 1 }) |
| | | .then(res => { |
| | | console.log(res) |
| | | this.listZB = res |
| | | this.$nextTick(() => { |
| | | this.initDept() |
| | |
| | | top: '20%', |
| | | containLabel: true |
| | | }, |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: names |
| | |
| | | initDept() { |
| | | if (!this.listZB) return |
| | | |
| | | const myChart = echarts.init(document.querySelector('#echart2')) |
| | | const myChart = echarts.init(document.querySelector('.echart2')) |
| | | |
| | | let data = this.listZB.map(item => { |
| | | return { |
| | |
| | | }) |
| | | |
| | | let option = { |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | legend: { |
| | | show: false, |
| | | orient: 'vertical', |
| | | left: 'left' |
| | | }, |
| | | series : [ |
| | | { |
| | | name: '访问来源', |
| | |
| | | height: calc(100% - 20px); |
| | | padding-left: 20px; |
| | | |
| | | #echart2 { |
| | | .echart2 { |
| | | width: 100%; |
| | | height: calc(100% - 60px); |
| | | } |
| | |
| | | v-model="value" |
| | | :type="dateType" |
| | | size="mini" |
| | | :clearable="false" |
| | | @change="getRataLists()" |
| | | :value-format="dateType === 'month' ? 'yyyy-MM' : 'yyyy'" |
| | | style="margin-left: 20px; width: 130px;" |
| | | placeholder="请选择"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div id="echart2" ref="deptRef" v-if="listZB.length > 0"></div> |
| | | <div class="echart_2" ref="deptRef" v-if="listZB.length > 0"></div> |
| | | <div style="width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;" v-else> |
| | | <img style="width: 200px;" src="@/assets/images/default_homeimg.png" alt=""> |
| | | </div> |
| | |
| | | <el-radio-button label="year">年</el-radio-button> |
| | | </el-radio-group> |
| | | <el-date-picker |
| | | v-model="date1" |
| | | :type="radio" |
| | | size="mini" |
| | | @change="getReportLists()" |
| | | :value-format="radio === 'month' ? 'yyyy-MM' : 'yyyy'" |
| | | style="margin-left: 20px; width: 130px;" |
| | | placeholder="请选择"> |
| | | v-model="date1" |
| | | :type="radio" |
| | | size="mini" |
| | | :clearable="false" |
| | | @change="getReportLists()" |
| | | :value-format="radio === 'month' ? 'yyyy-MM' : 'yyyy'" |
| | | style="margin-left: 20px; width: 130px;" |
| | | placeholder="请选择"> |
| | | </el-date-picker> |
| | | </div> |
| | | <el-button type="primary" size="mini" style="margin-left: 20px;" @click="daochu">导出</el-button> |
| | |
| | | </div> |
| | | <div class="table_box"> |
| | | <div class="list_content" v-for="(item, index) in list" :key="index"> |
| | | <div class="list_head_item">储运科</div> |
| | | <div class="list_head_item">联合工房</div> |
| | | <div class="list_head_item">232</div> |
| | | <div class="list_head_item">储运科</div> |
| | | <div class="list_head_item">联合工房</div> |
| | | <div class="list_head_item">232</div> |
| | | <div class="list_head_item">储运科</div> |
| | | <div class="list_head_item">联合工房</div> |
| | | <div class="list_head_item">232</div> |
| | | <div class="list_head_item">232</div> |
| | | <div class="list_head_item" v-for="(child, i) in item" :key="i">{{child}}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="list_head"> |
| | | <div class="list_head_item">车辆分类</div> |
| | | <div class="list_head_item">入局次数</div> |
| | | <div class="list_head_item">入园次数</div> |
| | | </div> |
| | | <div class="table_box"> |
| | | <div class="list_content" v-for="(item, index) in info.yearSortList" :key="index"> |
| | |
| | | getReportLists() { |
| | | getReportList({ dateStr: this.date1, isGroupBy: this.isGroupBy, type: 0 }) |
| | | .then(res => { |
| | | if (res.length === 0) return |
| | | |
| | | this.column = res[0] |
| | | this.list = res.slice(1, res.length); |
| | | |
| | | console.log(res) |
| | | |
| | | this.column = res.data.map(item => item[0]) |
| | | |
| | | const keys = res.data.map(row => row[0]); // 获取键名 |
| | | const values = res.data.map(row => row.slice(1, row.length)); // 获取值 |
| | | |
| | | this.list = values[0].map((_, index) => { |
| | | return keys.reduce((obj, key, i) => { |
| | | obj[key] = values[i][index]; |
| | | return obj; |
| | | }, {}); |
| | | }); |
| | | }) |
| | | }, |
| | | changeDateType() { |
| | |
| | | getRataLists() { |
| | | getRataList({ dateStr: this.value, isGroupBy: this.isGroupBy, type: 0 }) |
| | | .then(res => { |
| | | console.log(res) |
| | | this.listZB = res |
| | | this.$nextTick(() => { |
| | | this.initDept() |
| | |
| | | let datas = this.info.cumulativeDataList.map(item => item.total) |
| | | |
| | | let option = { |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | legend: { |
| | | show: false, |
| | | orient: 'vertical', |
| | | left: 'left' |
| | | }, |
| | | grid: { |
| | | left: '5%', |
| | | right: '10%', |
| | |
| | | }, |
| | | // 车辆分类统计 |
| | | initDept() { |
| | | if (!this.listZB) return |
| | | if (this.listZB.length === 0) return |
| | | |
| | | const myChart = echarts.init(document.querySelector('#echart2')) |
| | | const myChart = echarts.init(document.querySelector('.echart_2')) |
| | | |
| | | let data = this.listZB.map(item => { |
| | | return { |
| | |
| | | }) |
| | | |
| | | let option = { |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | legend: { |
| | | show: false, |
| | | orient: 'vertical', |
| | | left: 'left' |
| | | }, |
| | | series : [ |
| | | { |
| | | name: '访问来源', |
| | |
| | | height: calc(100% - 20px); |
| | | padding-left: 20px; |
| | | |
| | | #echart2 { |
| | | .echart_2 { |
| | | width: 100%; |
| | | height: calc(100% - 60px); |
| | | } |
| | |
| | | rataList.add(generalDataVO); |
| | | } |
| | | }else{ |
| | | List<String> categoryNameList = yearList.stream().filter(i-> StringUtils.isNotBlank(i.getCategoryParentName())).map(i->i.getCategoryParentName()).collect(Collectors.toList()); |
| | | List<String> categoryNameList = yearList.stream().filter(i-> StringUtils.isNotBlank(i.getCategoryParentName())) |
| | | .map(i->i.getCategoryParentName()).collect(Collectors.toList()); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categoryNameList)){ |
| | | Set<String> setList = new HashSet<>(categoryNameList); |
| | | for (String categoryName:setList) { |
| | |
| | | if(Constants.equalsInteger(DateUtil.getNowYearNum(),Integer.valueOf(inParkDataDTO.getDateStr()))){ |
| | | maxMonth = DateUtil.getNowMonthNum(); |
| | | } |
| | | for (int i = maxMonth; i >=0 ; i--) { |
| | | for (int i = maxMonth; i >0 ; i--) { |
| | | dateList.add(DateUtil.getNowYearNum()+"-"+ StringUtils.leftPad(i+"",2,"0")); |
| | | } |
| | | }else { |
| | |
| | | lastDay = today; |
| | | } |
| | | } |
| | | for (int i = lastDay; i >= 0 ; i--) { |
| | | for (int i = lastDay; i > 0 ; i--) { |
| | | dateList.add(year + "-" + StringUtils.leftPad(month.toString(),2,"0") + "-" + StringUtils.leftPad(Integer.toString(i),2,"0")); |
| | | } |
| | | } |
| | |
| | | } |
| | | totalString.add("合计"); |
| | | resultList.add(totalString); |
| | | Integer total = 0; |
| | | for (String str:dataList) { |
| | | Integer total = 0; |
| | | List<String> dataChildList = new ArrayList<>(); |
| | | dataChildList.add(str); |
| | | for (String categoryName:setList) { |
| | | List<String> dataChildList = new ArrayList<>(); |
| | | dataChildList.add(str); |
| | | if(Constants.equalsInteger(dateStr.length(),4)){ |
| | | Integer childNum = allList.stream().filter(i->categoryName.equals(i.getCategoryName()) |
| | | && DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(str)).collect(Collectors.toList()).size(); |
| | |
| | | ); |
| | | total = total + childNum; |
| | | } |
| | | dataChildList.add(Integer.toString(total)); |
| | | resultList.add(dataChildList); |
| | | } |
| | | dataChildList.add(Integer.toString(total)); |
| | | resultList.add(dataChildList); |
| | | } |
| | | }else{ |
| | | for (int j = 0; j < userTypeList.length; j++) { |
| | |
| | | person -> person, |
| | | (existing, replacement) -> existing |
| | | )); |
| | | |
| | | List<InoutRecord> uniqueList = new ArrayList<>(uniqueByMemberPhone.values()); |
| | | return uniqueList; |
| | | } |
| | |
| | | person -> person, |
| | | (existing, replacement) -> existing |
| | | )); |
| | | |
| | | List<InoutRecord> uniqueList = new ArrayList<>(uniqueByCarCode.values()); |
| | | return uniqueList; |
| | | } |
| | |
| | | |
| | | visitVO.setName(days); |
| | | InterestedListVO carVO = new InterestedListVO(); |
| | | carVO.setNum(Constants.ZERO); |
| | | carVO.setName(days); |
| | | |
| | | if(CollectionUtils.isNotEmpty(inoutRecordList)){ |