|
@@ -29,187 +29,51 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
|
|
|
|
-
|
|
|
|
- <!-- <el-row :gutter="10" class="mb8">-->
|
|
|
|
- <!-- <el-col :span="1.5">-->
|
|
|
|
- <!-- <el-button-->
|
|
|
|
- <!-- type="primary"-->
|
|
|
|
- <!-- plain-->
|
|
|
|
- <!-- icon="el-icon-download"-->
|
|
|
|
- <!-- size="mini"-->
|
|
|
|
- <!-- @click="infoHandleExport(list)"-->
|
|
|
|
- <!-- v-hasPermi="['business:bttj:export']"-->
|
|
|
|
- <!-- >导出-->
|
|
|
|
- <!-- </el-button>-->
|
|
|
|
- <!-- </el-col>-->
|
|
|
|
- <!-- <el-col :span="1.5">-->
|
|
|
|
- <!-- <el-button type="primary" plain icon="el-icon-download" size="mini"-->
|
|
|
|
- <!-- @click="infoHandleExport(list)" v-hasPermi="['business:bttj:mx:export']">-->
|
|
|
|
- <!-- 明细导出-->
|
|
|
|
- <!-- </el-button>-->
|
|
|
|
- <!-- </el-col>-->
|
|
|
|
- <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
|
|
|
|
- <!-- </el-row>-->
|
|
|
|
|
|
+ <el-row :gutter="10" class="mb8">
|
|
|
|
+ <el-col :span="1.5">
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary" plain icon="el-icon-download" size="mini"
|
|
|
|
+ @click="handleExport(list1)" v-hasPermi="['business:bttj:export']"
|
|
|
|
+ >导出
|
|
|
|
+ </el-button>
|
|
|
|
+ </el-col>
|
|
|
|
+ <!--<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
|
|
|
|
+ </el-row>
|
|
|
|
|
|
|
|
|
|
<el-table v-loading="loadingTable" :data="list1" style="width: 100%" stripe show-summary max-height="700"
|
|
<el-table v-loading="loadingTable" :data="list1" style="width: 100%" stripe show-summary max-height="700"
|
|
:summary-method="summary">
|
|
:summary-method="summary">
|
|
- <el-table-column
|
|
|
|
- prop="xh"
|
|
|
|
- label="序号"
|
|
|
|
- align="center"
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="mc"
|
|
|
|
- :label="name"
|
|
|
|
- align="center"
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- <el-table-column
|
|
|
|
- label="年龄段"
|
|
|
|
- align="center"
|
|
|
|
- >
|
|
|
|
- <el-table-column
|
|
|
|
- prop="zero_num"
|
|
|
|
- label="60减"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="one_num"
|
|
|
|
- label="60-69"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="two_num"
|
|
|
|
- label="70-79"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="three_num"
|
|
|
|
- label="80-89"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="four_num"
|
|
|
|
- label="90加"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
|
|
+ <el-table-column prop="xh" label="序号" align="center"></el-table-column>
|
|
|
|
+ <el-table-column prop="mc" label="所属区划" align="center"></el-table-column>
|
|
|
|
+ <el-table-column label="年龄段" align="center">
|
|
|
|
+ <el-table-column prop="zero_num" label="60减" align="center" sortable></el-table-column>
|
|
|
|
+ <el-table-column prop="one_num" label="60-69" align="center" sortable></el-table-column>
|
|
|
|
+ <el-table-column prop="two_num" label="70-79" align="center" sortable></el-table-column>
|
|
|
|
+ <el-table-column prop="three_num" label="80-89" align="center" sortable></el-table-column>
|
|
|
|
+ <el-table-column prop="four_num" label="90加" align="center" sortable></el-table-column>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
-
|
|
|
|
- <el-table-column
|
|
|
|
- label="性别"
|
|
|
|
- align="center"
|
|
|
|
- >
|
|
|
|
-
|
|
|
|
- <el-table-column
|
|
|
|
- prop="nan_num"
|
|
|
|
- label="男"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="nv_num"
|
|
|
|
- label="女"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
|
|
+ <el-table-column label="性别" align="center">
|
|
|
|
+ <el-table-column prop="nan_num" label="男" align="center" sortable></el-table-column>
|
|
|
|
+ <el-table-column prop="nv_num" label="女" align="center" sortable></el-table-column>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
- <el-table-column
|
|
|
|
- label="特困"
|
|
|
|
- align="center"
|
|
|
|
- >
|
|
|
|
-
|
|
|
|
- <el-table-column
|
|
|
|
- prop="tk_num"
|
|
|
|
- label="是"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="ftk_num"
|
|
|
|
- label="否"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
|
|
+ <el-table-column label="特困" align="center">
|
|
|
|
+ <el-table-column prop="tk_num" label="是" align="center" sortable></el-table-column>
|
|
|
|
+ <el-table-column prop="ftk_num" label="否" align="center" sortable></el-table-column>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
- <el-table-column
|
|
|
|
- label="低保"
|
|
|
|
- align="center"
|
|
|
|
- >
|
|
|
|
-
|
|
|
|
- <el-table-column
|
|
|
|
- prop="db_num"
|
|
|
|
- label="是"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="fdb_num"
|
|
|
|
- label="否"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
|
|
+ <el-table-column label="低保" align="center">
|
|
|
|
+ <el-table-column prop="db_num" label="是" align="center" sortable></el-table-column>
|
|
|
|
+ <el-table-column prop="fdb_num" label="否" align="center" sortable></el-table-column>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
- <el-table-column
|
|
|
|
- label="重残"
|
|
|
|
- align="center"
|
|
|
|
- >
|
|
|
|
-
|
|
|
|
- <el-table-column
|
|
|
|
- prop="zc_num"
|
|
|
|
- label="是"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="fzc_num"
|
|
|
|
- label="否"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="num"
|
|
|
|
- label="合计"
|
|
|
|
- align="center"
|
|
|
|
- sortable
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
|
|
+ <el-table-column label="重残" align="center">
|
|
|
|
+ <el-table-column prop="zc_num" label="是" align="center" sortable></el-table-column>
|
|
|
|
+ <el-table-column prop="fzc_num" label="否" align="center" sortable></el-table-column>
|
|
|
|
+ <el-table-column prop="num" label="合计" align="center" sortable></el-table-column>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
-
|
|
|
|
-
|
|
|
|
</el-table>
|
|
</el-table>
|
|
-
|
|
|
|
-
|
|
|
|
<!-- </div>-->
|
|
<!-- </div>-->
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
@@ -218,14 +82,14 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import {mapGetters, mapState} from 'vuex'
|
|
|
|
-import {getstatisticaldata} from "@/api/system/dict/type";
|
|
|
|
-import {getLevelByCode} from '@/api/system/jlDept'
|
|
|
|
|
|
+import { mapGetters, mapState } from 'vuex'
|
|
|
|
+import { getstatisticaldata } from "@/api/system/dict/type";
|
|
|
|
+import { getLevelByCode } from '@/api/system/jlDept'
|
|
import XLSX from "xlsx-js-style";
|
|
import XLSX from "xlsx-js-style";
|
|
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
- name: 'tzxx',
|
|
|
|
|
|
+ name: 'LnstLrtj',
|
|
props: {
|
|
props: {
|
|
khId: {
|
|
khId: {
|
|
type: String,
|
|
type: String,
|
|
@@ -242,7 +106,6 @@ export default {
|
|
showSearch: true,
|
|
showSearch: true,
|
|
// 内侧tabs绑定的name
|
|
// 内侧tabs绑定的name
|
|
activeName2: '1',
|
|
activeName2: '1',
|
|
- name: '地区名称',
|
|
|
|
loadingTable: true,
|
|
loadingTable: true,
|
|
// 外侧tabs绑定的name
|
|
// 外侧tabs绑定的name
|
|
activeName: '0',
|
|
activeName: '0',
|
|
@@ -256,9 +119,6 @@ export default {
|
|
level: "1"
|
|
level: "1"
|
|
},
|
|
},
|
|
list1: [],
|
|
list1: [],
|
|
- list2: [],
|
|
|
|
- list3: [],
|
|
|
|
- qhList: []
|
|
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
@@ -293,7 +153,7 @@ export default {
|
|
this.handleQuery();
|
|
this.handleQuery();
|
|
},
|
|
},
|
|
summary(param) {
|
|
summary(param) {
|
|
- const {columns, data} = param;
|
|
|
|
|
|
+ const { columns, data } = param;
|
|
const sums = [];
|
|
const sums = [];
|
|
columns.forEach((column, index) => {
|
|
columns.forEach((column, index) => {
|
|
if (index === 0) {
|
|
if (index === 0) {
|
|
@@ -332,7 +192,6 @@ export default {
|
|
} else if (this.queryParams.para1.substring(6) == "000000") {
|
|
} else if (this.queryParams.para1.substring(6) == "000000") {
|
|
this.queryParams.level = "3";
|
|
this.queryParams.level = "3";
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
},
|
|
},
|
|
handleNodeClick(data) {
|
|
handleNodeClick(data) {
|
|
@@ -344,11 +203,9 @@ export default {
|
|
// 获取表格数据
|
|
// 获取表格数据
|
|
getTableList() {
|
|
getTableList() {
|
|
this.loadingTable = true
|
|
this.loadingTable = true
|
|
- this.list2 = []
|
|
|
|
getstatisticaldata(this.queryParams).then(res => {
|
|
getstatisticaldata(this.queryParams).then(res => {
|
|
if (res.code === 200) {
|
|
if (res.code === 200) {
|
|
this.list1 = this.transformData1(res.data)[0].values
|
|
this.list1 = this.transformData1(res.data)[0].values
|
|
- // console.log(this.transformData1(res.data), this.list2)
|
|
|
|
this.list1.forEach((e, index) => {
|
|
this.list1.forEach((e, index) => {
|
|
if (this.queryParams.level == '1') {
|
|
if (this.queryParams.level == '1') {
|
|
e.mc = e.city
|
|
e.mc = e.city
|
|
@@ -359,330 +216,116 @@ export default {
|
|
}
|
|
}
|
|
e.xh = index + 1
|
|
e.xh = index + 1
|
|
})
|
|
})
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
this.loadingTable = false
|
|
this.loadingTable = false
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
},
|
|
},
|
|
- infoHandleExport() {
|
|
|
|
- let queryParams =
|
|
|
|
- getLevelByCode({code: this.queryParams.para1}).then((response) => {
|
|
|
|
- getstatisticaldata({
|
|
|
|
- dictType: 'STBT001',
|
|
|
|
- para1: this.queryParams.para1
|
|
|
|
- }).then(res => {
|
|
|
|
- let data = this.transformData1(res.data);
|
|
|
|
- let ssq = []
|
|
|
|
- if (this.queryParams.level == '1') {
|
|
|
|
- ssq = [
|
|
|
|
- {v: '省', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '地市', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '区县', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ]
|
|
|
|
- } else if (this.queryParams.level == '2') {
|
|
|
|
- ssq = [
|
|
|
|
- {v: '地市', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '区县', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ]
|
|
|
|
- } else if (this.queryParams.level == '3') {
|
|
|
|
- ssq = [
|
|
|
|
- {v: '区县', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ]
|
|
|
|
- }
|
|
|
|
- let sheetList = [
|
|
|
|
- [
|
|
|
|
- {v: '序号', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ...ssq,
|
|
|
|
- {v: '食堂名称', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '用餐次数', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '用餐金额', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '优惠次数', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '优惠金额', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ]]
|
|
|
|
- let i = 1
|
|
|
|
- response.rows.forEach((item, index) => {
|
|
|
|
- if (item.level == '1') {
|
|
|
|
- ssq = [
|
|
|
|
- {v: item.name, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ]
|
|
|
|
- } else if (item.level == '2') {
|
|
|
|
- ssq = [
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: item.name, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ]
|
|
|
|
- } else if (item.level == '3') {
|
|
|
|
- ssq = [
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: item.name, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ]
|
|
|
|
- }
|
|
|
|
- if (this.queryParams.level == '2') {
|
|
|
|
- ssq.splice(0, 1)
|
|
|
|
- } else if (this.queryParams.level == '3') {
|
|
|
|
- ssq.splice(0, 2)
|
|
|
|
- }
|
|
|
|
- sheetList.push([
|
|
|
|
- // {v: index, t: "s", s: {font: {name: "Courier", sz: 24}}},
|
|
|
|
- {v: i, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ...ssq,
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: 0, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: 0.00, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: 0, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: 0.00, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ])
|
|
|
|
- let isHave = false
|
|
|
|
- let syccs = 0
|
|
|
|
- let sycje = 0
|
|
|
|
- let syhcs = 0
|
|
|
|
- let syhje = 0
|
|
|
|
- let qui = 0
|
|
|
|
- if (item.level == '3') {
|
|
|
|
- let newList = data[0].values.filter(st => st.data4 == item.code)
|
|
|
|
- newList.forEach((st, index) => {
|
|
|
|
- if (st.data6 > 0) {
|
|
|
|
- if (qui == 0) {
|
|
|
|
- qui = sheetList.length - 1;
|
|
|
|
- }
|
|
|
|
- ssq = [
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ]
|
|
|
|
- if (this.queryParams.level == '2') {
|
|
|
|
- ssq.splice(0, 1)
|
|
|
|
- } else if (this.queryParams.level == '3') {
|
|
|
|
- ssq.splice(0, 2)
|
|
|
|
- }
|
|
|
|
- isHave = true
|
|
|
|
- i++;
|
|
|
|
- syccs += Number(st.data6)
|
|
|
|
- sycje += Number(st.data7)
|
|
|
|
- syhcs += Number(st.data8)
|
|
|
|
- syhje += Number(st.data9)
|
|
|
|
- let mc = st.data3
|
|
|
|
- let jd = st.data1
|
|
|
|
- let sq = st.data2
|
|
|
|
- let qz = jd
|
|
|
|
- if (jd != sq) {
|
|
|
|
- qz = jd + " " + sq
|
|
|
|
- }
|
|
|
|
- mc = qz + " " + mc
|
|
|
|
- sheetList.push([
|
|
|
|
- {v: i, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ...ssq,
|
|
|
|
- {v: mc, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: st.data6, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: st.data7, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: st.data8, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: st.data9, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ])
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- i++;
|
|
|
|
- if (item.level == '3' && !isHave) {
|
|
|
|
- sheetList.pop()
|
|
|
|
- } else if (item.level == '3' && isHave) {
|
|
|
|
- sheetList[qui][5 - Number(this.queryParams.level) + 1] = {
|
|
|
|
- v: syccs,
|
|
|
|
- t: "s",
|
|
|
|
- s: {alignment: {horizontal: "center"}}
|
|
|
|
- }
|
|
|
|
- sheetList[qui][6 - Number(this.queryParams.level) + 1] = {
|
|
|
|
- v: sycje.toFixed(2),
|
|
|
|
- t: "s",
|
|
|
|
- s: {alignment: {horizontal: "center"}}
|
|
|
|
- }
|
|
|
|
- sheetList[qui][7 - Number(this.queryParams.level) + 1] = {
|
|
|
|
- v: syhcs,
|
|
|
|
- t: "s",
|
|
|
|
- s: {alignment: {horizontal: "center"}}
|
|
|
|
- }
|
|
|
|
- sheetList[qui][8 - Number(this.queryParams.level) + 1] = {
|
|
|
|
- v: syhje.toFixed(2),
|
|
|
|
- t: "s",
|
|
|
|
- s: {alignment: {horizontal: "center"}}
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- let shiList = response.rows.filter(e => e.id == item.parentId)
|
|
|
|
- console.log("wwwwwwwwwwwwwww", shiList)
|
|
|
|
- if (shiList.length > 0) {
|
|
|
|
- sheetList.forEach((e, i) => {
|
|
|
|
- if (e[2 - Number(this.queryParams.level) + 1].v == shiList[0].name) {
|
|
|
|
- sheetList[i][5 - Number(this.queryParams.level) + 1].v = Number(sheetList[i][5 - Number(this.queryParams.level) + 1].v) + Number(syccs)
|
|
|
|
- sheetList[i][6 - Number(this.queryParams.level) + 1].v = (Number(sheetList[i][6 - Number(this.queryParams.level) + 1].v) + Number(sycje)).toFixed(2)
|
|
|
|
- sheetList[i][7 - Number(this.queryParams.level) + 1].v = Number(sheetList[i][7 - Number(this.queryParams.level) + 1].v) + Number(syhcs)
|
|
|
|
- sheetList[i][8 - Number(this.queryParams.level) + 1].v = (Number(sheetList[i][8 - Number(this.queryParams.level) + 1].v) + Number(syhje)).toFixed(2)
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- if (this.queryParams.para1 == '220000000000') {
|
|
|
|
- sheetList[1][5 - Number(this.queryParams.level) + 1].v = Number(sheetList[1][5 - Number(this.queryParams.level) + 1].v) + Number(syccs)
|
|
|
|
- sheetList[1][6 - Number(this.queryParams.level) + 1].v = (Number(sheetList[1][6 - Number(this.queryParams.level) + 1].v) + Number(sycje)).toFixed(2)
|
|
|
|
- sheetList[1][7 - Number(this.queryParams.level) + 1].v = Number(sheetList[1][7 - Number(this.queryParams.level) + 1].v) + Number(syhcs)
|
|
|
|
- sheetList[1][8 - Number(this.queryParams.level) + 1].v = (Number(sheetList[1][8 - Number(this.queryParams.level) + 1].v) + Number(syhje)).toFixed(2)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- sheetList = sheetList.filter((e, i) => e[5 - Number(this.queryParams.level) + 1].v != 0 || e[5 - Number(this.queryParams.level) + 1].v == '用餐次数')
|
|
|
|
- // sheetList.forEach((e, i) =>{
|
|
|
|
- // if(e[5].v == 0){
|
|
|
|
- // sheetList.splice(i,1)
|
|
|
|
- // }
|
|
|
|
- // })
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- // 创建一个工作簿
|
|
|
|
- const wb = XLSX.utils.book_new();
|
|
|
|
- // 创建一个工作表
|
|
|
|
- const ws = XLSX.utils.aoa_to_sheet(sheetList);
|
|
|
|
- // 设置列宽
|
|
|
|
- ws["!cols"] = [
|
|
|
|
- {
|
|
|
|
- wpx: 50,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- wpx: 150,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- wpx: 150,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- wpx: 200,
|
|
|
|
- }, {
|
|
|
|
- wpx: 200,
|
|
|
|
- }, {
|
|
|
|
- wpx: 150,
|
|
|
|
- }, {
|
|
|
|
- wpx: 150,
|
|
|
|
- }, {
|
|
|
|
- wpx: 150,
|
|
|
|
- }, {
|
|
|
|
- wpx: 150,
|
|
|
|
- },
|
|
|
|
- ];
|
|
|
|
- // s 表示要合并的单元格范围的左上角单元格,r 表示该单元格的行号,c 表示该单元格的列号,行列号从 0 开始计数。所以 { r: 0, c: 0 } 表示第 1 行第 1 列的单元格,即 A1 单元格。
|
|
|
|
- // e 表示要合并的单元格范围的右下角单元格,其含义与 s 相同。所以 { r: 0, c: 1 } 表示第 1 行第 2 列的单元格,即 B1 单元格。
|
|
|
|
- // 因此,{ s: { r: 0, c: 0 }, e: { r: 0, c: 1 } } 表示要合并第 1 行第 1 列和第 1 行第 3 列之间的元格。
|
|
|
|
- // 注意,合并会以开始位置单元格中的内容为准,所以合并后的单元格中的内容为 A1 单元格中的内容。
|
|
|
|
- // ws["!merges"] = [{s: {r: 0, c: 0}, e: {r: 0, c: 3}}, {s: {r: 1, c: 0}, e: {r: 1, c: 3}}];
|
|
|
|
- // 将工作表添加到工作簿中
|
|
|
|
- XLSX.utils.book_append_sheet(wb, ws, "补贴统计");
|
|
|
|
- // 合并单元格
|
|
|
|
- // XLSX.utils.sheet_add_aoa(ws, [['A1:C1']], {origin: 'A1'});
|
|
|
|
- // 将工作簿保存为文件
|
|
|
|
- // XLSX.writeFile(wb, "补贴标准.xlsx");
|
|
|
|
- // 导出工作簿为二进制字符串
|
|
|
|
- // const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
|
|
|
|
-
|
|
|
|
- var wbout = XLSX.write(wb, {
|
|
|
|
- bookType: 'xlsx',
|
|
|
|
- bookSST: false,
|
|
|
|
- type: 'binary'
|
|
|
|
- });
|
|
|
|
|
|
+ handleExport(data) {
|
|
|
|
+ let style = { alignment: { horizontal: "center", vertical: 'center' } }
|
|
|
|
+ let sheetList = [
|
|
|
|
+ [
|
|
|
|
+ { v: '序号', t: "s", s: style },
|
|
|
|
+ { v: '所属区划', t: "s", s: style },
|
|
|
|
+ { v: '年龄段', t: "s", s: style },
|
|
|
|
+ { v: '年龄段', t: "s", s: style },
|
|
|
|
+ { v: '年龄段', t: "s", s: style },
|
|
|
|
+ { v: '年龄段', t: "s", s: style },
|
|
|
|
+ { v: '年龄段', t: "s", s: style },
|
|
|
|
+ { v: '性别', t: "s", s: style },
|
|
|
|
+ { v: '性别', t: "s", s: style },
|
|
|
|
+ { v: '是否特困', t: "s", s: style },
|
|
|
|
+ { v: '是否特困', t: "s", s: style },
|
|
|
|
+ { v: '是否低保', t: "s", s: style },
|
|
|
|
+ { v: '是否低保', t: "s", s: style },
|
|
|
|
+ { v: '是否重残', t: "s", s: style },
|
|
|
|
+ { v: '是否重残', t: "s", s: style },
|
|
|
|
+ ],
|
|
|
|
+ [
|
|
|
|
+ { v: '序号', t: "s", s: style },
|
|
|
|
+ { v: '所属区划', t: "s", s: style },
|
|
|
|
|
|
- saveAs(new Blob([this.s2ab(wbout)], {
|
|
|
|
- type: "application/octet-stream"
|
|
|
|
- }), "补贴统计" + new Date().getTime() + ".xlsx")
|
|
|
|
|
|
+ { v: '60-', t: "s", s: style },
|
|
|
|
+ { v: '60-69', t: "s", s: style },
|
|
|
|
+ { v: "70-79", t: "s", s: style },
|
|
|
|
+ { v: "80-89", t: "s", s: style },
|
|
|
|
+ { v: "90+", t: "s", s: style },
|
|
|
|
|
|
|
|
+ { v: "男", t: "s", s: style },
|
|
|
|
+ { v: "女", t: "s", s: style },
|
|
|
|
|
|
- })
|
|
|
|
|
|
+ { v: "是", t: "s", s: style },
|
|
|
|
+ { v: "否", t: "s", s: style },
|
|
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- handleExport(list) {
|
|
|
|
|
|
+ { v: "是", t: "s", s: style },
|
|
|
|
+ { v: "否", t: "s", s: style },
|
|
|
|
|
|
- let sheetList = [
|
|
|
|
- [
|
|
|
|
- {v: '序号', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: this.name, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '用餐次数', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '用餐金额', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '优惠次数', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '优惠金额', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ]]
|
|
|
|
-
|
|
|
|
- let yccs = 0.0
|
|
|
|
- let ycje = 0.0
|
|
|
|
- let yhcs = 0.0
|
|
|
|
- let yhje = 0.0
|
|
|
|
- let btcs = 0.0
|
|
|
|
- let btje = 0.0
|
|
|
|
-
|
|
|
|
- list.forEach((item, index) => {
|
|
|
|
|
|
+ { v: "是", t: "s", s: style },
|
|
|
|
+ { v: "否", t: "s", s: style },
|
|
|
|
+ ],
|
|
|
|
+ ]
|
|
|
|
+ data.forEach((item, idx) => {
|
|
sheetList.push([
|
|
sheetList.push([
|
|
- // {v: index, t: "s", s: {font: {name: "Courier", sz: 24}}},
|
|
|
|
- {v: index + 1, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: item.mc, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: item.yccs, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: item.ycje, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: item.yhcs, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: item.yhje, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
|
|
+ { v: idx + 1, t: "s", s: style },
|
|
|
|
+ { v: item.mc, t: "s", s: style },
|
|
|
|
+ { v: item['zero_num'], t: "s", s: style },
|
|
|
|
+ { v: item['one_num'], t: "s", s: style },
|
|
|
|
+ { v: item['two_num'], t: "s", s: style },
|
|
|
|
+ { v: item['three_num'], t: "s", s: style },
|
|
|
|
+ { v: item['four_num'], t: "s", s: style },
|
|
|
|
+ { v: item['nan_num'], t: "s", s: style },
|
|
|
|
+ { v: item['nv_num'], t: "s", s: style },
|
|
|
|
+ { v: item['tk_num'], t: "s", s: style },
|
|
|
|
+ { v: item['ftk_num'], t: "s", s: style },
|
|
|
|
+ { v: item['db_num'], t: "s", s: style },
|
|
|
|
+ { v: item['fdb_num'], t: "s", s: style },
|
|
|
|
+ { v: item['zc_num'], t: "s", s: style },
|
|
|
|
+ { v: item['fzc_num'], t: "s", s: style },
|
|
])
|
|
])
|
|
- yccs += Number(item.yccs)
|
|
|
|
- ycje += Number(item.ycje)
|
|
|
|
- yhcs += Number(item.yhcs)
|
|
|
|
- yhje += Number(item.yhje)
|
|
|
|
})
|
|
})
|
|
-
|
|
|
|
-
|
|
|
|
- sheetList.push([
|
|
|
|
- // {v: index, t: "s", s: {font: {name: "Courier", sz: 24}}},
|
|
|
|
- {v: '合计', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: '', t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: yccs, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: ycje.toFixed(2), t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: yhcs, t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- {v: yhje.toFixed(2), t: "s", s: {alignment: {horizontal: "center"}}},
|
|
|
|
- ])
|
|
|
|
-
|
|
|
|
-
|
|
|
|
// 创建一个工作簿
|
|
// 创建一个工作簿
|
|
- const wb = XLSX.utils.book_new();
|
|
|
|
|
|
+ const workBook = XLSX.utils.book_new();
|
|
// 创建一个工作表
|
|
// 创建一个工作表
|
|
- const ws = XLSX.utils.aoa_to_sheet(sheetList);
|
|
|
|
|
|
+ const workSheet = XLSX.utils.aoa_to_sheet(sheetList);
|
|
// 设置列宽
|
|
// 设置列宽
|
|
- ws["!cols"] = [
|
|
|
|
- {
|
|
|
|
- wpx: 50,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- wpx: 200,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- wpx: 150,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- wpx: 150,
|
|
|
|
- }, {
|
|
|
|
- wpx: 150,
|
|
|
|
- }, {
|
|
|
|
- wpx: 150,
|
|
|
|
- }, {
|
|
|
|
- wpx: 150,
|
|
|
|
- },
|
|
|
|
|
|
+ workSheet["!cols"] = [
|
|
|
|
+ { wpx: 50, },
|
|
|
|
+ { wpx: 100, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ { wpx: 70, },
|
|
|
|
+ ];
|
|
|
|
+ workSheet["!merges"] = [
|
|
|
|
+ { s: { r: 0, c: 0 }, e: { r: 1, c: 0 } }, // 序号
|
|
|
|
+ { s: { r: 0, c: 1 }, e: { r: 1, c: 1 } }, // 所属区划
|
|
|
|
+ { s: { r: 0, c: 2 }, e: { r: 0, c: 6 } }, // 年龄段
|
|
|
|
+ { s: { r: 0, c: 7 }, e: { r: 0, c: 8 } }, // 性别
|
|
|
|
+ { s: { r: 0, c: 9 }, e: { r: 0, c: 10 } }, //是否特困
|
|
|
|
+ { s: { r: 0, c: 11 }, e: { r: 0, c: 12 } }, //是否低保
|
|
|
|
+ { s: { r: 0, c: 13 }, e: { r: 0, c: 14 } }, //是否重残
|
|
];
|
|
];
|
|
// s 表示要合并的单元格范围的左上角单元格,r 表示该单元格的行号,c 表示该单元格的列号,行列号从 0 开始计数。所以 { r: 0, c: 0 } 表示第 1 行第 1 列的单元格,即 A1 单元格。
|
|
// s 表示要合并的单元格范围的左上角单元格,r 表示该单元格的行号,c 表示该单元格的列号,行列号从 0 开始计数。所以 { r: 0, c: 0 } 表示第 1 行第 1 列的单元格,即 A1 单元格。
|
|
// e 表示要合并的单元格范围的右下角单元格,其含义与 s 相同。所以 { r: 0, c: 1 } 表示第 1 行第 2 列的单元格,即 B1 单元格。
|
|
// e 表示要合并的单元格范围的右下角单元格,其含义与 s 相同。所以 { r: 0, c: 1 } 表示第 1 行第 2 列的单元格,即 B1 单元格。
|
|
// 因此,{ s: { r: 0, c: 0 }, e: { r: 0, c: 1 } } 表示要合并第 1 行第 1 列和第 1 行第 3 列之间的元格。
|
|
// 因此,{ s: { r: 0, c: 0 }, e: { r: 0, c: 1 } } 表示要合并第 1 行第 1 列和第 1 行第 3 列之间的元格。
|
|
// 注意,合并会以开始位置单元格中的内容为准,所以合并后的单元格中的内容为 A1 单元格中的内容。
|
|
// 注意,合并会以开始位置单元格中的内容为准,所以合并后的单元格中的内容为 A1 单元格中的内容。
|
|
- // ws["!merges"] = [{s: {r: 0, c: 0}, e: {r: 0, c: 3}}, {s: {r: 1, c: 0}, e: {r: 1, c: 3}}];
|
|
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * s: start e:end r:row c:col
|
|
|
|
+ * */
|
|
|
|
+
|
|
// 将工作表添加到工作簿中
|
|
// 将工作表添加到工作簿中
|
|
- XLSX.utils.book_append_sheet(wb, ws, "补贴统计");
|
|
|
|
|
|
+ XLSX.utils.book_append_sheet(workBook, workSheet, "老人信息统计");
|
|
// 合并单元格
|
|
// 合并单元格
|
|
// XLSX.utils.sheet_add_aoa(ws, [['A1:C1']], {origin: 'A1'});
|
|
// XLSX.utils.sheet_add_aoa(ws, [['A1:C1']], {origin: 'A1'});
|
|
// 将工作簿保存为文件
|
|
// 将工作簿保存为文件
|
|
@@ -690,7 +333,7 @@ export default {
|
|
// 导出工作簿为二进制字符串
|
|
// 导出工作簿为二进制字符串
|
|
// const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
|
|
// const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
|
|
|
|
|
|
- var wbout = XLSX.write(wb, {
|
|
|
|
|
|
+ var wbout = XLSX.write(workBook, {
|
|
bookType: 'xlsx',
|
|
bookType: 'xlsx',
|
|
bookSST: false,
|
|
bookSST: false,
|
|
type: 'binary'
|
|
type: 'binary'
|
|
@@ -698,8 +341,7 @@ export default {
|
|
|
|
|
|
saveAs(new Blob([this.s2ab(wbout)], {
|
|
saveAs(new Blob([this.s2ab(wbout)], {
|
|
type: "application/octet-stream"
|
|
type: "application/octet-stream"
|
|
- }), "补贴统计" + new Date().getTime() + ".xlsx")
|
|
|
|
-
|
|
|
|
|
|
+ }), "老人信息统计.xlsx")
|
|
|
|
|
|
},
|
|
},
|
|
s2ab(s) {
|
|
s2ab(s) {
|
|
@@ -712,12 +354,5 @@ export default {
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
-<style scoped>
|
|
|
|
-.echarts-box {
|
|
|
|
- margin-top: 10px;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-.flex-box2 {
|
|
|
|
- margin-bottom: 8px;
|
|
|
|
-}
|
|
|
|
|
|
+<style lang="scss" scoped>
|
|
</style>
|
|
</style>
|