Merge branch 'dev' of http://yun.pashanhoo.com:9090/bdc/bdcdj-web into dev
Showing
9 changed files
with
1201 additions
and
518 deletions
... | @@ -7,41 +7,32 @@ | ... | @@ -7,41 +7,32 @@ |
7 | <div class="djlx"> | 7 | <div class="djlx"> |
8 | <div class="inquire"> | 8 | <div class="inquire"> |
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | 9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> |
10 | <el-row> | 10 | <el-row :gutter="20"> |
11 | <el-col :span="6"> | 11 | <el-col :span="12"> |
12 | <el-form-item label="开始时间" class="width100"> | 12 | <el-form-item label="收件时间" class="width100"> |
13 | <el-date-picker | 13 | <el-date-picker |
14 | v-model="queryForm.kssj" | 14 | v-model="queryForm.sj" |
15 | type="daterange" | ||
15 | class="width100" | 16 | class="width100" |
16 | type="date" | 17 | range-separator="至" |
17 | placeholder="选择日期" | 18 | :clearable="false" |
18 | value-format="yyyy-MM-dd HH:mm:ss" | 19 | value-format="yyyy-MM-dd" |
19 | format="yyyy-MM-dd" | 20 | start-placeholder="开始日期" |
20 | ></el-date-picker> | 21 | end-placeholder="结束日期" |
21 | </el-form-item> | 22 | > |
22 | </el-col> | 23 | </el-date-picker> |
23 | <el-col :span="6"> | ||
24 | <el-form-item label="结束时间" class="width100"> | ||
25 | <el-date-picker | ||
26 | v-model="queryForm.kssj" | ||
27 | class="width100" | ||
28 | type="date" | ||
29 | placeholder="选择日期" | ||
30 | value-format="yyyy-MM-dd HH:mm:ss" | ||
31 | format="yyyy-MM-dd" | ||
32 | ></el-date-picker> | ||
33 | </el-form-item> | 24 | </el-form-item> |
34 | </el-col> | 25 | </el-col> |
35 | <el-col :span="6"> | 26 | <el-col :span="7"> |
36 | <el-form-item label="区域" class="width100"> | 27 | <el-form-item label="区域" class="width100"> |
37 | <el-select | 28 | <el-select |
38 | v-model="queryForm.qy" | 29 | v-model="queryForm.qy" |
39 | class="width100" | 30 | class="width100" |
40 | clearable | 31 | clearable |
41 | placeholder="请选择权利类型" | 32 | placeholder="请选择区域" |
42 | > | 33 | > |
43 | <el-option | 34 | <el-option |
44 | v-for="item in dictData['A8']" | 35 | v-for="item in dictData['A20']" |
45 | :key="item.dcode" | 36 | :key="item.dcode" |
46 | :label="item.dname" | 37 | :label="item.dname" |
47 | :value="item.dcode" | 38 | :value="item.dcode" |
... | @@ -50,7 +41,7 @@ | ... | @@ -50,7 +41,7 @@ |
50 | </el-select> | 41 | </el-select> |
51 | </el-form-item> | 42 | </el-form-item> |
52 | </el-col> | 43 | </el-col> |
53 | <el-col :span="5" class="btnColRight"> | 44 | <el-col :span="4" class="btnColRight"> |
54 | <el-form-item> | 45 | <el-form-item> |
55 | <el-button | 46 | <el-button |
56 | type="primary" | 47 | type="primary" |
... | @@ -74,13 +65,13 @@ | ... | @@ -74,13 +65,13 @@ |
74 | header-cell-class-name="table-header-gray" | 65 | header-cell-class-name="table-header-gray" |
75 | > | 66 | > |
76 | <el-table-column | 67 | <el-table-column |
77 | label="类型" | 68 | label="登记类型" |
78 | prop="name" | 69 | prop="name" |
79 | minWidth="100" | 70 | minWidth="100" |
80 | align="center" /> | 71 | align="center" /> |
81 | <el-table-column | 72 | <el-table-column |
82 | label="数量" | 73 | label="收件数量" |
83 | prop="agent" | 74 | prop="value" |
84 | minWidth="120" | 75 | minWidth="120" |
85 | align="center" | 76 | align="center" |
86 | /></el-table> | 77 | /></el-table> |
... | @@ -94,64 +85,87 @@ | ... | @@ -94,64 +85,87 @@ |
94 | <script> | 85 | <script> |
95 | import * as echarts from "echarts"; | 86 | import * as echarts from "echarts"; |
96 | import { mapGetters } from "vuex"; | 87 | import { mapGetters } from "vuex"; |
97 | export default { | 88 | export default { |
98 | components: {}, | 89 | components: {}, |
99 | computed: { | 90 | computed: { |
100 | ...mapGetters(["dictData", "transfer"]), | 91 | ...mapGetters(["dictData", "transfer"]), |
101 | }, | 92 | }, |
102 | data () { | 93 | data() { |
103 | return { | 94 | return { |
104 | queryForm: {}, | 95 | queryForm: {}, |
105 | tableList: [{ name: "111" }, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23], | 96 | tableList: [ |
97 | { name: "首次登记", value: "2" }, | ||
98 | { name: "变更登记", value: "12" }, | ||
99 | { name: "抵押登记", value: "23" }, | ||
100 | { name: "转移登记", value: "33" }, | ||
101 | { name: "预告登记", value: "13" }, | ||
102 | { name: "注销登记", value: "3" }, | ||
103 | { name: "查封登记", value: "4" }, | ||
104 | { name: "其他登记", value: "26" }, | ||
105 | ], | ||
106 | }; | 106 | }; |
107 | }, | 107 | }, |
108 | mounted() { | 108 | mounted() { |
109 | // 创建一个 ECharts 实例 | 109 | // 创建一个 ECharts 实例 |
110 | this.chart = echarts.init(this.$refs.chart); | 110 | this.chart = echarts.init(this.$refs.chart); |
111 | // 在 ECharts 实例中配置图表 | 111 | // 在 ECharts 实例中配置图表 |
112 | this.chart.setOption(this.getOption()); | 112 | this.chart.setOption(this.getOption()); |
113 | }, | 113 | }, |
114 | methods: { | 114 | methods: { |
115 | getOption() { | 115 | getOption() { |
116 | return { | 116 | return { |
117 | 117 | title: { | |
118 | text: "统计分析图", | ||
119 | x: "center", | ||
120 | textStyle: { | ||
121 | //主标题文本设置 | ||
122 | fontSize: 12, //大小 | ||
123 | }, | ||
124 | }, | ||
118 | tooltip: { | 125 | tooltip: { |
119 | trigger: "item", | 126 | trigger: "item", |
120 | formatter: "{a} <br/>{b}: {c} ({d}%)", | 127 | formatter: "{a} <br/>{b} : {c}个 ({d}%)", |
128 | }, | ||
129 | grid: { | ||
130 | top: "4%", | ||
131 | left: "2%", | ||
132 | right: "3%", | ||
133 | bottom: "20%", | ||
134 | containLabel: true, | ||
121 | }, | 135 | }, |
122 | series: [ | 136 | series: [ |
123 | { | 137 | { |
124 | name: "饼图名称", | 138 | name: "统计分析图", |
125 | type: "pie", | 139 | type: "pie", |
126 | radius: ["20%", "70%"], | 140 | radius: "70%", |
127 | avoidLabelOverlap: false, | 141 | center: ["50%", "100%"], |
128 | label: { | 142 | data: this.tableList, |
129 | show: false, | 143 | itemStyle: { |
130 | position: "center", | 144 | emphasis: { |
131 | }, | 145 | shadowBlur: 10, |
132 | emphasis: { | 146 | shadowOffsetX: 0, |
133 | label: { | 147 | shadowColor: "rgba(0, 0, 0, 0.5)", |
134 | show: true, | ||
135 | fontSize: "30", | ||
136 | fontWeight: "bold", | ||
137 | }, | 148 | }, |
138 | }, | 149 | }, |
139 | labelLine: { | 150 | label: { |
140 | show: false, | 151 | normal: { |
152 | formatter: "{c}/个", | ||
153 | position: "inside", //让文字显示在饼状图里面 | ||
154 | textStyle: { | ||
155 | fontSize: 10, | ||
156 | color: "#fff", | ||
157 | }, | ||
158 | }, | ||
141 | }, | 159 | }, |
142 | data: [ | 160 | center: ["50%", "50%"], // 这个属性调整图像的位置!!!!! |
143 | { value: 335, name: "数据1" }, | ||
144 | { value: 310, name: "数据2" }, | ||
145 | { value: 234, name: "数据3" }, | ||
146 | { value: 135, name: "数据4" }, | ||
147 | { value: 1548, name: "数据5" }, | ||
148 | ], | ||
149 | }, | 161 | }, |
150 | ], | 162 | ], |
151 | }; | 163 | }; |
152 | }, | 164 | }, |
153 | 165 | ||
154 | handleSearch() {}, | 166 | handleSearch() { |
167 | console.log(" this.queryForm", this.queryForm); | ||
168 | }, | ||
155 | }, | 169 | }, |
156 | }; | 170 | }; |
157 | </script> | 171 | </script> |
... | @@ -171,20 +185,30 @@ import { mapGetters } from "vuex"; | ... | @@ -171,20 +185,30 @@ import { mapGetters } from "vuex"; |
171 | .inquire { | 185 | .inquire { |
172 | width: 100%; | 186 | width: 100%; |
173 | height: 40px; | 187 | height: 40px; |
174 | border: 1px solid rgb(184, 217, 243); | 188 | background-color: #f4f7fd; |
175 | // background-color: rebeccapurple; | 189 | /deep/ .el-form { |
190 | .el-form-item--small.el-form-item { | ||
191 | margin-bottom: 5px; | ||
192 | } | ||
193 | } | ||
176 | } | 194 | } |
195 | |||
177 | .concent { | 196 | .concent { |
178 | width: 100%; | 197 | width: 100%; |
179 | height: 300px; | 198 | height: 300px; |
180 | display: flex; | 199 | display: flex; |
200 | //调整表头高度 | ||
201 | /deep/.el-table__header { | ||
202 | height: 22px!important; | ||
203 | background-color: salmon; | ||
204 | } | ||
181 | .left { | 205 | .left { |
182 | width: 70%; | 206 | width: 70%; |
183 | height: 200px; | 207 | height: 200px; |
184 | } | 208 | } |
185 | .right { | 209 | .right { |
186 | width: 30%; | 210 | width: 30%; |
187 | height: 200px; | 211 | height: 300px; |
188 | } | 212 | } |
189 | } | 213 | } |
190 | } | 214 | } | ... | ... |
... | @@ -7,50 +7,23 @@ | ... | @@ -7,50 +7,23 @@ |
7 | <div class="djlx"> | 7 | <div class="djlx"> |
8 | <div class="inquire"> | 8 | <div class="inquire"> |
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | 9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> |
10 | <el-row> | 10 | <el-row :gutter="20"> |
11 | <el-col :span="6"> | 11 | <el-col :span="12"> |
12 | <el-form-item label="开始时间" class="width100"> | 12 | <el-form-item label="收件时间" class="width100"> |
13 | <el-date-picker | 13 | <el-date-picker |
14 | v-model="queryForm.kssj" | 14 | v-model="queryForm.sj" |
15 | type="daterange" | ||
15 | class="width100" | 16 | class="width100" |
16 | type="date" | 17 | range-separator="至" |
17 | placeholder="选择日期" | 18 | :clearable="false" |
18 | value-format="yyyy-MM-dd HH:mm:ss" | 19 | value-format="yyyy-MM-dd" |
19 | format="yyyy-MM-dd" | 20 | start-placeholder="开始日期" |
20 | ></el-date-picker> | 21 | end-placeholder="结束日期" |
21 | </el-form-item> | ||
22 | </el-col> | ||
23 | <el-col :span="6"> | ||
24 | <el-form-item label="结束时间" class="width100"> | ||
25 | <el-date-picker | ||
26 | v-model="queryForm.kssj" | ||
27 | class="width100" | ||
28 | type="date" | ||
29 | placeholder="选择日期" | ||
30 | value-format="yyyy-MM-dd HH:mm:ss" | ||
31 | format="yyyy-MM-dd" | ||
32 | ></el-date-picker> | ||
33 | </el-form-item> | ||
34 | </el-col> | ||
35 | <el-col :span="6"> | ||
36 | <el-form-item label="区域" class="width100"> | ||
37 | <el-select | ||
38 | v-model="queryForm.qy" | ||
39 | class="width100" | ||
40 | clearable | ||
41 | placeholder="请选择权利类型" | ||
42 | > | 22 | > |
43 | <el-option | 23 | </el-date-picker> |
44 | v-for="item in dictData['A8']" | ||
45 | :key="item.dcode" | ||
46 | :label="item.dname" | ||
47 | :value="item.dcode" | ||
48 | > | ||
49 | </el-option> | ||
50 | </el-select> | ||
51 | </el-form-item> | 24 | </el-form-item> |
52 | </el-col> | 25 | </el-col> |
53 | <el-col :span="5" class="btnColRight"> | 26 | <el-col :span="4" class="btnColRight"> |
54 | <el-form-item> | 27 | <el-form-item> |
55 | <el-button | 28 | <el-button |
56 | type="primary" | 29 | type="primary" |
... | @@ -74,13 +47,13 @@ | ... | @@ -74,13 +47,13 @@ |
74 | header-cell-class-name="table-header-gray" | 47 | header-cell-class-name="table-header-gray" |
75 | > | 48 | > |
76 | <el-table-column | 49 | <el-table-column |
77 | label="类型" | 50 | label="区域" |
78 | prop="name" | 51 | prop="name" |
79 | minWidth="100" | 52 | minWidth="100" |
80 | align="center" /> | 53 | align="center" /> |
81 | <el-table-column | 54 | <el-table-column |
82 | label="数量" | 55 | label="收件数量" |
83 | prop="agent" | 56 | prop="value" |
84 | minWidth="120" | 57 | minWidth="120" |
85 | align="center" | 58 | align="center" |
86 | /></el-table> | 59 | /></el-table> |
... | @@ -93,65 +66,84 @@ | ... | @@ -93,65 +66,84 @@ |
93 | </template> | 66 | </template> |
94 | <script> | 67 | <script> |
95 | import * as echarts from "echarts"; | 68 | import * as echarts from "echarts"; |
96 | import { mapGetters } from "vuex"; | 69 | export default { |
97 | export default { | 70 | components: {}, |
98 | components: {}, | 71 | data() { |
99 | computed: { | 72 | return { |
100 | ...mapGetters(["dictData", "transfer"]), | ||
101 | }, | ||
102 | data () { | ||
103 | return { | ||
104 | queryForm: {}, | 73 | queryForm: {}, |
105 | tableList: [{ name: "111" }, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23], | 74 | tableList: [ |
75 | { name: "首次登记", value: "2" }, | ||
76 | { name: "变更登记", value: "12" }, | ||
77 | { name: "抵押登记", value: "23" }, | ||
78 | { name: "转移登记", value: "33" }, | ||
79 | { name: "预告登记", value: "13" }, | ||
80 | { name: "注销登记", value: "3" }, | ||
81 | { name: "查封登记", value: "4" }, | ||
82 | { name: "其他登记", value: "26" }, | ||
83 | ], | ||
106 | }; | 84 | }; |
107 | }, | 85 | }, |
108 | mounted() { | 86 | mounted() { |
109 | // 创建一个 ECharts 实例 | 87 | // 创建一个 ECharts 实例 |
110 | this.chart = echarts.init(this.$refs.chart); | 88 | this.chart = echarts.init(this.$refs.chart); |
111 | // 在 ECharts 实例中配置图表 | 89 | // 在 ECharts 实例中配置图表 |
112 | this.chart.setOption(this.getOption()); | 90 | this.chart.setOption(this.getOption()); |
113 | }, | 91 | }, |
114 | methods: { | 92 | methods: { |
115 | getOption() { | 93 | getOption() { |
116 | return { | 94 | return { |
117 | 95 | title: { | |
96 | text: "统计分析图", | ||
97 | x: "center", | ||
98 | textStyle: { | ||
99 | //主标题文本设置 | ||
100 | fontSize: 12, //大小 | ||
101 | }, | ||
102 | }, | ||
118 | tooltip: { | 103 | tooltip: { |
119 | trigger: "item", | 104 | trigger: "item", |
120 | formatter: "{a} <br/>{b}: {c} ({d}%)", | 105 | formatter: "{a} <br/>{b} : {c}个 ({d}%)", |
106 | }, | ||
107 | grid: { | ||
108 | top: "4%", | ||
109 | left: "2%", | ||
110 | right: "3%", | ||
111 | bottom: "20%", | ||
112 | containLabel: true, | ||
121 | }, | 113 | }, |
122 | series: [ | 114 | series: [ |
123 | { | 115 | { |
124 | name: "饼图名称", | 116 | name: "统计分析图", |
125 | type: "pie", | 117 | type: "pie", |
126 | radius: ["20%", "70%"], | 118 | radius: "70%", |
127 | avoidLabelOverlap: false, | 119 | center: ["50%", "100%"], |
128 | label: { | 120 | data: this.tableList, |
129 | show: false, | 121 | itemStyle: { |
130 | position: "center", | 122 | emphasis: { |
131 | }, | 123 | shadowBlur: 10, |
132 | emphasis: { | 124 | shadowOffsetX: 0, |
133 | label: { | 125 | shadowColor: "rgba(0, 0, 0, 0.5)", |
134 | show: true, | ||
135 | fontSize: "30", | ||
136 | fontWeight: "bold", | ||
137 | }, | 126 | }, |
138 | }, | 127 | }, |
139 | labelLine: { | 128 | label: { |
140 | show: false, | 129 | normal: { |
130 | formatter: "{c}/个", | ||
131 | position: "inside", //让文字显示在饼状图里面 | ||
132 | textStyle: { | ||
133 | fontSize: 10, | ||
134 | color: "#fff", | ||
135 | }, | ||
136 | }, | ||
141 | }, | 137 | }, |
142 | data: [ | 138 | center: ["50%", "50%"], // 这个属性调整图像的位置!!!!! |
143 | { value: 335, name: "数据1" }, | ||
144 | { value: 310, name: "数据2" }, | ||
145 | { value: 234, name: "数据3" }, | ||
146 | { value: 135, name: "数据4" }, | ||
147 | { value: 1548, name: "数据5" }, | ||
148 | ], | ||
149 | }, | 139 | }, |
150 | ], | 140 | ], |
151 | }; | 141 | }; |
152 | }, | 142 | }, |
153 | 143 | ||
154 | handleSearch() {}, | 144 | handleSearch() { |
145 | console.log(" this.queryForm", this.queryForm); | ||
146 | }, | ||
155 | }, | 147 | }, |
156 | }; | 148 | }; |
157 | </script> | 149 | </script> |
... | @@ -171,20 +163,30 @@ import { mapGetters } from "vuex"; | ... | @@ -171,20 +163,30 @@ import { mapGetters } from "vuex"; |
171 | .inquire { | 163 | .inquire { |
172 | width: 100%; | 164 | width: 100%; |
173 | height: 40px; | 165 | height: 40px; |
174 | border: 1px solid rgb(184, 217, 243); | 166 | background-color: #f4f7fd; |
175 | // background-color: rebeccapurple; | 167 | /deep/ .el-form { |
168 | .el-form-item--small.el-form-item { | ||
169 | margin-bottom: 5px; | ||
170 | } | ||
171 | } | ||
176 | } | 172 | } |
173 | |||
177 | .concent { | 174 | .concent { |
178 | width: 100%; | 175 | width: 100%; |
179 | height: 300px; | 176 | height: 300px; |
180 | display: flex; | 177 | display: flex; |
178 | //调整表头高度 | ||
179 | /deep/.el-table__header { | ||
180 | height: 22px!important; | ||
181 | background-color: salmon; | ||
182 | } | ||
181 | .left { | 183 | .left { |
182 | width: 70%; | 184 | width: 70%; |
183 | height: 200px; | 185 | height: 200px; |
184 | } | 186 | } |
185 | .right { | 187 | .right { |
186 | width: 30%; | 188 | width: 30%; |
187 | height: 200px; | 189 | height: 300px; |
188 | } | 190 | } |
189 | } | 191 | } |
190 | } | 192 | } | ... | ... |
... | @@ -7,41 +7,32 @@ | ... | @@ -7,41 +7,32 @@ |
7 | <div class="djlx"> | 7 | <div class="djlx"> |
8 | <div class="inquire"> | 8 | <div class="inquire"> |
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | 9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> |
10 | <el-row> | 10 | <el-row :gutter="20"> |
11 | <el-col :span="6"> | 11 | <el-col :span="12"> |
12 | <el-form-item label="开始时间" class="width100"> | 12 | <el-form-item label="收件时间" class="width100"> |
13 | <el-date-picker | 13 | <el-date-picker |
14 | v-model="queryForm.kssj" | 14 | v-model="queryForm.sj" |
15 | type="daterange" | ||
15 | class="width100" | 16 | class="width100" |
16 | type="date" | 17 | range-separator="至" |
17 | placeholder="选择日期" | 18 | :clearable="false" |
18 | value-format="yyyy-MM-dd HH:mm:ss" | 19 | value-format="yyyy-MM-dd" |
19 | format="yyyy-MM-dd" | 20 | start-placeholder="开始日期" |
20 | ></el-date-picker> | 21 | end-placeholder="结束日期" |
21 | </el-form-item> | 22 | > |
22 | </el-col> | 23 | </el-date-picker> |
23 | <el-col :span="6"> | ||
24 | <el-form-item label="结束时间" class="width100"> | ||
25 | <el-date-picker | ||
26 | v-model="queryForm.kssj" | ||
27 | class="width100" | ||
28 | type="date" | ||
29 | placeholder="选择日期" | ||
30 | value-format="yyyy-MM-dd HH:mm:ss" | ||
31 | format="yyyy-MM-dd" | ||
32 | ></el-date-picker> | ||
33 | </el-form-item> | 24 | </el-form-item> |
34 | </el-col> | 25 | </el-col> |
35 | <el-col :span="6"> | 26 | <el-col :span="7"> |
36 | <el-form-item label="区域" class="width100"> | 27 | <el-form-item label="区域" class="width100"> |
37 | <el-select | 28 | <el-select |
38 | v-model="queryForm.qy" | 29 | v-model="queryForm.qy" |
39 | class="width100" | 30 | class="width100" |
40 | clearable | 31 | clearable |
41 | placeholder="请选择权利类型" | 32 | placeholder="请选择区域" |
42 | > | 33 | > |
43 | <el-option | 34 | <el-option |
44 | v-for="item in dictData['A8']" | 35 | v-for="item in dictData['A20']" |
45 | :key="item.dcode" | 36 | :key="item.dcode" |
46 | :label="item.dname" | 37 | :label="item.dname" |
47 | :value="item.dcode" | 38 | :value="item.dcode" |
... | @@ -50,7 +41,7 @@ | ... | @@ -50,7 +41,7 @@ |
50 | </el-select> | 41 | </el-select> |
51 | </el-form-item> | 42 | </el-form-item> |
52 | </el-col> | 43 | </el-col> |
53 | <el-col :span="5" class="btnColRight"> | 44 | <el-col :span="4" class="btnColRight"> |
54 | <el-form-item> | 45 | <el-form-item> |
55 | <el-button | 46 | <el-button |
56 | type="primary" | 47 | type="primary" |
... | @@ -74,13 +65,13 @@ | ... | @@ -74,13 +65,13 @@ |
74 | header-cell-class-name="table-header-gray" | 65 | header-cell-class-name="table-header-gray" |
75 | > | 66 | > |
76 | <el-table-column | 67 | <el-table-column |
77 | label="类型" | 68 | label="收件人" |
78 | prop="name" | 69 | prop="name" |
79 | minWidth="100" | 70 | minWidth="100" |
80 | align="center" /> | 71 | align="center" /> |
81 | <el-table-column | 72 | <el-table-column |
82 | label="数量" | 73 | label="收件数量" |
83 | prop="agent" | 74 | prop="value" |
84 | minWidth="120" | 75 | minWidth="120" |
85 | align="center" | 76 | align="center" |
86 | /></el-table> | 77 | /></el-table> |
... | @@ -94,64 +85,87 @@ | ... | @@ -94,64 +85,87 @@ |
94 | <script> | 85 | <script> |
95 | import * as echarts from "echarts"; | 86 | import * as echarts from "echarts"; |
96 | import { mapGetters } from "vuex"; | 87 | import { mapGetters } from "vuex"; |
97 | export default { | 88 | export default { |
98 | components: {}, | 89 | components: {}, |
99 | computed: { | 90 | computed: { |
100 | ...mapGetters(["dictData", "transfer"]), | 91 | ...mapGetters(["dictData", "transfer"]), |
101 | }, | 92 | }, |
102 | data () { | 93 | data() { |
103 | return { | 94 | return { |
104 | queryForm: {}, | 95 | queryForm: {}, |
105 | tableList: [{ name: "111" }, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23], | 96 | tableList: [ |
97 | { name: "首次登记", value: "2" }, | ||
98 | { name: "变更登记", value: "12" }, | ||
99 | { name: "抵押登记", value: "23" }, | ||
100 | { name: "转移登记", value: "33" }, | ||
101 | { name: "预告登记", value: "13" }, | ||
102 | { name: "注销登记", value: "3" }, | ||
103 | { name: "查封登记", value: "4" }, | ||
104 | { name: "其他登记", value: "26" }, | ||
105 | ], | ||
106 | }; | 106 | }; |
107 | }, | 107 | }, |
108 | mounted() { | 108 | mounted() { |
109 | // 创建一个 ECharts 实例 | 109 | // 创建一个 ECharts 实例 |
110 | this.chart = echarts.init(this.$refs.chart); | 110 | this.chart = echarts.init(this.$refs.chart); |
111 | // 在 ECharts 实例中配置图表 | 111 | // 在 ECharts 实例中配置图表 |
112 | this.chart.setOption(this.getOption()); | 112 | this.chart.setOption(this.getOption()); |
113 | }, | 113 | }, |
114 | methods: { | 114 | methods: { |
115 | getOption() { | 115 | getOption() { |
116 | return { | 116 | return { |
117 | 117 | title: { | |
118 | text: "统计分析图", | ||
119 | x: "center", | ||
120 | textStyle: { | ||
121 | //主标题文本设置 | ||
122 | fontSize: 12, //大小 | ||
123 | }, | ||
124 | }, | ||
118 | tooltip: { | 125 | tooltip: { |
119 | trigger: "item", | 126 | trigger: "item", |
120 | formatter: "{a} <br/>{b}: {c} ({d}%)", | 127 | formatter: "{a} <br/>{b} : {c}个 ({d}%)", |
128 | }, | ||
129 | grid: { | ||
130 | top: "4%", | ||
131 | left: "2%", | ||
132 | right: "3%", | ||
133 | bottom: "20%", | ||
134 | containLabel: true, | ||
121 | }, | 135 | }, |
122 | series: [ | 136 | series: [ |
123 | { | 137 | { |
124 | name: "饼图名称", | 138 | name: "统计分析图", |
125 | type: "pie", | 139 | type: "pie", |
126 | radius: ["20%", "70%"], | 140 | radius: "70%", |
127 | avoidLabelOverlap: false, | 141 | center: ["50%", "100%"], |
128 | label: { | 142 | data: this.tableList, |
129 | show: false, | 143 | itemStyle: { |
130 | position: "center", | 144 | emphasis: { |
131 | }, | 145 | shadowBlur: 10, |
132 | emphasis: { | 146 | shadowOffsetX: 0, |
133 | label: { | 147 | shadowColor: "rgba(0, 0, 0, 0.5)", |
134 | show: true, | ||
135 | fontSize: "30", | ||
136 | fontWeight: "bold", | ||
137 | }, | 148 | }, |
138 | }, | 149 | }, |
139 | labelLine: { | 150 | label: { |
140 | show: false, | 151 | normal: { |
152 | formatter: "{c}/个", | ||
153 | position: "inside", //让文字显示在饼状图里面 | ||
154 | textStyle: { | ||
155 | fontSize: 10, | ||
156 | color: "#fff", | ||
157 | }, | ||
158 | }, | ||
141 | }, | 159 | }, |
142 | data: [ | 160 | center: ["50%", "50%"], // 这个属性调整图像的位置!!!!! |
143 | { value: 335, name: "数据1" }, | ||
144 | { value: 310, name: "数据2" }, | ||
145 | { value: 234, name: "数据3" }, | ||
146 | { value: 135, name: "数据4" }, | ||
147 | { value: 1548, name: "数据5" }, | ||
148 | ], | ||
149 | }, | 161 | }, |
150 | ], | 162 | ], |
151 | }; | 163 | }; |
152 | }, | 164 | }, |
153 | 165 | ||
154 | handleSearch() {}, | 166 | handleSearch() { |
167 | console.log(" this.queryForm", this.queryForm); | ||
168 | }, | ||
155 | }, | 169 | }, |
156 | }; | 170 | }; |
157 | </script> | 171 | </script> |
... | @@ -171,20 +185,30 @@ import { mapGetters } from "vuex"; | ... | @@ -171,20 +185,30 @@ import { mapGetters } from "vuex"; |
171 | .inquire { | 185 | .inquire { |
172 | width: 100%; | 186 | width: 100%; |
173 | height: 40px; | 187 | height: 40px; |
174 | border: 1px solid rgb(184, 217, 243); | 188 | background-color: #f4f7fd; |
175 | // background-color: rebeccapurple; | 189 | /deep/ .el-form { |
190 | .el-form-item--small.el-form-item { | ||
191 | margin-bottom: 5px; | ||
192 | } | ||
193 | } | ||
176 | } | 194 | } |
195 | |||
177 | .concent { | 196 | .concent { |
178 | width: 100%; | 197 | width: 100%; |
179 | height: 300px; | 198 | height: 300px; |
180 | display: flex; | 199 | display: flex; |
200 | //调整表头高度 | ||
201 | /deep/.el-table__header { | ||
202 | height: 22px!important; | ||
203 | background-color: salmon; | ||
204 | } | ||
181 | .left { | 205 | .left { |
182 | width: 70%; | 206 | width: 70%; |
183 | height: 200px; | 207 | height: 200px; |
184 | } | 208 | } |
185 | .right { | 209 | .right { |
186 | width: 30%; | 210 | width: 30%; |
187 | height: 200px; | 211 | height: 300px; |
188 | } | 212 | } |
189 | } | 213 | } |
190 | } | 214 | } | ... | ... |
... | @@ -9,27 +9,14 @@ | ... | @@ -9,27 +9,14 @@ |
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | 9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> |
10 | <el-row> | 10 | <el-row> |
11 | <el-col :span="6"> | 11 | <el-col :span="6"> |
12 | <el-form-item label="开始时间" class="width100"> | 12 | <el-form-item label="统计时间" class="width100"> |
13 | <el-date-picker | 13 | <el-date-picker |
14 | v-model="queryForm.kssj" | 14 | v-model="queryForm.sj" |
15 | class="width100" | 15 | class="width100" |
16 | type="date" | 16 | type="month" |
17 | placeholder="选择日期" | 17 | placeholder="选择月" |
18 | value-format="yyyy-MM-dd HH:mm:ss" | 18 | > |
19 | format="yyyy-MM-dd" | 19 | </el-date-picker> |
20 | ></el-date-picker> | ||
21 | </el-form-item> | ||
22 | </el-col> | ||
23 | <el-col :span="6"> | ||
24 | <el-form-item label="结束时间" class="width100"> | ||
25 | <el-date-picker | ||
26 | v-model="queryForm.kssj" | ||
27 | class="width100" | ||
28 | type="date" | ||
29 | placeholder="选择日期" | ||
30 | value-format="yyyy-MM-dd HH:mm:ss" | ||
31 | format="yyyy-MM-dd" | ||
32 | ></el-date-picker> | ||
33 | </el-form-item> | 20 | </el-form-item> |
34 | </el-col> | 21 | </el-col> |
35 | <el-col :span="6"> | 22 | <el-col :span="6"> |
... | @@ -41,7 +28,7 @@ | ... | @@ -41,7 +28,7 @@ |
41 | placeholder="请选择权利类型" | 28 | placeholder="请选择权利类型" |
42 | > | 29 | > |
43 | <el-option | 30 | <el-option |
44 | v-for="item in dictData['A8']" | 31 | v-for="item in dictData['A20']" |
45 | :key="item.dcode" | 32 | :key="item.dcode" |
46 | :label="item.dname" | 33 | :label="item.dname" |
47 | :value="item.dcode" | 34 | :value="item.dcode" |
... | @@ -64,88 +51,101 @@ | ... | @@ -64,88 +51,101 @@ |
64 | </el-form> | 51 | </el-form> |
65 | </div> | 52 | </div> |
66 | <div class="concent"> | 53 | <div class="concent"> |
67 | <div class="left"> | 54 | <div ref="chart" style="width: 100%; height: 200px"></div> |
68 | <el-table | ||
69 | height="187" | ||
70 | stripe | ||
71 | :data="tableList" | ||
72 | size="mini" | ||
73 | border | ||
74 | header-cell-class-name="table-header-gray" | ||
75 | > | ||
76 | <el-table-column | ||
77 | label="类型" | ||
78 | prop="name" | ||
79 | minWidth="100" | ||
80 | align="center" /> | ||
81 | <el-table-column | ||
82 | label="数量" | ||
83 | prop="agent" | ||
84 | minWidth="120" | ||
85 | align="center" | ||
86 | /></el-table> | ||
87 | </div> | ||
88 | <div class="right"> | ||
89 | <div ref="chart" style="width: 100%; height: 200px"></div> | ||
90 | </div> | ||
91 | </div> | 55 | </div> |
92 | </div> | 56 | </div> |
93 | </template> | 57 | </template> |
94 | <script> | 58 | <script> |
95 | import * as echarts from "echarts"; | 59 | import * as echarts from "echarts"; |
96 | import { mapGetters } from "vuex"; | 60 | import { mapGetters } from "vuex"; |
97 | export default { | 61 | export default { |
98 | components: {}, | 62 | components: {}, |
99 | computed: { | 63 | computed: { |
100 | ...mapGetters(["dictData", "transfer"]), | 64 | ...mapGetters(["dictData", "transfer"]), |
101 | }, | 65 | }, |
102 | data () { | 66 | data() { |
103 | return { | 67 | return { |
104 | queryForm: {}, | 68 | queryForm: {}, |
105 | tableList: [{ name: "111" }, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23], | 69 | datas: [12, 23, 15, 28, 37, 11, 13, 32, 34, 56, 12, 15], |
70 | datatime: [ | ||
71 | "1日", | ||
72 | "2日", | ||
73 | "4日", | ||
74 | "5日", | ||
75 | "7日", | ||
76 | "10日", | ||
77 | "14日", | ||
78 | "15日", | ||
79 | "17日", | ||
80 | "19日", | ||
81 | "20日", | ||
82 | "21日", | ||
83 | ], | ||
106 | }; | 84 | }; |
107 | }, | 85 | }, |
108 | mounted() { | 86 | mounted() { |
109 | // 创建一个 ECharts 实例 | 87 | // 创建一个 ECharts 实例 |
110 | this.chart = echarts.init(this.$refs.chart); | 88 | this.chart = echarts.init(this.$refs.chart); |
111 | // 在 ECharts 实例中配置图表 | 89 | // 在 ECharts 实例中配置图表 |
112 | this.chart.setOption(this.getOption()); | 90 | this.chart.setOption(this.getOption()); |
113 | }, | 91 | }, |
114 | methods: { | 92 | methods: { |
115 | getOption() { | 93 | getOption() { |
116 | return { | 94 | return { |
95 | title: { | ||
96 | text: "2023年11月收件情况 ", // 主标题名称 | ||
117 | 97 | ||
98 | textStyle: { | ||
99 | //主标题文本设置 | ||
100 | fontSize: 18, //大小 | ||
101 | }, | ||
102 | |||
103 | itemGap: 3, //主副标题间距 | ||
104 | x: "center", //主副标题的水平位置 | ||
105 | y: "top", //主副标题的垂直位置 | ||
106 | }, | ||
107 | legend: { | ||
108 | data: ["转诊量"], | ||
109 | top: "6%", | ||
110 | right: "4%", | ||
111 | textStyle: { | ||
112 | color: "#747474", | ||
113 | }, | ||
114 | }, | ||
118 | tooltip: { | 115 | tooltip: { |
119 | trigger: "item", | 116 | // trigger: "item", //默认效果 |
120 | formatter: "{a} <br/>{b}: {c} ({d}%)", | 117 | //柱状图加阴影 |
118 | trigger: "axis", | ||
119 | axisPointer: { | ||
120 | type: "shadow", | ||
121 | label: { | ||
122 | show: true, | ||
123 | }, | ||
124 | }, | ||
125 | }, | ||
126 | grid: { | ||
127 | top: "20%", | ||
128 | left: "2%", | ||
129 | right: "3%", | ||
130 | bottom: "20%", | ||
131 | containLabel: true, | ||
132 | }, | ||
133 | xAxis: { | ||
134 | type: "category", | ||
135 | data: this.datatime, | ||
136 | }, | ||
137 | yAxis: { | ||
138 | type: "value", | ||
121 | }, | 139 | }, |
122 | series: [ | 140 | series: [ |
123 | { | 141 | { |
124 | name: "饼图名称", | 142 | data: this.datas, |
125 | type: "pie", | 143 | type: "bar", |
126 | radius: ["20%", "70%"], | 144 | barWidth: 15, |
127 | avoidLabelOverlap: false, | 145 | showBackground: true, |
128 | label: { | 146 | backgroundStyle: { |
129 | show: false, | 147 | color: "rgba(220, 220, 220, 0.8)", |
130 | position: "center", | ||
131 | }, | ||
132 | emphasis: { | ||
133 | label: { | ||
134 | show: true, | ||
135 | fontSize: "30", | ||
136 | fontWeight: "bold", | ||
137 | }, | ||
138 | }, | ||
139 | labelLine: { | ||
140 | show: false, | ||
141 | }, | 148 | }, |
142 | data: [ | ||
143 | { value: 335, name: "数据1" }, | ||
144 | { value: 310, name: "数据2" }, | ||
145 | { value: 234, name: "数据3" }, | ||
146 | { value: 135, name: "数据4" }, | ||
147 | { value: 1548, name: "数据5" }, | ||
148 | ], | ||
149 | }, | 149 | }, |
150 | ], | 150 | ], |
151 | }; | 151 | }; |
... | @@ -178,14 +178,6 @@ import { mapGetters } from "vuex"; | ... | @@ -178,14 +178,6 @@ import { mapGetters } from "vuex"; |
178 | width: 100%; | 178 | width: 100%; |
179 | height: 300px; | 179 | height: 300px; |
180 | display: flex; | 180 | display: flex; |
181 | .left { | ||
182 | width: 70%; | ||
183 | height: 200px; | ||
184 | } | ||
185 | .right { | ||
186 | width: 30%; | ||
187 | height: 200px; | ||
188 | } | ||
189 | } | 181 | } |
190 | } | 182 | } |
191 | </style> | 183 | </style> | ... | ... |
... | @@ -9,27 +9,9 @@ | ... | @@ -9,27 +9,9 @@ |
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | 9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> |
10 | <el-row> | 10 | <el-row> |
11 | <el-col :span="6"> | 11 | <el-col :span="6"> |
12 | <el-form-item label="开始时间" class="width100"> | 12 | <el-form-item label="统计年份" class="width100"> |
13 | <el-date-picker | 13 | <el-date-picker class="width100" v-model="queryForm.sj" type="year" placeholder="选择年"> |
14 | v-model="queryForm.kssj" | 14 | </el-date-picker> |
15 | class="width100" | ||
16 | type="date" | ||
17 | placeholder="选择日期" | ||
18 | value-format="yyyy-MM-dd HH:mm:ss" | ||
19 | format="yyyy-MM-dd" | ||
20 | ></el-date-picker> | ||
21 | </el-form-item> | ||
22 | </el-col> | ||
23 | <el-col :span="6"> | ||
24 | <el-form-item label="结束时间" class="width100"> | ||
25 | <el-date-picker | ||
26 | v-model="queryForm.kssj" | ||
27 | class="width100" | ||
28 | type="date" | ||
29 | placeholder="选择日期" | ||
30 | value-format="yyyy-MM-dd HH:mm:ss" | ||
31 | format="yyyy-MM-dd" | ||
32 | ></el-date-picker> | ||
33 | </el-form-item> | 15 | </el-form-item> |
34 | </el-col> | 16 | </el-col> |
35 | <el-col :span="6"> | 17 | <el-col :span="6"> |
... | @@ -41,7 +23,7 @@ | ... | @@ -41,7 +23,7 @@ |
41 | placeholder="请选择权利类型" | 23 | placeholder="请选择权利类型" |
42 | > | 24 | > |
43 | <el-option | 25 | <el-option |
44 | v-for="item in dictData['A8']" | 26 | v-for="item in dictData['A20']" |
45 | :key="item.dcode" | 27 | :key="item.dcode" |
46 | :label="item.dname" | 28 | :label="item.dname" |
47 | :value="item.dcode" | 29 | :value="item.dcode" |
... | @@ -50,7 +32,7 @@ | ... | @@ -50,7 +32,7 @@ |
50 | </el-select> | 32 | </el-select> |
51 | </el-form-item> | 33 | </el-form-item> |
52 | </el-col> | 34 | </el-col> |
53 | <el-col :span="5" class="btnColRight"> | 35 | <el-col :span="12" class="btnColRight"> |
54 | <el-form-item> | 36 | <el-form-item> |
55 | <el-button | 37 | <el-button |
56 | type="primary" | 38 | type="primary" |
... | @@ -64,88 +46,96 @@ | ... | @@ -64,88 +46,96 @@ |
64 | </el-form> | 46 | </el-form> |
65 | </div> | 47 | </div> |
66 | <div class="concent"> | 48 | <div class="concent"> |
67 | <div class="left"> | 49 | <div ref="chart" style="width: 100%; height: 200px"></div> |
68 | <el-table | ||
69 | height="187" | ||
70 | stripe | ||
71 | :data="tableList" | ||
72 | size="mini" | ||
73 | border | ||
74 | header-cell-class-name="table-header-gray" | ||
75 | > | ||
76 | <el-table-column | ||
77 | label="类型" | ||
78 | prop="name" | ||
79 | minWidth="100" | ||
80 | align="center" /> | ||
81 | <el-table-column | ||
82 | label="数量" | ||
83 | prop="agent" | ||
84 | minWidth="120" | ||
85 | align="center" | ||
86 | /></el-table> | ||
87 | </div> | ||
88 | <div class="right"> | ||
89 | <div ref="chart" style="width: 100%; height: 200px"></div> | ||
90 | </div> | ||
91 | </div> | 50 | </div> |
92 | </div> | 51 | </div> |
93 | </template> | 52 | </template> |
94 | <script> | 53 | <script> |
95 | import * as echarts from "echarts"; | 54 | import * as echarts from "echarts"; |
96 | import { mapGetters } from "vuex"; | 55 | import { mapGetters } from "vuex"; |
97 | export default { | 56 | export default { |
98 | components: {}, | 57 | components: {}, |
99 | computed: { | 58 | computed: { |
100 | ...mapGetters(["dictData", "transfer"]), | 59 | ...mapGetters(["dictData", "transfer"]), |
101 | }, | 60 | }, |
102 | data () { | 61 | data() { |
103 | return { | 62 | return { |
104 | queryForm: {}, | 63 | queryForm: {}, |
105 | tableList: [{ name: "111" }, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23], | ||
106 | }; | 64 | }; |
107 | }, | 65 | }, |
108 | mounted() { | 66 | mounted() { |
109 | // 创建一个 ECharts 实例 | 67 | // 创建一个 ECharts 实例 |
110 | this.chart = echarts.init(this.$refs.chart); | 68 | this.chart = echarts.init(this.$refs.chart); |
111 | // 在 ECharts 实例中配置图表 | 69 | // 在 ECharts 实例中配置图表 |
112 | this.chart.setOption(this.getOption()); | 70 | this.chart.setOption(this.getOption()); |
113 | }, | 71 | }, |
114 | methods: { | 72 | methods: { |
115 | getOption() { | 73 | getOption() { |
116 | return { | 74 | return { |
75 | xAxis: { | ||
76 | type: "category", | ||
77 | data: [ | ||
78 | "1月", | ||
79 | "2月", | ||
80 | "3月", | ||
81 | "4月", | ||
82 | "5月", | ||
83 | "6月", | ||
84 | "7月", | ||
85 | "8月", | ||
86 | "9月", | ||
87 | "10月", | ||
88 | "11月", | ||
89 | "12月", | ||
90 | ], | ||
91 | }, | ||
92 | yAxis: { | ||
93 | type: "value", | ||
94 | }, | ||
95 | title: { | ||
96 | text: "2023年收件情况 ", // 主标题名称 | ||
97 | |||
98 | textStyle: { | ||
99 | //主标题文本设置 | ||
100 | fontSize: 18, //大小 | ||
101 | }, | ||
117 | 102 | ||
103 | itemGap: 3, //主副标题间距 | ||
104 | x: "center", //主副标题的水平位置 | ||
105 | y: "top", //主副标题的垂直位置 | ||
106 | }, | ||
107 | legend: { | ||
108 | data: ["转诊量"], | ||
109 | top: "6%", | ||
110 | right: "4%", | ||
111 | textStyle: { | ||
112 | color: "#747474", | ||
113 | }, | ||
114 | }, | ||
118 | tooltip: { | 115 | tooltip: { |
119 | trigger: "item", | 116 | // trigger: "item", //默认效果 |
120 | formatter: "{a} <br/>{b}: {c} ({d}%)", | 117 | //柱状图加阴影 |
118 | trigger: "axis", | ||
119 | axisPointer: { | ||
120 | type: "shadow", | ||
121 | label: { | ||
122 | show: true, | ||
123 | }, | ||
124 | }, | ||
125 | }, | ||
126 | grid: { | ||
127 | top: "20%", | ||
128 | left: "2%", | ||
129 | right: "3%", | ||
130 | bottom: "20%", | ||
131 | containLabel: true, | ||
121 | }, | 132 | }, |
122 | series: [ | 133 | series: [ |
123 | { | 134 | { |
124 | name: "饼图名称", | 135 | name: "转诊量", |
125 | type: "pie", | 136 | data: [38, 42, 50, 157, 40, 45, 60, 140, 36, 47, 54, 143], |
126 | radius: ["20%", "70%"], | 137 | barWidth: 40, |
127 | avoidLabelOverlap: false, | 138 | type: "bar", |
128 | label: { | ||
129 | show: false, | ||
130 | position: "center", | ||
131 | }, | ||
132 | emphasis: { | ||
133 | label: { | ||
134 | show: true, | ||
135 | fontSize: "30", | ||
136 | fontWeight: "bold", | ||
137 | }, | ||
138 | }, | ||
139 | labelLine: { | ||
140 | show: false, | ||
141 | }, | ||
142 | data: [ | ||
143 | { value: 335, name: "数据1" }, | ||
144 | { value: 310, name: "数据2" }, | ||
145 | { value: 234, name: "数据3" }, | ||
146 | { value: 135, name: "数据4" }, | ||
147 | { value: 1548, name: "数据5" }, | ||
148 | ], | ||
149 | }, | 139 | }, |
150 | ], | 140 | ], |
151 | }; | 141 | }; |
... | @@ -178,14 +168,6 @@ import { mapGetters } from "vuex"; | ... | @@ -178,14 +168,6 @@ import { mapGetters } from "vuex"; |
178 | width: 100%; | 168 | width: 100%; |
179 | height: 300px; | 169 | height: 300px; |
180 | display: flex; | 170 | display: flex; |
181 | .left { | ||
182 | width: 70%; | ||
183 | height: 200px; | ||
184 | } | ||
185 | .right { | ||
186 | width: 30%; | ||
187 | height: 200px; | ||
188 | } | ||
189 | } | 171 | } |
190 | } | 172 | } |
191 | </style> | 173 | </style> | ... | ... |
... | @@ -7,41 +7,32 @@ | ... | @@ -7,41 +7,32 @@ |
7 | <div class="djlx"> | 7 | <div class="djlx"> |
8 | <div class="inquire"> | 8 | <div class="inquire"> |
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | 9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> |
10 | <el-row> | 10 | <el-row :gutter="20"> |
11 | <el-col :span="6"> | 11 | <el-col :span="12"> |
12 | <el-form-item label="开始时间" class="width100"> | 12 | <el-form-item label="缮证日期" class="width100"> |
13 | <el-date-picker | 13 | <el-date-picker |
14 | v-model="queryForm.kssj" | 14 | v-model="queryForm.sj" |
15 | type="daterange" | ||
15 | class="width100" | 16 | class="width100" |
16 | type="date" | 17 | range-separator="至" |
17 | placeholder="选择日期" | 18 | :clearable="false" |
18 | value-format="yyyy-MM-dd HH:mm:ss" | 19 | value-format="yyyy-MM-dd" |
19 | format="yyyy-MM-dd" | 20 | start-placeholder="开始日期" |
20 | ></el-date-picker> | 21 | end-placeholder="结束日期" |
21 | </el-form-item> | 22 | > |
22 | </el-col> | 23 | </el-date-picker> |
23 | <el-col :span="6"> | ||
24 | <el-form-item label="结束时间" class="width100"> | ||
25 | <el-date-picker | ||
26 | v-model="queryForm.kssj" | ||
27 | class="width100" | ||
28 | type="date" | ||
29 | placeholder="选择日期" | ||
30 | value-format="yyyy-MM-dd HH:mm:ss" | ||
31 | format="yyyy-MM-dd" | ||
32 | ></el-date-picker> | ||
33 | </el-form-item> | 24 | </el-form-item> |
34 | </el-col> | 25 | </el-col> |
35 | <el-col :span="6"> | 26 | <el-col :span="7"> |
36 | <el-form-item label="区域" class="width100"> | 27 | <el-form-item label="区域" class="width100"> |
37 | <el-select | 28 | <el-select |
38 | v-model="queryForm.qy" | 29 | v-model="queryForm.qy" |
39 | class="width100" | 30 | class="width100" |
40 | clearable | 31 | clearable |
41 | placeholder="请选择权利类型" | 32 | placeholder="请选择区域" |
42 | > | 33 | > |
43 | <el-option | 34 | <el-option |
44 | v-for="item in dictData['A8']" | 35 | v-for="item in dictData['A20']" |
45 | :key="item.dcode" | 36 | :key="item.dcode" |
46 | :label="item.dname" | 37 | :label="item.dname" |
47 | :value="item.dcode" | 38 | :value="item.dcode" |
... | @@ -50,7 +41,7 @@ | ... | @@ -50,7 +41,7 @@ |
50 | </el-select> | 41 | </el-select> |
51 | </el-form-item> | 42 | </el-form-item> |
52 | </el-col> | 43 | </el-col> |
53 | <el-col :span="5" class="btnColRight"> | 44 | <el-col :span="4" class="btnColRight"> |
54 | <el-form-item> | 45 | <el-form-item> |
55 | <el-button | 46 | <el-button |
56 | type="primary" | 47 | type="primary" |
... | @@ -74,13 +65,13 @@ | ... | @@ -74,13 +65,13 @@ |
74 | header-cell-class-name="table-header-gray" | 65 | header-cell-class-name="table-header-gray" |
75 | > | 66 | > |
76 | <el-table-column | 67 | <el-table-column |
77 | label="类型" | 68 | label="证书种类" |
78 | prop="name" | 69 | prop="name" |
79 | minWidth="100" | 70 | minWidth="100" |
80 | align="center" /> | 71 | align="center" /> |
81 | <el-table-column | 72 | <el-table-column |
82 | label="数量" | 73 | label="收件数量" |
83 | prop="agent" | 74 | prop="value" |
84 | minWidth="120" | 75 | minWidth="120" |
85 | align="center" | 76 | align="center" |
86 | /></el-table> | 77 | /></el-table> |
... | @@ -94,64 +85,87 @@ | ... | @@ -94,64 +85,87 @@ |
94 | <script> | 85 | <script> |
95 | import * as echarts from "echarts"; | 86 | import * as echarts from "echarts"; |
96 | import { mapGetters } from "vuex"; | 87 | import { mapGetters } from "vuex"; |
97 | export default { | 88 | export default { |
98 | components: {}, | 89 | components: {}, |
99 | computed: { | 90 | computed: { |
100 | ...mapGetters(["dictData", "transfer"]), | 91 | ...mapGetters(["dictData", "transfer"]), |
101 | }, | 92 | }, |
102 | data () { | 93 | data() { |
103 | return { | 94 | return { |
104 | queryForm: {}, | 95 | queryForm: {}, |
105 | tableList: [{ name: "111" }, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23], | 96 | tableList: [ |
97 | { name: "首次登记", value: "2" }, | ||
98 | { name: "变更登记", value: "12" }, | ||
99 | { name: "抵押登记", value: "23" }, | ||
100 | { name: "转移登记", value: "33" }, | ||
101 | { name: "预告登记", value: "13" }, | ||
102 | { name: "注销登记", value: "3" }, | ||
103 | { name: "查封登记", value: "4" }, | ||
104 | { name: "其他登记", value: "26" }, | ||
105 | ], | ||
106 | }; | 106 | }; |
107 | }, | 107 | }, |
108 | mounted() { | 108 | mounted() { |
109 | // 创建一个 ECharts 实例 | 109 | // 创建一个 ECharts 实例 |
110 | this.chart = echarts.init(this.$refs.chart); | 110 | this.chart = echarts.init(this.$refs.chart); |
111 | // 在 ECharts 实例中配置图表 | 111 | // 在 ECharts 实例中配置图表 |
112 | this.chart.setOption(this.getOption()); | 112 | this.chart.setOption(this.getOption()); |
113 | }, | 113 | }, |
114 | methods: { | 114 | methods: { |
115 | getOption() { | 115 | getOption() { |
116 | return { | 116 | return { |
117 | 117 | title: { | |
118 | text: "统计分析图", | ||
119 | x: "center", | ||
120 | textStyle: { | ||
121 | //主标题文本设置 | ||
122 | fontSize: 12, //大小 | ||
123 | }, | ||
124 | }, | ||
118 | tooltip: { | 125 | tooltip: { |
119 | trigger: "item", | 126 | trigger: "item", |
120 | formatter: "{a} <br/>{b}: {c} ({d}%)", | 127 | formatter: "{a} <br/>{b} : {c}个 ({d}%)", |
128 | }, | ||
129 | grid: { | ||
130 | top: "4%", | ||
131 | left: "2%", | ||
132 | right: "3%", | ||
133 | bottom: "20%", | ||
134 | containLabel: true, | ||
121 | }, | 135 | }, |
122 | series: [ | 136 | series: [ |
123 | { | 137 | { |
124 | name: "饼图名称", | 138 | name: "统计分析图", |
125 | type: "pie", | 139 | type: "pie", |
126 | radius: ["20%", "70%"], | 140 | radius: "70%", |
127 | avoidLabelOverlap: false, | 141 | center: ["50%", "100%"], |
128 | label: { | 142 | data: this.tableList, |
129 | show: false, | 143 | itemStyle: { |
130 | position: "center", | 144 | emphasis: { |
131 | }, | 145 | shadowBlur: 10, |
132 | emphasis: { | 146 | shadowOffsetX: 0, |
133 | label: { | 147 | shadowColor: "rgba(0, 0, 0, 0.5)", |
134 | show: true, | ||
135 | fontSize: "30", | ||
136 | fontWeight: "bold", | ||
137 | }, | 148 | }, |
138 | }, | 149 | }, |
139 | labelLine: { | 150 | label: { |
140 | show: false, | 151 | normal: { |
152 | formatter: "{c}/个", | ||
153 | position: "inside", //让文字显示在饼状图里面 | ||
154 | textStyle: { | ||
155 | fontSize: 10, | ||
156 | color: "#fff", | ||
157 | }, | ||
158 | }, | ||
141 | }, | 159 | }, |
142 | data: [ | 160 | center: ["50%", "50%"], // 这个属性调整图像的位置!!!!! |
143 | { value: 335, name: "数据1" }, | ||
144 | { value: 310, name: "数据2" }, | ||
145 | { value: 234, name: "数据3" }, | ||
146 | { value: 135, name: "数据4" }, | ||
147 | { value: 1548, name: "数据5" }, | ||
148 | ], | ||
149 | }, | 161 | }, |
150 | ], | 162 | ], |
151 | }; | 163 | }; |
152 | }, | 164 | }, |
153 | 165 | ||
154 | handleSearch() {}, | 166 | handleSearch() { |
167 | console.log(" this.queryForm", this.queryForm); | ||
168 | }, | ||
155 | }, | 169 | }, |
156 | }; | 170 | }; |
157 | </script> | 171 | </script> |
... | @@ -171,20 +185,30 @@ import { mapGetters } from "vuex"; | ... | @@ -171,20 +185,30 @@ import { mapGetters } from "vuex"; |
171 | .inquire { | 185 | .inquire { |
172 | width: 100%; | 186 | width: 100%; |
173 | height: 40px; | 187 | height: 40px; |
174 | border: 1px solid rgb(184, 217, 243); | 188 | background-color: #f4f7fd; |
175 | // background-color: rebeccapurple; | 189 | /deep/ .el-form { |
190 | .el-form-item--small.el-form-item { | ||
191 | margin-bottom: 5px; | ||
192 | } | ||
193 | } | ||
176 | } | 194 | } |
195 | |||
177 | .concent { | 196 | .concent { |
178 | width: 100%; | 197 | width: 100%; |
179 | height: 300px; | 198 | height: 300px; |
180 | display: flex; | 199 | display: flex; |
200 | //调整表头高度 | ||
201 | /deep/.el-table__header { | ||
202 | height: 22px!important; | ||
203 | background-color: salmon; | ||
204 | } | ||
181 | .left { | 205 | .left { |
182 | width: 70%; | 206 | width: 70%; |
183 | height: 200px; | 207 | height: 200px; |
184 | } | 208 | } |
185 | .right { | 209 | .right { |
186 | width: 30%; | 210 | width: 30%; |
187 | height: 200px; | 211 | height: 300px; |
188 | } | 212 | } |
189 | } | 213 | } |
190 | } | 214 | } | ... | ... |
... | @@ -10,7 +10,7 @@ | ... | @@ -10,7 +10,7 @@ |
10 | <el-card | 10 | <el-card |
11 | shadow="hover" | 11 | shadow="hover" |
12 | :body-style="{ padding: '0' }" | 12 | :body-style="{ padding: '0' }" |
13 | style="height: 270px" | 13 | style="height: 260px" |
14 | > | 14 | > |
15 | <div slot="header" class="flexst"> | 15 | <div slot="header" class="flexst"> |
16 | <h5 class="title">根据登记类型统计分析收件</h5> | 16 | <h5 class="title">根据登记类型统计分析收件</h5> |
... | @@ -22,7 +22,7 @@ | ... | @@ -22,7 +22,7 @@ |
22 | <el-card | 22 | <el-card |
23 | shadow="hover" | 23 | shadow="hover" |
24 | :body-style="{ padding: '0' }" | 24 | :body-style="{ padding: '0' }" |
25 | style="height: 270px" | 25 | style="height: 260px" |
26 | > | 26 | > |
27 | <div slot="header" class="flexst"> | 27 | <div slot="header" class="flexst"> |
28 | <h5 class="title">根据证书种类统计分析发证情况</h5> | 28 | <h5 class="title">根据证书种类统计分析发证情况</h5> |
... | @@ -36,12 +36,12 @@ | ... | @@ -36,12 +36,12 @@ |
36 | <el-card | 36 | <el-card |
37 | shadow="hover" | 37 | shadow="hover" |
38 | :body-style="{ padding: '0' }" | 38 | :body-style="{ padding: '0' }" |
39 | style="height: 270px" | 39 | style="height: 260px" |
40 | > | 40 | > |
41 | <div slot="header" class="flexst"> | 41 | <div slot="header" class="flexst"> |
42 | <h5 class="title">根据收件人统计分析收件</h5> | 42 | <h5 class="title">根据收件人统计分析收件</h5> |
43 | </div> | 43 | </div> |
44 | <djlx/> | 44 | <psjr/> |
45 | </el-card> | 45 | </el-card> |
46 | </el-col> | 46 | </el-col> |
47 | 47 | ||
... | @@ -49,12 +49,12 @@ | ... | @@ -49,12 +49,12 @@ |
49 | <el-card | 49 | <el-card |
50 | shadow="hover" | 50 | shadow="hover" |
51 | :body-style="{ padding: '0' }" | 51 | :body-style="{ padding: '0' }" |
52 | style="height: 270px" | 52 | style="height: 260px" |
53 | > | 53 | > |
54 | <div slot="header" class="flexst"> | 54 | <div slot="header" class="flexst"> |
55 | <h5 class="title">收件日统计</h5> | 55 | <h5 class="title">收件日统计</h5> |
56 | </div> | 56 | </div> |
57 | <ul class="workbench flexst"></ul> | 57 | <sjri/> |
58 | </el-card> | 58 | </el-card> |
59 | </el-col> | 59 | </el-col> |
60 | </el-row> | 60 | </el-row> |
... | @@ -63,7 +63,7 @@ | ... | @@ -63,7 +63,7 @@ |
63 | <el-card | 63 | <el-card |
64 | shadow="hover" | 64 | shadow="hover" |
65 | :body-style="{ padding: '0' }" | 65 | :body-style="{ padding: '0' }" |
66 | style="height: 270px" | 66 | style="height: 260px" |
67 | > | 67 | > |
68 | <div slot="header" class="flexst"> | 68 | <div slot="header" class="flexst"> |
69 | <h5 class="title">根据区域统计分析收件</h5> | 69 | <h5 class="title">根据区域统计分析收件</h5> |
... | @@ -75,12 +75,12 @@ | ... | @@ -75,12 +75,12 @@ |
75 | <el-card | 75 | <el-card |
76 | shadow="hover" | 76 | shadow="hover" |
77 | :body-style="{ padding: '0' }" | 77 | :body-style="{ padding: '0' }" |
78 | style="height: 270px" | 78 | style="height: 260px" |
79 | > | 79 | > |
80 | <div slot="header" class="flexst"> | 80 | <div slot="header" class="flexst"> |
81 | <h5 class="title">收件月统计</h5> | 81 | <h5 class="title">收件月统计</h5> |
82 | </div> | 82 | </div> |
83 | <ul class="workbench flexst"></ul> | 83 | <sjyue/> |
84 | </el-card> | 84 | </el-card> |
85 | </el-col> | 85 | </el-col> |
86 | </el-row> | 86 | </el-row> |
... | @@ -92,9 +92,12 @@ import { mapGetters } from "vuex"; | ... | @@ -92,9 +92,12 @@ import { mapGetters } from "vuex"; |
92 | import djlx from "./components/djlx.vue"; | 92 | import djlx from "./components/djlx.vue"; |
93 | import zszl from "./components/zszl.vue"; | 93 | import zszl from "./components/zszl.vue"; |
94 | import qytj from "./components/qytj.vue"; | 94 | import qytj from "./components/qytj.vue"; |
95 | import sjri from "./components/sjri.vue"; | ||
96 | import sjyue from "./components/sjyue.vue"; | ||
97 | import psjr from "./components/sjr.vue"; | ||
95 | 98 | ||
96 | export default { | 99 | export default { |
97 | components: {djlx,zszl,qytj}, | 100 | components: {djlx,zszl,qytj,sjri,sjyue,psjr}, |
98 | computed: { | 101 | computed: { |
99 | ...mapGetters(["dictData", "transfer"]), | 102 | ...mapGetters(["dictData", "transfer"]), |
100 | }, | 103 | }, |
... | @@ -105,48 +108,13 @@ export default { | ... | @@ -105,48 +108,13 @@ export default { |
105 | }; | 108 | }; |
106 | }, | 109 | }, |
107 | mounted() { | 110 | mounted() { |
108 | // 创建一个 ECharts 实例 | 111 | |
109 | this.chart = echarts.init(this.$refs.chart); | ||
110 | // 在 ECharts 实例中配置图表 | ||
111 | this.chart.setOption(this.getOption()); | ||
112 | }, | 112 | }, |
113 | methods: { | 113 | methods: { |
114 | getOption() { | 114 | getOption() { |
115 | return { | 115 | return { |
116 | 116 | ||
117 | tooltip: { | 117 | |
118 | trigger: "item", | ||
119 | formatter: "{a} <br/>{b}: {c} ({d}%)", | ||
120 | }, | ||
121 | series: [ | ||
122 | { | ||
123 | name: "饼图名称", | ||
124 | type: "pie", | ||
125 | radius: ["20%", "70%"], | ||
126 | avoidLabelOverlap: false, | ||
127 | label: { | ||
128 | show: false, | ||
129 | position: "center", | ||
130 | }, | ||
131 | emphasis: { | ||
132 | label: { | ||
133 | show: true, | ||
134 | fontSize: "30", | ||
135 | fontWeight: "bold", | ||
136 | }, | ||
137 | }, | ||
138 | labelLine: { | ||
139 | show: false, | ||
140 | }, | ||
141 | data: [ | ||
142 | { value: 335, name: "数据1" }, | ||
143 | { value: 310, name: "数据2" }, | ||
144 | { value: 234, name: "数据3" }, | ||
145 | { value: 135, name: "数据4" }, | ||
146 | { value: 1548, name: "数据5" }, | ||
147 | ], | ||
148 | }, | ||
149 | ], | ||
150 | }; | 118 | }; |
151 | }, | 119 | }, |
152 | 120 | ... | ... |
1 | <!-- | 1 | <!-- |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-08-25 08:59:04 | 4 | * @LastEditTime: 2023-08-25 08:59:04 |
5 | --> | 5 | --> |
6 | <template> | 6 | <template> |
7 | <div class='yhjgba'> | 7 | <div class="tjltj"> |
8 | <el-empty description="正在开发"></el-empty> | 8 | <div class="inquire"> |
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | ||
10 | <el-row> | ||
11 | <el-col :span="19"> | ||
12 | <div class="rowAc"> | ||
13 | <div | ||
14 | v-for="(item, index) in dateQuickSelection" | ||
15 | :key="index" | ||
16 | class="rowAc dateQuickItem" | ||
17 | @click="chooseDateQuick(index)" | ||
18 | > | ||
19 | {{ item.name }} | ||
20 | </div> | ||
21 | <el-date-picker | ||
22 | v-model="dateRange" | ||
23 | type="daterange" | ||
24 | value-format="yyyy-MM-dd" | ||
25 | end-placeholder="结束日期" | ||
26 | start-placeholder="开始日期" | ||
27 | :clearable="false" | ||
28 | range-separator="-" | ||
29 | class="dataRangePicker" | ||
30 | @change="chooseDateRange" | ||
31 | ></el-date-picker> | ||
32 | </div> | ||
33 | </el-col> | ||
34 | |||
35 | <el-col :span="5" class="btnColRight"> | ||
36 | <el-form-item> | ||
37 | <el-button | ||
38 | type="primary" | ||
39 | native-type="submit" | ||
40 | @click="handleSearch" | ||
41 | >查询</el-button | ||
42 | > | ||
43 | <el-button type="primary" native-type="submit" @click="derive" | ||
44 | >导出</el-button | ||
45 | > | ||
46 | </el-form-item> | ||
47 | </el-col> | ||
48 | </el-row> | ||
49 | </el-form> | ||
50 | </div> | ||
51 | <div ref="chart" style="width: 100%; height: 92%"></div> | ||
9 | </div> | 52 | </div> |
10 | </template> | 53 | </template> |
11 | <script> | 54 | <script> |
55 | import * as echarts from "echarts"; | ||
56 | export default { | ||
57 | components: {}, | ||
58 | data() { | ||
59 | return { | ||
60 | dateQuickSelection: [ | ||
61 | // 日期快捷选择列表 | ||
62 | { code: "1", name: "今日" }, | ||
63 | { code: "2", name: "昨日" }, | ||
64 | { code: "3", name: "本周" }, | ||
65 | { code: "4", name: "上周" }, | ||
66 | { code: "5", name: "本月" }, | ||
67 | { code: "6", name: "上月" }, | ||
68 | { code: "7", name: "今年" }, | ||
69 | { code: "8", name: "去年" }, | ||
70 | ], | ||
71 | chooseIndex: 0, // 日期快捷选择项索引 | ||
72 | dateRange: [], // 自定义列表 - 日期范围 | ||
73 | queryForm: {}, | ||
74 | data1: [12, 10, 15, 12, 15, 19, 15], | ||
75 | data2: [1, 2, 2, 3, 2, 3, 2], | ||
76 | data3: [], | ||
77 | xAxisData: [ | ||
78 | "赵龙龙", | ||
79 | "刘龙龙", | ||
80 | "田龙龙", | ||
81 | "任龙龙", | ||
82 | "孙龙龙", | ||
83 | "李龙龙", | ||
84 | "周龙龙", | ||
85 | ], | ||
86 | }; | ||
87 | }, | ||
88 | mounted() { | ||
89 | this.setdata(); | ||
90 | // 创建一个 ECharts 实例 | ||
91 | this.chart = echarts.init(this.$refs.chart); | ||
92 | // 在 ECharts 实例中配置图表 | ||
93 | this.chart.setOption(this.getOption()); | ||
94 | this.chooseDateQuick(0); | ||
12 | 95 | ||
13 | export default { | 96 | }, |
14 | components: {}, | 97 | methods: { |
15 | data () { | 98 | setdata() { |
99 | for (let i = 0; i < this.data1.length; i++) { | ||
100 | let sum = (this.data2[i] / this.data1[i]) * 100; | ||
101 | this.data3.push(Number(sum).toFixed(0)); | ||
102 | } | ||
103 | }, | ||
104 | // 导出 | ||
105 | derive() {}, | ||
106 | // 查询 | ||
107 | handleSearch() { | ||
108 | console.log("dateRange", this.dateRange); | ||
109 | }, | ||
110 | getOption() { | ||
16 | return { | 111 | return { |
112 | title: { | ||
113 | text: "收件与超时统计情况 ", // 主标题名称 | ||
114 | |||
115 | textStyle: { | ||
116 | //主标题文本设置 | ||
117 | fontSize: 26, //大小 | ||
118 | }, | ||
119 | |||
120 | itemGap: 3, //主副标题间距 | ||
121 | x: "center", //主副标题的水平位置 | ||
122 | y: "top", //主副标题的垂直位置 | ||
123 | }, | ||
124 | tooltip: { | ||
125 | trigger: "item", | ||
126 | textStyle: { | ||
127 | fontSize: 14, | ||
128 | lineHeight: 22, | ||
129 | }, | ||
130 | // 如果需要自定义 tooltip样式,需要使用formatter | ||
131 | formatter: (params) => { | ||
132 | console.log("paramsssssssssssssssssss", params); | ||
133 | return `<div font-size: 14px;line-height: 24px> | ||
134 | ${params.seriesName} | ||
135 | <br> | ||
136 | <span font-size: 16px; font-weight: 600;"> ${params.name}: ${ | ||
137 | Number(params.value).toFixed(2) + "%" | ||
138 | } </span> | ||
139 | |||
140 | |||
141 | </div>`; | ||
142 | }, | ||
143 | }, | ||
144 | |||
145 | legend: { | ||
146 | data: ["办件数", "超时数", "超时时间"], | ||
147 | bottom: "3%", | ||
148 | itemWidth: 20, | ||
149 | itemHeight: 20, | ||
150 | //文字样式 | ||
151 | textStyle: { | ||
152 | fontSize: 17, //设置文字大小 | ||
153 | }, | ||
154 | }, | ||
155 | grid: [{ right: "3%", top: "10%", bottom: "15%", left: "3%" }], | ||
156 | color: ["#94ae0a", "#115fa6", "#a61120"], | ||
157 | xAxis: { | ||
158 | data: this.xAxisData, | ||
159 | axisLabel: { | ||
160 | // 轴文字 | ||
161 | fontSize: 18, | ||
162 | }, | ||
163 | }, | ||
164 | yAxis: { | ||
165 | axisLabel: { | ||
166 | // 轴文字 | ||
167 | fontSize: 18, | ||
168 | }, | ||
169 | }, | ||
170 | series: [ | ||
171 | { | ||
172 | name: "办件数", | ||
173 | type: "bar", | ||
174 | data: this.data1, | ||
175 | label: { | ||
176 | normal: { | ||
177 | show: true, | ||
178 | fontSize: 13, | ||
179 | position: "top", | ||
180 | }, | ||
181 | }, | ||
182 | }, | ||
183 | { | ||
184 | name: "超时数", | ||
185 | type: "bar", | ||
186 | data: this.data2, | ||
187 | label: { | ||
188 | normal: { | ||
189 | show: true, | ||
190 | fontSize: 13, | ||
191 | position: "top", | ||
192 | }, | ||
193 | }, | ||
194 | }, | ||
195 | { | ||
196 | name: "超时时间", | ||
197 | type: "bar", | ||
198 | data: this.data3, | ||
199 | label: { | ||
200 | normal: { | ||
201 | show: true, | ||
202 | fontSize: 13, | ||
203 | position: "top", | ||
204 | }, | ||
205 | }, | ||
206 | }, | ||
207 | ], | ||
208 | }; | ||
209 | }, | ||
210 | // 日期快捷选择事件 | ||
211 | chooseDateQuick(index) { | ||
212 | this.chooseIndex = index; | ||
213 | var tempCode = this.dateQuickSelection.find( | ||
214 | (ele) => this.chooseIndex === Number(ele.code) - 1 | ||
215 | ).code; | ||
216 | var tempDate = new Date(); | ||
217 | var year = tempDate.getFullYear(); | ||
218 | var month = tempDate.getMonth(); | ||
219 | var day = tempDate.getDate(); | ||
220 | var week = tempDate.getDay(); | ||
221 | this.dateRange = []; | ||
222 | if (tempCode === "1") { | ||
223 | // 今日 | ||
224 | this.dateRange.push( | ||
225 | this.formatDate(tempDate), | ||
226 | this.formatDate(tempDate) | ||
227 | ); | ||
228 | } else if (tempCode === "2") { | ||
229 | // 昨日 | ||
230 | this.dateRange.push( | ||
231 | this.jumpNumDay(tempDate, -1, "-"), | ||
232 | this.jumpNumDay(tempDate, -1, "-") | ||
233 | ); | ||
234 | } else if (tempCode === "3") { | ||
235 | // 本周 | ||
236 | this.dateRange.push( | ||
237 | this.formatDate(new Date(year, month, day - week + 1)), | ||
238 | this.formatDate(tempDate) | ||
239 | ); | ||
240 | } else if (tempCode === "4") { | ||
241 | // 上周 | ||
242 | this.dateRange.push( | ||
243 | this.formatDate(new Date(year, month, day - week - 6)), | ||
244 | this.formatDate(new Date(year, month, day - week)) | ||
245 | ); | ||
246 | } else if (tempCode === "5") { | ||
247 | // 本月 | ||
248 | this.dateRange.push( | ||
249 | this.formatDate(new Date(year, month, 1)), | ||
250 | this.formatDate(tempDate) | ||
251 | ); | ||
252 | } else if (tempCode === "6") { | ||
253 | // 上月 | ||
254 | this.dateRange.push( | ||
255 | this.formatDate(new Date(year, month - 1, 1)), | ||
256 | this.formatDate(new Date(year, month, 0)) | ||
257 | ); | ||
258 | } else if (tempCode === "7") { | ||
259 | // 今年 | ||
260 | this.dateRange.push( | ||
261 | this.formatDate(new Date(year, 0, 1)), | ||
262 | this.formatDate(tempDate) | ||
263 | ); | ||
264 | } else if (tempCode === "8") { | ||
265 | // 去年 | ||
266 | this.dateRange.push( | ||
267 | this.formatDate(new Date(year - 1, 0, 1)), | ||
268 | this.formatDate(new Date(year - 1, 11, 31)) | ||
269 | ); | ||
17 | } | 270 | } |
18 | } | 271 | }, |
19 | } | 272 | // 日期范围选择器事件 |
273 | chooseDateRange() { | ||
274 | this.chooseIndex = null; | ||
275 | }, | ||
276 | // 数字转换 | ||
277 | changeNum(num) { | ||
278 | if (num >= 10) { | ||
279 | return num; | ||
280 | } else { | ||
281 | return "0" + num; | ||
282 | } | ||
283 | }, | ||
284 | // 格式化日期 | ||
285 | formatDate(date) { | ||
286 | var year = date.getFullYear(); | ||
287 | var month = this.changeNum(date.getMonth() + 1); | ||
288 | var day = this.changeNum(date.getDate()); | ||
289 | return `${year}-${month}-${day}`; | ||
290 | }, | ||
291 | // 某日期向前/向后num天 | ||
292 | jumpNumDay(date, num, linkStr = '-') { | ||
293 | date = new Date(date.getTime() + (num * 24 * 60 * 60 * 1000)) | ||
294 | return date.getFullYear() + linkStr + this.changeNum(date.getMonth() + 1) + linkStr + this.changeNum(date.getDate()) | ||
295 | }, | ||
296 | }, | ||
297 | }; | ||
20 | </script> | 298 | </script> |
21 | <style scoped lang='scss'> | ||
22 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
299 | <style scoped lang="scss"> | ||
300 | .tjltj { | ||
301 | width: 100%; | ||
302 | height: 100%; | ||
303 | .inquire { | ||
304 | width: 100%; | ||
305 | height: 40px; | ||
306 | padding-top: 3px; | ||
307 | background-color: #ffffff; | ||
308 | margin-bottom: 10px; | ||
309 | |||
310 | |||
311 | } | ||
312 | .rowAc { | ||
313 | margin-left: 10px; | ||
314 | display: flex; | ||
315 | justify-content: flex-start; | ||
316 | align-items: center; | ||
317 | } | ||
318 | .dateQuickItem { | ||
319 | padding: 1px 8px; | ||
320 | margin-right: 16px; | ||
321 | color: #3c4353; | ||
322 | font-size: 14px; | ||
323 | line-height: 22px; | ||
324 | font-weight: 400; | ||
325 | border: 1px solid #dcdee0; | ||
326 | border-radius: 16px; | ||
327 | background: #ffffff; | ||
328 | cursor: pointer; | ||
329 | box-sizing: border-box; | ||
330 | } | ||
331 | .dateQuickItem:hover, | ||
332 | .dateQuickItem.active { | ||
333 | color: #1b58f4; | ||
334 | border: 1px solid #1b58f4; | ||
335 | } | ||
336 | .dateQuickItem.disabled { | ||
337 | color: #c8c9cc; | ||
338 | border: 1px solid #dcdee0; | ||
339 | background: #f7f8f9; | ||
340 | cursor: not-allowed; // 禁止鼠标事件 | ||
341 | } | ||
342 | .dataRangePicker { | ||
343 | width: 240px !important; | ||
344 | height: 32px !important; | ||
345 | } | ||
346 | .dataRangePicker.el-date-editor .el-range-separator { | ||
347 | line-height: 24px; | ||
348 | } | ||
349 | .dataRangePicker.el-date-editor .el-range__icon { | ||
350 | margin-left: 0px; | ||
351 | line-height: 24px; | ||
352 | } | ||
353 | .dataRangePicker.el-date-editor .el-range-input { | ||
354 | width: 95px; | ||
355 | } | ||
356 | } | ||
357 | </style> | ... | ... |
1 | <!-- | 1 | <!-- |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-08-25 08:59:04 | 4 | * @LastEditTime: 2023-08-25 08:59:04 |
5 | --> | 5 | --> |
6 | <template> | 6 | <template> |
7 | <div class='yhjgba'> | 7 | <div class="tjltj"> |
8 | <el-empty description="正在开发"></el-empty> | 8 | <div class="inquire"> |
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | ||
10 | <el-row> | ||
11 | <el-col :span="19"> | ||
12 | <div class="rowAc"> | ||
13 | <div | ||
14 | v-for="(item, index) in dateQuickSelection" | ||
15 | :key="index" | ||
16 | class="rowAc dateQuickItem" | ||
17 | @click="chooseDateQuick(index)" | ||
18 | > | ||
19 | {{ item.name }} | ||
20 | </div> | ||
21 | <el-date-picker | ||
22 | v-model="dateRange" | ||
23 | type="daterange" | ||
24 | value-format="yyyy-MM-dd" | ||
25 | end-placeholder="结束日期" | ||
26 | start-placeholder="开始日期" | ||
27 | :clearable="false" | ||
28 | range-separator="-" | ||
29 | class="dataRangePicker" | ||
30 | @change="chooseDateRange" | ||
31 | ></el-date-picker> | ||
32 | </div> | ||
33 | </el-col> | ||
34 | |||
35 | <el-col :span="5" class="btnColRight"> | ||
36 | <el-form-item> | ||
37 | <el-button | ||
38 | type="primary" | ||
39 | native-type="submit" | ||
40 | @click="handleSearch" | ||
41 | >查询</el-button | ||
42 | > | ||
43 | <el-button type="primary" native-type="submit" @click="derive" | ||
44 | >导出</el-button | ||
45 | > | ||
46 | </el-form-item> | ||
47 | </el-col> | ||
48 | </el-row> | ||
49 | </el-form> | ||
50 | </div> | ||
51 | <div ref="chart" style="width: 100%; height: 92%"></div> | ||
9 | </div> | 52 | </div> |
10 | </template> | 53 | </template> |
11 | <script> | 54 | <script> |
55 | import * as echarts from "echarts"; | ||
56 | export default { | ||
57 | components: {}, | ||
58 | data() { | ||
59 | return { | ||
60 | dateQuickSelection: [ | ||
61 | // 日期快捷选择列表 | ||
62 | { code: "1", name: "今日" }, | ||
63 | { code: "2", name: "昨日" }, | ||
64 | { code: "3", name: "本周" }, | ||
65 | { code: "4", name: "上周" }, | ||
66 | { code: "5", name: "本月" }, | ||
67 | { code: "6", name: "上月" }, | ||
68 | { code: "7", name: "今年" }, | ||
69 | { code: "8", name: "去年" }, | ||
70 | ], | ||
71 | chooseIndex: 0, // 日期快捷选择项索引 | ||
72 | dateRange: [], // 自定义列表 - 日期范围 | ||
73 | queryForm: {}, | ||
74 | data1: [23, 45, 23, 11, 15, 19, 35], | ||
75 | data2: [1, 4, 1, 3, 2, 3, 4], | ||
76 | data3: [], | ||
77 | xAxisData: [ | ||
78 | "赵红红", | ||
79 | "刘红红", | ||
80 | "田红红", | ||
81 | "任红红", | ||
82 | "孙红红", | ||
83 | "李红红", | ||
84 | "周红红", | ||
85 | ], | ||
86 | }; | ||
87 | }, | ||
88 | mounted() { | ||
89 | this.setdata(); | ||
90 | // 创建一个 ECharts 实例 | ||
91 | this.chart = echarts.init(this.$refs.chart); | ||
92 | // 在 ECharts 实例中配置图表 | ||
93 | this.chart.setOption(this.getOption()); | ||
94 | this.chooseDateQuick(0); | ||
12 | 95 | ||
13 | export default { | 96 | }, |
14 | components: {}, | 97 | methods: { |
15 | data () { | 98 | setdata() { |
99 | for (let i = 0; i < this.data1.length; i++) { | ||
100 | let sum = (this.data2[i] / this.data1[i]) * 100; | ||
101 | this.data3.push(Number(sum).toFixed(0)); | ||
102 | } | ||
103 | }, | ||
104 | // 导出 | ||
105 | derive() {}, | ||
106 | // 查询 | ||
107 | handleSearch() { | ||
108 | console.log("dateRange", this.dateRange); | ||
109 | }, | ||
110 | getOption() { | ||
16 | return { | 111 | return { |
112 | title: { | ||
113 | text: "收件与退件统计情况 ", // 主标题名称 | ||
114 | |||
115 | textStyle: { | ||
116 | //主标题文本设置 | ||
117 | fontSize: 26, //大小 | ||
118 | }, | ||
119 | |||
120 | itemGap: 3, //主副标题间距 | ||
121 | x: "center", //主副标题的水平位置 | ||
122 | y: "top", //主副标题的垂直位置 | ||
123 | }, | ||
124 | tooltip: { | ||
125 | trigger: "item", | ||
126 | textStyle: { | ||
127 | fontSize: 14, | ||
128 | lineHeight: 22, | ||
129 | }, | ||
130 | // 如果需要自定义 tooltip样式,需要使用formatter | ||
131 | formatter: (params) => { | ||
132 | return `<div font-size: 14px;line-height: 24px> | ||
133 | ${params.seriesName} | ||
134 | <br> | ||
135 | <span font-size: 16px; font-weight: 600;"> ${params.name}: ${ | ||
136 | Number(params.value).toFixed(2) + "%" | ||
137 | } </span> | ||
138 | |||
139 | |||
140 | </div>`; | ||
141 | }, | ||
142 | }, | ||
143 | |||
144 | legend: { | ||
145 | data: ["收件", "退件", "退件率"], | ||
146 | bottom: "3%", | ||
147 | itemWidth: 20, | ||
148 | itemHeight: 20, | ||
149 | //文字样式 | ||
150 | textStyle: { | ||
151 | fontSize: 17, //设置文字大小 | ||
152 | }, | ||
153 | }, | ||
154 | grid: [{ right: "3%", top: "10%", bottom: "15%", left: "3%" }], | ||
155 | color: ["#94ae0a", "#115fa6", "#a61120"], | ||
156 | xAxis: { | ||
157 | data: this.xAxisData, | ||
158 | axisLabel: { | ||
159 | // 轴文字 | ||
160 | fontSize: 18, | ||
161 | }, | ||
162 | }, | ||
163 | yAxis: { | ||
164 | axisLabel: { | ||
165 | // 轴文字 | ||
166 | fontSize: 18, | ||
167 | }, | ||
168 | }, | ||
169 | series: [ | ||
170 | { | ||
171 | name: "收件", | ||
172 | type: "bar", | ||
173 | data: this.data1, | ||
174 | label: { | ||
175 | normal: { | ||
176 | show: true, | ||
177 | fontSize: 13, | ||
178 | position: "top", | ||
179 | }, | ||
180 | }, | ||
181 | }, | ||
182 | { | ||
183 | name: "退件", | ||
184 | type: "bar", | ||
185 | data: this.data2, | ||
186 | label: { | ||
187 | normal: { | ||
188 | show: true, | ||
189 | fontSize: 13, | ||
190 | position: "top", | ||
191 | }, | ||
192 | }, | ||
193 | }, | ||
194 | { | ||
195 | name: "退件率", | ||
196 | type: "bar", | ||
197 | data: this.data3, | ||
198 | label: { | ||
199 | normal: { | ||
200 | show: true, | ||
201 | fontSize: 13, | ||
202 | position: "top", | ||
203 | }, | ||
204 | }, | ||
205 | }, | ||
206 | ], | ||
207 | }; | ||
208 | }, | ||
209 | // 日期快捷选择事件 | ||
210 | chooseDateQuick(index) { | ||
211 | this.chooseIndex = index; | ||
212 | var tempCode = this.dateQuickSelection.find( | ||
213 | (ele) => this.chooseIndex === Number(ele.code) - 1 | ||
214 | ).code; | ||
215 | var tempDate = new Date(); | ||
216 | var year = tempDate.getFullYear(); | ||
217 | var month = tempDate.getMonth(); | ||
218 | var day = tempDate.getDate(); | ||
219 | var week = tempDate.getDay(); | ||
220 | this.dateRange = []; | ||
221 | if (tempCode === "1") { | ||
222 | // 今日 | ||
223 | this.dateRange.push( | ||
224 | this.formatDate(tempDate), | ||
225 | this.formatDate(tempDate) | ||
226 | ); | ||
227 | } else if (tempCode === "2") { | ||
228 | // 昨日 | ||
229 | this.dateRange.push( | ||
230 | this.jumpNumDay(tempDate, -1, "-"), | ||
231 | this.jumpNumDay(tempDate, -1, "-") | ||
232 | ); | ||
233 | } else if (tempCode === "3") { | ||
234 | // 本周 | ||
235 | this.dateRange.push( | ||
236 | this.formatDate(new Date(year, month, day - week + 1)), | ||
237 | this.formatDate(tempDate) | ||
238 | ); | ||
239 | } else if (tempCode === "4") { | ||
240 | // 上周 | ||
241 | this.dateRange.push( | ||
242 | this.formatDate(new Date(year, month, day - week - 6)), | ||
243 | this.formatDate(new Date(year, month, day - week)) | ||
244 | ); | ||
245 | } else if (tempCode === "5") { | ||
246 | // 本月 | ||
247 | this.dateRange.push( | ||
248 | this.formatDate(new Date(year, month, 1)), | ||
249 | this.formatDate(tempDate) | ||
250 | ); | ||
251 | } else if (tempCode === "6") { | ||
252 | // 上月 | ||
253 | this.dateRange.push( | ||
254 | this.formatDate(new Date(year, month - 1, 1)), | ||
255 | this.formatDate(new Date(year, month, 0)) | ||
256 | ); | ||
257 | } else if (tempCode === "7") { | ||
258 | // 今年 | ||
259 | this.dateRange.push( | ||
260 | this.formatDate(new Date(year, 0, 1)), | ||
261 | this.formatDate(tempDate) | ||
262 | ); | ||
263 | } else if (tempCode === "8") { | ||
264 | // 去年 | ||
265 | this.dateRange.push( | ||
266 | this.formatDate(new Date(year - 1, 0, 1)), | ||
267 | this.formatDate(new Date(year - 1, 11, 31)) | ||
268 | ); | ||
17 | } | 269 | } |
18 | } | 270 | }, |
19 | } | 271 | // 日期范围选择器事件 |
272 | chooseDateRange() { | ||
273 | this.chooseIndex = null; | ||
274 | }, | ||
275 | // 数字转换 | ||
276 | changeNum(num) { | ||
277 | if (num >= 10) { | ||
278 | return num; | ||
279 | } else { | ||
280 | return "0" + num; | ||
281 | } | ||
282 | }, | ||
283 | // 格式化日期 | ||
284 | formatDate(date) { | ||
285 | var year = date.getFullYear(); | ||
286 | var month = this.changeNum(date.getMonth() + 1); | ||
287 | var day = this.changeNum(date.getDate()); | ||
288 | return `${year}-${month}-${day}`; | ||
289 | }, | ||
290 | // 某日期向前/向后num天 | ||
291 | jumpNumDay(date, num, linkStr = '-') { | ||
292 | date = new Date(date.getTime() + (num * 24 * 60 * 60 * 1000)) | ||
293 | return date.getFullYear() + linkStr + this.changeNum(date.getMonth() + 1) + linkStr + this.changeNum(date.getDate()) | ||
294 | }, | ||
295 | }, | ||
296 | }; | ||
20 | </script> | 297 | </script> |
21 | <style scoped lang='scss'> | ||
22 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
298 | <style scoped lang="scss"> | ||
299 | .tjltj { | ||
300 | width: 100%; | ||
301 | height: 100%; | ||
302 | .inquire { | ||
303 | width: 100%; | ||
304 | height: 40px; | ||
305 | padding-top: 3px; | ||
306 | background-color: #ffffff; | ||
307 | margin-bottom: 10px; | ||
308 | } | ||
309 | .rowAc { | ||
310 | margin-left: 10px; | ||
311 | display: flex; | ||
312 | justify-content: flex-start; | ||
313 | align-items: center; | ||
314 | } | ||
315 | .dateQuickItem { | ||
316 | padding: 1px 8px; | ||
317 | margin-right: 16px; | ||
318 | color: #3c4353; | ||
319 | font-size: 14px; | ||
320 | line-height: 22px; | ||
321 | font-weight: 400; | ||
322 | border: 1px solid #dcdee0; | ||
323 | border-radius: 16px; | ||
324 | background: #ffffff; | ||
325 | cursor: pointer; | ||
326 | box-sizing: border-box; | ||
327 | } | ||
328 | .dateQuickItem:hover, | ||
329 | .dateQuickItem.active { | ||
330 | color: #1b58f4; | ||
331 | border: 1px solid #1b58f4; | ||
332 | } | ||
333 | .dateQuickItem.disabled { | ||
334 | color: #c8c9cc; | ||
335 | border: 1px solid #dcdee0; | ||
336 | background: #f7f8f9; | ||
337 | cursor: not-allowed; // 禁止鼠标事件 | ||
338 | } | ||
339 | .dataRangePicker { | ||
340 | width: 240px !important; | ||
341 | height: 32px !important; | ||
342 | } | ||
343 | .dataRangePicker.el-date-editor .el-range-separator { | ||
344 | line-height: 24px; | ||
345 | } | ||
346 | .dataRangePicker.el-date-editor .el-range__icon { | ||
347 | margin-left: 0px; | ||
348 | line-height: 24px; | ||
349 | } | ||
350 | .dataRangePicker.el-date-editor .el-range-input { | ||
351 | width: 95px; | ||
352 | } | ||
353 | } | ||
354 | </style> | ... | ... |
-
Please register or sign in to post a comment