| | |
| | | <el-option v-for="t in g.types" :key="t.value" :label="t.label" :value="t.value"></el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | <template v-if="hasPeriodType"> |
| | | <span class="toolbar-label">口径</span> |
| | | <el-select v-model="periodType" size="small" style="width:110px" @change="doQuery"> |
| | | <el-option label="全部" value=""></el-option> |
| | | <el-option label="当月" value="MONTH"></el-option> |
| | | <el-option label="累计" value="CUMULATIVE"></el-option> |
| | | </el-select> |
| | | </template> |
| | | <el-input v-model="keyword" placeholder="企业/市州名称" clearable style="width:180px" @keyup.enter.native="doQuery"></el-input> |
| | | <el-button type="primary" size="small" @click="doQuery">查询</el-button> |
| | | <el-button size="small" icon="el-icon-full-screen" @click="toggleFullscreen">全屏查看</el-button> |
| | |
| | | activeModule: 'freight', |
| | | type: 'h2032', |
| | | period: '', |
| | | periodType: '', |
| | | keyword: '', |
| | | page: 1, |
| | | size: 50, |
| | |
| | | } |
| | | }, |
| | | computed: { |
| | | // 规上规下拆分等表有"口径"列(当月/累计),把它做成上方筛选而不是表格列 |
| | | hasPeriodType() { |
| | | return (this.columns || []).some(c => c.prop === 'periodType') |
| | | }, |
| | | currentTypeLabel() { |
| | | for (const g of this.modules) { |
| | | const t = g.types.find(x => x.value === this.type) |
| | |
| | | // 数据查看统一列过滤:内部标识列不展示;报表期(由筛选条件体现)与所属地区(区划代码,已被市州列替代)不展示 |
| | | keepColumn(c) { |
| | | if (!c) return false |
| | | const hiddenProps = ['enterpriseCode', 'unifiedCreditCode', 'reportUnit', 'projectId', 'regionCode', 'reportPeriod'] |
| | | const hiddenLabels = ['企业代码', '统一社会信用代码', '填报单位', '项目ID', '所属地区', '报表期'] |
| | | // 口径列上移为筛选;拆分表货运量三列源文件未提供(全空)故不展示 |
| | | const hiddenProps = ['enterpriseCode', 'unifiedCreditCode', 'reportUnit', 'projectId', 'regionCode', 'reportPeriod', |
| | | 'periodType', 'aboveScaleFreight', 'belowScaleFreight', 'totalFreight'] |
| | | const hiddenLabels = ['企业代码', '统一社会信用代码', '填报单位', '项目ID', '所属地区', '报表期', '口径'] |
| | | if (hiddenProps.indexOf(c.prop) >= 0 || hiddenLabels.indexOf(c.label) >= 0) return false |
| | | return true |
| | | }, |
| | |
| | | onTypeSelect() { |
| | | const g = this.modules.find(x => x.types.some(t => t.value === this.type)) |
| | | if (g) this.activeModule = g.key |
| | | this.periodType = '' |
| | | this.doQuery() |
| | | }, |
| | | doQuery() { |
| | |
| | | type: this.type, |
| | | period: this.period || undefined, |
| | | keyword: this.keyword || undefined, |
| | | periodType: this.periodType || undefined, |
| | | page: this.page, |
| | | size: this.size |
| | | } |
| | | }).then(res => { |
| | | const d = res.data || {} |
| | | this.records = d.records || [] |
| | | this.columns = (d.columns || []).filter(c => ['enterpriseCode', 'unifiedCreditCode', 'reportUnit'].indexOf(c.prop) < 0 && ['企业代码', '统一社会信用代码', '填报单位'].indexOf(c.label) < 0) |
| | | this.columns = d.columns || [] |
| | | this.total = d.total || 0 |
| | | if (this.page > 1 && this.records.length === 0) { |
| | | this.page = 1 |
| | |
| | | type: this.type, |
| | | period: this.period || undefined, |
| | | keyword: this.keyword || undefined, |
| | | periodType: this.periodType || undefined, |
| | | page: nextPage, |
| | | size: this.size |
| | | } |
| | |
| | | this.records = this.records.concat(addRows) |
| | | this.page = nextPage |
| | | if (d.total != null) this.total = d.total |
| | | if (d.columns && d.columns.length) this.columns = d.columns.filter(c => ['enterpriseCode', 'unifiedCreditCode', 'reportUnit'].indexOf(c.prop) < 0 && ['企业代码', '统一社会信用代码', '填报单位'].indexOf(c.label) < 0) |
| | | if (d.columns && d.columns.length) this.columns = d.columns |
| | | }).catch(e => { |
| | | if (e && e._toast) return |
| | | this.$message.error('加载更多失败') |