WorkTable.vue 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516
  1. <template>
  2. <div>
  3. <a-row :gutter="0" style="height: 800px">
  4. <a-col :span="0" style="height: 100%;" v-if='taskType!=="3"'>
  5. <a-card title="任务选择" :bordered="false" style="height: 100%">
  6. <a-directory-tree
  7. style="height: auto"
  8. v-model:expandedKeys="expandedKeys"
  9. v-model:selectedKeys="selectedKeys"
  10. multiple
  11. :tree-data="treeData"
  12. @expand="onExpand"
  13. @select="onTreeNodeSelect"
  14. ></a-directory-tree>
  15. </a-card>
  16. </a-col>
  17. <a-col :span="0" style="height: 100%;" v-if='taskType==="3"'>
  18. </a-col>
  19. <!--筛选条件-->
  20. <a-row>
  21. <a-col :span="24">
  22. <a-form layout="inline">
  23. <a-row :gutter="24">
  24. <a-col :xl="16" :lg="7" :md="8" :sm="24">
  25. <a-form-item label="稽核工作日期范围">
  26. <a-range-picker @change="handleChange" v-model:value="taskDate"/>
  27. <a-radio-group @change="changeReportDate()" style="padding-left: 10px" v-model:value="latestDate" button-style="solid">
  28. <a-radio-button value="7">最近7天</a-radio-button>
  29. <a-radio-button value="30">最近30天</a-radio-button>
  30. <a-radio-button value="180">最近180天</a-radio-button>
  31. </a-radio-group>
  32. </a-form-item>
  33. </a-col>
  34. <a-col :xl="8" :lg="7" :md="12" :sm="24">
  35. <a-form-item label="稽核类型">
  36. <a-select placeholder="请选择稽核类型" @change="changeReportDate()" style='width: 180px' v-model="taskType" >
  37. <a-select-option v-for="item in statusList" :value="item.value" @change="changeReportDate()">
  38. {{ item.text }}
  39. </a-select-option>
  40. </a-select>
  41. <!-- <j-dict-select-tag placeholder="请选择稽核类型" v-model:value="taskType" @change="changeReportDate()" style='width: 180px' dictCode="sms_check_task_type" />-->
  42. </a-form-item>
  43. </a-col>
  44. </a-row>
  45. </a-form>
  46. </a-col>
  47. <a-col :span="4" style="padding-top: 10px">
  48. <a-card>
  49. <a-statistic
  50. title="客户总数"
  51. :value="allCount"
  52. :precision="0"
  53. suffix="个"
  54. :value-style="{ color: '#fa073f' }"
  55. style="margin-right: 50px"
  56. >
  57. <template #prefix>
  58. </template>
  59. </a-statistic>
  60. </a-card>
  61. </a-col>
  62. <a-col :span="5" style="padding-top: 10px">
  63. <a-card>
  64. <a-statistic
  65. title="未处理客户数量"
  66. :value="toImproveUser"
  67. :precision="0"
  68. suffix="个"
  69. :value-style="{ color: '#fa073f' }"
  70. style="margin-right: 50px"
  71. >
  72. <template #prefix>
  73. <arrow-up-outlined/>
  74. </template>
  75. </a-statistic>
  76. </a-card>
  77. </a-col>
  78. <a-col :span="5" style="padding-top: 10px">
  79. <a-card>
  80. <a-statistic
  81. title="未完善客户数量"
  82. :value="wanshan"
  83. :precision="0"
  84. suffix="个"
  85. :value-style="{ color: '#fa073f' }"
  86. style="margin-right: 50px"
  87. >
  88. <template #prefix>
  89. <arrow-up-outlined/>
  90. </template>
  91. </a-statistic>
  92. </a-card>
  93. </a-col>
  94. <a-col :span="5" style="padding-top: 10px">
  95. <a-card>
  96. <a-statistic
  97. title="待整改客户数量"
  98. :value="tobeRectified"
  99. :precision="0"
  100. suffix="个"
  101. :value-style="{ color: '#810320' }"
  102. style="margin-right: 50px"
  103. >
  104. <template #prefix>
  105. <arrow-up-outlined/>
  106. </template>
  107. </a-statistic>
  108. </a-card>
  109. </a-col>
  110. <a-col :span="5" style="padding-top: 10px">
  111. <a-card>
  112. <a-statistic
  113. title="待稽核客户数量"
  114. :value="toBeAudited"
  115. :precision="0"
  116. suffix="个"
  117. :value-style="{ color: '#0a0a09' }"
  118. style="margin-right: 50px"
  119. >
  120. <template #prefix>
  121. <arrow-up-outlined/>
  122. </template>
  123. </a-statistic>
  124. </a-card>
  125. </a-col>
  126. <a-col :span="4" style="padding-top: 10px">
  127. <a-card>
  128. <a-statistic
  129. title="稽核通过客户数量"
  130. :value="auditPassed"
  131. :precision="0"
  132. suffix="个"
  133. :value-style="{ color: '#3f8600' }"
  134. style="margin-right: 50px"
  135. >
  136. <template #prefix>
  137. <arrow-up-outlined/>
  138. </template>
  139. </a-statistic>
  140. </a-card>
  141. </a-col>
  142. <a-col :span="5" style="padding-top: 10px">
  143. <a-card>
  144. <a-statistic
  145. title="稽核通过率"
  146. :value="tgl"
  147. :precision="0"
  148. suffix=""
  149. :value-style="{ color: '#3f8600' }"
  150. style="margin-right: 50px"
  151. >
  152. <template #prefix>
  153. <arrow-up-outlined/>
  154. </template>
  155. </a-statistic>
  156. </a-card>
  157. </a-col>
  158. <a-col :span="5" style="padding-top: 10px">
  159. <a-card>
  160. <a-statistic
  161. title="一次稽核通过率"
  162. :value="yctgl"
  163. :precision="0"
  164. suffix=""
  165. :value-style="{ color: '#21b43f' }"
  166. style="margin-right: 50px"
  167. >
  168. <template #prefix>
  169. <arrow-up-outlined/>
  170. </template>
  171. </a-statistic>
  172. </a-card>
  173. </a-col>
  174. <a-col :span="5" style="padding-top: 10px">
  175. <a-card>
  176. <a-statistic
  177. title="整改完成率"
  178. :value="zgl"
  179. :precision="0"
  180. suffix=""
  181. :value-style="{ color: '#860074' }"
  182. style="margin-right: 50px"
  183. >
  184. <template #prefix>
  185. <arrow-up-outlined/>
  186. </template>
  187. </a-statistic>
  188. </a-card>
  189. </a-col>
  190. <a-col :span="24" style="top: 10px">
  191. <a-card title="稽核概况统计" :bordered="false">
  192. <div id="statusRefusePie" ref="statusRefusePie" style="width:100%;height:500px"></div>
  193. </a-card>
  194. </a-col>
  195. <a-col :span="24" style="top: 10px">
  196. <a-card title="稽核整改率" :bordered="false" style='height: 400px'>
  197. <div id="rectificationRate" ref="rectificationRate" style="width:100%;height:400px"></div>
  198. </a-card>
  199. </a-col>
  200. <a-col :span="24" style="top: 10px">
  201. <a-card title=" " :bordered="false">
  202. <h2 style='text-align:center'>稽核异常报表</h2>
  203. <a-col >
  204. <div class="table-page-search-wrapper">
  205. <a-form layout="inline" @keyup.enter.native="searchQuery">
  206. <a-row :gutter="24">
  207. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  208. <a-form-item label="客户编号">
  209. <j-input placeholder="请输入客户编号" v-model="queryParam.customerNo" ></j-input>
  210. </a-form-item>
  211. </a-col>
  212. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  213. <a-form-item label="用户编号">
  214. <j-input placeholder="用户编号" v-model="queryParam.userNo" ></j-input>
  215. </a-form-item>
  216. </a-col>
  217. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  218. <a-form-item label="整改次数">
  219. <a-input-number style='width: 200px' id="inputNumber" v-model="queryParam.count" :min="1" :max="100" />
  220. </a-form-item>
  221. </a-col>
  222. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  223. <a-form-item label="稽核类型">
  224. <j-dict-select-tag placeholder="请选择稽核类型" v-model="queryParam.type" dictCode="sms_check_task_type" />
  225. </a-form-item>
  226. </a-col>
  227. <template v-if="toggleSearchStatus">
  228. <!-- <a-col :xl="10" :lg="11" :md="12" :sm="24">-->
  229. <!-- <a-form-item label="稽核开始时间">-->
  230. <!-- <j-date :show-time="true" date-format="YYYY-MM-DD" placeholder="请选择开始时间" class="query-group-cust" ></j-date>-->
  231. <!-- </a-form-item>-->
  232. <!-- <a-form-item label="稽核结束时间">-->
  233. <!-- <j-date :show-time="true" date-format="YYYY-MM-DD" placeholder="请选择结束时间" class="query-group-cust" ></j-date>-->
  234. <!-- </a-form-item>-->
  235. <!-- </a-col>-->
  236. </template>
  237. <div class="table-operator" style='float: right'>
  238. <!-- 高级查询区域 -->
  239. <a-dropdown v-if="selectedRowKeys.length > 0">
  240. <a-menu slot="overlay">
  241. <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
  242. </a-menu>
  243. <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
  244. </a-dropdown>
  245. <!-- <a-button type="primary" icon="download" @click="handleExportXls('稽核任务')">导出</a-button>-->
  246. <a-button type="primary" @click="searchQuery()" icon="search" >查询</a-button>
  247. <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
  248. <!-- <a @click="handleToggleSearch" style="margin-left: 8px">-->
  249. <!-- {{ toggleSearchStatus ? '收起' : '展开' }}-->
  250. <!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
  251. <!-- </a>-->
  252. </div>
  253. </a-row>
  254. </a-form>
  255. </div>
  256. </a-col>
  257. <div>
  258. <a-table
  259. ref="table"
  260. size="middle"
  261. :scroll="{x:true}"
  262. bordered
  263. rowKey="id"
  264. :columns="columns"
  265. :dataSource="dataSource"
  266. :pagination="ipagination"
  267. :loading="loading"
  268. :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
  269. class="j-table-force-nowrap"
  270. @change="handleTableChange">
  271. <template slot="tooltipSlot" slot-scope="text, record, index">
  272. <a-tooltip placement="topLeft" :title="text">
  273. <div style="width:150px; overflow:hidden;">{{text}}</div>
  274. </a-tooltip>
  275. </template>
  276. </a-table>
  277. </div>
  278. <!-- table区域 end -->
  279. <div style="width: 600px;height:5px;"></div>
  280. </a-card>
  281. </a-col>
  282. </a-row>
  283. </a-row>
  284. </div>
  285. <!-- 查询区域 -->
  286. </template>
  287. <script>
  288. import moment from 'moment';
  289. import {getAction} from "@api/manage";
  290. import * as echarts from 'echarts';
  291. import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  292. export default {
  293. name: 'SmsCheckWorkLogList',
  294. mixins:[JeecgListMixin],
  295. data() {
  296. return {
  297. description: '稽核工作日志管理页面',
  298. taskDate: '',
  299. taskType:null,
  300. statusList:
  301. //1:行短稽核 2:物联网业务稽核 3.复开审批 4.中继线稽核
  302. [{
  303. text: '全部',
  304. value: null,
  305. },{
  306. text: '行短稽核',
  307. value: 1,
  308. },{
  309. text: '物联网业务稽核',
  310. value: 2,
  311. }, {
  312. text: '防诈骗方向复开',
  313. value: 3,
  314. },{
  315. text: '中继线稽核',
  316. value: 4,
  317. }],
  318. url: {
  319. "warningCountGroup": "/smsCheck/customerInfo/status/countGroupCheck",
  320. "statusRefuse": "/smsCheck/customerInfo/status/refuse",
  321. "list": "/smsCheck/customerInfo/status/getBillList",
  322. "taskList": "/smsCheck/task/list",
  323. "dateList": "/smsCheck/task/year/list",
  324. //基本信息 规范信息 附件资料 异常稽核统计
  325. "checkStateCount": "/smsCheck/workLog/check/state/count",
  326. "abnormalCreateTime": "/smsCheck/workLog/check/abnormal/count"
  327. },
  328. // '1': '未完善',
  329. statusMap: {
  330. '0': '未处理',
  331. '1':'未完善',
  332. '2': '待稽核',
  333. '4': '待整改',
  334. "5": '稽核通过',
  335. },
  336. abnormalMap: {
  337. "basicCheckState": "基本信息异常",
  338. "standardState": "规范信息异常",
  339. "dataState": "附件资料异常异常"
  340. },
  341. dataSource:[
  342. {
  343. "id": "1712649352008179713",
  344. "dataId": "1712660980103651330",
  345. "dataLogId": "1712661582091132929",
  346. "taskId": "1712648713974849538",
  347. "customerNo": "200001817629",
  348. "customerName": null,
  349. "smsNumber": null,
  350. "userNo": "行短稽核任务1",
  351. "networkAccessTime": "2010-10-11",
  352. "networkAccessTimeEnd": "2012-10-11",
  353. "userState": "在用",
  354. "staffInfo": "张文超(104009353459)(B03619)",
  355. "staffUsername": "zhangwenchao",
  356. "staffName": "待处理",
  357. "number": "5次",
  358. "field": "法人联系方式",
  359. "staffNameStart": "2023-10-10 19:23:17",
  360. "staffNameEnd": "2023-10-12 20:33:17",
  361. "staffNameTime": "50小时",
  362. "staffNo": "1000",
  363. "staffDeptLevel2": "北区电信局(2800000000)",
  364. "staffDeptLevel2Name": "北区电信局",
  365. "staffDeptLevel2No": "孙可",
  366. "staffDeptLevel3": "其他(校园中心)(103013215530)",
  367. "staffDeptLevel3Name": "其他(校园中心)",
  368. "staffDeptLevel3No": "103013215530",
  369. "userOpenState": null,
  370. "smsNumberPrefix": null,
  371. "smsNumberUsage": null,
  372. "accountManager": null,
  373. "accountManagerPhone": null,
  374. "customerContacts": '行短稽核任务',
  375. "customerContactsPhone": null,
  376. "contractExpireTime": null,
  377. "smsNumberCertificateExpireTime": null,
  378. "recordNoticeExpireTime": null,
  379. "valueAddedLicenceExpireTime": null,
  380. "businessLicenceExpireTime": null,
  381. "contractOpenCustomerSame": null,
  382. "groupPriceApproval": null,
  383. "dataComplete": null,
  384. "rectifyReformOver": null,
  385. "checkState": 500,
  386. "description": null,
  387. "delFlag": 0,
  388. "createBy": "admin",
  389. "createTime": "2023-10-13 10:00:00",
  390. "updateBy": null,
  391. "updateTime": null,
  392. "sysOrgCode": "A03A02",
  393. "submitSpecialDate": null,
  394. "shutdownLabel": null,
  395. "shutdownLabelDate": null,
  396. "reopenTime": null,
  397. "materialLabel": null,
  398. "nameFindCompliance": null,
  399. "type": null,
  400. "checkState_dictText": "待稽核"
  401. },
  402. {
  403. "id": "1712649353086115842",
  404. "dataId": null,
  405. "dataLogId": null,
  406. "taskId": "1712648713974849538",
  407. "customerNo": "200002340549",
  408. "customerName": null,
  409. "smsNumber": null,
  410. "userNo": "行短稽核任务1",
  411. "networkAccessTime": "2012-02-14",
  412. "networkAccessTimeEnd": "2012-10-11",
  413. "userState": "在用",
  414. "staffInfo": "毛捷(1004320610)(A00776)",
  415. "staffUsername": "A00776",
  416. "staffName": "已处理",
  417. "number": "5次",
  418. "field": "客户经理手机号",
  419. "staffNameStart": "2023-10-10 19:23:17",
  420. "staffNameEnd": "2023-10-12 15:16:17",
  421. "staffNameTime": "44小时",
  422. "staffNo": "2000",
  423. "staffDeptLevel2": "北区电信局(2800000000)",
  424. "staffDeptLevel2Name": "北区电信局",
  425. "staffDeptLevel2No": "赵六",
  426. "staffDeptLevel3": "北区电信局(2800000000)",
  427. "staffDeptLevel3Name": "北区电信局",
  428. "staffDeptLevel3No": "2800000000",
  429. "userOpenState": null,
  430. "smsNumberPrefix": null,
  431. "smsNumberUsage": null,
  432. "accountManager": null,
  433. "accountManagerPhone": null,
  434. "customerContacts": '行短稽核任务',
  435. "customerContactsPhone": null,
  436. "contractExpireTime": null,
  437. "smsNumberCertificateExpireTime": null,
  438. "recordNoticeExpireTime": null,
  439. "valueAddedLicenceExpireTime": null,
  440. "businessLicenceExpireTime": null,
  441. "contractOpenCustomerSame": null,
  442. "groupPriceApproval": null,
  443. "dataComplete": null,
  444. "rectifyReformOver": null,
  445. "checkState": 500,
  446. "description": null,
  447. "delFlag": 0,
  448. "createBy": "admin",
  449. "createTime": "2023-10-13 10:00:00",
  450. "updateBy": null,
  451. "updateTime": null,
  452. "sysOrgCode": "A03A02",
  453. "submitSpecialDate": null,
  454. "shutdownLabel": null,
  455. "shutdownLabelDate": null,
  456. "reopenTime": null,
  457. "materialLabel": null,
  458. "nameFindCompliance": null,
  459. "type": null,
  460. "checkState_dictText": "未处理"
  461. },
  462. {
  463. "id": "1712649343284027393",
  464. "dataId": null,
  465. "dataLogId": null,
  466. "taskId": "17126487139748495f38",
  467. "customerNo": "104003061446",
  468. "customerName": null,
  469. "smsNumber": null,
  470. "userNo": "中继线稽核任务1",
  471. "networkAccessTime": "2013-08-05",
  472. "networkAccessTimeEnd": "2012-10-11",
  473. "userState": "在用",
  474. "staffInfo": "张文超(104009353459)(B03619)",
  475. "staffUsername": "zhangwenchao",
  476. "staffName": "已处理",
  477. "number": "5次",
  478. "field": "使用场景",
  479. "staffNameStart": "2023-10-10 19:23:17",
  480. "staffNameEnd": "2023-10-12 13:33:00",
  481. "staffNameTime": "43小时",
  482. "staffNo": "1500",
  483. "staffDeptLevel2": "北区电信局(2800000000)",
  484. "staffDeptLevel2Name": "北区电信局",
  485. "staffDeptLevel2No": "王武",
  486. "staffDeptLevel3": "其他(校园中心)(103013215530)",
  487. "staffDeptLevel3Name": "其他(校园中心)",
  488. "staffDeptLevel3No": "103013215530",
  489. "userOpenState": null,
  490. "smsNumberPrefix": null,
  491. "smsNumberUsage": null,
  492. "accountManager": null,
  493. "accountManagerPhone": null,
  494. "customerContacts": '中继线稽核',
  495. "customerContactsPhone": null,
  496. "contractExpireTime": null,
  497. "smsNumberCertificateExpireTime": null,
  498. "recordNoticeExpireTime": null,
  499. "valueAddedLicenceExpireTime": null,
  500. "businessLicenceExpireTime": null,
  501. "contractOpenCustomerSame": null,
  502. "groupPriceApproval": null,
  503. "dataComplete": null,
  504. "rectifyReformOver": null,
  505. "checkState": 500,
  506. "description": null,
  507. "delFlag": 0,
  508. "createBy": "admin",
  509. "createTime": "2023-10-13 09:59:58",
  510. "updateBy": null,
  511. "updateTime": null,
  512. "sysOrgCode": "A03A02",
  513. "submitSpecialDate": null,
  514. "shutdownLabel": null,
  515. "shutdownLabelDate": null,
  516. "reopenTime": null,
  517. "materialLabel": null,
  518. "nameFindCompliance": null,
  519. "type": null,
  520. "checkState_dictText": "未处理"
  521. },
  522. {
  523. "id": "1712649344286466049",
  524. "dataId": null,
  525. "dataLogId": null,
  526. "taskId": "1712648713974849538",
  527. "customerNo": "104003061446",
  528. "customerName": null,
  529. "smsNumber": null,
  530. "userNo": "特审复开任务1",
  531. "networkAccessTime": "2013-04-03",
  532. "networkAccessTimeEnd": "2012-10-11",
  533. "userState": "在用",
  534. "staffInfo": "张文超(104009353459)(B03619)",
  535. "staffUsername": "zhangwenchao",
  536. "staffName": "已处理",
  537. "number": "5次",
  538. "field": "营业执照有效期是否长期",
  539. "staffNameStart": "2023-10-10 19:23:17",
  540. "staffNameEnd": "2023-10-11 20:33:15",
  541. "staffNameTime": "25小时",
  542. "staffNo": "2500",
  543. "staffDeptLevel2": "北区电信局(2800000000)",
  544. "staffDeptLevel2Name": "北区电信局",
  545. "staffDeptLevel2No": "李四",
  546. "staffDeptLevel3": "其他(校园中心)(103013215530)",
  547. "staffDeptLevel3Name": "其他(校园中心)",
  548. "staffDeptLevel3No": "103013215530",
  549. "userOpenState": null,
  550. "smsNumberPrefix": null,
  551. "smsNumberUsage": null,
  552. "accountManager": null,
  553. "accountManagerPhone": null,
  554. "customerContacts": '特审复开稽核',
  555. "customerContactsPhone": null,
  556. "contractExpireTime": null,
  557. "smsNumberCertificateExpireTime": null,
  558. "recordNoticeExpireTime": null,
  559. "valueAddedLicenceExpireTime": null,
  560. "businessLicenceExpireTime": null,
  561. "contractOpenCustomerSame": null,
  562. "groupPriceApproval": null,
  563. "dataComplete": null,
  564. "rectifyReformOver": null,
  565. "checkState": 300,
  566. "description": null,
  567. "delFlag": 0,
  568. "createBy": "admin",
  569. "createTime": "2023-10-13 09:59:58",
  570. "updateBy": null,
  571. "updateTime": null,
  572. "sysOrgCode": "A03A02",
  573. "submitSpecialDate": null,
  574. "shutdownLabel": null,
  575. "shutdownLabelDate": null,
  576. "reopenTime": null,
  577. "materialLabel": null,
  578. "nameFindCompliance": null,
  579. "type": null,
  580. "checkState_dictText": "未处理"
  581. },
  582. {
  583. "id": "1712649345687363585",
  584. "dataId": null,
  585. "dataLogId": null,
  586. "taskId": "1712648713974849538",
  587. "customerNo": "104004941911",
  588. "customerName": null,
  589. "smsNumber": null,
  590. "userNo": "特审复开任务1",
  591. "networkAccessTime": "2012-06-01",
  592. "networkAccessTimeEnd": "2012-10-11",
  593. "userState": "在用",
  594. "staffInfo": "张文超(104009353459)(B03619)",
  595. "staffUsername": "zhangwenchao",
  596. "staffName": "处理中",
  597. "number": "5次",
  598. "field": "服务号码(全)",
  599. "staffNameStart": "2023-10-10 19:23:17",
  600. "staffNameEnd": "2023-10-12 19:33:17",
  601. "staffNameTime": "10小时",
  602. "staffNo": "3000",
  603. "staffDeptLevel2": "北区电信局(2800000000)",
  604. "staffDeptLevel2Name": "北区电信局",
  605. "staffDeptLevel2No": "张三",
  606. "staffDeptLevel3": "其他(校园中心)(103013215530)",
  607. "staffDeptLevel3Name": "其他(校园中心)",
  608. "staffDeptLevel3No": "103013215530",
  609. "userOpenState": null,
  610. "smsNumberPrefix": null,
  611. "smsNumberUsage": null,
  612. "accountManager": null,
  613. "accountManagerPhone": null,
  614. "customerContacts": '特审复开稽核',
  615. "customerContactsPhone": null,
  616. "contractExpireTime": null,
  617. "smsNumberCertificateExpireTime": null,
  618. "recordNoticeExpireTime": null,
  619. "valueAddedLicenceExpireTime": null,
  620. "businessLicenceExpireTime": null,
  621. "contractOpenCustomerSame": null,
  622. "groupPriceApproval": null,
  623. "dataComplete": null,
  624. "rectifyReformOver": null,
  625. "checkState": 500,
  626. "description": null,
  627. "delFlag": 0,
  628. "createBy": "admin",
  629. "createTime": "2023-10-13 09:59:58",
  630. "updateBy": null,
  631. "updateTime": null,
  632. "sysOrgCode": "A03A02",
  633. "submitSpecialDate": null,
  634. "shutdownLabel": null,
  635. "shutdownLabelDate": null,
  636. "reopenTime": null,
  637. "materialLabel": null,
  638. "nameFindCompliance": null,
  639. "type": null,
  640. "checkState_dictText": "未处理"
  641. }
  642. ],
  643. columns: [
  644. {
  645. title:'稽核类型',
  646. align:"center",
  647. sorter: true,
  648. dataIndex: 'type',
  649. customRender: function (text) {
  650. //客户信息所属类型:1:行短稽核 2:物联网业务稽核 3.复开审批 4.中继线稽核
  651. if (text == '1') {
  652. return "行短稽核";
  653. } else if (text == "2") {
  654. return "物联网业务稽核";
  655. } else if (text == "3") {
  656. return "防诈骗方向复开";
  657. } else if (text == "4") {
  658. return "中继线稽核";
  659. }
  660. }
  661. },
  662. {
  663. title:'任务名称',
  664. align:"center",
  665. dataIndex: 'task_name'
  666. },
  667. {
  668. title:'客户编号',
  669. align:"center",
  670. sorter: true,
  671. dataIndex: 'customer_no'
  672. },
  673. {
  674. title:'用户编号',
  675. align:"center",
  676. sorter: true,
  677. dataIndex: 'user_no',
  678. scopedSlots: { customRender: 'tooltipSlot' }
  679. },
  680. {
  681. title:'任务开始时间',
  682. align:"center",
  683. sorter: true,
  684. dataIndex: 'task_start_time'
  685. }, {
  686. title:'任务结束时间',
  687. align:"center",
  688. sorter: true,
  689. dataIndex: 'task_end_time'
  690. },
  691. {
  692. title: '当前处理人',
  693. align: "center",
  694. dataIndex: 'staff_no'
  695. },
  696. {
  697. title:'整改次数',
  698. align:"center",
  699. dataIndex: 'c'
  700. } ,
  701. {
  702. title: '当前状态',
  703. align: "center",
  704. dataIndex: 'check_state',
  705. customRender: function(text) {
  706. //客户信息所属类型:1:行短稽核 2:物联网业务稽核 3.复开审批 4.中继线稽核
  707. if (text == '0') {
  708. return "未处理";
  709. } else if (text == "1") {
  710. return "未完善";
  711. } else if (text == "2") {
  712. return "待稽核";
  713. } else if (text == "4") {
  714. return "待整改";
  715. } else if (text == "5") {
  716. return "稽核通过";
  717. }
  718. }
  719. }
  720. ],
  721. /* table选中keys*/
  722. selectedRowKeys: [],
  723. /* table选中records*/
  724. selectionRows: [],
  725. /* 查询折叠 */
  726. toggleSearchStatus:false,
  727. /* 高级查询条件生效状态 */
  728. superQueryFlag:false,
  729. /* 高级查询条件 */
  730. superQueryParams: '',
  731. /** 高级查询拼接方式 */
  732. superQueryMatchType: 'and',
  733. /* 自动查询 默认开启 */
  734. autoSearch: true,
  735. $statusRefusePie: "",
  736. $abnormalCheckPie: "",
  737. $abnormalCheckHistogram: "",
  738. $abnormalCreateTimeTrend: "",
  739. toImproveUser: 0,
  740. allCount:0,
  741. wanshan: 0,
  742. latestDate: '180',
  743. toBeAudited: 0,
  744. tobeRectified: 0,
  745. auditPassed: 0,
  746. zgl:0,
  747. tgl:0,
  748. yctgl:0,
  749. treeData: [],
  750. expandedKeys: ['2022', '2022-10'],
  751. selectedKeys: {},
  752. statusAuditPieData: [],
  753. canvas: {},
  754. taskId:null,
  755. }
  756. },
  757. created() {
  758. const waterMarkText = '业务风险管控智能化系统';
  759. this.canvas = document.createElement('canvas');
  760. const ctx = this.canvas.getContext('2d');
  761. this.canvas.width = this.canvas.height = 100;
  762. ctx.textAlign = 'center';
  763. ctx.textBaseline = 'middle';
  764. ctx.globalAlpha = 0.08;
  765. ctx.font = '20px Microsoft Yahei';
  766. ctx.translate(50, 50);
  767. ctx.rotate(-Math.PI / 4);
  768. ctx.fillText(waterMarkText, 0, 0);
  769. //初始化日期 默认最近180天
  770. this.taskDate = [this.getRecentDay(parseInt(this.latestDate)), this.getRecentDay(0)]
  771. this.warningCountGroup()
  772. //稽核任务列表(树)
  773. this.taskList();
  774. //稽核概况统计
  775. this.statusRefuse();
  776. //稽核历史异常分析
  777. this.checkStateCount(this.url.checkStateCount);
  778. this.abnormalCreateTime();
  779. //this.getBillList();
  780. this.loadData(1);
  781. },
  782. computed: {},
  783. methods: {
  784. changeReportDate(a, event){
  785. this.taskDate = [this.getRecentDay(parseInt(this.latestDate)), this.getRecentDay(0)]
  786. this.statusRefuse(this.taskId);
  787. this.checkStateCount(this.url.checkStateCount, this.taskId);
  788. this.abnormalCreateTime(this.taskId);
  789. this.warningCountGroup()
  790. },
  791. handleChange(value,model){
  792. this.taskDate = [this.getDate(this.taskDate[0]), this.getDate(this.taskDate[1])]
  793. this.statusRefuse(this.taskId);
  794. this.warningCountGroup()
  795. },
  796. // handleChange2(value,model){
  797. // this.taskDate = model
  798. // // model 当前value
  799. // this.statusRefuse(this.taskId);
  800. // this.checkStateCount(this.url.checkStateCount, this.taskId);
  801. // this.abnormalCreateTime(this.taskId);
  802. //
  803. // },
  804. getBillList(){
  805. getAction(this.url.getBillList).then((res) => {
  806. if (res.success) {
  807. if (!res.result) {
  808. this.dataSource = []
  809. } else {
  810. this.dataSource = res.result.records;
  811. }
  812. if (res.result && res.result.total) {
  813. this.ipagination.total = res.result.total;
  814. } else {
  815. this.ipagination.total = 0;
  816. }
  817. //update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
  818. } else {
  819. this.$message.warning(res.message)
  820. }
  821. })
  822. },
  823. abnormalCreateTime(infoId) {
  824. let taskDate = this.taskDate;
  825. let queryParam = {
  826. "taskType":this.taskType,
  827. "startDate": taskDate[0],
  828. "endDate": taskDate[1],
  829. "infoId": infoId
  830. }
  831. getAction(this.url.abnormalCreateTime, queryParam).then(res => {
  832. if (res.success) {
  833. let data = [];
  834. let resultList = res.resultList;
  835. for (var i in resultList) {
  836. let resultListElement = resultList[i];
  837. let time = resultListElement.createTime;
  838. let count = parseInt(resultListElement.count);
  839. data.push([time, count])
  840. }
  841. let dateList = data.map(function (item) {
  842. return item[0];
  843. });
  844. let valueList = data.map(function (item) {
  845. return item[1];
  846. });
  847. this.abnormalCreateTimetrend(dateList, valueList)
  848. }
  849. }).finally(() => {
  850. })
  851. },
  852. abnormalCreateTimetrend(dateList, valueList) {
  853. let option = {
  854. title: {
  855. text: '稽核异常数量',
  856. left: 'center',
  857. },
  858. lineStyle: {
  859. color: '#5a6fc0'
  860. },
  861. backgroundColor: {
  862. type: 'pattern',
  863. image: this.canvas,
  864. repeat: 'repeat'
  865. },
  866. visualMap: [
  867. {
  868. show: false,
  869. type: 'continuous',
  870. seriesIndex: 0,
  871. min: 0,
  872. max: 400
  873. },
  874. {
  875. show: false,
  876. type: 'continuous',
  877. seriesIndex: 1,
  878. dimension: 0,
  879. min: 0,
  880. max: dateList.length - 1
  881. }
  882. ],
  883. tooltip: {
  884. trigger: 'axis'
  885. },
  886. legend: {
  887. data: ['稽核异常']
  888. },
  889. grid: {
  890. left: '3%',
  891. right: '4%',
  892. bottom: '3%',
  893. containLabel: true
  894. },
  895. toolbox: {
  896. feature: {
  897. saveAsImage: {}
  898. }
  899. },
  900. xAxis: {
  901. type: 'category',
  902. boundaryGap: false,
  903. data: dateList
  904. },
  905. yAxis: {
  906. type: 'value'
  907. },
  908. series: [
  909. {
  910. name: '异常数',
  911. type: 'line',
  912. stack: 'Total',
  913. data: valueList
  914. }
  915. ]
  916. };
  917. // this.$abnormalCreateTimeTrend = echarts.init(document.getElementById('abnormalCreateTimeTrend'))
  918. // this.$abnormalCreateTimeTrend.setOption(option)
  919. },
  920. checkStateCount(url, taskId) {
  921. let taskDate = this.taskDate;
  922. let queryParam = {
  923. "taskType":this.taskType,
  924. "startDate": taskDate[0],
  925. "endDate": taskDate[1],
  926. "infoId": taskId
  927. }
  928. getAction(url, queryParam).then(res => {
  929. if (res.success) {
  930. let resultList = res.resultList;
  931. let pieData = [];
  932. let histogramSource = ['资料驳回分布']
  933. let dimensions = ['product']
  934. for (var i in resultList) {
  935. let resultListElement = resultList[i];
  936. let name = resultListElement.name;
  937. let state = resultListElement.state;
  938. let count = resultListElement.count;
  939. if (state === "2") {
  940. var abnormalMapElement = this.abnormalMap[name];
  941. if (abnormalMapElement != null && abnormalMapElement != undefined) {
  942. pieData.push({
  943. "name": abnormalMapElement,
  944. "value": count
  945. })
  946. dimensions.push(abnormalMapElement.toString())
  947. histogramSource.push(parseInt(count));
  948. }
  949. }
  950. }
  951. this.checkStatePie(pieData);
  952. this.checkStateHistogram(dimensions, histogramSource)
  953. }
  954. }).finally(() => {
  955. })
  956. },
  957. checkStateHistogram(dimensions, source) {
  958. let option = {
  959. backgroundColor: {
  960. type: 'pattern',
  961. image: this.canvas,
  962. repeat: 'repeat'
  963. },
  964. legend: {},
  965. tooltip: {},
  966. dataset: {
  967. source: [
  968. dimensions,
  969. source
  970. ]
  971. },
  972. xAxis: {type: 'category'},
  973. yAxis: {},
  974. // Declare several bar series, each will be mapped
  975. // to a column of dataset.source by default.
  976. series: [{type: 'bar'}, {type: 'bar'}, {type: 'bar'}]
  977. };
  978. // this.$abnormalCheckHistogram = echarts.init(document.getElementById('statusAuditHistogram'))
  979. // this.$abnormalCheckHistogram.setOption(option)
  980. },
  981. warningCountGroup(){
  982. let taskDate = this.taskDate;
  983. let queryParam = {
  984. "taskType":this.taskType,
  985. "startDate": taskDate[0],
  986. "endDate": taskDate[1],
  987. }
  988. getAction(this.url.warningCountGroup, queryParam).then((res) => {
  989. if (res.success) {
  990. if ( res.result){
  991. this.rectificationRate(res)
  992. }else {
  993. }
  994. }else{
  995. this.$message.warning(res.message)
  996. }
  997. })
  998. },
  999. rectificationRate(res){
  1000. var myChart = echarts.init(document.getElementById('rectificationRate'));
  1001. var option = {
  1002. title: {
  1003. text: '稽核整改率',
  1004. subtext: '整改率',
  1005. left: 'center'
  1006. },
  1007. tooltip: {
  1008. trigger: 'item'
  1009. },
  1010. legend: {
  1011. orient: 'vertical',
  1012. left: 'left'
  1013. },
  1014. series: [
  1015. {
  1016. name: '稽核整改率',
  1017. type: 'pie',
  1018. radius: '50%',
  1019. data: [
  1020. { value: res.result.his, name: '整改数据量' },
  1021. { value: res.result.sum, name: '未整改数据量' },
  1022. ],
  1023. emphasis: {
  1024. itemStyle: {
  1025. shadowBlur: 10,
  1026. shadowOffsetX: 0,
  1027. shadowColor: 'rgba(0, 0, 0, 0.5)'
  1028. }
  1029. }
  1030. }
  1031. ]
  1032. };
  1033. if (res.result.zgSum>0 && res.result.his<=res.result.zgSum){
  1034. this.zgl =Math.round(res.result.his / res.result.zgSum * 10000) / 100 + "%";
  1035. }else {
  1036. this.zgl='0%'
  1037. }
  1038. if (res.result.sum>0 && this.allCount>0){
  1039. this.yctgl = Math.round(res.result.sum / this.allCount * 10000) / 100 + "%";
  1040. }else {
  1041. this.yctgl='0%'
  1042. }
  1043. myChart.setOption(option);
  1044. },
  1045. checkStatePie(data) {
  1046. let option = {
  1047. tooltip: {
  1048. trigger: 'item'
  1049. },
  1050. backgroundColor: {
  1051. type: 'pattern',
  1052. image: this.canvas,
  1053. repeat: 'repeat'
  1054. },
  1055. /*title: [
  1056. {
  1057. text: '异常类型占比',
  1058. //subtext: '总计 ' + builderJson.all + " 稽核通过 " + builderJson.charts["稽核通过"],
  1059. left: '25%',
  1060. textAlign: 'center'
  1061. },
  1062. ],*/
  1063. legend: {
  1064. top: '5%',
  1065. left: 'center'
  1066. },
  1067. series: [
  1068. {
  1069. name: '',
  1070. type: 'pie',
  1071. radius: ['40%', '70%'],
  1072. avoidLabelOverlap: false,
  1073. itemStyle: {
  1074. borderRadius: 10,
  1075. borderColor: '#fff',
  1076. borderWidth: 2
  1077. },
  1078. label: {
  1079. show: false,
  1080. position: 'center'
  1081. },
  1082. emphasis: {
  1083. label: {
  1084. show: true,
  1085. fontSize: '40',
  1086. fontWeight: 'bold'
  1087. }
  1088. },
  1089. labelLine: {
  1090. show: false
  1091. },
  1092. data: data
  1093. }
  1094. ]
  1095. };
  1096. this.$abnormalCheckPie = echarts.init(document.getElementById('statusAuditPie'))
  1097. this.$abnormalCheckPie.setOption(option)
  1098. },
  1099. //树点击事件
  1100. onTreeNodeSelect(id) {
  1101. if (id && id.length > 0) {
  1102. if (id == "all") {
  1103. this.statusRefuse();
  1104. this.checkStateCount(this.url.checkStateCount);
  1105. this.abnormalCreateTime();
  1106. this.taskId = null;
  1107. return;
  1108. }
  1109. let split = id[0].split("key-");
  1110. if (split.length == 2) {
  1111. let taskId = split[1];
  1112. this.statusRefuse(taskId);
  1113. this.checkStateCount(this.url.checkStateCount, taskId);
  1114. this.abnormalCreateTime(taskId);
  1115. this.taskId = taskId;
  1116. }
  1117. }
  1118. },
  1119. onExpand(expandedKeys) {
  1120. this.expandedKeys = expandedKeys;
  1121. },
  1122. taskDateList(taskData) {
  1123. getAction(this.url["dateList"]).then(res => {
  1124. if (res.success) {
  1125. let result = res.result;
  1126. let years = result[0];
  1127. let months = result[1];
  1128. let YearLevel = {}
  1129. let monthLevel = {}
  1130. for (var i in years) {
  1131. let year = years[i].yearTime;
  1132. let children = {
  1133. "title": year,
  1134. "key": year,
  1135. "children": []
  1136. }
  1137. YearLevel[year] = children
  1138. }
  1139. for (var j in months) {
  1140. let month = months[j].monthTime;
  1141. let splitElement = month.split("-")[0];
  1142. let children = {
  1143. "title": month,
  1144. "key": month,
  1145. "children": []
  1146. }
  1147. YearLevel[splitElement].children.push(children)
  1148. }
  1149. let allChildren1 = {
  1150. "title": "行短稽核",
  1151. "key": "hd",
  1152. "children": []
  1153. }
  1154. for (var k in taskData) {
  1155. let taskDatum = taskData[k];
  1156. let taskStartTime = taskDatum.taskStartTime;
  1157. if (taskStartTime != null && taskStartTime != undefined) {
  1158. let children = {
  1159. "title": taskDatum.taskName + "[" + taskDatum.customerCount + "]",
  1160. "key": "key" + "-" + taskDatum.id,
  1161. "isLeaf": true,
  1162. }
  1163. let strings = taskStartTime.split("-");
  1164. let year = strings[0];
  1165. let month = strings[0] + "-" + strings[1];
  1166. for (var z in YearLevel[year].children) {
  1167. let title = YearLevel[year].children[z].title;
  1168. if (title == month) {
  1169. if (taskData[k].type===1){
  1170. allChildren1=YearLevel[year].children[z].children.push(children);
  1171. break;
  1172. }
  1173. if (taskData[k].type===2){
  1174. allChildren1=YearLevel[year].children[z].children.push(children);
  1175. break;
  1176. }
  1177. if (taskData[k].type===3){
  1178. allChildren1=YearLevel[year].children[z].children.push(children);
  1179. break;
  1180. }
  1181. if (taskData[k].type===4){
  1182. allChildren1=YearLevel[year].children[z].children.push(children);
  1183. break;
  1184. }
  1185. YearLevel[year].children[z].children.push(children);
  1186. break;
  1187. }
  1188. }
  1189. }
  1190. }
  1191. let allChildren = {
  1192. "title": "全部任务",
  1193. "key": "all",
  1194. "children": []
  1195. }
  1196. for (var u in YearLevel) {
  1197. this.treeData.push(YearLevel[u])
  1198. }
  1199. this.treeData.push(allChildren)
  1200. this.treeData = this.treeData.reverse();
  1201. }
  1202. }
  1203. )
  1204. },
  1205. //任务列表数据
  1206. taskList() {
  1207. let queryParam = {
  1208. pageNo: 1,
  1209. pageSize: 1000000,
  1210. }
  1211. getAction(this.url["taskList"], queryParam).then(res => {
  1212. if (res.success) {
  1213. let records = res.result.records;
  1214. //稽核任务菜单
  1215. this.taskDateList(records);
  1216. }
  1217. })
  1218. },
  1219. getDate:function (n) {
  1220. let day = moment(n)
  1221. .format("YYYY-MM-DD");
  1222. return day;
  1223. },
  1224. //查询各类型稽核进度
  1225. statusRefuse(taskId) {
  1226. let taskDate = this.taskDate;
  1227. let queryParam = {
  1228. "taskType":this.taskType,
  1229. "startDate": taskDate[0],
  1230. "endDate": taskDate[1],
  1231. "taskId": taskId
  1232. }
  1233. if (taskDate.length = 2) {
  1234. getAction(this.url["statusRefuse"], queryParam).then(res => {
  1235. if (res.success) {
  1236. let builderJson = {};
  1237. let columnDate = {};
  1238. let pieDate = {};
  1239. let all = 0;
  1240. let resultList = res.resultList;
  1241. if (resultList.length == 0) {
  1242. this.allCount = 0;
  1243. this.noHandle = 0;
  1244. this.toImproveUser = 0;
  1245. this.toBeAudited = 0;
  1246. this.tobeRectified = 0;
  1247. this.auditPassed = 0;
  1248. this.tgl='0%';
  1249. this.zgl='0%';
  1250. this.yctgl='0%';
  1251. }
  1252. for (var i in resultList) {
  1253. let resultListElement = resultList[i];
  1254. let status = this.statusMap[resultListElement.checkState];
  1255. if (status != undefined && status != null) {
  1256. all = all + resultListElement.count
  1257. columnDate[status] = resultListElement.count
  1258. }
  1259. }
  1260. builderJson = {
  1261. "all": all,
  1262. "charts": columnDate,
  1263. "ie": 9743
  1264. }
  1265. this.statusRefusePie(builderJson)
  1266. }
  1267. })
  1268. }
  1269. },
  1270. statusRefusePie(builderJson) {
  1271. if (builderJson.charts["稽核通过"] == null || builderJson.charts["稽核通过"] == undefined) {
  1272. builderJson.charts["稽核通过"] = 0;
  1273. }
  1274. if (builderJson.charts["未完善"] == null || builderJson.charts["未完善"] == undefined) {
  1275. builderJson.charts["未完善"] = 0;
  1276. }
  1277. if (builderJson.charts["待稽核"] == null || builderJson.charts["待稽核"] == undefined) {
  1278. builderJson.charts["待稽核"] = 0;
  1279. }
  1280. if (builderJson.charts["待整改"] == null || builderJson.charts["待整改"] == undefined) {
  1281. builderJson.charts["待整改"] = 0;
  1282. }
  1283. if (builderJson.charts["未处理"] == null || builderJson.charts["未处理"] == undefined) {
  1284. builderJson.charts["未处理"] = 0;
  1285. }
  1286. this.toImproveUser = builderJson.charts["未处理"];
  1287. this.wanshan = builderJson.charts["未完善"];
  1288. this.toBeAudited = builderJson.charts["待稽核"];
  1289. this.tobeRectified = builderJson.charts["待整改"];
  1290. this.auditPassed = builderJson.charts["稽核通过"];
  1291. debugger
  1292. this.allCount =this.toImproveUser+this.wanshan+this.toBeAudited+this.tobeRectified+this.auditPassed;
  1293. //this.zgl= (parseInt(percentage) / 100) * total;
  1294. if ( this.allCount>0){
  1295. this.tgl= Math.round(this.auditPassed / this.allCount * 10000) / 100 + "%";
  1296. }else {
  1297. this.tgl='0%'
  1298. }
  1299. let option = {
  1300. backgroundColor: {
  1301. type: 'pattern',
  1302. image: this.canvas,
  1303. repeat: 'repeat'
  1304. },
  1305. tooltip: {},
  1306. title: [
  1307. {
  1308. text: '稽核完成进度',
  1309. subtext: '总计 ' + builderJson.all + " 稽核通过 " + builderJson.charts["稽核通过"],
  1310. left: '30%',
  1311. textAlign: 'center'
  1312. },
  1313. {
  1314. text: '稽核类型占比',
  1315. subtext: '总计 ' + builderJson.all,
  1316. left: '70%',
  1317. textAlign: 'center'
  1318. }
  1319. ],
  1320. grid: [
  1321. {
  1322. top: 50,
  1323. width: '50%',
  1324. bottom: '5%',
  1325. left: 10,
  1326. containLabel: true
  1327. },
  1328. {
  1329. top: 50,
  1330. width: '50%',
  1331. bottom: '5%',
  1332. left: 10,
  1333. containLabel: true
  1334. }
  1335. ],
  1336. xAxis: [
  1337. {
  1338. type: 'value',
  1339. max: builderJson.all,
  1340. splitLine: {
  1341. show: false
  1342. }
  1343. }
  1344. ],
  1345. yAxis: [
  1346. {
  1347. type: 'category',
  1348. data: Object.keys(builderJson.charts),
  1349. axisLabel: {
  1350. interval: 0,
  1351. rotate: 30
  1352. },
  1353. splitLine: {
  1354. show: false
  1355. }
  1356. }
  1357. ],
  1358. series: [
  1359. {
  1360. type: 'bar',
  1361. stack: 'chart',
  1362. z: 3,
  1363. label: {
  1364. position: 'right',
  1365. show: true
  1366. },
  1367. data: Object.keys(builderJson.charts).map(function (key) {
  1368. return builderJson.charts[key];
  1369. }),
  1370. itemStyle: {
  1371. normal: {
  1372. //这里是颜色
  1373. color: function (params) {
  1374. //注意,如果颜色太少的话,后面颜色不会自动循环,最好多定义几个颜色
  1375. var colorList = ['#5c6fc4', '#f0be47', '#d2232c', '#81c463', '#BBFFAA', '#749f83', '#ca8622'];
  1376. return colorList[params.dataIndex]
  1377. }
  1378. }
  1379. }
  1380. },
  1381. {
  1382. type: 'bar',
  1383. stack: 'chart',
  1384. silent: true,
  1385. itemStyle: {
  1386. color: '#eee'
  1387. },
  1388. data: Object.keys(builderJson.charts).map(function (key) {
  1389. return builderJson.all - builderJson.charts[key];
  1390. }),
  1391. },
  1392. {
  1393. type: 'pie',
  1394. radius: [0, '80%'],
  1395. center: ['75%', '55%'],
  1396. data: Object.keys(builderJson.charts).map(function (key) {
  1397. return {
  1398. name: key,
  1399. value: builderJson.charts[key]
  1400. };
  1401. }),
  1402. itemStyle: {
  1403. normal: {
  1404. //这里是颜色
  1405. color: function (params) {
  1406. //注意,如果颜色太少的话,后面颜色不会自动循环,最好多定义几个颜色
  1407. var colorList = ['#5a6fc0', '#f0be47', '#d2232c', '#81c463', '#BBFFAA', '#749f83', '#ca8622'];
  1408. return colorList[params.dataIndex]
  1409. }
  1410. }
  1411. }
  1412. },
  1413. ]
  1414. };
  1415. this.$statusRefusePie = echarts.init(document.getElementById('statusRefusePie'))
  1416. this.$statusRefusePie.setOption(option)
  1417. },
  1418. getRecentDay: function (n) {
  1419. let day = moment(new Date())
  1420. .subtract(n, "days")
  1421. .format("YYYY-MM-DD");
  1422. return day;
  1423. },
  1424. }
  1425. }
  1426. </script>
  1427. <style scoped>
  1428. </style>