index.vue 75 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611
  1. <template>
  2. <dv-full-screen-container>
  3. <div class="screen" ref="scrollDiv" >
  4. <!-- :style="{height:height}" -->
  5. <div class="statistics" v-on:mouseenter="rollstop" v-on:mouseleave="rollcontinue">
  6. <div class="editDate" style="background-color: rgba(0,0,0,0);display: block;width: 100%;height: 10%;">
  7. <!-- 标题装饰组件 -->
  8. <header-decoration />
  9. <!-- <div class="stitle">实验室管理看板</div> -->
  10. <!-- <div class="block" style="display:none">
  11. <span class="demonstration">开始:</span>
  12. <el-date-picker v-model="BeginDate" type="year" size="mini" value-format="yyyy" format="yyyy年" style="width: 96px;"
  13. :clearable="false" @change="checkYear(BeginDate,'begin')" placeholder="选择日期">
  14. </el-date-picker>
  15. </div> -->
  16. <!-- <div class="block"> -->
  17. <!-- <span class="demonstration">查询年度:</span> -->
  18. <!-- <el-date-picker v-model="endDate" type="year" size="mini" value-format="yyyy" format="yyyy年" :clearable="false" style="width: 96px;"
  19. @change="checkYear(endDate,'end')" placeholder="选择日期"> -->
  20. <!-- <el-date-picker
  21. v-model="endDate"
  22. type="year"
  23. value-format="yyyy"
  24. @change="checkYear(endDate,'end')"
  25. placeholder="选择年">
  26. </el-date-picker> -->
  27. <!-- </el-date-picker> -->
  28. <!-- </div> -->
  29. <div
  30. style="width: 50%;
  31. height:45%;
  32. line-height: 45%;
  33. text-align:center;
  34. float: left;
  35. margin: -2.5% 0 0 6.7%;
  36. font-size: 100%;
  37. color: #fff !important;
  38. align-items: center;
  39. display:flex" >
  40. <!-- <div>
  41. 部门:
  42. </div>
  43. <el-select v-model="bumen" clearable @change="selectAll()" placeholder="请选择部门">
  44. <el-option
  45. v-for="item in quality"
  46. :key="item.id_"
  47. :label="item.name_"
  48. :value="item.id_">
  49. </el-option>
  50. </el-select> -->
  51. <div>
  52. 月份:
  53. </div>
  54. <el-date-picker
  55. v-model="endDate"
  56. type="monthrange"
  57. align="right"
  58. unlink-panels
  59. style="background-color: rgba(0,0,0,0);"
  60. format="yyyy 年 MM 月"
  61. value-format="yyyy-MM"
  62. @change="checkYear(endDate,'end')"
  63. range-separator="至"
  64. start-placeholder="开始日期"
  65. end-placeholder="结束日期">
  66. </el-date-picker>
  67. <!-- <el-button type="primary" size="mini" plain @click="selectAll">
  68. 查询
  69. </el-button> -->
  70. <!-- <el-date-picker
  71. class="chooseMonth"
  72. v-model="NowTime1"
  73. type="month"
  74. @change="changeTime1"
  75. format="yyyy-MM"
  76. value-format="yyyy-MM"
  77. placeholder="请选择时间">
  78. </el-date-picker> -->
  79. </div>
  80. <!-- <div class="block">
  81. </div> -->
  82. <!-- <div class="goBackButton" @click.prevent="goBack()" >
  83. 返回
  84. </div> -->
  85. <!-- <div
  86. @click.prevent="rollstop()"
  87. style="width: 8%;
  88. height:2.825rem;
  89. line-height: 2.825rem;
  90. text-align:center;
  91. float: right;
  92. margin: -3% 17.1% 0 0;"
  93. v-if="rollup">
  94. <dv-border-box-8>暂停</dv-border-box-8>
  95. </div>
  96. <div
  97. @click.prevent="rollcontinue()"
  98. style="width: 8%;
  99. height:2.825rem;
  100. line-height: 2.825rem;
  101. text-align:center;
  102. float: right;
  103. margin: -3% 17.1% 0 0;"
  104. v-else>
  105. <dv-border-box-8>继续</dv-border-box-8>
  106. </div> -->
  107. <div
  108. @click.prevent="goBack()"
  109. style="width: 8%;
  110. height:43%;
  111. font-size: 100%;
  112. line-height: 45%;
  113. text-align:center;
  114. float: right;
  115. margin: -2.5% 17.1% 0 0;" >
  116. <dv-border-box-8 class="shiyankanbanfanhui">返回</dv-border-box-8>
  117. </div>
  118. <div style="width: 15%;
  119. font-size: 100%;
  120. text-align:left;
  121. float: right;
  122. font-size: 0.5%;
  123. margin: -2% 0% 0 0;" :class="{ 'fade-in': fadeinout, 'fade-out': !fadeinout }">鼠标全部移出则滚动,鼠标在页面内则暂停滚动</div>
  124. </div>
  125. <dv-border-box-1 style="width: 100%; height: 89%;box-sizing: border-box; overflow: hidden">
  126. <!-- <div class="congxiebox7" style="display:inline-block;height:43%;width:98%;margin:1% 1%;text-align: center;overflow:hiddien" v-if="pageOT==Math.floor((zhiliangmuNeirong)/2)">
  127. <div class="ttitle" style="margin:2% 0;text-align: center;">质量目标与质量指标公式</div>
  128. <div class="componentsData" style="height:82%" v-if="relOf">
  129. <dv-scroll-board style="height:100%;white-space:pre-wrap"
  130. v-if="(showAll || showComponents[23])&&tableData1.data.length>0"
  131. :config="tableData1"
  132. />
  133. <div class="nullDate" v-if="(showAll || showComponents[23])&&tableData1.data.length<=0">暂无数据</div>
  134. <div class="clear"></div>
  135. </div>
  136. </div> -->
  137. <!-- <div class="congxiebox7" style="display:inline-block;width:19%;float:right;height:85%;overflow:hiddien" v-if="pageOT==1&&bumen==''">
  138. <div class="ttitle" style="margin:8% 0;text-align: center;">质量目标与质量指标总计</div>
  139. <div class="componentsData" v-if="relOf">
  140. <dv-scroll-board style="height:100%;"
  141. v-if="(showAll || showComponents[22])&&tableData.data.length>0"
  142. :config="tableData"
  143. />
  144. <div class="nullDate" style="height:100%;" v-if="(showAll || showComponents[22])&&tableData.data.length<=0">暂无数据</div>
  145. <div class="clear"></div>
  146. </div>
  147. </div> -->
  148. <div class="ttitle" style="text-align: center;height:0.8%" v-if="pageOT<7">一、质量目标</div>
  149. <div class="congxiebox7" style="display:inline-block;width:98%;margin-right:1%;margin-left:1%;height:43%;" v-if="pageOT==1">
  150. <div class="ttitle" style="text-align: center;">不合格样品率</div>
  151. <div class="componentsData" style="height:87%" v-if="relOf">
  152. <!-- <buhegeyangpinPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  153. v-if="zaigangrenyuan.length>0&&(showAll || showComponents[24])" :data = "getbuhegeyangpin()"/> -->
  154. <buhegeyangpinPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'bhgyp'" :wancheng="'合格率'" :weiwancheng="'不合格率'"
  155. v-if="showAll ||showComponents[24]" :data = "getbuhegeyangpin()"/>
  156. <buhegeyangpinBar style="height:100%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'bhgypb'"
  157. v-if="showAll || showComponents[25]" :data = "getbuhegeyangpinB()"/>
  158. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  159. <div class="clear"></div>
  160. </div>
  161. </div>
  162. <dv-decoration-10 style="height:0.5%;width:98%;margin-top:1%;margin-right:1%;margin-left:1%;" v-if="pageOT==1"/>
  163. <div class="congxiebox7" style="display:inline-block;width:98%;margin-right:1%;margin-left:1%;height:43%;" v-if="pageOT==1">
  164. <div class="ttitle" style="text-align: center;">报告不正确率</div>
  165. <div class="componentsData" style="height:87%" v-if="relOf">
  166. <baogaobuzhengquePie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'bgbhg'" :wancheng="'正确率'" :weiwancheng="'不正确率'"
  167. v-if="showAll ||showComponents[26]" :data = "getbaogaobuzhengque()"/>
  168. <baogaobuzhengqueBar style="height:100%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'bhgypb'"
  169. v-if="showAll || showComponents[27]" :data = "getbaogaobuzhengqueB()"/>
  170. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  171. <div class="clear"></div>
  172. </div>
  173. </div>
  174. <div class="congxiebox7" style="display:inline-block;width:98%;;margin-right:1%;margin-left:1%;height:90%;" v-if="pageOT==2">
  175. <div class="ttitle" style="text-align: center;">危急值报告达标率</div>
  176. <div class="componentsData" style="height:87%" v-if="relOf">
  177. <weijizhibaogaoPie style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'wjzbg'" :wancheng="'报告率'" :weiwancheng="'未报告率'"
  178. v-if="showAll ||showComponents[28]" :data = "getweijizhibaogao()"/>
  179. <weijizhibaogaoBar style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'wjzbgb'"
  180. v-if="showAll || showComponents[29]" :data = "getweijizhibaogaoB()"/>
  181. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  182. <weijizhijishiPie style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'wjzbgjs'" :wancheng="'及时率'" :weiwancheng="'不及时率'"
  183. v-if="showAll ||showComponents[30]" :data = "getweijizhijishi()"/>
  184. <weijizhijishiBar style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'wjzbgjsb'"
  185. v-if="showAll || showComponents[31]" :data = "getweijizhijishiB()"/>
  186. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="gangqianpeixunfb.length<=0&&(showAll || showComponents[4])">暂无数据</div> -->
  187. <div class="clear"></div>
  188. </div>
  189. </div>
  190. <div class="congxiebox7" style="display:inline-block;width:98%;;margin-right:1%;margin-left:1%;height:90%;" v-if="pageOT==3">
  191. <div class="ttitle" style="text-align: center;">TAT符合率</div>
  192. <div class="componentsData" style="height:87%" v-if="relOf">
  193. <sysnzzsjfhPie style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'sysnzzsjfh'" :wancheng="'符合率'" :weiwancheng="'不符合率'"
  194. v-if="showAll ||showComponents[32]" :data = "getsysnzzsjfh()"/>
  195. <sysnzzsjfhBar style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'sysnzzsjfhb'"
  196. v-if="showAll || showComponents[33]" :data = "getsysnzzsjfhB()"/>
  197. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  198. <jyqzzzwsPie style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'jyqzzzws'" :wancheng="'中位数达标率'" :weiwancheng="'中位数不达标率'"
  199. v-if="showAll ||showComponents[34]" :data = "getjyqzzzws()"/>
  200. <jyqzzzwsBar style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'jyqzzzwsb'"
  201. v-if="showAll || showComponents[35]" :data = "getjyqzzzwsB()"/>
  202. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="gangqianpeixunfb.length<=0&&(showAll || showComponents[4])">暂无数据</div> -->
  203. <div class="clear"></div>
  204. </div>
  205. </div>
  206. <div class="congxiebox7" style="display:inline-block;width:98%;margin-right:1%;margin-left:1%;height:43%;" v-if="pageOT==4">
  207. <div class="ttitle" style="text-align: center;">室内质控评达标率</div>
  208. <div class="componentsData" style="height:87%" v-if="relOf">
  209. <!-- <buhegeyangpinPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  210. v-if="zaigangrenyuan.length>0&&(showAll || showComponents[24])" :data = "getbuhegeyangpin()"/> -->
  211. <bshineizhikongPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'snzk'" :wancheng="'达标率'" :weiwancheng="'不达标率'"
  212. v-if="showAll ||showComponents[36]" :data = "getbshineizhikong()"/>
  213. <bshineizhikongBar style="height:100%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'snzkb'"
  214. v-if="showAll || showComponents[37]" :data = "getbshineizhikongB()"/>
  215. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  216. <div class="clear"></div>
  217. </div>
  218. </div>
  219. <dv-decoration-10 style="height:0.5%;width:98%;margin-top:1%;margin-right:1%;margin-left:1%;" v-if="pageOT==4"/>
  220. <div class="congxiebox7" style="display:inline-block;width:98%;margin-right:1%;margin-left:1%;height:43%;" v-if="pageOT==4">
  221. <div class="ttitle" style="text-align: center;">室间质评合格率</div>
  222. <div class="componentsData" style="height:87%" v-if="relOf">
  223. <shijianzhipingPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'sjzp'" :wancheng="'合格率'" :weiwancheng="'不合格率'"
  224. v-if="showAll ||showComponents[38]" :data = "getshijianzhiping()"/>
  225. <shijianzhipingBar style="height:100%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'sjzpb'"
  226. v-if="showAll || showComponents[39]" :data = "getshijianzhipingB()"/>
  227. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  228. <div class="clear"></div>
  229. </div>
  230. </div>
  231. <div class="congxiebox7" style="display:inline-block;width:98%;margin-right:1%;margin-left:1%;height:43%;" v-if="pageOT==5">
  232. <div class="ttitle" style="text-align: center;">实验室间比对率(无室间质评项目)</div>
  233. <div class="componentsData" style="height:87%" v-if="relOf">
  234. <!-- <buhegeyangpinPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  235. v-if="zaigangrenyuan.length>0&&(showAll || showComponents[24])" :data = "getbuhegeyangpin()"/> -->
  236. <shiyanshibiduiPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'sysjbd'" :wancheng="'对比合格率'" :weiwancheng="'对比不合格率'"
  237. v-if="showAll ||showComponents[40]" :data = "getshiyanshibidui()"/>
  238. <shiyanshibiduiBar style="height:100%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'sysjbdb'"
  239. v-if="showAll || showComponents[41]" :data = "getshiyanshibiduiB()"/>
  240. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  241. <div class="clear"></div>
  242. </div>
  243. </div>
  244. <dv-decoration-10 style="height:0.5%;width:98%;margin-top:1%;margin-right:1%;margin-left:1%;" v-if="pageOT==5"/>
  245. <div class="congxiebox7" style="display:inline-block;width:98%;margin-right:1%;margin-left:1%;height:43%;" v-if="pageOT==5">
  246. <div class="ttitle" style="text-align: center;">设备不良事件上报时限符合率</div>
  247. <div class="componentsData" style="height:87%" v-if="relOf">
  248. <shebeibuliangPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'sbbl'" :wancheng="'符合率'" :weiwancheng="'不符合率'"
  249. v-if="showAll ||showComponents[42]" :data = "getshebeibuliang()"/>
  250. <shebeibuliangBar style="height:100%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'sbblb'"
  251. v-if="showAll || showComponents[43]" :data = "getshebeibuliangB()"/>
  252. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  253. <div class="clear"></div>
  254. </div>
  255. </div>
  256. <div class="congxiebox7" style="display:inline-block;width:98%;margin-right:1%;margin-left:1%;height:43%;" v-if="pageOT==6">
  257. <div class="ttitle" style="text-align: center;">客户满意率</div>
  258. <div class="componentsData" style="height:87%" v-if="relOf">
  259. <!-- <buhegeyangpinPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  260. v-if="zaigangrenyuan.length>0&&(showAll || showComponents[24])" :data = "getbuhegeyangpin()"/> -->
  261. <kehumanyiPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'khmy'" :wancheng="'满意率'" :weiwancheng="'不满意率'"
  262. v-if="showAll ||showComponents[44]" :data = "getkehumanyi()"/>
  263. <kehumanyiBar style="height:100%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'khmyb'"
  264. v-if="showAll || showComponents[45]" :data = "getkehumanyiB()"/>
  265. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  266. <div class="clear"></div>
  267. </div>
  268. </div>
  269. <dv-decoration-10 style="height:0.5%;width:98%;margin-top:1%;margin-right:1%;margin-left:1%;" v-if="pageOT==6"/>
  270. <div class="congxiebox7" style="display:inline-block;width:98%;margin-right:1%;margin-left:1%;height:43%;" v-if="pageOT==6">
  271. <div class="ttitle" style="text-align: center;">员工参加培训次数达标率</div>
  272. <div class="componentsData" style="height:87%" v-if="relOf">
  273. <ygcjpxcsdbPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'ygcjpxcsdb'" :wancheng="'达标率'" :weiwancheng="'不达标率'"
  274. v-if="showAll ||showComponents[46]" :data = "getygcjpxcsdb()"/>
  275. <ygcjpxcsdbBar style="height:100%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'ygcjpxcsdbb'"
  276. v-if="showAll || showComponents[47]" :data = "getygcjpxcsdbB()"/>
  277. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  278. <div class="clear"></div>
  279. </div>
  280. </div>
  281. <div class="congxiebox7" style="display:inline-block;width:98%;margin-top:2%;margin-right:1%;margin-left:1%;height:90%;" v-if="pageOT==pageAll+7">
  282. <div class="ttitle" style="text-align: center;">三、人员培训与管理</div>
  283. <div class="componentsData" style="height:87%" v-if="relOf">
  284. <s4renYuanPeiXun style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  285. v-if="zaigangrenyuan.length>0&&(showAll || showComponents[1])" :data = "getS4renYuanPeiXun()"/>
  286. <s4renYuanPeiXunCol style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :direction="direction"
  287. v-if="zaigangrenyuanfb.length>0&&(showAll || showComponents[2])" :data = "getS4renYuanPeiXunFB()"/>
  288. <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div>
  289. <s5renYuanJianDu style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  290. v-if="showAll || showComponents[3]" :data = "getS5renYuanJianDu()"/>
  291. <s5renYuanJianDuCol style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :direction="direction"
  292. v-if="gangqianpeixunfb.length>0&&(showAll || showComponents[4])" :data = "getS5renYuanJianDuFB()"/>
  293. <div class="nullDate1" style="height:50%;width:75%;" v-if="gangqianpeixunfb.length<=0&&(showAll || showComponents[4])">暂无数据</div>
  294. <!-- <s16bzJunZhu :height="'290%'" :width="static=='row' ? '33%': '100%'" :colorw = "colorw"
  295. v-if="showAll || showComponents[20]" :data = "getbzJunZhujNum()"/>
  296. <s17bzXiBao :height="'290%'" :width="static=='row' ? '33%': '100%'" :colorw = "colorw"
  297. v-if="showAll || showComponents[21]" :data = "getbzXiBaoObjNum()"/> -->
  298. <div class="clear"></div>
  299. </div>
  300. </div>
  301. <!-- <dv-decoration-10 style="height:0.5%;width:98%;margin-top:1%;margin-right:1%;margin-left:1%;" v-if="pageOT==1"/> -->
  302. <div class="congxiebox7" style="display:inline-block;width:98%;margin-top:2%;margin-right:1%;margin-left:1%;height:90%;" v-if="pageOT==pageAll+8">
  303. <div class="ttitle" style="text-align: center;">四、设备维保</div>
  304. <div class="componentsData" style="height:87%" v-if="relOf">
  305. <s7sheBeiJiaoZhun style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  306. v-if="showAll || showComponents[5]" :data = "getJiaoYanObjNum()"/>
  307. <s7sheBeiJiaoZhunCol style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :direction="direction"
  308. v-if="jiaoyanMGObj.length>0&&(showAll || showComponents[6])" :data = "getJiaoYanObjNumFB()"/>
  309. <div class="nullDate1" style="height:50%;width:75%;" v-if="jiaoyanMGObj.length<=0&&(showAll || showComponents[6])">暂无数据</div>
  310. <s8sheBeiHeCha style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  311. v-if="showAll || showComponents[7]" :data = "gethechaObjNum()"/>
  312. <s8sheBeiHeChaCol style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :direction="direction"
  313. v-if="hechaMGObj.length>0&&(showAll || showComponents[8])" :data = "gethechaObjNumFB()"/>
  314. <div class="nullDate1" style="height:50%;width:75%;" v-if="hechaMGObj.length<=0&&(showAll || showComponents[8])">暂无数据</div>
  315. <div class="clear"></div>
  316. </div>
  317. </div>
  318. <div class="congxiebox7" style="display:inline-block;width:98%;margin-top:2%;margin-right:1%;margin-left:1%;height:90%;" v-if="pageOT==pageAll+9">
  319. <div class="ttitle" style="text-align: center;">五、质量管理</div>
  320. <div class="componentsData" style="height:87%" v-if="relOf">
  321. <s9neiBuZhiLiang style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  322. v-if="showAll || showComponents[9]" :data = "getS9neiBuZhiLiang()"/>
  323. <s9neiBuZhiLiangCol style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :direction="direction"
  324. v-if="neibuObjfb.length>0&&(showAll || showComponents[10])" :data = "getS9neiBuZhiLiangFB()"/>
  325. <div class="nullDate1" style="height:50%;width:75%;" v-if="neibuObjfb.length<=0&&(showAll || showComponents[10])">暂无数据</div>
  326. <s10waiBuNengLi style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  327. v-if="showAll || showComponents[11]" :data = "getnengtliObjNum()"/>
  328. <s10waiBuNengLiCol style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :direction="direction"
  329. v-if="waibuObjfb.length>0&&(showAll || showComponents[12])" :data = "getnengtliObjNumFB()"/>
  330. <div class="nullDate1" style="height:50%;width:75%;" v-if="waibuObjfb.length<=0&&(showAll || showComponents[12])">暂无数据</div>
  331. <div class="clear"></div>
  332. </div>
  333. </div>
  334. <div class="congxiebox7" style="display:inline-block;width:98%;margin-top:2%;margin-right:1%;margin-left:1%;height:90%;" v-if="pageOT==pageAll+10">
  335. <div class="ttitle" style="text-align: center;">五、质量管理</div>
  336. <div class="componentsData" style="height:87%" v-if="relOf">
  337. <s15tousu style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  338. v-if="showAll || showComponents[13]" :data = "getS3tousu()"/>
  339. <s15tousuCol style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :direction="direction"
  340. v-if="yingjifbObj.length>0&&(showAll || showComponents[14])" :data = "getS3tousuFB()"/>
  341. <div class="nullDate1" style="height:50%;width:75%;" v-if="yingjifbObj.length<=0&&(showAll || showComponents[14])">暂无数据</div>
  342. <s12fengXian style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  343. v-if="showAll || showComponents[15]" :data = "getS12fengXian()"/>
  344. <s12fengXianCol style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :direction="direction"
  345. v-if="fengxianfbObj.length>0&&(showAll || showComponents[16])" :data = "getS12fengXianFB()"/>
  346. <div class="nullDate1" style="height:50%;width:75%;" v-if="fengxianfbObj.length<=0&&(showAll || showComponents[16])">暂无数据</div>
  347. <div class="clear"></div>
  348. </div>
  349. </div>
  350. <div class="congxiebox7" style="display:inline-block;width:98%;margin-right:1%;margin-left:1%;height:43%;" v-if="pageOT==pageAll+11">
  351. <div class="ttitle" style="text-align: center;">五、质量管理</div>
  352. <div class="componentsData" style="height:87%" v-if="relOf">
  353. <shijiazhipinjihuaPie style="height:100%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw" :id="'sjzpjh'"
  354. v-if="showAll ||showComponents[46]" :data = "getshijiazhipinjihua()"/>
  355. <shijiazhipinjihuaBar style="height:100%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :id="'sjzpjhb'"
  356. v-if="showAll || showComponents[47]" :data = "getshijiazhipinjihuaB()"/>
  357. <!-- <div class="nullDate1" style="height:50%;width:75%;" v-if="zaigangrenyuanfb.length<=0&&(showAll || showComponents[2])">暂无数据</div> -->
  358. <div class="clear"></div>
  359. </div>
  360. </div>
  361. <div class="congxiebox7" style="display:inline-block;width:98%;margin-top:2%;margin-right:1%;margin-left:1%;height:90%;" v-if="pageOT==pageAll+12">
  362. <div class="ttitle" style="text-align: center;">五、质量管理</div>
  363. <div class="componentsData" style="height:87%" v-if="relOf">
  364. <s2manYiDu style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  365. v-if="showAll || showComponents[17]" :data = "getS2manYiDu()"/>
  366. <s2manYiDuCol style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :direction="direction"
  367. v-if="neishenfbObj.length>0&&(showAll || showComponents[18])" :data = "getS2manYiDuFB()"/>
  368. <div class="nullDate1" style="height:50%;width:75%;" v-if="neishenfbObj.length<=0&&(showAll || showComponents[18])">暂无数据</div>
  369. <s14bufuhexiang style="height:50%" :width="static=='row' ? '100%': '100%'" :colorw = "colorw" :direction="direction"
  370. v-if="bufuheObj.length>0&&(showAll || showComponents[19])" :data = "getS14bufuhexiang()"/>
  371. <div class="nullDate1" style="height:50%;width:100%;" v-if="bufuheObj.length<=0&&(showAll || showComponents[19])">暂无数据</div>
  372. <div class="clear"></div>
  373. </div>
  374. </div>
  375. <div class="congxiebox7" style="display:inline-block;width:98%;margin-top:2%;margin-right:1%;margin-left:1%;height:90%;" v-if="pageOT==pageAll+13">
  376. <div class="ttitle" style="text-align: center;">五、质量管理</div>
  377. <div class="componentsData" style="height:87%" v-if="relOf">
  378. <s1zhiLiangMuBiao style="height:50%" :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
  379. v-if="showAll || showComponents[21]" :data = "getS1renwu()"/>
  380. <s1zhiLiangMuBiaoCol style="height:50%" :width="static=='row' ? '75%': '100%'" :colorw = "colorw" :direction="direction"
  381. v-if="guanshenfbObj.length>0&&(showAll || showComponents[22])" :data = "getS1renwuFB()"/>
  382. <div class="nullDate1" style="height:50%;width:75%;" v-if="guanshenfbObj.length<=0&&(showAll || showComponents[22])">暂无数据</div>
  383. <s16bzJunZhu style="height:50%" :width="static=='row' ? '100%': '100%'" :colorw = "colorw" :direction="direction"
  384. v-if="gaijinxiangObj.length>0&&(showAll || showComponents[23])" :data = "getbzJunZhujNum()"/>
  385. <div class="nullDate1" style="height:50%;width:100%;" v-if="gaijinxiangObj.length<=0&&(showAll || showComponents[23])">暂无数据</div>
  386. <div class="clear"></div>
  387. </div>
  388. </div>
  389. <!-- <div class="congxiebox7" style="display:inline-block;width:98%;margin-top:2%;margin-right:1%;margin-left:1%;height:90%;" v-if="pageOT==7">
  390. <div class="ttitle" style="text-align: center;">各部门质量目标</div>
  391. <div class="componentsData" style="height:95%" v-if="relOf"> -->
  392. <!-- <s11biaoZhunWu style="height:100%" :width="static=='row' ? '100%': '100%'" :colorw = "colorw"
  393. v-if=" buhegelvObj.length>0 && (showAll || showComponents[24])" :data = "getyangPinCaiJiObjNum()"/>
  394. <div class="nullDate" v-if="buhegelvObj.length<=0&&( showAll || showComponents[24])">暂无数据</div>
  395. <div class="clear"></div> -->
  396. <!-- <dv-scroll-board style="height:100%;"
  397. v-if="(showAll || showComponents[24])&&tableData.data.length>0"
  398. :config="tableData"
  399. />
  400. <div class="nullDate" style="height:100%;" v-if="(showAll || showComponents[24])&&tableData.data.length<=0">暂无数据</div>
  401. <div class="clear"></div> -->
  402. <!--
  403. </div>
  404. </div> -->
  405. <!-- <div style="height:90%;margin-top:1%" v-for="(item,i) in zhiliangmuNeirong" :key="i" v-show="pageOT==i+1"> -->
  406. <!-- <div style="height:90%;margin-top:1%" v-show="pageOT<pageAll+1">
  407. <div style="display:inline-block;margin:1% 1%; height:100%;width:98%;" >
  408. <div class="ttitle" style="text-align: center;height:3%">{{showFenZu.title}}质量指标</div>
  409. <div class="componentsData" style="height:90%" v-if="relOf"> -->
  410. <div style="height:90%;margin-top:1%" v-if="pageOT>6&&pageOT<pageAll+7">
  411. <div style="display:inline-block; height:100%;width:100%;" >
  412. <div class="ttitle" style="text-align: center;height:1.2%">二、质量指标</div>
  413. <div class="ttitle" style="text-align: center;height:1.2%">{{showFenZu.title||''}}</div>
  414. <div class="componentsData" style="height:100%" v-if="relOf">
  415. <!--
  416. <s1jianCe :height="'290%'" :width="static=='row' ? '19.5%': '100%'" :colorw = "colorw" :mubiao = "quality[1].val"
  417. v-if="showAll || showComponents[5]" :data = "getS2jianCe()" />
  418. <s3tousu :height="'290%'" :width="static=='row' ? '19.5%': '100%'" :colorw = "colorw" :mubiao = "quality[3].val"
  419. v-if="showAll || showComponents[6]" :data = "getS3tousu()"/>
  420. <s13shengWu :height="'290%'" :width="static=='row' ? '19.5%': '100%'" :colorw = "colorw" :mubiao = "quality[4].val"
  421. v-if="showAll || showComponents[17]" :data = "getS3tousu()"/> -->
  422. <!-- <div :id="`card${i}`" style="width:100%;height:100%" ></div> -->
  423. <!-- <div class="nullDate" v-if="zhiliangmuNeirong[i].data.length<=0">暂无数据</div> -->
  424. <!-- <container :info="showFenZu" :font-size="fontSize" :pageI="i" /> -->
  425. <container :info="showFenZu.data" :font-size="fontSize" />
  426. <div class="clear"></div>
  427. </div>
  428. <!-- <dv-decoration-10 style="height:0.5%" v-if="i % 2 != 0 && i != zhiliangmuNeirong.length" /> -->
  429. </div>
  430. </div>
  431. <!-- <div class="congxiebox7" style="display:inline-block;width:49%;" v-if="pageOT==2">
  432. <div class="ttitle" style="text-align: center;">内审计划</div>
  433. <div class="componentsData" v-if="relOf">
  434. </div>
  435. </div>
  436. <div class="congxiebox7" style="display:inline-block;width:49%;float:right;" v-if="pageOT==2">
  437. <div class="ttitle" style="text-align: center;">管审计划</div>
  438. <div class="componentsData" v-if="relOf">
  439. </div>
  440. </div>
  441. -->
  442. </dv-border-box-1>
  443. </div>
  444. </div>
  445. </dv-full-screen-container>
  446. </template>
  447. <script>
  448. //全屏展示
  449. import screenfull from 'screenfull'
  450. //大屏标题组件
  451. import headerDecoration from './headerDecoration'
  452. import s1zhiLiangMuBiao from './item/s1zhiLiangMuBiao.vue'
  453. import s1zhiLiangMuBiaoCol from './item/s1zhiLiangMuBiaoCol.vue'
  454. import s1zhiLiang1 from './item/s1zhiLiang1.vue'
  455. import s1zhiLiang2 from './item/s1zhiLiang2.vue'
  456. import s1zhiLiang3 from './item/s1zhiLiang3.vue'
  457. import s1jianCe from './item/s1jianCe.vue'
  458. import s2manYiDu from './item/s2manYiDu.vue'
  459. import s2manYiDuCol from './item/s2manYiDuPro.vue'
  460. import s3tousu from './item/s3tousu.vue'
  461. import s4renYuanPeiXun from './item/s4renYuanPeiXun.vue'
  462. import s4renYuanPeiXunCol from './item/s4renYuanPeiXunCol.vue'
  463. import s5renYuanJianDu from './item/s5renYuanJianDu.vue'
  464. import s5renYuanJianDuCol from './item/s5renYuanJianDuCol.vue'
  465. import s6sheBeiWeiHu from './item/s6sheBeiWeiHu.vue'
  466. import s7sheBeiJiaoZhun from './item/s7sheBeiJiaoZhun.vue'
  467. import s7sheBeiJiaoZhunCol from './item/s7sheBeiJiaoZhunCol.vue'
  468. import s8sheBeiHeCha from './item/s8sheBeiHeCha.vue'
  469. import s8sheBeiHeChaCol from './item/s8sheBeiHeChaCol.vue'
  470. import s9neiBuZhiLiang from './item/s9neiBuZhiLiang.vue'
  471. import s9neiBuZhiLiangCol from './item/s9neiBuZhiLiangCol.vue'
  472. import s10waiBuNengLi from './item/s10waiBuNengLi.vue'
  473. import s10waiBuNengLiCol from './item/s10waiBuNengLiCol.vue'
  474. import s11biaoZhunWu from './item/s11biaoZhunWuCol2.vue'
  475. import s11biaoZhunWucol from './item/s11biaoZhunWuCol.vue'
  476. import s12fengXian from './item/s12fengXian.vue'
  477. import s12fengXianCol from './item/s12fengXianCol.vue'
  478. import s13shengWu from './item/s13shengWu.vue'
  479. import s14bufuhexiang from './item/s14bufuhexiangCol.vue'
  480. import s15tousu from './item/s15tousu.vue'
  481. import s15tousuCol from './item/s15tousuCol.vue'
  482. import s16bzJunZhu from './item/s16bzJunZhuCol2.vue'
  483. import s17bzXiBao from './item/s17bzXiBao.vue'
  484. import buhegeyangpinPie from './item/zlmbPie.vue'
  485. import buhegeyangpinBar from './item/zlmbMonthBar.vue'
  486. import baogaobuzhengqueBar from './item/zlmbMonthBar.vue'
  487. import baogaobuzhengquePie from './item/zlmbPie.vue'
  488. import weijizhibaogaoPie from './item/zlmbPie.vue'
  489. import weijizhibaogaoBar from './item/zlmbYearBar.vue'
  490. import weijizhijishiBar from './item/zlmbYearBar.vue'
  491. import weijizhijishiPie from './item/zlmbPie.vue'
  492. import sysnzzsjfhPie from './item/zlmbPie.vue'
  493. import sysnzzsjfhBar from './item/zlmbMonthBar.vue'
  494. import jyqzzzwsPie from './item/zlmbPie.vue'
  495. import jyqzzzwsBar from './item/zlmbMonthBar.vue'
  496. import bshineizhikongPie from './item/zlmbPie.vue'
  497. import bshineizhikongBar from './item/zlmbYearBar.vue'
  498. import shijianzhipingPie from './item/zlmbPie.vue'
  499. import shijianzhipingBar from './item/zlmbYearBar.vue'
  500. import shiyanshibiduiPie from './item/zlmbPie.vue'
  501. import shiyanshibiduiBar from './item/zlmbYearBar.vue'
  502. import shebeibuliangPie from './item/zlmbPie.vue'
  503. import shebeibuliangBar from './item/zlmbYearBar.vue'
  504. import kehumanyiPie from './item/zlmbPie.vue'
  505. import kehumanyiBar from './item/zlmbMidYearBar.vue'
  506. import ygcjpxcsdbPie from './item/zlmbPie.vue'
  507. import ygcjpxcsdbBar from './item/zlmbYearBar.vue'
  508. import shijiazhipinjihuaPie from './item/s15tousu.vue'
  509. import shijiazhipinjihuaBar from './item/s15tousuCol.vue'
  510. // import container from '@/views/system/jbdHome/qualityTarget/components/container.vue'
  511. // import container from './components/container.vue'
  512. import none from './item/none.vue'
  513. import * as echarts from 'echarts'
  514. import { DBData ,getConfig,getJiaoYanObj, gethechaObj,getgangqianpeixunFBObj,getguanshenObjFB, getzhiliangmubiaotitleObj,getneishenObjFB,getfengxianObjFB,getyingjiObjFB,getwaibuObjFB,getneibuObjFB,getJiaoYanObjFB,gethechaObjFB,getnengliObj,getkangningyangpinObj,getzaigangrenyuanFBObj,getgaijinxiangObj,getbufuheObj,getguanshenObj,getneishenObj,getfengxianObj,getyingjiObj,getneibuObj,getwaibuObj,gethechaMGObj,getJiaoYanMGObj,getgangqianpeixunObj,getzaigangrenyuanObj,getfenzuZLZBObj,getzongZLMBObj,getzhiliangzhibiaotitleObj, getyangPinCaiJiObj,getbiaozhunTObj,getbzJunZhuObj,getbzJunZhuTObj,getbzXiBaoObj,getbzXiBaoTObj} from './js/selectDB.js'
  515. import sendDatas from './sendDatas.js'
  516. import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js'
  517. import * as forEach from 'lodash/forEach'
  518. export default {
  519. components:{
  520. // container,
  521. container: () => import('./components/container.vue'),
  522. headerDecoration,
  523. none,
  524. s1zhiLiang1,
  525. s1zhiLiang2,
  526. s1zhiLiang3,
  527. s1zhiLiangMuBiao,
  528. s1zhiLiangMuBiaoCol,
  529. s1jianCe,
  530. s2manYiDu,
  531. s2manYiDuCol,
  532. s3tousu,
  533. s4renYuanPeiXun,
  534. s4renYuanPeiXunCol,
  535. s5renYuanJianDu,
  536. s5renYuanJianDuCol,
  537. s6sheBeiWeiHu,
  538. s7sheBeiJiaoZhun,
  539. s7sheBeiJiaoZhunCol,
  540. s8sheBeiHeCha,
  541. s8sheBeiHeChaCol,
  542. s9neiBuZhiLiang,
  543. s9neiBuZhiLiangCol,
  544. s10waiBuNengLi,
  545. s10waiBuNengLiCol,
  546. s11biaoZhunWu,
  547. s12fengXian,
  548. s12fengXianCol,
  549. s13shengWu,
  550. s14bufuhexiang,
  551. s15tousu,
  552. s15tousuCol,
  553. s16bzJunZhu,
  554. s17bzXiBao,
  555. s11biaoZhunWucol,
  556. buhegeyangpinPie,
  557. buhegeyangpinBar,
  558. baogaobuzhengquePie,
  559. baogaobuzhengqueBar,
  560. weijizhibaogaoPie,
  561. weijizhibaogaoBar,
  562. weijizhijishiBar,
  563. weijizhijishiPie,
  564. sysnzzsjfhPie,
  565. sysnzzsjfhBar,
  566. jyqzzzwsPie,
  567. jyqzzzwsBar,
  568. bshineizhikongPie,
  569. bshineizhikongBar,
  570. shijianzhipingPie,
  571. shijianzhipingBar,
  572. shiyanshibiduiPie,
  573. shiyanshibiduiBar,
  574. shebeibuliangPie,
  575. shebeibuliangBar,
  576. kehumanyiPie,
  577. kehumanyiBar,
  578. ygcjpxcsdbPie,
  579. ygcjpxcsdbBar,
  580. shijiazhipinjihuaPie,
  581. shijiazhipinjihuaBar
  582. },
  583. props:{
  584. shows:{ //传入的内容显示序号
  585. type: Array,
  586. default:() => []
  587. },
  588. static:{ //显示类型,默认为横向 ,作为表单统计图的外部引用为 line
  589. type: String,
  590. default:'row'
  591. }
  592. },
  593. mixins: [sendDatas],
  594. created() {
  595. //时间
  596. // this.currentTime()
  597. this.getqualityData()
  598. if(screenfull.isEnabled && !screenfull.isFullscreen){
  599. this.allView()
  600. }
  601. },
  602. provide(){ return{ rollcontinue:this.rollcontinue,rollstop:this.rollstop } },
  603. mounted() {
  604. /*以shows是否有参数来判断, 是否需要仅显示部分子组件*/
  605. if(this.shows.length>0){
  606. this.showAll=false
  607. this.isShowComponents()
  608. }
  609. /* 开始及结束时间的默认设置*/
  610. if (!this.BeginDate && !this.endDate) {
  611. this.BeginDate = this.getDate(1) + ''
  612. this.endDate = this.getDate(0)
  613. // console.log(this.endDate)
  614. this.dataScope.push(this.BeginDate)
  615. this.dataScope.push(this.endDate)
  616. }
  617. //获取统计的配置
  618. // if(this.buhegelvObj.length>0){
  619. // console.log(this.pageAll,'76777index')
  620. // this.timer1 = setInterval(()=>{
  621. // if(this.pageOT>=this.pageAll){
  622. // this.pageOT=1
  623. // }else{
  624. // this.pageOT = this.pageOT + 1
  625. // }
  626. // // console.log(this.pageOT)
  627. // },8000)
  628. // }
  629. // console.log('jjjjjjjjjjjjjjjjjjjjjjjjjjjjjj')
  630. // this.drawLine()
  631. },
  632. // updated() {
  633. // //this.drawLine();
  634. // this.allEcharts.forEach((i) => {
  635. // i.resize();
  636. // });
  637. // },
  638. watch: {
  639. zhiliangmuNeirong: {
  640. handler () {
  641. // this.drawLine()
  642. this.pageAll = this.zhiliangmuNeirong.length
  643. },
  644. deep: true
  645. }
  646. },
  647. data() {
  648. return {
  649. fontSize: 18,
  650. direction:'y',
  651. height:(window.screen.height-200)+"px",
  652. BeginDate: '',
  653. endDate: '',
  654. jiaoyanObj:[],
  655. jiaoyanMGObj:[],
  656. hechaObj:[],
  657. hechaMGObj:[],
  658. waibuObj:[],
  659. waibuObjfb:[],
  660. neibuObj:[],
  661. neibuObjfb:[],
  662. yingjiObj:[],
  663. yingjifbObj:[],
  664. fengxianObj:[],
  665. fengxianfbObj:[],
  666. neishenObj:[],
  667. neishenfbObj:[],
  668. guanshenObj:[],
  669. guanshenfbObj:[],
  670. bufuheObj:[],
  671. gaijinxiangObj:[],
  672. nengliObj:[],
  673. buhegelvObj:[],
  674. zhiliangzhibiaotitle:[],
  675. biaozhunTObj:[],
  676. bzJunZhuObj:[],
  677. bzJunZhuTObj:[],
  678. bzXiBaoObj:[],
  679. bzXiBaoTObj:[],
  680. fenzuzlmb:[],
  681. zaigangrenyuan:[],
  682. zaigangrenyuanfb:[],
  683. gangqianpeixun:[],
  684. gangqianpeixunfb:[],
  685. relData: {},
  686. relOf: false,
  687. selectEnd: '',
  688. selectBeg: '',
  689. showAll:true,
  690. timer: '',
  691. timer1: '',
  692. showComponents:{},//显示全部统计子组件 , 若有新增,往后累计。 供动态表单进行查阅使用。
  693. dataScope: [],
  694. colorw: '#fff',
  695. pageOT: 1,
  696. rollup:true,
  697. idsStr:'',
  698. quality:[],
  699. quality1:[],
  700. allEcharts:[],
  701. bumen:'',
  702. zhiliangmuTitle:[],
  703. zhiliangmuNeirong:[],
  704. zhiliangxianzhi:[],
  705. tableNum:[],
  706. pageAll:0,
  707. fadeinout:true,
  708. allBuMen:[],
  709. bfBuMen:[],
  710. showFenZu:[],
  711. tableData:{
  712. header: ['<span style="font-size:16px;height:53px">质量指标</span>', '<span style="font-size:16px;height:53px">百分比/数量</span>'],
  713. rowNum: 10,
  714. columnWidth: [600, 400],
  715. align: ['left','right'],
  716. data: [
  717. // ['行1列1', '行1列2'],
  718. // ['行1列1', '行1列2'],
  719. // ['行1列1', '行1列2'],
  720. // ['行1列1', '行1列2'],
  721. // ['行1列1', '行1列2'],
  722. // ['行1列1', '行1列2'],
  723. // ['行1列1', '行1列2'],
  724. // ['行1列1', '行1列2'],
  725. // ['行1列1', '行1列2'],
  726. // ['行1列1', '行1列2'],
  727. // ['行1列1', '行1列2'],
  728. // ['行1列1', '行1列2'],
  729. // ['行1列1', '行1列2'],
  730. // ['行1列1', '行1列2'],
  731. // ['行1列1', '行1列2'],
  732. // ['行1列1', '行1列2'],
  733. // ['行1列1', '行1列2'],
  734. // ['行1列1', '行1列2'],
  735. ]
  736. },
  737. tableData1:{
  738. header: ['<span style="font-size:16px;height:53px">质量指标</span>','<span style="font-size:16px;height:53px">计算公式</span>', '<span style="font-size:16px;height:53px">指标限值</span>'],
  739. rowNum: 5,
  740. columnWidth: [300,900, 200],
  741. align: ['left','left','right'],
  742. data: [
  743. // ['行1列1', '行1列2', '行1列3'],
  744. ]
  745. }
  746. }
  747. },
  748. beforeDestroy() {
  749. if(screenfull.isFullscreen){
  750. screenfull.toggle()
  751. }
  752. clearInterval(this.timer);
  753. },
  754. methods: {
  755. /* 判断是否统计子组件中传递过来的,是否需要隐藏。若需要则进行隐藏的遍历 */
  756. isShowComponents(){
  757. /* 将参数进行显示 */
  758. for(let i=0;i<this.shows.length;i++){
  759. this.showComponents[this.shows[i]] = true
  760. }
  761. },
  762. getqualityData() {
  763. let pos = this.$store.getters.level.second?this.$store.getters.level.second:this.$store.getters.level.first
  764. let sql="select id_,name_ from ibps_party_entity where name_ like '%组' and name_ NOT LIKE '%助理%' and name_ NOT LIKE '%样品%' and name_ NOT LIKE '%急诊%' and name_ NOT LIKE '%综合%' and name_ NOT LIKE '%质量%' and name_ NOT LIKE '%科研%' and name_ NOT LIKE '%教学%' and PATH_ like '%"+pos+"%'"
  765. let sql1="select id_,name_ from ibps_party_entity where name_ like '%组' and PATH_ like '%"+pos+"%'"
  766. Promise.all([repostCurd('sql', sql),repostCurd('sql', sql1)]).then(([response,response1]) => {
  767. // console.log(sql)
  768. let a = response.variables.data //结果一定存在第0个,因为只有一条数据
  769. let a1 = response1.variables.data //结果一定存在第0个,因为只有一条数据
  770. this.quality = a
  771. this.quality1 = a1
  772. // console.log(a,'335345345234543534')
  773. // for (let i = 0; i < this.quality.length; i++) {
  774. // let a = {}
  775. // a.value = this.quality[i].id_
  776. // a.label = this.quality[i].name_
  777. // this.bumen.push(a)
  778. // }
  779. this.idsStr = this.quality.map(function(obj,index){
  780. return obj.id_;
  781. }).join(",");
  782. this.bumen = this.quality1.map(function(obj,index){
  783. return obj.id_;
  784. }).join(",");
  785. // console.log(this.quality1,'bumnebumen')
  786. for (let i = 0; i < this.quality1.length; i++) {
  787. let mid = {'NAME_':this.quality1[i].name_,'numA':0,'num':0,'wnum':0,'chu':0}
  788. this.allBuMen.push(mid)
  789. }
  790. for (let i = 0; i < this.quality.length; i++) {
  791. let mid = {'NAME_':this.quality[i].name_,'numA':0,'num':0,'wnum':0,'chu':0}
  792. this.bfBuMen.push(mid)
  793. }
  794. // console.log(this.allBuMen,'2434465565665656rterterte')
  795. // if(this.bumen != ''){
  796. // this.getConfigData(this.endDate,this.bumen)
  797. // }else{
  798. this.getConfigData(this.endDate,this.bumen,this.idsStr)
  799. // }
  800. })
  801. },
  802. getNextMonth(date) {
  803. let arr = date.split('-');
  804. let year = arr[0]; //获取当前日期的年份
  805. let month = arr[1]; //获取当前日期的月份
  806. let year2 = year;
  807. let month2 = parseInt(month) + 1;
  808. if (month2 == 13) {
  809. year2 = parseInt(year2) + 1;
  810. month2 = 1;
  811. }
  812. month2=month2>9?month2:'0'+month2
  813. let t2 = year2 + '-' + month2;
  814. return t2;
  815. },
  816. /* 查询统计配置中的完成率*/
  817. getConfigData(end,info,info1) {
  818. let that = this
  819. end[2]=end[1]
  820. end[1]=this.getNextMonth(end[1])
  821. Promise.all([repostCurd('sql', getConfig()),repostCurd('sql', getyangPinCaiJiObj(end,info1)),repostCurd('sql', getzhiliangzhibiaotitleObj(end,info1)),
  822. repostCurd('sql', getzongZLMBObj(end,info1)),repostCurd('sql', getfenzuZLZBObj(end,info1)),repostCurd('sql', getzaigangrenyuanObj(end,info)),
  823. repostCurd('sql', getgangqianpeixunObj(end,info)),repostCurd('sql', getJiaoYanObj(end,info)),repostCurd('sql', getJiaoYanObjFB(end,info)),
  824. repostCurd('sql', gethechaObj(end,info)),repostCurd('sql', gethechaObjFB(end,info)),repostCurd('sql', getwaibuObj(end,info)),
  825. repostCurd('sql', getneibuObj(end,info)),repostCurd('sql', getyingjiObj(end,info)),repostCurd('sql', getfengxianObj(end,info)),
  826. repostCurd('sql', getneishenObj(end,info)),repostCurd('sql', getguanshenObj(end,info)),repostCurd('sql', getbufuheObj(end,info)),
  827. repostCurd('sql', getgaijinxiangObj(end,info)),
  828. repostCurd('sql', getzaigangrenyuanFBObj(end,info)),repostCurd('sql', getgangqianpeixunFBObj(end,info)),
  829. repostCurd('sql', getneibuObjFB(end,info)),repostCurd('sql', getwaibuObjFB(end,info)),
  830. repostCurd('sql', getyingjiObjFB(end,info)),repostCurd('sql', getfengxianObjFB(end,info)),
  831. repostCurd('sql', getneishenObjFB(end,info)),repostCurd('sql', getguanshenObjFB(end,info)),
  832. repostCurd('sql', getzhiliangmubiaotitleObj(end,info1))]).then(([response,response1, response2,response3,response4,response5,response6,response7,response8,response9,response10,response11,response12,response13,response14,response15,response16,response17,response18,
  833. fb,fb1,fb2,fb3,fb4,fb5,fb6,fb7,fb8]) => {
  834. that.config = response.variables.data
  835. that.buhegelvObj = response1.variables.data
  836. that.zhiliangzhibiaotitle = response2.variables.data
  837. that.tableNum = response3.variables.data
  838. let arr = this.tableNum
  839. let aa =[]
  840. for (let j = 0; j < arr.length; j++) {
  841. let changeArr = ['<span style="font-size:14px;height:45px;line-height:45px;display:inline-block">' + arr[j].zhi_liang_zhi_bia + '</span>','<span style="font-size:14px;height:45px;line-height:45px;display:inline-block">' + arr[j].location.toFixed(2) + '</span>']
  842. // aa.push(changeArr)
  843. let changeArr1 = ['<span style="font-size:14px;height:45px;display:inline-block;">' + arr[j].zhi_liang_zhi_bia + '</span>','<span style="font-size:14px;height:45px;display:inline-block;">' + arr[j].ji_suan_gong_shi_ + '</span>','<span style="font-size:14px;height:45px;display:inline-block;">' + arr[j].zhi_biao_xian_zhi + '</span>']
  844. // that.tableData.data.push(changeArr)
  845. // that.tableData1.data.push(changeArr1)
  846. }
  847. let qqaa = response4.variables.data
  848. that.fenzuzlmb= this.sortArr(qqaa,'bzbm')
  849. // console.log(that.fenzuzlmb,'qqaaqqaaqqaa')
  850. that.zaigangrenyuan = response5.variables.data
  851. that.gangqianpeixun = response6.variables.data
  852. that.jiaoyanObj = response7.variables.data
  853. that.jiaoyanMGObj = response8.variables.data
  854. that.hechaObj = response9.variables.data
  855. that.hechaMGObj = response10.variables.data
  856. that.waibuObj = response11.variables.data
  857. that.neibuObj = response12.variables.data
  858. that.yingjiObj = response13.variables.data
  859. that.fengxianObj = response14.variables.data
  860. that.neishenObj = response15.variables.data
  861. that.guanshenObj = response16.variables.data
  862. that.bufuheObj = response17.variables.data
  863. that.gaijinxiangObj = response18.variables.data
  864. that.getzzzbNum()
  865. that.zaigangrenyuanfb = fb.variables.data
  866. that.gangqianpeixunfb = fb1.variables.data
  867. that.neibuObjfb = fb2.variables.data
  868. that.waibuObjfb = fb3.variables.data
  869. that.yingjifbObj = fb4.variables.data
  870. that.fengxianfbObj = fb5.variables.data
  871. that.neishenfbObj = fb6.variables.data
  872. that.guanshenfbObj = fb7.variables.data
  873. that.zhiliangmubiaotitle = fb8.variables.data
  874. that.relOf = true
  875. })
  876. },
  877. async costPlannedAmountChange(record,value) {
  878. // console.log(record,value,'34322222222222222222222222222222222222222222224')
  879. },
  880. /* 查询全部*/
  881. selectAll() {
  882. /* 上次查询时间不等于当次查询时间, 开始时间不能等于结束时间, 则开始查询。*/
  883. // if (this.selectEnd != this.endDate) {
  884. // this.getConfigData(this.endDate,this.idsStr)
  885. this.getqualityData()
  886. this.relOf = true;
  887. this.timer = setTimeout(() => {
  888. this.relOf = false
  889. clearTimeout(this.timer)
  890. }, 10)
  891. // }
  892. },
  893. checkYear(year, data) {
  894. this.selectAll()
  895. },
  896. /* 获取当前年份*/
  897. getDate(year) {
  898. year = year || 0
  899. let nowDate = new Date();
  900. let date = new Date(new Date().setDate(1)+ 31 * 24 * 60 * 60 * 1000);
  901. let month = date.getMonth()+1;
  902. let m1 = nowDate.getMonth()+1
  903. let month1 = m1 < 10 ? "0" +m1:nowDate.getMonth()+1;
  904. month = month<10 ? "0"+month : ""+month;
  905. // console.log([nowDate.getFullYear() - year + "-" + month1,date.getFullYear() + "-" + month])
  906. // return [nowDate.getFullYear() - year + "-" + month1,date.getFullYear() + "-" + month];
  907. return [nowDate.getFullYear() - year + "-01",nowDate.getFullYear() - year + "-" + month1];
  908. },
  909. sortArr(arr, str) {
  910. let _arr = [],
  911. _t = [],
  912. // 临时的变量
  913. _tmp;
  914. // 按照特定的参数将数组排序将具有相同值得排在一起
  915. arr = arr.sort(function(a, b) {
  916. let s = a[str],
  917. t = b[str];
  918. return s < t ? -1 : 1;
  919. });
  920. if ( arr.length ){
  921. _tmp = arr[0][str];
  922. }
  923. // 将相同类别的对象添加到统一个数组
  924. for (let i in arr) {
  925. if ( arr[i][str] === _tmp){
  926. _t.push( arr[i] );
  927. } else {
  928. _arr.push( {'id_':_tmp,'data':_t} );
  929. _tmp = arr[i][str];
  930. _t = [arr[i]];
  931. }
  932. // console.log( _tmp,_t,arr[i]);
  933. }
  934. // 将最后的内容推出新数组
  935. _arr.push( {'id_':_tmp,'data':_t});
  936. return _arr;
  937. },
  938. // getzzzbNum(){
  939. // //生成月份
  940. // let that = this
  941. // let d1 = this.endDate[0];
  942. // let d2 = this.endDate[2];
  943. // let dateArry = new Array();
  944. // let s1 = d1.split("-");
  945. // let s2 = d2.split("-");
  946. // let mCount = 0;
  947. // if (parseInt(s1[0]) < parseInt(s2[0])) {
  948. // mCount = (parseInt(s2[0]) - parseInt(s1[0])) * 12 + parseInt(s2[1]) - parseInt(s1[1])+1;
  949. // } else {
  950. // mCount = parseInt(s2[1]) - parseInt(s1[1])+1;
  951. // }
  952. // if (mCount > 0) {
  953. // let startM = parseInt(s1[1]);
  954. // let startY = parseInt(s1[0]);
  955. // for (let i = 0; i < mCount; i++) {
  956. // if (startM < 12) {
  957. // dateArry[i] = startY + "-" + (startM>9 ? startM : "0" + startM);
  958. // startM += 1;
  959. // } else {
  960. // dateArry[i] = startY + "-" + (startM > 9 ? startM : "0" + startM);
  961. // startM = 1;
  962. // startY += 1;
  963. // }
  964. // }
  965. // }
  966. // //处理数据
  967. // let zjarr = []
  968. // let fenshuzu = []
  969. // let zongfz = []
  970. // fenshuzu = that.quality
  971. // for (let m = 0; m < that.quality.length; m++) {
  972. // for (let n = 0; n < that.fenzuzlmb.length; n++) {
  973. // //console.log(that.quality.id_ == that.fenzuzlmb.id_,that.quality,that.fenzuzlmb)
  974. // if (that.quality[m].id_ == that.fenzuzlmb[n].id_) {
  975. // fenshuzu[m].data=that.fenzuzlmb[n].data?that.fenzuzlmb[n].data:''
  976. // continue
  977. // }
  978. // }
  979. // }
  980. // // console.log(fenshuzu,,fenshuzu[1].hasOwnProperty('data'),'55353453535345')
  981. // let title = ['name_']
  982. // for (let zn = 0; zn < fenshuzu.length; zn++) {
  983. // let zmIndex = 0
  984. // let zlzbfz = []
  985. // //zlzbfz = zjarr
  986. // for (let j = 0; j < dateArry.length; j++) {
  987. // let rq = {}
  988. // rq.name_ = dateArry[j]
  989. // zlzbfz.push(rq)
  990. // // console.log(zlzbfz,dateArry[j],'erw232222222222222222222222222224586')
  991. // }
  992. // for (let i = 0; i < zlzbfz.length; i++) {
  993. // if(fenshuzu[zn].data&&fenshuzu[zn].data.length>0){
  994. // for (let j = 0; j < fenshuzu[zn].data.length; j++) {
  995. // if(zlzbfz[i].name_ == fenshuzu[zn].data[j].bzsj){
  996. // let prop = fenshuzu[zn].data[j].zhi_liang_zhi_bia;
  997. // zlzbfz[i][prop] = fenshuzu[zn].data[j].location
  998. // // console.log(zlzbfz,'zlzbfzzlzbfz')
  999. // zmIndex=1
  1000. // }
  1001. // continue
  1002. // }
  1003. // }
  1004. // continue
  1005. // }
  1006. // // console.log(zlzbfz,'ghshhhsuihihuisoio878788787878778')
  1007. // if(zmIndex == 1){
  1008. // zongfz.push({'id':fenshuzu[zn].id_,'name':fenshuzu[zn].name_,'data':zlzbfz})
  1009. // }else{
  1010. // //zongfz.push({'id':fenshuzu[zn].id_,'name':fenshuzu[zn].name_,'data':[]})
  1011. // }
  1012. // }
  1013. // for (let t = 0; t < this.zhiliangzhibiaotitle.length; t++) {
  1014. // title.push(this.zhiliangzhibiaotitle[t].zhi_liang_zhi_bia)
  1015. // }
  1016. // let zbval = []
  1017. // for (let t = 0; t < this.zhiliangzhibiaotitle.length; t++) {
  1018. // zbval.push(parseFloat(this.zhiliangzhibiaotitle[t].zhi_biao_xian_zhi.match(/(\d+(\.\d+)?)/)))
  1019. // }
  1020. // this.zhiliangmuTitle = title
  1021. // this.zhiliangmuNeirong = zongfz
  1022. // console.log(this.zhiliangmuNeirong.length,this.zhiliangmuNeirong,'fgdfgdafffffffffffff5426666')
  1023. // this.zhiliangxianzhi = zbval
  1024. // this.pageAll = this.zhiliangmuNeirong.length
  1025. // this.drawLine()
  1026. // clearInterval(this.timer1);
  1027. // if(this.rollup == true){
  1028. // this.fadeinout = false
  1029. // this.timer1 = setInterval(()=>{
  1030. // // console.log(Math.ceil(this.pageAll/2)+6,this.pageAll)
  1031. // if(this.pageOT>=Math.ceil(this.pageAll/2)+7){
  1032. // this.pageOT=1
  1033. // }else{
  1034. // this.pageOT = this.pageOT + 1
  1035. // }
  1036. // },4000)
  1037. // }
  1038. // },
  1039. getzzzbNum(){
  1040. //生成月份
  1041. let that = this
  1042. let d1 = this.endDate[0];
  1043. let d2 = this.endDate[2];
  1044. let dateArry = new Array();
  1045. let s1 = d1.split("-");
  1046. let s2 = d2.split("-");
  1047. let mCount = 0;
  1048. if (parseInt(s1[0]) < parseInt(s2[0])) {
  1049. mCount = (parseInt(s2[0]) - parseInt(s1[0])) * 12 + parseInt(s2[1]) - parseInt(s1[1])+1;
  1050. } else {
  1051. mCount = parseInt(s2[1]) - parseInt(s1[1])+1;
  1052. }
  1053. if (mCount > 0) {
  1054. let startM = parseInt(s1[1]);
  1055. let startY = parseInt(s1[0]);
  1056. for (let i = 0; i < mCount; i++) {
  1057. if (startM < 12) {
  1058. dateArry[i] = startY + "-" + (startM>9 ? startM : "0" + startM);
  1059. startM += 1;
  1060. } else {
  1061. dateArry[i] = startY + "-" + (startM > 9 ? startM : "0" + startM);
  1062. startM = 1;
  1063. startY += 1;
  1064. }
  1065. }
  1066. }
  1067. //处理数据
  1068. let zjarr = []
  1069. let fenshuzu = []
  1070. let zongfz = []
  1071. fenshuzu = that.quality
  1072. for (let m = 0; m < that.quality.length; m++) {
  1073. for (let n = 0; n < that.fenzuzlmb.length; n++) {
  1074. //console.log(that.quality.id_ == that.fenzuzlmb.id_,that.quality,that.fenzuzlmb)
  1075. if (that.quality[m].id_ == that.fenzuzlmb[n].id_) {
  1076. fenshuzu[m].data=that.fenzuzlmb[n].data?that.fenzuzlmb[n].data:''
  1077. continue
  1078. }
  1079. }
  1080. }
  1081. fenshuzu.forEach((item,i)=>{
  1082. if(item.hasOwnProperty('data')){
  1083. item.data = this.dateFenZu(item.data,'zhi_liang_zhi_bia')
  1084. }
  1085. })
  1086. fenshuzu.forEach((item,i)=>{
  1087. if(item.hasOwnProperty('data')){
  1088. item.data.forEach((it,t)=>{
  1089. it.data = this.dateFenZu(it.data,'bzsj')
  1090. })
  1091. }
  1092. })
  1093. // console.log(fenshuzu,that.fenzuzlmb,'55353453535345')
  1094. let title = ['name_']
  1095. fenshuzu.forEach((item,i)=>{
  1096. let zmIndex = 0
  1097. let zlzbfz = []
  1098. //zlzbfz = zjarr
  1099. for (let j = 0; j < dateArry.length; j++) {
  1100. let rq = {}
  1101. rq.bzsj = dateArry[j]
  1102. rq.month = new Date(dateArry[j]).getMonth()+1
  1103. zlzbfz.push(rq)
  1104. }
  1105. if(item.hasOwnProperty('data')){
  1106. item.data.forEach((it,t)=>{
  1107. it.data.forEach((element,e) => {
  1108. let rqMid = [...zlzbfz]
  1109. rqMid.forEach((el,l) => {
  1110. if(element.bzsj==rqMid[l].bzsj){
  1111. element.data[0].limit = parseFloat(element.data[0].zhi_biao_xian_zhi.match(/(\d+(\.\d+)?)/))
  1112. element.data[0].month = new Date(element.bzsj).getMonth()+1
  1113. rqMid[l] = {...element.data[0]}
  1114. }
  1115. });
  1116. it.data = rqMid
  1117. });
  1118. })
  1119. }
  1120. })
  1121. // console.log(fenshuzu,'2344334')
  1122. fenshuzu.forEach((element,e) => {
  1123. let F = 0;
  1124. if(element.hasOwnProperty('data')){
  1125. for (F = 0;F < element.data.length;) {
  1126. zongfz.push({'id_':element.id_,'name_':element.name_,'data':element.data.slice(F,F += 12)})
  1127. }
  1128. }
  1129. });
  1130. // console.log(zongfz,'3454568')
  1131. this.zhiliangmuNeirong = zongfz
  1132. // console.log(this.zhiliangmuNeirong.length,this.zhiliangmuNeirong[1],'fgdfgdafffffffffffff5426666')
  1133. // this.zhiliangxianzhi = zbval
  1134. this.pageAll = this.zhiliangmuNeirong.length
  1135. // console.log(this.pageAll,'this.pageAll')
  1136. // this.drawLine()
  1137. this.showFenZu.title = this.zhiliangmuNeirong[0] !== undefined?this.zhiliangmuNeirong[0].name_:""
  1138. this.showFenZu.data = this.zhiliangmuNeirong[0] !== undefined?this.zhiliangmuNeirong[0].data:[]
  1139. // console.log(this.showFenZu,'678687678bjhjhjhk')
  1140. clearInterval(this.timer1);
  1141. this.fadeinout = false
  1142. this.timer1 = setInterval(()=>{
  1143. if(this.pageOT>=this.pageAll+13){
  1144. this.pageOT=1
  1145. this.showFenZu.title = this.zhiliangmuNeirong[0] !== undefined?this.zhiliangmuNeirong[0].name_:""
  1146. this.showFenZu.data = this.zhiliangmuNeirong[0] !== undefined?this.zhiliangmuNeirong[0].data:[]
  1147. }else{
  1148. this.pageOT = this.pageOT + 1
  1149. if(this.pageOT>=7&&this.pageOT<this.pageAll+7){
  1150. this.showFenZu.title = this.zhiliangmuNeirong[this.pageOT-7] !== undefined?this.zhiliangmuNeirong[this.pageOT-7].name_:""
  1151. this.showFenZu.data = this.zhiliangmuNeirong[this.pageOT-7] !== undefined?this.zhiliangmuNeirong[this.pageOT-7].data:[]
  1152. }
  1153. }
  1154. // console.log(this.showFenZu,this.showFenZu)
  1155. },4000)
  1156. this.rollup=true
  1157. // if(this.rollup == true){
  1158. // this.fadeinout = false
  1159. // this.timer1 = setInterval(()=>{
  1160. // // console.log(Math.ceil(this.pageAll/2)+6,this.pageAll)
  1161. // if(this.pageOT>=this.pageAll+6){
  1162. // this.pageOT=1
  1163. // this.showFenZu.title = this.zhiliangmuNeirong[0] !== undefined?this.zhiliangmuNeirong[0].name_:""
  1164. // this.showFenZu.data = this.zhiliangmuNeirong[0] !== undefined?this.zhiliangmuNeirong[0].data:[]
  1165. // }else{
  1166. // this.pageOT = this.pageOT + 1
  1167. // if(this.pageOT<this.pageAll){
  1168. // // console.log(this.pageOT,this.pageOT-1,'uiououoiu')
  1169. // this.showFenZu.title = this.zhiliangmuNeirong[this.pageOT-1] !== undefined?this.zhiliangmuNeirong[this.pageOT-1].name_:""
  1170. // this.showFenZu.data = this.zhiliangmuNeirong[this.pageOT-1] !== undefined?this.zhiliangmuNeirong[this.pageOT-1].data:[]
  1171. // }
  1172. // }
  1173. // console.log(this.showFenZu,this.showFenZu)
  1174. // },4000)
  1175. // }
  1176. },
  1177. dateFenZu ( arr,field ){
  1178. let originalArr = arr
  1179. let tempArr = []
  1180. let resultData = []
  1181. for ( let i = 0; i < originalArr.length; i++ )
  1182. {
  1183. if ( tempArr.indexOf( originalArr[ i ][ field ] ) === -1 )
  1184. {
  1185. resultData.push( {
  1186. [ field ]: originalArr[ i ][ field ],
  1187. data: [ originalArr[ i ] ]
  1188. } )
  1189. tempArr.push( originalArr[ i ][ field ] )
  1190. } else
  1191. {
  1192. for ( let j = 0; j < resultData.length; j++ )
  1193. {
  1194. if ( resultData[ j ][ field ] == originalArr[ i ][ field ] )
  1195. {
  1196. resultData[ j ].data.push( originalArr[ i ] )
  1197. break
  1198. }
  1199. }
  1200. }
  1201. }
  1202. return resultData // 最终输出
  1203. },
  1204. // SplitArray(N,Q){
  1205. // let R = [],F;
  1206. // for (F = 0;F < Q.length;) R.push(Q.slice(F,F += N))
  1207. // return R
  1208. // }
  1209. // drawLine(){
  1210. // setTimeout(() => {
  1211. // this.zhiliangmuNeirong.forEach((item, index) => {
  1212. // let xunhuanzzzb = echarts.init(document.getElementById(`card${index}`))
  1213. // let barColor = ['#FF4433','#C9A9A6','#097969','#FF66CC','#EC5800','#AAFF00','#F8DE7E','#B87333',
  1214. // '#66FFCC','#A52A2A','#FFCCCC','#33FF00',,'#880808','#89CFF0','#5D3FD3','#9F2B68',
  1215. // '#FBCEB1','#E49B0F','#D27D2D','#FFBF00','#A0522D','#FF00FF','#D8BFD8',
  1216. // '#FFB6C1','#5D3FD3','#C3B1E1','#770737','#ECFFDC','#DA70D6','#F89880']
  1217. // let barNum = []
  1218. // for (let i = 0; i < this.zhiliangxianzhi.length-1; i++) {
  1219. // barNum.push({
  1220. // type: 'bar',
  1221. // itemStyle: {color: barColor[i]},
  1222. // label:{
  1223. // normal:{
  1224. // show:true,
  1225. // position:'top',
  1226. // textStyle:{
  1227. // fontSize:12,
  1228. // color:'#B0CEFC'
  1229. // }
  1230. // }
  1231. // },
  1232. // markLine: {
  1233. // symbol: ['none', 'none'], // 去掉箭头
  1234. // // label: {
  1235. // // show: false,
  1236. // // position: 'start',
  1237. // // formatter: '{b}'
  1238. // // },
  1239. // data: [
  1240. // {
  1241. // name: '阈值',
  1242. // yAxis: this.zhiliangxianzhi[i]*1
  1243. // }
  1244. // ],
  1245. // lineStyle: {
  1246. // color: barColor[i]
  1247. // }
  1248. // }
  1249. // })
  1250. // }
  1251. // let option = {
  1252. // //v3
  1253. // title: {
  1254. // textStyle:{ fontSize:12,color: this.colorw }
  1255. // },
  1256. // legend: {
  1257. // textStyle: {
  1258. // fontSize: 12,
  1259. // color: '#B0CEFC' // 图例文字颜色
  1260. // }
  1261. // },
  1262. // tooltip: {
  1263. // // 当trigger : axis 鼠标移入标线不会有悬浮框出现 params的值为一个数组,只会悬浮series
  1264. // // 当trigger : item 鼠标移入标线有悬浮框出现 params的值为一个对象,会区别鼠标移入的是series还是markLine
  1265. // // 使用axis 注释掉formatter 自己写也行 ;使用item放开formatter
  1266. // show: true,
  1267. // trigger: "item",//axis item
  1268. // axisPointer: {
  1269. // type: "cross",
  1270. // label: {
  1271. // backgroundColor: "#6a7985",
  1272. // },
  1273. // },
  1274. // formatter: (params) => {
  1275. // return this.zhiliangzhibiaotitle[params.seriesIndex].allt
  1276. // }
  1277. // },
  1278. // grid: {
  1279. // top: '20%',
  1280. // left: '3%',
  1281. // right: '4%',
  1282. // bottom: '5%',
  1283. // containLabel: true
  1284. // },
  1285. // xAxis: {
  1286. // splitLine:{show: false},
  1287. // type: 'category',
  1288. // axisLabel: {
  1289. // show: true,
  1290. // textStyle: {
  1291. // color: '#fff' //这里用参数代替了
  1292. // }
  1293. // },
  1294. // axisLine:{
  1295. // lineStyle:{
  1296. // color:'#fff',
  1297. // width:1, //x轴线的宽度
  1298. // }
  1299. // }
  1300. // },
  1301. // yAxis: {
  1302. // splitLine:{show: false},
  1303. // axisLabel: {
  1304. // show: true,
  1305. // textStyle: {
  1306. // color: '#fff' //这里用参数代替了
  1307. // }
  1308. // },
  1309. // axisLine:{
  1310. // lineStyle:{
  1311. // color:'#fff',
  1312. // width:1, //x轴线的宽度
  1313. // }
  1314. // }
  1315. // },
  1316. // dataset: {
  1317. // dimensions: this.zhiliangmuTitle,
  1318. // source: this.zhiliangmuNeirong[index].data
  1319. // },
  1320. // series: barNum,
  1321. // dataZoom: [
  1322. // {
  1323. // id: 'dataZoomY',
  1324. // type: 'inside',
  1325. // yAxisIndex: [0],
  1326. // filterMode: 'empty'
  1327. // }
  1328. // ],
  1329. // };
  1330. // this.allEcharts.push(xunhuanzzzb)
  1331. // option && xunhuanzzzb.setOption(option);
  1332. // })
  1333. // }, 0)
  1334. // },
  1335. allView(){
  1336. screenfull.request() //默认显示全屏
  1337. },
  1338. goBack(){
  1339. this.$router.back(-1)
  1340. this.fadeinout = true
  1341. clearInterval(this.timer1);
  1342. },
  1343. rollcontinue(){
  1344. this.fadeinout = false
  1345. this.timer1 = setInterval(()=>{
  1346. if(this.pageOT>=this.pageAll+13){
  1347. this.pageOT=1
  1348. this.showFenZu.title = this.zhiliangmuNeirong[0] !== undefined?this.zhiliangmuNeirong[0].name_:""
  1349. this.showFenZu.data = this.zhiliangmuNeirong[0] !== undefined?this.zhiliangmuNeirong[0].data:[]
  1350. }else{
  1351. this.pageOT = this.pageOT + 1
  1352. if(this.pageOT>=7&&this.pageOT<this.pageAll+7){
  1353. this.showFenZu.title = this.zhiliangmuNeirong[this.pageOT-7] !== undefined?this.zhiliangmuNeirong[this.pageOT-7].name_:""
  1354. this.showFenZu.data = this.zhiliangmuNeirong[this.pageOT-7] !== undefined?this.zhiliangmuNeirong[this.pageOT-7].data:[]
  1355. }
  1356. }
  1357. // console.log(this.showFenZu,this.showFenZu)
  1358. },4000)
  1359. this.rollup=true
  1360. },
  1361. rollstop(){
  1362. this.fadeinout = true
  1363. clearInterval(this.timer1);
  1364. // console.log('dfhjsdifjsojfjiofjoijdiffffjidffffff')
  1365. this.rollup=false
  1366. },
  1367. }
  1368. }
  1369. </script>
  1370. <style lang="scss" >
  1371. .statistics {
  1372. height: 100%;
  1373. color: #fff;
  1374. .editDate{
  1375. display: contents;
  1376. overflow: hidden;
  1377. background-color:rgb(249, 255, 255);
  1378. position: relative;
  1379. }
  1380. .block{
  1381. float: left;
  1382. font-size: 14px;
  1383. }
  1384. }
  1385. #dv-full-screen-container {
  1386. background-image: url('./img/stars.png');
  1387. background-size: 100% 100%;
  1388. box-shadow: 0 0 3px blue;
  1389. display: flex;
  1390. flex-direction: column;
  1391. // background-color: #f9ffff;
  1392. display: flex;
  1393. flex-direction:column;
  1394. align-items: stretch;
  1395. // .headerContent{
  1396. // flex: 1;
  1397. // }
  1398. }
  1399. .el-scrollbar__wrap{
  1400. overflow-x: hidden;
  1401. }
  1402. .goBackButton{
  1403. width: 2%;
  1404. position: absolute;
  1405. right: 0;
  1406. }
  1407. .shiyankanbanfanhui{
  1408. border: none;
  1409. .border-box-content{
  1410. display: flex;
  1411. align-items: center;
  1412. justify-content: center;
  1413. }
  1414. }
  1415. .stitle{
  1416. text-align: center;
  1417. font-size: 150%;
  1418. // font-family: PingFangSC-Semibold, sans-serif;
  1419. font-weight: 600;
  1420. margin: 0;
  1421. }
  1422. .ttitle{
  1423. font-size: 120%;
  1424. font-weight: 600;
  1425. height: 2%;
  1426. margin: 1% 0;
  1427. }
  1428. .screen{
  1429. height: 100%;
  1430. margin: 0 0.5%;
  1431. }
  1432. .clear{ clear: both; }
  1433. .congxiebox7{
  1434. background-color: rgba(6, 30, 93, 0.5);
  1435. box-shadow: rgb(128 128 128 / 30%) 0px 0px 40px inset;
  1436. border: 1px solid rgba(128, 128, 128, 0.3);
  1437. margin: 1% 0 0 0 ;
  1438. font-size: 12px;
  1439. }
  1440. .gongshiAll{
  1441. display: flex;
  1442. align-items: center;
  1443. justify-content: center;
  1444. // width: 20%;
  1445. .touwidth{
  1446. width: 30%;
  1447. text-align:right;
  1448. }
  1449. .gongshiXian{
  1450. border-bottom: #fff solid 2px;
  1451. padding-bottom: 6%;
  1452. text-align:center;
  1453. font-size: 12px;
  1454. }
  1455. }
  1456. .mubiaozhi{
  1457. text-align: center;
  1458. margin-top: 3%;
  1459. }
  1460. .nullDate{
  1461. height: 100%;
  1462. text-align: center;
  1463. line-height: 100%;
  1464. font-size: 6vh;
  1465. display: flex;
  1466. align-items: center;
  1467. justify-content: center;
  1468. }
  1469. .componentsData{
  1470. height: 92%;
  1471. }
  1472. .nullDate1{
  1473. height: 50%;
  1474. width: 25%;
  1475. display: inline-block;
  1476. text-align: center;
  1477. line-height: 50%;
  1478. font-size: 2vh;
  1479. display: flex;
  1480. align-items: center;
  1481. justify-content: center;
  1482. }
  1483. </style>
  1484. <style lang="less" scoped>
  1485. /deep/ .el-range-separator{
  1486. color: #fff;
  1487. }
  1488. /deep/ .el-range-input{
  1489. background-color: rgba(0,0,0,0);
  1490. color: #fff;
  1491. }
  1492. </style>
  1493. <style lang="scss">
  1494. .el-year-table .today .cell {
  1495. color: #606266 !important;
  1496. font-weight: 100 !important;
  1497. }
  1498. </style>
  1499. <style lang="scss" scoped>
  1500. ::v-deep .el-input__inner {
  1501. background-color: rgba(0,0,0,0);
  1502. color: #fff;
  1503. }
  1504. .fade-in {
  1505. animation: fadeIn 1s linear forwards;
  1506. }
  1507. @keyframes fadeIn {
  1508. from {
  1509. opacity: 0;
  1510. }
  1511. to {
  1512. opacity: 1;
  1513. }
  1514. }
  1515. .fade-out {
  1516. animation: fadeOut 1s linear forwards;
  1517. }
  1518. @keyframes fadeOut {
  1519. from {
  1520. opacity: 1;
  1521. }
  1522. to {
  1523. opacity: 0;
  1524. }
  1525. }
  1526. </style>