推广小程序后台代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

579 lines
18 KiB

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