5e2d9da73bf7bd60e7afafec2c456a8216c3c7ee.svn-base 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519
  1. <template>
  2. <div class="page-header-index-wide">
  3. <a-row :gutter="24">
  4. <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">
  5. <chart-card :loading="loading" title="受理量" :total="cardCount.sll | NumberFormat">
  6. <a-tooltip title="指标说明" slot="action">
  7. <a-icon type="info-circle-o" />
  8. </a-tooltip>
  9. <div>
  10. <mini-area :data-source="chartData.sll" />
  11. </div>
  12. <template slot="footer">今日受理量:<span>{{ todaySll }}</span></template>
  13. </chart-card>
  14. </a-col>
  15. <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">
  16. <chart-card :loading="loading" title="办结量" :total="cardCount.bjl | NumberFormat">
  17. <a-tooltip title="指标说明" slot="action">
  18. <a-icon type="info-circle-o" />
  19. </a-tooltip>
  20. <div>
  21. <mini-area :data-source="chartData.bjl"/>
  22. </div>
  23. <template slot="footer">今日办结量:<span>{{ todayBjl }}</span></template>
  24. </chart-card>
  25. </a-col>
  26. <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">
  27. <chart-card :loading="loading" title="用户受理量" :total="cardCount.isll | NumberFormat">
  28. <a-tooltip title="指标说明" slot="action">
  29. <a-icon type="info-circle-o" />
  30. </a-tooltip>
  31. <div>
  32. <mini-bar :datasource="chartData.isll" :height="50"/>
  33. </div>
  34. <template slot="footer">用户今日受理量:<span>{{ todayISll }}</span></template>
  35. </chart-card>
  36. </a-col>
  37. <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">
  38. <chart-card :loading="loading" title="用户办结量" :total="cardCount.ibjl | NumberFormat">
  39. <a-tooltip title="指标说明" slot="action">
  40. <a-icon type="info-circle-o" />
  41. </a-tooltip>
  42. <div>
  43. <mini-bar :datasource="chartData.ibjl" :height="50"/>
  44. </div>
  45. <template slot="footer">用户今日办结量:<span>{{ todayIBjl }}</span></template>
  46. </chart-card>
  47. </a-col>
  48. </a-row>
  49. <a-card :loading="loading" :bordered="false" :body-style="{padding: '0'}">
  50. <div class="salesCard">
  51. <a-tabs default-active-key="1" size="large" :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}">
  52. <div class="extra-wrapper" slot="tabBarExtraContent">
  53. <div class="extra-item">
  54. <a>今日</a>
  55. <a>本周</a>
  56. <a>本月</a>
  57. <a>本年</a>
  58. </div>
  59. <a-range-picker :style="{width: '256px'}" />
  60. </div>
  61. <a-tab-pane loading="true" tab="受理监管" key="1">
  62. <a-row>
  63. <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24">
  64. <index-bar title="受理量统计" />
  65. </a-col>
  66. <a-col :xl="8" :lg="12" :md="12" :sm="24" :xs="24">
  67. <a-card title="快速开始 / 便捷导航" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
  68. <div class="item-group">
  69. <a-row>
  70. <a-col :class="'more-btn'" :span="12" v-for="(item,index) in registerTypeList" :key=" 'registerType'+index ">
  71. <a-button @click="goPage(index)" style="margin-bottom:10px" size="small" type="primary" ghost>{{ item.text }}</a-button>
  72. </a-col>
  73. </a-row>
  74. </div>
  75. </a-card>
  76. </a-col>
  77. </a-row>
  78. </a-tab-pane>
  79. <a-tab-pane tab="交互监管" key="2">
  80. <a-row>
  81. <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24">
  82. <bar-multid :sourceData="jhjgData" :fields="jhjgFields" title="平台与部门交互量统计"></bar-multid>
  83. </a-col>
  84. <a-col :xl="8" :lg="12" :md="12" :sm="24" :xs="24">
  85. <a-card title="快速开始 / 便捷导航" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
  86. <div class="item-group">
  87. <a-row>
  88. <a-col :class="'more-btn'" :span="12" v-for="(item,index) in registerTypeList" :key=" 'registerType'+index ">
  89. <a-button @click="goPage(index)" style="margin-bottom:10px" size="small" type="primary" ghost>{{ item.text }}</a-button>
  90. </a-col>
  91. </a-row>
  92. </div>
  93. </a-card>
  94. </a-col>
  95. </a-row>
  96. </a-tab-pane>
  97. <a-tab-pane tab="存储监管" key="4">
  98. <a-row>
  99. <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24">
  100. <a-row>
  101. <template v-if="diskInfo && diskInfo.length>0">
  102. <a-col :span="12" v-for="(item,index) in diskInfo" :key=" 'diskInfo'+index ">
  103. <dash-chart-demo :title="item.name" :datasource="item.restPPT"></dash-chart-demo>
  104. </a-col>
  105. </template>
  106. </a-row>
  107. </a-col>
  108. <a-col :xl="8" :lg="12" :md="12" :sm="24" :xs="24">
  109. <a-card title="快速开始 / 便捷导航" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
  110. <div class="item-group">
  111. <a-row>
  112. <a-col :class="'more-btn'" :span="10" v-for="(item,index) in registerTypeList" :key=" 'registerType'+index ">
  113. <a-button @click="goPage(index)" style="margin-bottom:10px" size="small" type="primary" ghost>{{ item.text }}</a-button>
  114. </a-col>
  115. </a-row>
  116. </div>
  117. </a-card>
  118. </a-col>
  119. </a-row>
  120. </a-tab-pane>
  121. </a-tabs>
  122. </div>
  123. </a-card>
  124. <a-row :gutter="12">
  125. <a-card :loading="loading" :class="{ 'anty-list-cust':true }" :bordered="false" :style="{ marginTop: '24px' }">
  126. <a-tabs v-model="indexBottomTab" size="large" :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}">
  127. <div class="extra-wrapper" slot="tabBarExtraContent">
  128. <a-radio-group v-model="indexRegisterType" @change="changeRegisterType">
  129. <a-radio-button value="转移登记">转移登记</a-radio-button>
  130. <a-radio-button value="抵押登记">抵押登记</a-radio-button>
  131. <a-radio-button value="">所有</a-radio-button>
  132. </a-radio-group>
  133. </div>
  134. <a-tab-pane loading="true" tab="业务流程限时监管" key="1">
  135. <a-table :dataSource="dataSource1" size="default" rowKey="id" :columns="columns" :pagination="ipagination1" @change="tableChange1">
  136. <template slot="flowRate" slot-scope="text, record, index">
  137. <a-progress :strokeColor="getPercentColor(record.flowRate)" :format="getPercentFormat" :percent="getFlowRateNumber(record.flowRate)" style="width:80px" />
  138. </template>
  139. </a-table>
  140. </a-tab-pane>
  141. <a-tab-pane loading="true" tab="业务节点限时监管" key="2">
  142. <a-table :dataSource="dataSource2" size="default" rowKey="id" :columns="columns2" :pagination="ipagination2" @change="tableChange2">
  143. <template slot="flowRate" slot-scope="text, record, index">
  144. <span style="color: red;">{{ record.flowRate }}小时</span>
  145. </template>
  146. </a-table>
  147. </a-tab-pane>
  148. </a-tabs>
  149. </a-card>
  150. </a-row>
  151. </div>
  152. </template>
  153. <script>
  154. import ACol from "ant-design-vue/es/grid/Col"
  155. import ATooltip from "ant-design-vue/es/tooltip/Tooltip"
  156. import ChartCard from '@/components/ChartCard'
  157. import MiniBar from '@/components/chart/MiniBar'
  158. import MiniArea from '@/components/chart/MiniArea'
  159. import IndexBar from '@/components/chart/IndexBar'
  160. import BarMultid from '@/components/chart/BarMultid'
  161. import DashChartDemo from '@/components/chart/DashChartDemo'
  162. const jhjgData = [
  163. { type: '房管', '1月': 900, '2月': 1120, '3月': 1380, '4月': 1480, '5月': 1450, '6月': 1100, '7月':1300, '8月':900,'9月':1000 ,'10月':1200 ,'11月':600 ,'12月':900 },
  164. { type: '税务', '1月':1200, '2月': 1500, '3月': 1980, '4月': 2000, '5月': 1000, '6月': 600, '7月':900, '8月':1100,'9月':1300 ,'10月':2000 ,'11月':900 ,'12月':1100 },
  165. { type: '不动产', '1月':2000, '2月': 1430, '3月': 1300, '4月': 1400, '5月': 900, '6月': 500, '7月':600, '8月':1000,'9月':600 ,'10月':1000 ,'11月':1500 ,'12月':1200 }
  166. ]
  167. const jhjgFields=[
  168. '1月','2月','3月','4月','5月','6月',
  169. '7月','8月','9月','10月','11月','12月'
  170. ]
  171. const xljgData = [
  172. {type:'一月',"房管":1.12,"税务":1.55,"不动产":1.2},
  173. {type:'二月',"房管":1.65,"税务":1.32,"不动产":1.42},
  174. {type:'三月',"房管":1.85,"税务":1.1,"不动产":1.5},
  175. {type:'四月',"房管":1.33,"税务":1.63,"不动产":1.4},
  176. {type:'五月',"房管":1.63,"税务":1.8,"不动产":1.7},
  177. {type:'六月',"房管":1.85,"税务":1.98,"不动产":1.8},
  178. {type:'七月',"房管":1.98,"税务":1.5,"不动产":1.76},
  179. {type:'八月',"房管":1.48,"税务":1.2,"不动产":1.3},
  180. {type:'九月',"房管":1.41,"税务":1.9,"不动产":1.6},
  181. {type:'十月',"房管":1.1,"税务":1.1,"不动产":1.4},
  182. {type:'十一月',"房管":1.85,"税务":1.6,"不动产":1.5},
  183. {type:'十二月',"房管":1.5,"税务":1.4,"不动产":1.3}
  184. ]
  185. const xljgFields=["房管","税务","不动产"]
  186. const dataCol1 = [{
  187. title: '业务号',
  188. align:"center",
  189. dataIndex: 'reBizCode'
  190. },{
  191. title: '业务类型',
  192. align:"center",
  193. dataIndex: 'type'
  194. },{
  195. title: '受理人',
  196. align:"center",
  197. dataIndex: 'acceptBy'
  198. },{
  199. title: '受理时间',
  200. align:"center",
  201. dataIndex: 'acceptDate'
  202. },{
  203. title: '当前节点',
  204. align:"center",
  205. dataIndex: 'curNode'
  206. },{
  207. title: '办理时长',
  208. align:"center",
  209. dataIndex: 'flowRate',
  210. scopedSlots: { customRender: 'flowRate' }
  211. }];
  212. const dataSource1=[
  213. {reBizCode:"1",type:"转移登记",acceptBy:'张三',acceptDate:"2019-01-22",curNode:"任务分派",flowRate:60},
  214. {reBizCode:"2",type:"抵押登记",acceptBy:'李四',acceptDate:"2019-01-23",curNode:"领导审核",flowRate:30},
  215. {reBizCode:"3",type:"转移登记",acceptBy:'王武',acceptDate:"2019-01-25",curNode:"任务处理",flowRate:20},
  216. {reBizCode:"4",type:"转移登记",acceptBy:'赵楼',acceptDate:"2019-11-22",curNode:"部门审核",flowRate:80},
  217. {reBizCode:"5",type:"转移登记",acceptBy:'钱就',acceptDate:"2019-12-12",curNode:"任务分派",flowRate:90},
  218. {reBizCode:"6",type:"转移登记",acceptBy:'孙吧',acceptDate:"2019-03-06",curNode:"任务处理",flowRate:10},
  219. {reBizCode:"7",type:"抵押登记",acceptBy:'周大',acceptDate:"2019-04-13",curNode:"任务分派",flowRate:100},
  220. {reBizCode:"8",type:"抵押登记",acceptBy:'吴二',acceptDate:"2019-05-09",curNode:"任务上报",flowRate:50},
  221. {reBizCode:"9",type:"抵押登记",acceptBy:'郑爽',acceptDate:"2019-07-12",curNode:"任务处理",flowRate:63},
  222. {reBizCode:"20",type:"抵押登记",acceptBy:'林有',acceptDate:"2019-12-12",curNode:"任务打回",flowRate:59},
  223. {reBizCode:"11",type:"转移登记",acceptBy:'码云',acceptDate:"2019-09-10",curNode:"任务签收",flowRate:87},
  224. ]
  225. const dataCol2 = [{
  226. title: '业务号',
  227. align:"center",
  228. dataIndex: 'reBizCode'
  229. },{
  230. title: '受理人',
  231. align:"center",
  232. dataIndex: 'acceptBy'
  233. },{
  234. title: '发起时间',
  235. align:"center",
  236. dataIndex: 'acceptDate'
  237. },{
  238. title: '当前节点',
  239. align:"center",
  240. dataIndex: 'curNode'
  241. },{
  242. title: '超时时间',
  243. align:"center",
  244. dataIndex: 'flowRate',
  245. scopedSlots: { customRender: 'flowRate' }
  246. }];
  247. const dataSource2=[
  248. {reBizCode:"A001",type:"转移登记",acceptBy:'张四',acceptDate:"2019-01-22",curNode:"任务分派",flowRate:12},
  249. {reBizCode:"A002",type:"抵押登记",acceptBy:'李吧',acceptDate:"2019-01-23",curNode:"任务签收",flowRate:3},
  250. {reBizCode:"A003",type:"转移登记",acceptBy:'王三',acceptDate:"2019-01-25",curNode:"任务处理",flowRate:24},
  251. {reBizCode:"A004",type:"转移登记",acceptBy:'赵二',acceptDate:"2019-11-22",curNode:"部门审核",flowRate:10},
  252. {reBizCode:"A005",type:"转移登记",acceptBy:'钱大',acceptDate:"2019-12-12",curNode:"任务签收",flowRate:8},
  253. {reBizCode:"A006",type:"转移登记",acceptBy:'孙就',acceptDate:"2019-03-06",curNode:"任务处理",flowRate:10},
  254. {reBizCode:"A007",type:"抵押登记",acceptBy:'周晕',acceptDate:"2019-04-13",curNode:"部门审核",flowRate:24},
  255. {reBizCode:"A008",type:"抵押登记",acceptBy:'吴有',acceptDate:"2019-05-09",curNode:"部门审核",flowRate:30},
  256. {reBizCode:"A009",type:"抵押登记",acceptBy:'郑武',acceptDate:"2019-07-12",curNode:"任务分派",flowRate:1},
  257. {reBizCode:"A0010",type:"抵押登记",acceptBy:'林爽',acceptDate:"2019-12-12",curNode:"部门审核",flowRate:16},
  258. {reBizCode:"A0011",type:"转移登记",acceptBy:'码楼',acceptDate:"2019-09-10",curNode:"部门审核",flowRate:7},
  259. ]
  260. export default {
  261. name: "IndexBdc",
  262. components: {
  263. ATooltip,
  264. ACol,
  265. ChartCard,
  266. MiniArea,
  267. MiniBar,
  268. DashChartDemo,
  269. BarMultid,
  270. IndexBar
  271. },
  272. data() {
  273. return {
  274. loading: true,
  275. cardCount:{
  276. sll:100,
  277. bjl:87,
  278. isll:15,
  279. ibjl:9
  280. },
  281. todaySll:60,
  282. todayBjl:54,
  283. todayISll:13,
  284. todayIBjl:7,
  285. chartData:{
  286. sll:[],
  287. bjl:[],
  288. isll:[],
  289. ibjl:[]
  290. },
  291. jhjgFields,
  292. jhjgData,
  293. xljgData,
  294. xljgFields,
  295. diskInfo:[
  296. {name:"C盘",restPPT:7},
  297. {name:"D盘",restPPT:5}
  298. ],
  299. registerTypeList:[{
  300. text:"业务受理"
  301. },{
  302. text:"业务管理"
  303. },{
  304. text:"文件管理"
  305. },{
  306. text:"信息查询"
  307. }],
  308. dataSource1:[],
  309. dataSource2:[],
  310. columns:dataCol1,
  311. columns2:dataCol2,
  312. ipagination1:{
  313. current: 1,
  314. pageSize: 5,
  315. pageSizeOptions: ['10', '20', '30'],
  316. showTotal: (total, range) => {
  317. return range[0] + "-" + range[1] + " 共" + total + "条"
  318. },
  319. showQuickJumper: true,
  320. showSizeChanger: true,
  321. total: 0,
  322. },
  323. ipagination2:{
  324. current: 1,
  325. pageSize: 5,
  326. pageSizeOptions: ['10', '20', '30'],
  327. showTotal: (total, range) => {
  328. return range[0] + "-" + range[1] + " 共" + total + "条"
  329. },
  330. showQuickJumper: true,
  331. showSizeChanger: true,
  332. total: 0,
  333. },
  334. indexRegisterType:"转移登记",
  335. indexBottomTab:"1"
  336. }
  337. },
  338. methods:{
  339. goPage(){
  340. this.$message.success("根据业务自行处理跳转页面!")
  341. },
  342. changeRegisterType(e){
  343. this.indexRegisterType = e.target.value
  344. if(this.indexBottomTab=="1"){
  345. this.loadDataSource1()
  346. }else{
  347. this.loadDataSource2()
  348. }
  349. },
  350. tableChange1(pagination){
  351. this.ipagination1.current = pagination.current
  352. this.ipagination1.pageSize = pagination.pageSize
  353. this.queryTimeoutInfo()
  354. },
  355. tableChange2(pagination){
  356. this.ipagination2.current = pagination.current
  357. this.ipagination2.pageSize = pagination.pageSize
  358. this.queryNodeTimeoutInfo()
  359. },
  360. getFlowRateNumber(value){
  361. return Number(value)
  362. },
  363. getPercentFormat(value){
  364. if(value==100){
  365. return "超时"
  366. }else{
  367. return value+"%"
  368. }
  369. },
  370. getPercentColor(value){
  371. let p = Number(value)
  372. if(p>=90 && p<100){
  373. return 'rgb(244, 240, 89)'
  374. }else if(p>=100){
  375. return 'red'
  376. }else{
  377. return 'rgb(16, 142, 233)'
  378. }
  379. },
  380. loadDataSource1(){
  381. this.dataSource1 = dataSource1.filter(item=>{
  382. if(!this.indexRegisterType){
  383. return true
  384. }
  385. return item.type==this.indexRegisterType
  386. })
  387. },
  388. loadDataSource2(){
  389. this.dataSource2 = dataSource2.filter(item=>{
  390. if(!this.indexRegisterType){
  391. return true
  392. }
  393. return item.type==this.indexRegisterType
  394. })
  395. }
  396. },
  397. created() {
  398. this.loadDataSource1()
  399. this.loadDataSource2()
  400. setTimeout(() => {
  401. this.loading = !this.loading
  402. }, 1000)
  403. }
  404. }
  405. </script>
  406. <style lang="less" scoped>
  407. .extra-wrapper {
  408. line-height: 55px;
  409. padding-right: 24px;
  410. .extra-item {
  411. display: inline-block;
  412. margin-right: 24px;
  413. a {
  414. margin-left: 24px;
  415. }
  416. }
  417. }
  418. .item-group {
  419. padding: 20px 0 8px 24px;
  420. font-size: 0;
  421. a {
  422. color: rgba(0, 0, 0, 0.65);
  423. display: inline-block;
  424. font-size: 14px;
  425. margin-bottom: 13px;
  426. width: 25%;
  427. }
  428. }
  429. .item-group {
  430. .more-btn {
  431. margin-bottom: 13px;
  432. text-align: center;
  433. }
  434. }
  435. .list-content-item {
  436. color: rgba(0, 0, 0, .45);
  437. display: inline-block;
  438. vertical-align: middle;
  439. font-size: 14px;
  440. margin-left: 40px;
  441. }
  442. @media only screen and (min-width: 1600px) {
  443. .list-content-item{
  444. margin-left:60px;
  445. }
  446. }
  447. @media only screen and (max-width: 1300px) {
  448. .list-content-item{
  449. margin-left:20px;
  450. }
  451. .width-hidden4{
  452. display:none
  453. }
  454. }
  455. .list-content-item{
  456. span{line-height: 20px;}
  457. }
  458. .list-content-item{
  459. p{margin-top: 4px;margin-bottom:0;line-height:22px;}
  460. }
  461. .anty-list-cust {
  462. .ant-list-item-meta{flex: 0.3 !important;}
  463. }
  464. .anty-list-cust {
  465. .ant-list-item-content{flex:1 !important; justify-content:flex-start !important;margin-left: 20px;}
  466. }
  467. </style>