index.vue 77 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727
  1. <template>
  2. <div class="app-container1">
  3. <el-tabs v-model="activeName" @tab-click="handleTabClick">
  4. <el-tab-pane :label="$t('feedingEfficiency.xltj')" name="first">
  5. <div class="search">
  6. <el-date-picker v-model="tab.table.getdataListParm.parammaps.date" :clearable="false" type="date" :placeholder="$t('dailyExecutionPlan.xzrq')" style="width: 150px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" />
  7. <span style="margin-left: 10px;">{{$t('errorAnalysis.typeName')}}</span>
  8. <el-radio v-model="tab.radio" label="1" @change="changeRadio">{{$t('feedingEfficiency.pf')}}</el-radio>
  9. <el-radio v-model="tab.radio" label="2" @change="changeRadio">{{$t('errorAnalysis.pen')}}</el-radio>
  10. <el-radio v-model="tab.radio" label="3" @change="changeRadio">{{$t('feedingEfficiency.cxlb')}}</el-radio>
  11. <el-input v-if="tab.isFormulaName" v-model="tab.table.getdataListParm.parammaps.ftname" class="filter-item" style="width: 245px;" :placeholder="$t('feedingEfficiency.pfmb')" />
  12. <el-input v-if="tab.isHouseName" v-model="tab.table.getdataListParm.parammaps.barname" class="filter-item" style="width: 150px;" :placeholder="$t('errorAnalysis.pen')"/>
  13. <el-input v-if="tab.isHouseName" v-model="tab.table.getdataListParm.parammaps.ftname" class="filter-item" style="width: 150px;" :placeholder="$t('feedingEfficiency.pfmb')" />
  14. <el-input v-if="tab.isLivestockType" v-model="tab.table.getdataListParm.parammaps.cowclass" class="filter-item" style="width: 150px;" :placeholder="$t('feedingEfficiency.cxlb')" />
  15. <el-button class="successBorder" @click="form_search">{{$t('common.query')}}</el-button>
  16. <el-button class="export" icon="el-icon-upload2" @click="handleDownload">{{$t('formulationEvaluation.out')}}</el-button>
  17. <svg-icon icon-class="Up" class="down" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpChart" />
  18. </div>
  19. <div id="table" class="table">
  20. <el-table
  21. :key="tab.table.tableKey"
  22. v-loading="tab.table.listLoading"
  23. :element-loading-text="$t('common.tableMsg')"
  24. :data="tab.table.list"
  25. border
  26. fit
  27. highlight-current-row
  28. style="width: 100%;"
  29. :row-style="rowStyle"
  30. :cell-style="cellStyle"
  31. class="elTable table-fixed"
  32. >
  33. <el-table-column v-if="tab.isFormulaName" :label="$t('feedingEfficiency.pfmb')" min-width="70px" align="center" prop="配方模板" />
  34. <el-table-column v-if="tab.isHouseName" :label="$t('errorAnalysis.pen')" min-width="70px" align="center" prop="栏舍" />
  35. <el-table-column v-if="tab.isHouseName" :label="$t('feedingEfficiency.pfmb')" min-width="70px" align="center" prop="配方模板" />
  36. <el-table-column v-if="tab.isLivestockType" :label="$t('errorAnalysis.sxlb')" min-width="70px" align="center" prop="牲畜类别" />
  37. <el-table-column :label="$t('feedingEfficiency.sjnts')" min-width="60px" align="center" prop="实际牛头数" />
  38. <el-table-column :label="$t('feedingEfficiency.yhll')" min-width="60px" align="center" prop="应混料量" />
  39. <el-table-column :label="$t('feedingEfficiency.sjhll')" min-width="70px" align="center" prop="实际混料量" />
  40. <el-table-column :label="$t('feedingEfficiency.sll')"min-width="60px" align="center" prop="撒料量" />
  41. <el-table-column label="混料时间" min-width="70px" align="center" prop="混料时间" />
  42. <el-table-column :label="$t('feedingEfficiency.ztsll')" min-width="70px" align="center" prop="转投剩料量" />
  43. <el-table-column :label="$t('feedingEfficiency.jrsll')" min-width="70px" align="center" prop="今日剩料量" />
  44. <el-table-column :label="$t('feedingEfficiency.csl')" min-width="60px" align="center" prop="剩料率" />
  45. <el-table-column :label="$t('feedingEfficiency.tmrgwz')"min-width="65px" align="center" prop="TMR干物质" />
  46. <el-table-column :label="$t('feedingEfficiency.pfgwzcsl')"min-width="80px" align="center" prop="配方干物质采食量" />
  47. <el-table-column :label="$t('feedingEfficiency.sjgwzcsl')"min-width="80px" align="center" prop="实际干物质采食量" />
  48. <el-table-column:label="$t('feedingEfficiency.csl')" min-width="60px" align="center" prop="采食率" />
  49. <el-table-column :label="$t('feedingEfficiency.pfcb')" min-width="65px" align="center" prop="配方成本" />
  50. <el-table-column :label="$t('feedingEfficiency.sjcb')"min-width="65px" align="center" prop="实际成本" />
  51. <el-table-column :label="$t('feedingEfficiency.cnl')"min-width="65px" align="center" prop="产奶量" />
  52. <el-table-column :label="$t('feedingEfficiency.slzhl')"min-width="60px" align="center" prop="饲料转化率" />
  53. <el-table-column :label="$t('feedingEfficiency.gjnclcb')"min-width="60px" align="center" prop="公斤奶饲料成本" />
  54. </el-table>
  55. <!-- <pagination v-show="tab.table.total>=0" :total="tab.table.total" :page.sync="tab.table.getdataListParm.offset" :limit.sync="tab.table.getdataListParm.pagecount" @pagination="getTabList" /> -->
  56. </div>
  57. <div class="AnalysisChart">
  58. <el-row :gutter="10">
  59. <el-col :span="24" style="margin-top: 10px;">
  60. <span>{{$t('feedingEfficiency.tbcxsj')}} :</span>
  61. <el-date-picker v-model="tab.chartDate" :clearable="false" style="margin-left: 10px;width: 250px;margin-right: 10px;" class="inputDatetime filter-item" type="daterange" :range-separator="$t('common.to')" :start-placeholder="$t('common.startTime')" :end-placeholder="$t('common.endTime')" :picker-options="pickerOptions" />
  62. <el-button class="successBorder" @click="handleChartDate">{{$t('errorAnalysis.confirm')}}</el-button>
  63. <svg-icon icon-class="Up" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpTop" />
  64. </el-col>
  65. </el-row>
  66. <el-row :gutter="10" class="dashboard-editor-container">
  67. <el-col :span="12">
  68. <div class="grid-content">
  69. <h4 style="text-align:center;">{{$t('feedingEfficiency.mrngwzcl')}} </h4>
  70. <div v-if="tab.chart1.isChart" class="button">
  71. <el-date-picker v-model="tab.chart1.getdataListParm.parammaps.inputDatetime" style="width: 250px;" class="inputDatetime" type="daterange" :range-separator="$t('common.to')" :start-placeholder="$t('common.startTime')" :end-placeholder="$t('common.endTime')" :clearable="false" :picker-options="pickerOptions" @change="changeChartDate('chart1')" />
  72. <div class="exportTable" @click="handleExport('chart1')">{{$t('formulationEvaluation.out')}}</div>
  73. <div class="exportTable" @click="handleTable('chart1')">{{$t('errorAnalysis.changeTable')}}</div>
  74. </div>
  75. <div v-if="tab.chart1.isChart" id="chartLine1" style="width:100%;height:430px;" />
  76. <div v-if="tab.chart1.isTable" class="table">
  77. <div class="button">
  78. <div class="exportTable" @click="handleExport('chart1')">{{$t('formulationEvaluation.out')}}</div>
  79. <div class="exportTable" @click="handleChart('chart1')">{{$t('dashboard.sTable')}}</div>
  80. </div>
  81. <el-table
  82. :key="tab.chart1.table.tableKey"
  83. v-loading="tab.chart1.table.listLoading"
  84. :element-loading-text="$t('common.tableMsg')"
  85. :data="tab.chart1.table.list"
  86. border
  87. fit
  88. highlight-current-row
  89. style="width: 100%;"
  90. height="430"
  91. :row-style="rowStyle"
  92. :cell-style="cellStyle"
  93. class="elTable table-fixed"
  94. >
  95. <el-table-column :label="$t('errorAnalysis.date')" sortable min-width="110px" align="center" prop="日期" />
  96. <el-table-column label="泌乳牛采食量(kg)" sortable min-width="110px" align="center" prop="field1" />
  97. <el-table-column label="泌乳牛产奶量(kg)" sortable min-width="110px" align="center" prop="field2" />
  98. </el-table>
  99. </div>
  100. </div>
  101. </el-col>
  102. <el-col :span="12">
  103. <div class="grid-content">
  104. <h4 style="text-align:center;">牛栏剩料率</h4>
  105. <div v-if="tab.chart2.isChart" class="button">
  106. <my-select ref="tenantselect" :model="tab.chart2.getdataListParm.parammaps.statisticsList" :option="tab.chart2.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" :placeholder="$t('errorAnalysis.xztjcs')" @searchSelect="changeStatisticChart2" />
  107. <el-date-picker v-model="tab.chart2.getdataListParm.parammaps.inputDatetime" style="width: 245px;" class="inputDatetime" type="daterange" :range-separator="$t('common.to')" :start-placeholder="$t('common.startTime')" :end-placeholder="$t('common.endTime')" :clearable="false" :picker-options="pickerOptions" @change="changeChartDate('chart2')" />
  108. <div class="exportTable" @click="handleExport('chart2')">{{$t('formulationEvaluation.out')}}</div>
  109. <div class="exportTable" @click="handleTable('chart2')">{{$t('errorAnalysis.changeTable')}}</div>
  110. </div>
  111. <div v-if="tab.chart2.isChart" id="chartLine2" style="width:100%;height:430px;" />
  112. <div v-if="tab.chart2.isTable" class="table">
  113. <div class="button">
  114. <div class="exportTable" @click="handleExport('chart2')">{{$t('formulationEvaluation.out')}}</div>
  115. <div class="exportTable" @click="handleChart('chart2')">{{$t('dashboard.sTable')}}</div>
  116. </div>
  117. <el-table
  118. :key="tab.chart2.table.tableKey"
  119. v-loading="tab.chart2.table.listLoading"
  120. :element-loading-text="$t('common.tableMsg')"
  121. :data="tab.chart2.table.list"
  122. border
  123. fit
  124. highlight-current-row
  125. style="width: 100%;"
  126. height="430"
  127. :row-style="rowStyle"
  128. :cell-style="cellStyle"
  129. class="elTable table-fixed"
  130. >
  131. <el-table-column :label="$t('errorAnalysis.date')" sortable min-width="110px" align="center" prop="日期" />
  132. <el-table-column :label="$t('errorAnalysis.isHouseName')" sortable min-width="110px" align="center" prop="名称" />
  133. <el-table-column :label="$t('performance.sll')" sortable min-width="110px" align="center" prop="剩料量" />
  134. <el-table-column label="撒料量" sortable min-width="110px" align="center" prop="撒料量" />
  135. <el-table-column label="剩料率" sortable min-width="110px" align="center" prop="准确率" />
  136. </el-table>
  137. </div>
  138. </div>
  139. </el-col>
  140. </el-row>
  141. <el-row :gutter="10" class="dashboard-editor-container">
  142. <el-col :span="12">
  143. <div class="grid-content">
  144. <h4 style="text-align:center;">{{$t('feedingEfficiency.hlsjtj')}}</h4>
  145. <div v-if="tab.chart3.isChart" class="button">
  146. <el-date-picker v-model="tab.chart3.getdataListParm.parammaps.inputDatetime" style="width: 250px;" class="inputDatetime" type="daterange" :range-separator="$t('common.to')" :start-placeholder="$t('common.startTime')" :end-placeholder="$t('common.endTime')" :clearable="false" :picker-options="pickerOptions" @change="changeChartDate('chart3')" />
  147. <div class="exportTable" @click="handleExport('chart3')">{{$t('formulationEvaluation.out')}}</div>
  148. <div class="exportTable" @click="handleTable('chart3')">{{$t('errorAnalysis.changeTable')}}</div>
  149. </div>
  150. <div v-if="tab.chart3.isChart" id="chartLine3" style="width:100%;height:430px;" />
  151. <div v-if="tab.chart3.isTable" class="table">
  152. <div class="button">
  153. <div class="exportTable" @click="handleExport('chart3')">{{$t('formulationEvaluation.out')}}</div>
  154. <div class="exportTable" @click="handleChart('chart3')">{{$t('dashboard.sTable')}}</div>
  155. </div>
  156. <el-table
  157. :key="tab.chart3.table.tableKey"
  158. v-loading="tab.chart3.table.listLoading"
  159. :element-loading-text="$t('common.tableMsg')"
  160. :data="tab.chart3.table.list"
  161. border
  162. fit
  163. highlight-current-row
  164. style="width: 100%;"
  165. height="430"
  166. :row-style="rowStyle"
  167. :cell-style="cellStyle"
  168. class="elTable table-fixed"
  169. >
  170. <el-table-column :label="$t('errorAnalysis.date')" min-width="110px" align="center" prop="日期" />
  171. <el-table-column label="混料时间(分钟)" min-width="110px" align="center" prop="field1" />
  172. </el-table>
  173. </div>
  174. </div>
  175. </el-col>
  176. <el-col :span="12">
  177. <div class="grid-content">
  178. <h4 style="text-align:center;">{{$t('feedingEfficiency.zhl')}}</h4>
  179. <div v-if="tab.chart4.isChart" class="button">
  180. <!-- <span>{{ tab.chart4.statisticsList }}</span> -->
  181. <my-select ref="tenantselect" :model="tab.chart4.getdataListParm.parammaps.statisticsList" :option="tab.chart4.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" :placeholder="$t('errorAnalysis.xztjcs')" @searchSelect="changeStatisticChart4" />
  182. <el-date-picker v-model="tab.chart4.getdataListParm.parammaps.inputDatetime" style="width: 245px;" class="inputDatetime" type="daterange" :range-separator="$t('common.to')" :start-placeholder="$t('common.startTime')" :end-placeholder="$t('common.endTime')" :clearable="false" :picker-options="pickerOptions" @change="changeChartDate('chart4')" />
  183. <div class="exportTable" @click="handleExport('chart4')">{{$t('formulationEvaluation.out')}}</div>
  184. <div class="exportTable" @click="handleTable('chart4')">{{$t('errorAnalysis.changeTable')}}</div>
  185. </div>
  186. <div v-if="tab.chart4.isChart" id="chartLine4" style="width:100%;height:430px;" />
  187. <div v-if="tab.chart4.isTable" class="table">
  188. <div class="button">
  189. <div class="exportTable" @click="handleExport('chart4')">{{$t('formulationEvaluation.out')}}</div>
  190. <div class="exportTable" @click="handleChart('chart4')">{{$t('dashboard.sTable')}}</div>
  191. </div>
  192. <el-table
  193. :key="tab.chart4.table.tableKey"
  194. v-loading="tab.chart4.table.listLoading"
  195. :element-loading-text="$t('common.tableMsg')"
  196. :data="tab.chart4.table.list"
  197. border
  198. fit
  199. highlight-current-row
  200. style="width: 100%;"
  201. height="430"
  202. :row-style="rowStyle"
  203. :cell-style="cellStyle"
  204. class="elTable table-fixed"
  205. >
  206. <el-table-column :label="$t('errorAnalysis.date')" min-width="110px" align="center" prop="日期" />
  207. <el-table-column :label="$t('errorAnalysis.feedName')" min-width="110px" align="center" prop="名称" />
  208. <el-table-column :label="$t('feedingEfficiency.slzhl')"min-width="110px" align="center" prop="准确率" />
  209. </el-table>
  210. </div>
  211. </div>
  212. </el-col>
  213. </el-row>
  214. <el-row :gutter="10" class="dashboard-editor-container" style="margin-bottom: 30px;">
  215. <el-col :span="24">
  216. <div class="grid-content">
  217. <h4 style="text-align:center;">{{$t('feedingEfficiency.cbfx')}}</h4>
  218. <div v-if="tab.chart5.isChart" class="button">
  219. <my-select ref="tenantselect" :model="tab.chart5.getdataListParm.parammaps.statisticsList" :option="tab.chart5.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" :placeholder="$t('errorAnalysis.xztjcs')" @searchSelect="changeStatisticChart5" />
  220. <el-date-picker v-model="tab.chart5.getdataListParm.parammaps.inputDatetime" style="width: 250px;" class="inputDatetime" type="daterange" :range-separator="$t('common.to')" :start-placeholder="$t('common.startTime')" :end-placeholder="$t('common.endTime')" :clearable="false" :picker-options="pickerOptions" @change="changeChartDate('chart5')" />
  221. <div class="exportTable" @click="handleExport('chart5')">{{$t('formulationEvaluation.out')}}</div>
  222. <div class="exportTable" @click="handleTable('chart5')">{{$t('errorAnalysis.changeTable')}}</div>
  223. </div>
  224. <div v-if="tab.chart5.isChart" id="chartLine5" style="width:100%;height:430px;" />
  225. <div v-if="tab.chart5.isTable" class="table">
  226. <div class="button">
  227. <div class="exportTable" @click="handleExport('chart5')">{{$t('formulationEvaluation.out')}}</div>
  228. <div class="exportTable" @click="handleChart('chart5')">{{$t('dashboard.sTable')}}</div>
  229. </div>
  230. <el-table
  231. :key="tab.chart5.table.tableKey"
  232. v-loading="tab.chart5.table.listLoading"
  233. :element-loading-text="$t('common.tableMsg')"
  234. :data="tab.chart5.table.list"
  235. border
  236. fit
  237. highlight-current-row
  238. style="width: 100%;"
  239. height="430"
  240. :row-style="rowStyle"
  241. :cell-style="cellStyle"
  242. class="elTable table-fixed"
  243. >
  244. <el-table-column :label="$t('errorAnalysis.date')" min-width="110px" align="center" prop="日期" />
  245. <el-table-column :label="$t('errorAnalysis.sxlb')" min-width="110px" align="center" prop="名称" />
  246. <el-table-column :label="$t('feedingEfficiency.gjnclcb1')"min-width="110px" align="center" prop="准确率" />
  247. </el-table>
  248. </div>
  249. </div>
  250. </el-col>
  251. </el-row>
  252. </div>
  253. </el-tab-pane>
  254. <el-tab-pane :label="$t('feedingEfficiency.nxpg')" name="second">
  255. <div class="search">
  256. <el-date-picker v-model="tab2.table.getdataListParm.parammaps.date" :clearable="false" type="date" :placeholder="$t('dailyExecutionPlan.xzrq')" style="width: 150px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeTab2Date" />
  257. </div>
  258. <div class="table">
  259. <el-row :gutter="10">
  260. <el-col :span="12">
  261. <h4 style="text-align:center;">{{$t('dhedFormula.bzsfx')}}</h4>
  262. <el-table
  263. :key="tab2.table.tableKey"
  264. v-loading="tab2.table.listLoading"
  265. :element-loading-text="$t('common.tableMsg')"
  266. :data="tab2.table.list"
  267. border
  268. fit
  269. highlight-current-row
  270. style="width: 100%;"
  271. :row-style="rowStyle"
  272. :cell-style="cellStyle"
  273. class="elTable table-fixed"
  274. height="400px"
  275. >
  276. <el-table-column :label="$t('feedingEfficiency.bzs')" min-width="60px" align="center" prop="barname" />
  277. <el-table-column :label="$t('feedingEfficiency.dczl1')"min-width="60px" align="center" prop="oneweight" />
  278. <el-table-column :label="$t('feedingEfficiency.dcbfb1')"min-width="60px" align="center" prop="onerate" />
  279. <el-table-column :label="$t('feedingEfficiency.dczl2')" min-width="60px" align="center" prop="twoweight" />
  280. <el-table-column :label="$t('feedingEfficiency.dcbfb2')" min-width="60px" align="center" prop="tworate" />
  281. <el-table-column :label="$t('feedingEfficiency.dczl3')" min-width="60px" align="center" prop="threeweight" />
  282. <el-table-column :label="$t('feedingEfficiency.dcbfb3')" min-width="60px" align="center" prop="threerate" />
  283. <el-table-column :label="$t('feedingEfficiency.dczl4')" min-width="60px" align="center" prop="fourweight" />
  284. <el-table-column :label="$t('feedingEfficiency.dcbfb4')" min-width="60px" align="center" prop="fourrate" />
  285. <el-table-column :label="$t('feedingEfficiency.ckbz')" min-width="50px" align="center" prop="standard" />
  286. </el-table>
  287. </el-col>
  288. <el-col :span="12">
  289. <h4 style="text-align:center;">{{$t('feedingEfficiency.fbsfx')}}</h4>
  290. <el-table
  291. :key="tab2.table2.tableKey"
  292. v-loading="tab2.table2.listLoading"
  293. :element-loading-text="$t('common.tableMsg')"
  294. :data="tab2.table2.list"
  295. border
  296. fit
  297. highlight-current-row
  298. style="width: 100%;"
  299. :row-style="rowStyle"
  300. :cell-style="cellStyle"
  301. class="elTable table-fixed"
  302. height="400px"
  303. >
  304. <el-table-column
  305. :label="$t('supplier.fbs')" min-width="60px" align="center" prop="barname" />
  306. <el-table-column :label="$t('feedingEfficiency.dczl1')"min-width="60px" align="center" prop="oneweight" />
  307. <el-table-column :label="$t('feedingEfficiency.dcbfb1')"min-width="60px" align="center" prop="onerate" />
  308. <el-table-column :label="$t('feedingEfficiency.dczl2')" min-width="60px" align="center" prop="twoweight" />
  309. <el-table-column :label="$t('feedingEfficiency.dcbfb2')" min-width="60px" align="center" prop="tworate" />
  310. <el-table-column :label="$t('feedingEfficiency.dczl3')" min-width="60px" align="center" prop="threeweight" />
  311. <el-table-column :label="$t('feedingEfficiency.dcbfb3')" min-width="60px" align="center" prop="threerate" />
  312. <el-table-column :label="$t('feedingEfficiency.ckbz')" min-width="50px" align="center" prop="standard" />
  313. </el-table>
  314. </el-col>
  315. </el-row>
  316. <el-row :gutter="10">
  317. <el-col :span="12">
  318. <h4 style="text-align:center;">BCS评分</h4>
  319. <el-table
  320. :key="tab2.table3.tableKey"
  321. v-loading="tab2.table3.listLoading"
  322. :element-loading-text="$t('common.tableMsg')"
  323. :data="tab2.table3.list"
  324. border
  325. fit
  326. highlight-current-row
  327. style="width: 100%;"
  328. :row-style="rowStyle"
  329. :cell-style="cellStyle"
  330. class="elTable table-fixed"
  331. height="400px"
  332. >
  333. <el-table-column :label="$t('errorAnalysis.pen')" min-width="60px" align="center" prop="barname" />
  334. <el-table-column :label="$t('feedingEfficiency.czybs')" min-width="60px" align="center" prop="sumcowcount" />
  335. <el-table-column :label="$t('feedingEfficiency.dc')" min-width="60px" align="center" prop="product" />
  336. <el-table-column :label="$t('feedingEfficiency.gwzcsl')" min-width="60px" align="center" prop="dryweight" />
  337. <el-table-column :label="$t('feedingEfficiency.mrts')" min-width="50px" align="center" prop="avgdim" />
  338. <el-table-column :label="$t('feedingEfficiency.bzfs')" min-width="50px" align="center" prop="standardscore" />
  339. <el-table-column label="2.75-分(数量、百分比)" min-width="100px" align="center" prop="score25" />
  340. <el-table-column :label="$t('feedingEfficiency.bfb275')" min-width="100px" align="center" prop="score275" />
  341. <el-table-column :label="$t('feedingEfficiency.bfb3')" min-width="90px" align="center" prop="score3" />
  342. <el-table-column :label="$t('feedingEfficiency.bfb325')" min-width="100px" align="center" prop="score325" />
  343. <el-table-column :label="$t('feedingEfficiency.bfb35')" min-width="100px" align="center" prop="score35" />
  344. <el-table-column :label="$t('feedingEfficiency.bfb375')" min-width="100px" align="center" prop="score375" />
  345. <el-table-column :label="$t('feedingEfficiency.bfb4')" min-width="100px" align="center" prop="score4" />
  346. </el-table>
  347. </el-col>
  348. <!-- 粪便评分 -->
  349. <el-col :span="12">
  350. <h4 style="text-align:center;">{{$t('feedingEfficiency.fbpf')}}</h4>
  351. <el-table
  352. :key="tab2.table4.tableKey"
  353. v-loading="tab2.table4.listLoading"
  354. :element-loading-text="$t('common.tableMsg')"
  355. :data="tab2.table4.list"
  356. border
  357. fit
  358. highlight-current-row
  359. style="width: 100%;"
  360. :row-style="rowStyle"
  361. :cell-style="cellStyle"
  362. class="elTable table-fixed"
  363. height="400px"
  364. >
  365. <el-table-column :label="$t('errorAnalysis.pen')" min-width="60px" align="center" prop="barname" />
  366. <el-table-column :label="$t('feedingEfficiency.czybs')" min-width="60px" align="center" prop="sumcowcount" />
  367. <el-table-column :label="$t('feedingEfficiency.dc')" min-width="60px" align="center" prop="product" />
  368. <el-table-column :label="$t('feedingEfficiency.gwzcsl')" min-width="60px" align="center" prop="dryweight" />
  369. <el-table-column :label="$t('feedingEfficiency.mrts')" min-width="60px" align="center" prop="avgdim" />
  370. <el-table-column :label="$t('feedingEfficiency.bzfs')" min-width="60px" align="center" prop="standardscore" />
  371. <el-table-column :label="$t('feedingEfficiency.bfb1')" min-width="90px" align="center" prop="score1" />
  372. <el-table-column :label="$t('feedingEfficiency.bfb2')" min-width="90px" align="center" prop="score2" />
  373. <el-table-column :label="$t('feedingEfficiency.bfb3')" min-width="90px" align="center" prop="score3" />
  374. <el-table-column :label="$t('feedingEfficiency.bfb4')" min-width="90px" align="center" prop="score4" />
  375. <el-table-column :label="$t('feedingEfficiency.bfb5')" min-width="90px" align="center" prop="score5" />
  376. </el-table>
  377. </el-col>
  378. </el-row>
  379. </div>
  380. </el-tab-pane>
  381. </el-tabs>
  382. </div>
  383. </template>
  384. <script>
  385. import echarts from 'echarts'
  386. require('echarts/theme/macarons')
  387. import { GetDataByName, GetReportform } from '@/api/common'
  388. import Cookies from 'js-cookie'
  389. import { parseTime } from '@/utils/index.js'
  390. import Pagination from '@/components/Pagination'
  391. import { json2excel } from '@/utils/index.js'
  392. import { MessageBox } from 'element-ui'
  393. import mySelect from '@/components/mySelect'
  394. export default {
  395. name: 'PastureFeedingEfficiency',
  396. components: { Pagination, mySelect },
  397. data() {
  398. return {
  399. pickerMinDate: '',
  400. pickerOptions: {
  401. onPick: ({ maxDate, minDate }) => {
  402. this.pickerMinDate = minDate.getTime()
  403. if (maxDate) {
  404. this.pickerMinDate = ''
  405. }
  406. },
  407. // 限制不能选择今天之后的日期
  408. disabledDate: (time) => {
  409. if (this.pickerMinDate !== '') {
  410. const one = 31 * 24 * 3600 * 1000
  411. const minTime = this.pickerMinDate - one
  412. let maxTime = this.pickerMinDate + one
  413. if (maxTime > new Date()) {
  414. maxTime = new Date()
  415. }
  416. return time.getTime() < minTime || time.getTime() > maxTime
  417. }
  418. return time.getTime() > Date.now()
  419. }
  420. },
  421. activeName: 'first',
  422. tab: {
  423. radio: '1',
  424. isFormulaName: true, // 配方名称
  425. isHouseName: false, // 栏舍名称
  426. isLivestockType: false, // 牲畜类别
  427. chartDate: [],
  428. table: {
  429. getdataListParm: {
  430. name: 'getFeedEfficiencyFT',
  431. page: 1,
  432. offset: 1,
  433. pagecount: '',
  434. returntype: 'Map',
  435. parammaps: {
  436. pastureid: Cookies.get('pastureid'),
  437. date: parseTime(new Date(), '{y}-{m}-{d}'),
  438. ftname: '',
  439. barname: '',
  440. cowclass: ''
  441. }
  442. },
  443. tableKey: 1,
  444. list: [],
  445. total: 0,
  446. listLoading: true,
  447. temp: {}
  448. },
  449. chart1: {
  450. chartLine: null,
  451. chartLine_data: {},
  452. getdataListParm: {
  453. name: 'getFeedEffMR',
  454. page: 1,
  455. offset: 1,
  456. pagecount: '',
  457. returntype: 'Map',
  458. parammaps: {
  459. pastureid: Cookies.get('pastureid'),
  460. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  461. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  462. inputDatetime: [new Date(), new Date()]
  463. }
  464. },
  465. tableKey: 1,
  466. list: [],
  467. total: 0,
  468. listLoading: true,
  469. isChart: true,
  470. isTable: false,
  471. table: {
  472. tableKey: 1,
  473. list: [],
  474. total: 0,
  475. listLoading: false
  476. }
  477. },
  478. chart2: {
  479. chartLine: null,
  480. chartLine_data: {},
  481. getdataListParm: {
  482. name: 'getFeedEffSL',
  483. page: 1,
  484. offset: 1,
  485. pagecount: '',
  486. returntype: 'Map',
  487. parammaps: {
  488. pastureid: Cookies.get('pastureid'),
  489. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  490. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  491. inputDatetime: [new Date(), new Date()]
  492. }
  493. },
  494. tableKey: 1,
  495. list: [],
  496. total: 0,
  497. listLoading: true,
  498. statisticsList: [],
  499. chart2Data3: [],
  500. isChart: true,
  501. isTable: false,
  502. table: {
  503. tableKey: 1,
  504. list: [],
  505. total: 0,
  506. listLoading: false
  507. }
  508. },
  509. chart3: {
  510. chartLine: null,
  511. chartLine_data: {},
  512. getdataListParm: {
  513. name: 'getFeedEffHL',
  514. page: 1,
  515. offset: 1,
  516. pagecount: '',
  517. returntype: 'Map',
  518. parammaps: {
  519. pastureid: Cookies.get('pastureid'),
  520. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  521. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  522. inputDatetime: [new Date(), new Date()]
  523. }
  524. },
  525. tableKey: 1,
  526. list: [],
  527. total: 0,
  528. listLoading: true,
  529. isChart: true,
  530. isTable: false,
  531. table: {
  532. tableKey: 1,
  533. list: [],
  534. total: 0,
  535. listLoading: false
  536. }
  537. },
  538. chart4: {
  539. chartLine: null,
  540. chartLine_data: {},
  541. getdataListParm: {
  542. name: 'getFeedEffZH',
  543. page: 1,
  544. offset: 1,
  545. pagecount: '',
  546. returntype: 'Map',
  547. parammaps: {
  548. pastureid: Cookies.get('pastureid'),
  549. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  550. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  551. inputDatetime: [new Date(), new Date()]
  552. }
  553. },
  554. tableKey: 1,
  555. list: [],
  556. total: 0,
  557. listLoading: true,
  558. statisticsList: [],
  559. chart4Data3: [],
  560. isChart: true,
  561. isTable: false,
  562. table: {
  563. tableKey: 1,
  564. list: [],
  565. total: 0,
  566. listLoading: false
  567. }
  568. },
  569. chart5: {
  570. chartLine: null,
  571. chartLine_data: {},
  572. getdataListParm: {
  573. name: 'getFeedEffCBFT',
  574. page: 1,
  575. offset: 1,
  576. pagecount: '',
  577. returntype: 'Map',
  578. parammaps: {
  579. pastureid: Cookies.get('pastureid'),
  580. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  581. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  582. inputDatetime: [new Date(), new Date()]
  583. }
  584. },
  585. tableKey: 1,
  586. list: [],
  587. total: 0,
  588. listLoading: true,
  589. statisticsList: [],
  590. chart5Data3: [],
  591. isChart: true,
  592. isTable: false,
  593. table: {
  594. tableKey: 1,
  595. list: [],
  596. total: 0,
  597. listLoading: false
  598. }
  599. }
  600. },
  601. tab2: {
  602. table: {
  603. getdataListParm: {
  604. name: 'getAssessCowPenn',
  605. page: 1,
  606. offset: 1,
  607. pagecount: '',
  608. returntype: 'Map',
  609. parammaps: {
  610. pastureid: Cookies.get('pastureid'),
  611. date: parseTime(new Date(), '{y}-{m}-{d}')
  612. }
  613. },
  614. tableKey: 1,
  615. list: [],
  616. total: 0,
  617. listLoading: true,
  618. temp: {}
  619. },
  620. table2: {
  621. getdataListParm: {
  622. name: 'getAssessCowDung',
  623. page: 1,
  624. offset: 1,
  625. pagecount: '',
  626. returntype: 'Map',
  627. parammaps: {
  628. pastureid: Cookies.get('pastureid'),
  629. date: ''
  630. }
  631. },
  632. tableKey: 1,
  633. list: [],
  634. total: 0,
  635. listLoading: true,
  636. temp: {}
  637. },
  638. table3: {
  639. getdataListParm: {
  640. name: 'getAssessBodyscore',
  641. page: 1,
  642. offset: 1,
  643. pagecount: '',
  644. returntype: 'Map',
  645. parammaps: {
  646. pastureid: Cookies.get('pastureid'),
  647. date: ''
  648. }
  649. },
  650. tableKey: 1,
  651. list: [],
  652. total: 0,
  653. listLoading: true,
  654. temp: {}
  655. },
  656. table4: {
  657. getdataListParm: {
  658. name: 'getAssessDungscore',
  659. page: 1,
  660. offset: 1,
  661. pagecount: '',
  662. returntype: 'Map',
  663. parammaps: {
  664. pastureid: Cookies.get('pastureid'),
  665. date: ''
  666. }
  667. },
  668. tableKey: 1,
  669. list: [],
  670. total: 0,
  671. listLoading: true,
  672. temp: {}
  673. }
  674. },
  675. rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
  676. cellStyle: { padding: 0 + 'px' }
  677. }
  678. },
  679. created() {
  680. this.getTabList()
  681. this.getTimeFn()
  682. this.getChart1()
  683. this.getChart2()
  684. this.getChart3()
  685. this.getChart4()
  686. this.getChart5()
  687. },
  688. mounted() {
  689. },
  690. methods: {
  691. getTimeFn() {
  692. const that = this
  693. const end = new Date()
  694. const start = new Date()
  695. const start2 = new Date()
  696. start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
  697. that.tab.table.getdataListParm.parammaps.date = parseTime(start2, '{y}-{m}-{d}')
  698. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
  699. that.tab.chartDate[0] = parseTime(start, '{y}-{m}-{d}')
  700. that.tab.chartDate[1] = parseTime(end, '{y}-{m}-{d}')
  701. that.tab.chart1.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  702. that.tab.chart1.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  703. that.tab.chart1.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  704. that.tab.chart1.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  705. that.tab.chart2.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  706. that.tab.chart2.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  707. that.tab.chart2.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  708. that.tab.chart2.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  709. that.tab.chart3.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  710. that.tab.chart3.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  711. that.tab.chart3.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  712. that.tab.chart3.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  713. that.tab.chart4.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  714. that.tab.chart4.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  715. that.tab.chart4.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  716. that.tab.chart4.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  717. that.tab.chart5.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  718. that.tab.chart5.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  719. that.tab.chart5.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  720. that.tab.chart5.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  721. },
  722. // 导出
  723. handleDownload() {
  724. if (this.tab.radio == '1') {
  725. var excelDatas = [
  726. {
  727. tHeader: ['配方模板', '实际牛头数', '应混料量(kg)', '实际混料量(kg)', '撒料量(kg)', '混料时间(min)', '转投剩料量(kg)', '今日剩料量(kg)', '剩料率(%)', 'TMR干物质(%)', '配方干物质采食量(kg/头)', '实际干物质采食量(kg/头)', '采食率(%)', '配方成本(元/头 )', '实际成本(元/ 头)', '产奶量(kg /头)', '饲料转化率', '公斤奶饲料成本'],
  728. filterVal: ['配方模板', '实际牛头数', '应混料量', '实际混料量', '撒料量', '混料时间', '转投剩料量', '今日剩料量', '剩料率', 'TMR干物质', '配方干物质采食量', '实际干物质采食量', '采食率', '配方成本', '实际成本', '产奶量', '饲料转化率', '公斤奶饲料成本'],
  729. tableDatas: this.tab.table.list,
  730. sheetName: '配方'
  731. }
  732. ]
  733. json2excel(excelDatas, '效率统计-配方', true, 'xlsx')
  734. } else if (this.tab.radio == '2') {
  735. var excelDatas2 = [
  736. {
  737. tHeader: ['栏舍', '配方模板', '实际牛头数', '应混料量(kg)', '实际混料量(kg)', '撒料量(kg)', '混料时间(min)', '转投剩料量(kg)', '今日剩料量(kg)', '剩料率(%)', 'TMR干物质(%)', '配方干物质采食量(kg/头)', ' 实际干物质采食量( kg/头)', '采食率 (%)', '配方成本( 元/头)', '实际成本 (元/头)', '产奶量(kg/头)', '饲料转化率', '公斤奶饲料成本'],
  738. filterVal: ['栏舍', '配方模板', '实际牛头数', '应混料量', '实际混料量', '撒料量', '混料时间', '转投剩料量', '今日剩料量', '剩料率', 'TMR干物质', '配方干物质采食量', '实际干物质采食量', '采食率', '配方成本', '实际成本', '产奶量', '饲料转化率', '公斤奶饲料成本'],
  739. tableDatas: this.tab.table.list,
  740. sheetName: '栏舍'
  741. }
  742. ]
  743. json2excel(excelDatas2, '效率统计-栏舍', true, 'xlsx')
  744. } else if (this.tab.radio == '3') {
  745. var excelDatas3 = [
  746. {
  747. tHeader: ['牲畜类别', '实际牛头数', '应混料量(kg)', '实际混料量(kg)', '撒料量(kg)', '混料时间(min)', '转投剩料量(kg)', '今日剩料量(kg)', '剩料率(%)', 'TMR干物质(%)', '配方 物质采食量(kg/ 头)', '实际干物质采 食量(kg/头)', ' 采食率(%)', '配方 成本(元/头)', '实际成本(元/头)', '产奶量(kg/头)', '饲料转化率', '公斤奶饲料成本'],
  748. filterVal: ['牲畜类别', '实际牛头数', '应混料量', '实际混料量', '撒料量', '混料时间', '转投剩料量', '今日剩料量', '剩料率', 'TMR干物质', '配方干物质采食量', '实际干物质采食量', ' 采食率', '配方成本', '实际成本', '产奶量', '饲料转化率', '公斤奶饲料成本'],
  749. tableDatas: this.tab.table.list,
  750. sheetName: '牲畜类别'
  751. }
  752. ]
  753. json2excel(excelDatas3, '效率统计-牲畜类别', true, 'xlsx')
  754. }
  755. },
  756. // Tab切换
  757. handleTabClick() {
  758. if (this.activeName == 'first') {
  759. const start2 = new Date()
  760. start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
  761. this.tab.table.getdataListParm.parammaps.date = parseTime(start2, '{y}-{m}-{d}')
  762. this.getTabList()
  763. this.getChart1()
  764. this.getChart2()
  765. this.getChart3()
  766. this.getChart4()
  767. this.getChart5()
  768. } else if (this.activeName == 'second') {
  769. const start2 = new Date()
  770. start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
  771. this.tab2.table.getdataListParm.parammaps.date = parseTime(start2, '{y}-{m}-{d}')
  772. this.getTab2List()
  773. this.getTab2List2()
  774. this.getTab2List3()
  775. this.getTab2List4()
  776. }
  777. },
  778. // 切换统计类型
  779. changeRadio() {
  780. console.log(this.tab.radio)
  781. if (this.tab.radio == '1') {
  782. console.log('配方名称')
  783. this.tab.isFormulaName = true
  784. this.tab.isHouseName = false
  785. this.tab.isLivestockType = false
  786. this.tab.table.getdataListParm.parammaps.ftname = ''
  787. this.tab.table.getdataListParm.parammaps.barname = ''
  788. this.tab.table.getdataListParm.parammaps.ftname = ''
  789. this.tab.table.getdataListParm.parammaps.cowclass = ''
  790. this.tab.table.getdataListParm.name = 'getFeedEfficiencyFT'
  791. this.getTabList()
  792. // this.tab.chart5.statisticsList = []
  793. this.$set(this.tab.chart5, 'statisticsList', [])
  794. this.tab.chart5.getdataListParm.name = 'getFeedEffCBFT'
  795. this.getChart5()
  796. this.$set(this.tab.chart4, 'statisticsList', [])
  797. this.tab.chart4.getdataListParm.name = 'getFeedEffZH'
  798. this.getChart4()
  799. } else if (this.tab.radio == '2') {
  800. console.log('栏舍名称')
  801. this.tab.isFormulaName = false
  802. this.tab.isHouseName = true
  803. this.tab.isLivestockType = false
  804. this.tab.table.getdataListParm.parammaps.ftname = ''
  805. this.tab.table.getdataListParm.parammaps.barname = ''
  806. this.tab.table.getdataListParm.parammaps.ftname = ''
  807. this.tab.table.getdataListParm.parammaps.cowclass = ''
  808. this.tab.table.getdataListParm.name = 'getFeedEfficiencyLS'
  809. this.getTabList()
  810. // this.tab.chart5.statisticsList = []
  811. this.$set(this.tab.chart5, 'statisticsList', [])
  812. this.tab.chart5.getdataListParm.name = 'getFeedEffCBLS'
  813. this.getChart5()
  814. this.$set(this.tab.chart4, 'statisticsList', [])
  815. // this.tab.chart4.statisticsList = []
  816. this.tab.chart4.getdataListParm.name = 'getFeedEffZHLS'
  817. this.getChart4()
  818. } else if (this.tab.radio == '3') {
  819. console.log(' 牲畜类别')
  820. this.tab.isFormulaName = false
  821. this.tab.isHouseName = false
  822. this.tab.isLivestockType = true
  823. this.tab.table.getdataListParm.parammaps.ftname = ''
  824. this.tab.table.getdataListParm.parammaps.barname = ''
  825. this.tab.table.getdataListParm.parammaps.ftname = ''
  826. this.tab.table.getdataListParm.parammaps.cowclass = ''
  827. this.tab.table.getdataListParm.name = 'getFeedEfficiencySC'
  828. this.getTabList()
  829. this.$set(this.tab.chart5, 'statisticsList', [])
  830. this.tab.chart5.getdataListParm.name = 'getFeedEffCB'
  831. this.getChart5()
  832. this.$set(this.tab.chart4, 'statisticsList', [])
  833. this.tab.chart4.getdataListParm.name = 'getFeedEffZHSC'
  834. this.getChart4()
  835. }
  836. },
  837. // 效率统计
  838. getTabList() {
  839. this.tab.table.listLoading = true
  840. GetDataByName(this.tab.table.getdataListParm).then(response => {
  841. console.log('汇总统计/混料table数据', response.data.list)
  842. if (response.data.list !== null) {
  843. this.tab.table.list = response.data.list
  844. this.tab.table.total = response.data.total
  845. } else {
  846. this.tab.table.list = []
  847. }
  848. setTimeout(() => {
  849. this.tab.table.listLoading = false
  850. }, 100)
  851. })
  852. },
  853. // 查询
  854. form_search() {
  855. if (this.tab.radio == '1') {
  856. console.log('配方名称/查询')
  857. this.tab.isFormulaName = true
  858. this.tab.isHouseName = false
  859. this.tab.isLivestockType = false
  860. this.tab.table.getdataListParm.name = 'getFeedEfficiencyFT'
  861. this.getTabList()
  862. } else if (this.tab.radio == '2') {
  863. console.log('栏舍名称/查询')
  864. this.tab.isFormulaName = false
  865. this.tab.isHouseName = true
  866. this.tab.isLivestockType = false
  867. this.tab.table.getdataListParm.name = 'getFeedEfficiencyLS'
  868. this.getTabList()
  869. } else if (this.tab.radio == '3') {
  870. console.log(' 牲畜类别/查询')
  871. this.tab.isFormulaName = false
  872. this.tab.isHouseName = false
  873. this.tab.isLivestockType = true
  874. this.tab.table.getdataListParm.name = 'getFeedEfficiencySC'
  875. this.getTabList()
  876. }
  877. },
  878. // 快速跳转到图表
  879. handleQuickJumpChart() {
  880. var myHeight = document.getElementById('table').offsetHeight + 120
  881. window.scrollTo(myHeight, myHeight)
  882. },
  883. // 快速回到顶部
  884. handleQuickJumpTop() {
  885. window.scrollTo(0, 0)
  886. },
  887. // 图表总查询
  888. handleChartDate() {
  889. console.log('点击了确认时间')
  890. MessageBox.confirm('是否调整以下所有图表查询时间?', {
  891. confirmButtonText: this.$t('common.confirm'), confirmButtonText: this.$t('common.cancel'), type: 'warning'
  892. }).then(() => {
  893. var that = this
  894. var startTime = parseTime(this.tab.chartDate[0], '{y}-{m}-{d}')
  895. var stopTime = parseTime(this.tab.chartDate[1], '{y}-{m}-{d}')
  896. that.tab.chart1.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
  897. that.tab.chart1.getdataListParm.parammaps.startTime = startTime
  898. that.tab.chart1.getdataListParm.parammaps.stopTime = stopTime
  899. that.getChart1()
  900. that.tab.chart2.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
  901. that.tab.chart2.getdataListParm.parammaps.startTime = startTime
  902. that.tab.chart2.getdataListParm.parammaps.stopTime = stopTime
  903. that.getChart2()
  904. that.tab.chart3.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
  905. that.tab.chart3.getdataListParm.parammaps.startTime = startTime
  906. that.tab.chart3.getdataListParm.parammaps.stopTime = stopTime
  907. that.getChart3()
  908. that.tab.chart4.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
  909. that.tab.chart4.getdataListParm.parammaps.startTime = startTime
  910. that.tab.chart4.getdataListParm.parammaps.stopTime = stopTime
  911. that.getChart4()
  912. that.tab.chart5.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
  913. that.tab.chart5.getdataListParm.parammaps.startTime = startTime
  914. that.tab.chart5.getdataListParm.parammaps.stopTime = stopTime
  915. that.getChart5()
  916. })
  917. },
  918. // 泌乳牛干物质采食量
  919. getChart1() {
  920. this.tab.chart1.listLoading = true
  921. GetReportform(this.tab.chart1.getdataListParm).then(response => {
  922. console.log('泌乳牛干物质采食量图表数据', response.data.list)
  923. if (response.data.list !== null) {
  924. for (let i = 0; i < response.data.data.length; i++) {
  925. if (response.data.data[i].field1 !== '' && response.data.data[i].field1 !== undefined) {
  926. response.data.data[i].field1 = parseFloat(response.data.data[i].field1)
  927. }
  928. if (response.data.data[i].field2 !== '' && response.data.data[i].field2 !== undefined) {
  929. response.data.data[i].field2 = parseFloat(response.data.data[i].field2)
  930. }
  931. }
  932. this.tab.chart1.table.list = response.data.data
  933. this.tab.chart1.chartLine_data = response.data.list
  934. // this.tab.chart1.total = response.data.total
  935. this.roadChartLine1(this.tab.chart1.chartLine_data)
  936. } else {
  937. this.tab.chart1.list = []
  938. }
  939. setTimeout(() => {
  940. this.tab.chart1.listLoading = false
  941. }, 100)
  942. })
  943. },
  944. roadChartLine1(chartLine_data) {
  945. if (this.tab.chart1.chartLine != null) {
  946. this.tab.chart1.chartLine.dispose()
  947. }
  948. this.tab.chart1.chartLine = echarts.init(document.getElementById('chartLine1'))
  949. var option = {
  950. tooltip: {
  951. trigger: 'axis'
  952. },
  953. legend: {
  954. data: ['泌乳牛干物质采食量', '泌乳牛产奶量'],
  955. right: 10
  956. },
  957. grid: {
  958. top: '20%',
  959. left: '8%',
  960. right: '8%',
  961. containLabel: true
  962. },
  963. xAxis: [
  964. {
  965. type: 'category',
  966. data: chartLine_data.data1
  967. }
  968. ],
  969. yAxis: [
  970. {
  971. splitLine: { show: false }, type: 'value',
  972. name: '泌乳牛干物质\n采食量',
  973. axisLabel: {
  974. formatter: '{value} '
  975. }
  976. }, {
  977. splitLine: { show: false }, type: 'value',
  978. name: '泌乳牛产奶量',
  979. axisLabel: {
  980. formatter: '{value} '
  981. }
  982. }
  983. ],
  984. series: [{
  985. name: '泌乳牛干物质采食量',
  986. type: 'bar',
  987. itemStyle: { /* 设置柱状颜色*/
  988. normal: {
  989. color: '#61a5e8'
  990. }
  991. },
  992. data: chartLine_data.data2
  993. }, {
  994. name: '泌乳牛产奶量',
  995. type: 'line',
  996. itemStyle: { /* 设置折线颜色*/
  997. normal: {
  998. color: '#ff2d2d'
  999. }
  1000. },
  1001. yAxisIndex: 1,
  1002. data: chartLine_data.data3
  1003. }]
  1004. }
  1005. this.tab.chart1.chartLine.setOption(option)
  1006. window.onresize = function() {
  1007. this.tab.chart1.chartLine.resize()
  1008. }
  1009. },
  1010. // 牛栏剩料率
  1011. changeStatisticChart2(arr) {
  1012. var arr1 = []
  1013. for (let i = 0; i < arr.length; i++) {
  1014. if (arr[i] !== 'all') {
  1015. arr1.push(arr[i])
  1016. }
  1017. }
  1018. this.tab.chart2.getdataListParm.parammaps.statisticsList = arr1
  1019. var arrData3 = []
  1020. for (let i = 0; i < this.tab.chart2.getdataListParm.parammaps.statisticsList.length; i++) {
  1021. const myId = this.tab.chart2.statisticsList.find(obj => obj.name == this.tab.chart2.getdataListParm.parammaps.statisticsList[i]).id
  1022. for (let j = 0; j < this.tab.chart2.chart2Data3.length; j++) {
  1023. if (j == myId) {
  1024. arrData3.push(this.tab.chart2.chart2Data3[j])
  1025. }
  1026. }
  1027. }
  1028. this.tab.chart2.chartLine_data.data3 = arrData3
  1029. this.tab.chart2.chartLine_data.data1 = this.tab.chart2.getdataListParm.parammaps.statisticsList
  1030. this.roadChartLine2(this.tab.chart2.chartLine_data)
  1031. },
  1032. getChart2() {
  1033. this.tab.chart2.listLoading = true
  1034. GetReportform(this.tab.chart2.getdataListParm).then(response => {
  1035. console.log('转化率图表数据', response.data.list)
  1036. if (response.data.list !== null) {
  1037. for (let i = 0; i < response.data.data.length; i++) {
  1038. if (response.data.data[i].剩料量 !== '' && response.data.data[i].剩料量 !== undefined) {
  1039. response.data.data[i].剩料量 = parseFloat(response.data.data[i].剩料量)
  1040. }
  1041. if (response.data.data[i].撒料量 !== '' && response.data.data[i].撒料量 !== undefined) {
  1042. response.data.data[i].撒料量 = parseFloat(response.data.data[i].撒料量)
  1043. }
  1044. if (response.data.data[i].准确率 !== '' && response.data.data[i].准确率 !== undefined) {
  1045. response.data.data[i].准确率 = parseFloat(response.data.data[i].准确率)
  1046. }
  1047. }
  1048. this.tab.chart2.table.list = response.data.data
  1049. this.tab.chart2.chartLine_data = response.data.list
  1050. this.tab.chart2.total = response.data.total
  1051. this.tab.chart2.statisticsList = []
  1052. this.tab.chart2.getdataListParm.parammaps.statisticsList = []
  1053. for (let i = 0; i < response.data.list.data1.length; i++) {
  1054. // if (i < 10) {
  1055. this.tab.chart2.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
  1056. // }
  1057. var obj = {}
  1058. obj.id = i
  1059. obj.name = response.data.list.data1[i]
  1060. this.tab.chart2.statisticsList.push(obj)
  1061. }
  1062. this.tab.chart2.chart2Data3 = response.data.list.data3
  1063. this.tab.chart2.total = response.data.total
  1064. console.log('牛栏剩料率图数据', this.tab.chart2.chartLine_data)
  1065. console.log('牛栏剩料率表数据', this.tab.chart2.table.list)
  1066. var arrData3 = []
  1067. for (let i = 0; i < this.tab.chart2.getdataListParm.parammaps.statisticsList.length; i++) {
  1068. const myId = this.tab.chart2.statisticsList.find(obj => obj.name == this.tab.chart2.getdataListParm.parammaps.statisticsList[i]).id
  1069. for (let j = 0; j < this.tab.chart2.chart2Data3.length; j++) {
  1070. if (j == myId) {
  1071. arrData3.push(this.tab.chart2.chart2Data3[j])
  1072. }
  1073. }
  1074. }
  1075. this.tab.chart2.chartLine_data.data3 = arrData3
  1076. this.tab.chart2.chartLine_data.data1 = this.tab.chart2.getdataListParm.parammaps.statisticsList
  1077. this.roadChartLine2(this.tab.chart2.chartLine_data)
  1078. } else {
  1079. this.tab.chart2.list = []
  1080. }
  1081. setTimeout(() => {
  1082. this.tab.chart2.listLoading = false
  1083. }, 100)
  1084. })
  1085. },
  1086. roadChartLine2(chartLine_data) {
  1087. if (this.tab.chart2.chartLine != null) {
  1088. this.tab.chart2.chartLine.dispose()
  1089. }
  1090. this.tab.chart2.chartLine = echarts.init(document.getElementById('chartLine2'))
  1091. var option = {
  1092. title: {
  1093. text: ''
  1094. },
  1095. tooltip: {
  1096. trigger: 'axis'
  1097. },
  1098. legend: {
  1099. data: chartLine_data.data1,
  1100. right: 10
  1101. },
  1102. grid: {
  1103. top: '20%',
  1104. left: '3%',
  1105. right: '8%',
  1106. containLabel: true
  1107. },
  1108. toolbox: {
  1109. show: true,
  1110. right: '2%',
  1111. feature: {}
  1112. },
  1113. xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name:this.$t('errorAnalysis.date') },
  1114. yAxis: {
  1115. type: 'value', name: '剩料率', axisLabel: { formatter: '{value} %' }
  1116. },
  1117. series: (function() {
  1118. var serie = []
  1119. for (var i = 0; i < chartLine_data.data3.length; i++) {
  1120. var item = {
  1121. name: chartLine_data.data1[i],
  1122. type: 'line',
  1123. data: chartLine_data.data3[i].data
  1124. }
  1125. serie.push(item)
  1126. }
  1127. return serie
  1128. }())
  1129. }
  1130. this.tab.chart2.chartLine.setOption(option)
  1131. window.onresize = function() {
  1132. this.tab.chart2.chartLine.resize()
  1133. }
  1134. },
  1135. // 混料时间统计
  1136. getChart3() {
  1137. this.tab.chart3.listLoading = true
  1138. GetReportform(this.tab.chart3.getdataListParm).then(response => {
  1139. console.log('混料时间统计图表数据', response.data.list)
  1140. if (response.data.list !== null) {
  1141. this.tab.chart3.table.list = response.data.data
  1142. this.tab.chart3.chartLine_data = response.data.list
  1143. this.tab.chart3.total = response.data.total
  1144. this.tab.chart3.total = response.data.total
  1145. this.roadChartLine3(this.tab.chart3.chartLine_data)
  1146. } else {
  1147. this.tab.chart3.list = []
  1148. }
  1149. setTimeout(() => {
  1150. this.tab.chart3.listLoading = false
  1151. }, 100)
  1152. })
  1153. },
  1154. roadChartLine3(chartLine_data) {
  1155. if (this.tab.chart3.chartLine != null) {
  1156. this.tab.chart3.chartLine.dispose()
  1157. }
  1158. this.tab.chart3.chartLine = echarts.init(document.getElementById('chartLine3'))
  1159. var option = {
  1160. title: {
  1161. text: ''
  1162. },
  1163. tooltip: {
  1164. trigger: 'axis'
  1165. },
  1166. legend: {
  1167. data: ['混料时间'],
  1168. right: 10
  1169. },
  1170. grid: {
  1171. top: '20%',
  1172. left: '5%',
  1173. right: '8%',
  1174. containLabel: true
  1175. },
  1176. toolbox: {
  1177. show: true,
  1178. right: '2%',
  1179. feature: {}
  1180. },
  1181. xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data1, name:this.$t('errorAnalysis.date') },
  1182. yAxis: {
  1183. type: 'value', name: '分钟',
  1184. axisLabel: {
  1185. formatter: '{value}min'
  1186. }
  1187. },
  1188. series: [
  1189. {
  1190. name: '混料时间',
  1191. type: 'line',
  1192. stack: '总量',
  1193. data: chartLine_data.data2
  1194. }
  1195. ]
  1196. }
  1197. this.tab.chart3.chartLine.setOption(option)
  1198. window.onresize = function() {
  1199. this.tab.chart3.chartLine.resize()
  1200. }
  1201. },
  1202. // 转化率
  1203. changeStatisticChart4(arr) {
  1204. var arr1 = []
  1205. for (let i = 0; i < arr.length; i++) {
  1206. if (arr[i] !== 'all') {
  1207. arr1.push(arr[i])
  1208. }
  1209. }
  1210. this.tab.chart4.getdataListParm.parammaps.statisticsList = arr1
  1211. var arrData3 = []
  1212. for (let i = 0; i < this.tab.chart4.getdataListParm.parammaps.statisticsList.length; i++) {
  1213. const myId = this.tab.chart4.statisticsList.find(obj => obj.name == this.tab.chart4.getdataListParm.parammaps.statisticsList[i]).id
  1214. for (let j = 0; j < this.tab.chart4.chart4Data3.length; j++) {
  1215. if (j == myId) {
  1216. arrData3.push(this.tab.chart4.chart4Data3[j])
  1217. }
  1218. }
  1219. }
  1220. this.tab.chart4.chartLine_data.data3 = arrData3
  1221. this.tab.chart4.chartLine_data.data1 = this.tab.chart4.getdataListParm.parammaps.statisticsList
  1222. this.roadChartLine4(this.tab.chart4.chartLine_data)
  1223. },
  1224. getChart4() {
  1225. this.tab.chart4.listLoading = true
  1226. GetReportform(this.tab.chart4.getdataListParm).then(response => {
  1227. console.log('转化率图表数据', response.data.list)
  1228. if (response.data.list !== null) {
  1229. this.tab.chart4.table.list = response.data.data
  1230. this.tab.chart4.chartLine_data = response.data.list
  1231. this.tab.chart4.total = response.data.total
  1232. this.$set(this.tab.chart4, 'statisticsList', [])
  1233. this.$set(this.tab.chart4.getdataListParm.parammaps, 'statisticsList', [])
  1234. for (let i = 0; i < response.data.list.data1.length; i++) {
  1235. // if (i < 10) {
  1236. this.tab.chart4.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
  1237. // }
  1238. var obj = {}
  1239. obj.id = i
  1240. obj.name = response.data.list.data1[i]
  1241. this.tab.chart4.statisticsList.push(obj)
  1242. }
  1243. this.tab.chart4.chart4Data3 = response.data.list.data3
  1244. this.tab.chart4.total = response.data.total
  1245. console.log('转化率图数据-下拉数据', this.tab.chart4.statisticsList)
  1246. console.log('转化率图数据-下拉数据', this.tab.chart4.getdataListParm.parammaps.statisticsList)
  1247. console.log('转化率图数据', this.tab.chart4.chartLine_data)
  1248. console.log('转化率表数据', this.tab.chart4.table.list)
  1249. var arrData3 = []
  1250. for (let i = 0; i < this.tab.chart4.getdataListParm.parammaps.statisticsList.length; i++) {
  1251. const myId = this.tab.chart4.statisticsList.find(obj => obj.name == this.tab.chart4.getdataListParm.parammaps.statisticsList[i]).id
  1252. for (let j = 0; j < this.tab.chart4.chart4Data3.length; j++) {
  1253. if (j == myId) {
  1254. arrData3.push(this.tab.chart4.chart4Data3[j])
  1255. }
  1256. }
  1257. }
  1258. console.log(arrData3, 'woyaokankan2')
  1259. // this.tab.chart4.statisticsList
  1260. this.tab.chart4.chartLine_data.data3 = arrData3
  1261. this.tab.chart4.chartLine_data.data1 = this.tab.chart4.getdataListParm.parammaps.statisticsList
  1262. this.roadChartLine4(this.tab.chart4.chartLine_data)
  1263. } else {
  1264. this.tab.chart4.list = []
  1265. }
  1266. setTimeout(() => {
  1267. this.tab.chart4.listLoading = false
  1268. }, 100)
  1269. })
  1270. },
  1271. roadChartLine4(chartLine_data) {
  1272. if (this.tab.chart4.chartLine != null) {
  1273. this.tab.chart4.chartLine.dispose()
  1274. }
  1275. this.tab.chart4.chartLine = echarts.init(document.getElementById('chartLine4'))
  1276. var option = {
  1277. title: {
  1278. text: ''
  1279. },
  1280. tooltip: {
  1281. trigger: 'axis'
  1282. },
  1283. legend: {
  1284. data: chartLine_data.data1,
  1285. right: 10
  1286. },
  1287. grid: {
  1288. top: '20%',
  1289. left: '3%',
  1290. right: '8%',
  1291. containLabel: true
  1292. },
  1293. toolbox: {
  1294. show: true,
  1295. right: '2%',
  1296. feature: {}
  1297. },
  1298. xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name:this.$t('errorAnalysis.date') },
  1299. yAxis: {
  1300. type: 'value', name: this.$t('errorAnalysis.bfb') , axisLabel: { formatter: '{value} %' }
  1301. },
  1302. series: (function() {
  1303. var serie = []
  1304. for (var i = 0; i < chartLine_data.data3.length; i++) {
  1305. var item = {
  1306. name: chartLine_data.data1[i],
  1307. type: 'line',
  1308. data: chartLine_data.data3[i].data
  1309. }
  1310. serie.push(item)
  1311. }
  1312. return serie
  1313. }())
  1314. }
  1315. this.tab.chart4.chartLine.setOption(option)
  1316. window.onresize = function() {
  1317. this.tab.chart4.chartLine.resize()
  1318. }
  1319. },
  1320. // 成本分析
  1321. changeStatisticChart5(arr) {
  1322. var arr1 = []
  1323. for (let i = 0; i < arr.length; i++) {
  1324. if (arr[i] !== 'all') {
  1325. arr1.push(arr[i])
  1326. }
  1327. }
  1328. this.tab.chart5.getdataListParm.parammaps.statisticsList = arr1
  1329. var arrData3 = []
  1330. for (let i = 0; i < this.tab.chart5.getdataListParm.parammaps.statisticsList.length; i++) {
  1331. const myId = this.tab.chart5.statisticsList.find(obj => obj.name == this.tab.chart5.getdataListParm.parammaps.statisticsList[i]).id
  1332. for (let j = 0; j < this.tab.chart5.chart5Data3.length; j++) {
  1333. if (j == myId) {
  1334. arrData3.push(this.tab.chart5.chart5Data3[j])
  1335. }
  1336. }
  1337. }
  1338. this.tab.chart5.chartLine_data.data3 = arrData3
  1339. this.tab.chart5.chartLine_data.data1 = this.tab.chart5.getdataListParm.parammaps.statisticsList
  1340. this.roadChartLine5(this.tab.chart5.chartLine_data)
  1341. },
  1342. getChart5() {
  1343. this.tab.chart5.listLoading = true
  1344. GetReportform(this.tab.chart5.getdataListParm).then(response => {
  1345. console.log('转化率图表数据', response.data.list)
  1346. if (response.data.list !== null) {
  1347. this.tab.chart5.table.list = response.data.data
  1348. this.tab.chart5.chartLine_data = response.data.list
  1349. this.tab.chart5.total = response.data.total
  1350. this.tab.chart5.statisticsList = []
  1351. this.tab.chart5.getdataListParm.parammaps.statisticsList = []
  1352. for (let i = 0; i < response.data.list.data1.length; i++) {
  1353. // if (i < 10) {
  1354. this.tab.chart5.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
  1355. // }
  1356. var obj = {}
  1357. obj.id = i
  1358. obj.name = response.data.list.data1[i]
  1359. this.tab.chart5.statisticsList.push(obj)
  1360. }
  1361. this.tab.chart5.chart5Data3 = response.data.list.data3
  1362. this.tab.chart5.total = response.data.total
  1363. console.log('转化率图数据', this.tab.chart5.chartLine_data)
  1364. console.log('转化率表数据', this.tab.chart5.table.list)
  1365. var arrData3 = []
  1366. for (let i = 0; i < this.tab.chart5.getdataListParm.parammaps.statisticsList.length; i++) {
  1367. const myId = this.tab.chart5.statisticsList.find(obj => obj.name == this.tab.chart5.getdataListParm.parammaps.statisticsList[i]).id
  1368. for (let j = 0; j < this.tab.chart5.chart5Data3.length; j++) {
  1369. if (j == myId) {
  1370. arrData3.push(this.tab.chart5.chart5Data3[j])
  1371. }
  1372. }
  1373. }
  1374. this.tab.chart5.chartLine_data.data3 = arrData3
  1375. this.tab.chart5.chartLine_data.data1 = this.tab.chart5.getdataListParm.parammaps.statisticsList
  1376. this.roadChartLine5(this.tab.chart5.chartLine_data)
  1377. } else {
  1378. this.tab.chart5.list = []
  1379. }
  1380. setTimeout(() => {
  1381. this.tab.chart5.listLoading = false
  1382. }, 100)
  1383. })
  1384. },
  1385. roadChartLine5(chartLine_data) {
  1386. if (this.tab.chart5.chartLine != null) {
  1387. this.tab.chart5.chartLine.dispose()
  1388. }
  1389. this.tab.chart5.chartLine = echarts.init(document.getElementById('chartLine5'))
  1390. var option = {
  1391. title: {
  1392. text: ''
  1393. },
  1394. tooltip: {
  1395. trigger: 'axis'
  1396. },
  1397. legend: {
  1398. data: chartLine_data.data1,
  1399. right: 10
  1400. },
  1401. grid: {
  1402. top: '20%',
  1403. left: '5%',
  1404. right: '8%',
  1405. containLabel: true
  1406. },
  1407. toolbox: {
  1408. show: true,
  1409. right: '2%',
  1410. feature: {}
  1411. },
  1412. xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name:this.$t('errorAnalysis.date') },
  1413. yAxis: {
  1414. type: 'value', name: '公斤奶饲料成本(元)'
  1415. },
  1416. series: (function() {
  1417. var serie = []
  1418. for (var i = 0; i < chartLine_data.data3.length; i++) {
  1419. var item = {
  1420. name: chartLine_data.data1[i],
  1421. type: 'line',
  1422. data: chartLine_data.data3[i].data
  1423. }
  1424. serie.push(item)
  1425. }
  1426. return serie
  1427. }())
  1428. }
  1429. this.tab.chart5.chartLine.setOption(option)
  1430. window.onresize = function() {
  1431. this.tab.chart5.chartLine.resize()
  1432. }
  1433. },
  1434. // 时间
  1435. changeChartDate(item) {
  1436. console.log(item)
  1437. if (item == 'chart1') {
  1438. if (this.tab.chart1.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart1.getdataListParm.parammaps.inputDatetime !== null) {
  1439. this.tab.chart1.getdataListParm.parammaps.startTime = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  1440. this.tab.chart1.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  1441. this.getChart1()
  1442. } else {
  1443. this.tab.chart1.getdataListParm.parammaps.inputDatetime = ''
  1444. this.tab.chart1.getdataListParm.parammaps.startTime = ''
  1445. this.tab.chart1.getdataListParm.parammaps.stopTime = ''
  1446. this.getChart1()
  1447. }
  1448. } else if (item == 'chart2') {
  1449. if (this.tab.chart2.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart2.getdataListParm.parammaps.inputDatetime !== null) {
  1450. this.tab.chart2.getdataListParm.parammaps.startTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  1451. this.tab.chart2.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  1452. this.getChart2()
  1453. } else {
  1454. this.tab.chart2.getdataListParm.parammaps.inputDatetime = ''
  1455. this.tab.chart2.getdataListParm.parammaps.startTime = ''
  1456. this.tab.chart2.getdataListParm.parammaps.stopTime = ''
  1457. this.getChart2()
  1458. }
  1459. } else if (item == 'chart3') {
  1460. if (this.tab.chart3.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart3.getdataListParm.parammaps.inputDatetime !== null) {
  1461. this.tab.chart3.getdataListParm.parammaps.startTime = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  1462. this.tab.chart3.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  1463. this.getChart3()
  1464. } else {
  1465. this.tab.chart3.getdataListParm.parammaps.inputDatetime = ''
  1466. this.tab.chart3.getdataListParm.parammaps.startTime = ''
  1467. this.tab.chart3.getdataListParm.parammaps.stopTime = ''
  1468. this.getChart3()
  1469. }
  1470. } else if (item == 'chart4') {
  1471. if (this.tab.chart4.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart4.getdataListParm.parammaps.inputDatetime !== null) {
  1472. this.tab.chart4.getdataListParm.parammaps.startTime = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  1473. this.tab.chart4.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  1474. this.getChart4()
  1475. } else {
  1476. this.tab.chart4.getdataListParm.parammaps.inputDatetime = ''
  1477. this.tab.chart4.getdataListParm.parammaps.startTime = ''
  1478. this.tab.chart4.getdataListParm.parammaps.stopTime = ''
  1479. this.getChart4()
  1480. }
  1481. } else if (item == 'chart5') {
  1482. if (this.tab.chart5.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart5.getdataListParm.parammaps.inputDatetime !== null) {
  1483. this.tab.chart5.getdataListParm.parammaps.startTime = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  1484. this.tab.chart5.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  1485. this.getChart5()
  1486. } else {
  1487. this.tab.chart5.getdataListParm.parammaps.inputDatetime = ''
  1488. this.tab.chart5.getdataListParm.parammaps.startTime = ''
  1489. this.tab.chart5.getdataListParm.parammaps.stopTime = ''
  1490. this.getChart5()
  1491. }
  1492. }
  1493. },
  1494. // 导出
  1495. handleExport(item) {
  1496. if (item == 'chart1') {
  1497. console.log('泌乳牛干物质采食量导出')
  1498. var excelDatasTabChart1 = [
  1499. {
  1500. tHeader: ['日期', '泌乳牛采食量', '泌乳牛产奶量'],
  1501. filterVal: ['日期', 'field1', 'field2'],
  1502. tableDatas: this.tab.chart1.table.list,
  1503. sheetName: '泌乳牛采食量'
  1504. }
  1505. ]
  1506. json2excel(excelDatasTabChart1, '泌乳牛采食量', true, 'xlsx')
  1507. } else if (item == 'chart2') {
  1508. console.log('牛栏剩料率导出')
  1509. var excelDatasTabChart2 = [
  1510. {
  1511. tHeader: ['日期', '栏舍名称', '剩料量', '撒料量', '剩料率'],
  1512. filterVal: ['日期', '名称', '剩料量', '撒料量', '准确率'],
  1513. tableDatas: this.tab.chart2.table.list,
  1514. sheetName: '牛栏剩料率'
  1515. }
  1516. ]
  1517. json2excel(excelDatasTabChart2, '牛栏剩料率', true, 'xlsx')
  1518. } else if (item == 'chart3') {
  1519. console.log('混料时间统计导出')
  1520. var excelDatasTabChart3 = [
  1521. {
  1522. tHeader: ['日期', '混料时间(分钟)'],
  1523. filterVal: ['日期', 'field1'],
  1524. tableDatas: this.tab.chart3.table.list,
  1525. sheetName: '混料时间统计'
  1526. }
  1527. ]
  1528. json2excel(excelDatasTabChart3, '混料时间统计', true, 'xlsx')
  1529. } else if (item == 'chart4') {
  1530. console.log('转化率导出')
  1531. var excelDatasTabChart4 = [
  1532. {
  1533. tHeader: ['日期', '配方名称', '饲料转化率'],
  1534. filterVal: ['日期', '名称', '准确率'],
  1535. tableDatas: this.tab.chart4.table.list,
  1536. sheetName: '转化率统计'
  1537. }
  1538. ]
  1539. json2excel(excelDatasTabChart4, '转化率', true, 'xlsx')
  1540. } else if (item == 'chart5') {
  1541. console.log('成本分析导出')
  1542. var excelDatasTabChart5 = [
  1543. {
  1544. tHeader: ['日期', '牲畜类别', '公斤奶饲料成本(元)'],
  1545. filterVal: ['日期', '名称', '准确率'],
  1546. tableDatas: this.tab.chart5.table.list,
  1547. sheetName: '成本分析'
  1548. }
  1549. ]
  1550. json2excel(excelDatasTabChart5, '成本分析', true, 'xlsx')
  1551. }
  1552. },
  1553. // 切换表格
  1554. handleTable(item) {
  1555. // 显示切换表格
  1556. if (item == 'chart1') {
  1557. console.log('泌乳牛采食量表格')
  1558. this.tab.chart1.isTable = true
  1559. this.tab.chart1.isChart = false
  1560. } else if (item == 'chart2') {
  1561. console.log('牛栏剩料率表格')
  1562. this.tab.chart2.isTable = true
  1563. this.tab.chart2.isChart = false
  1564. } else if (item == 'chart3') {
  1565. console.log('混料时间统计表格')
  1566. this.tab.chart3.isTable = true
  1567. this.tab.chart3.isChart = false
  1568. } else if (item == 'chart4') {
  1569. console.log('转化率表格')
  1570. this.tab.chart4.isTable = true
  1571. this.tab.chart4.isChart = false
  1572. } else if (item == 'chart5') {
  1573. console.log('成本分析表格')
  1574. this.tab.chart5.isTable = true
  1575. this.tab.chart5.isChart = false
  1576. }
  1577. },
  1578. // 切换图表
  1579. handleChart(item) {
  1580. // 显示切换图表
  1581. if (item == 'chart1') {
  1582. console.log('泌乳牛采食量图表')
  1583. this.tab.chart1.isTable = false
  1584. this.tab.chart1.isChart = true
  1585. this.getChart1()
  1586. } else if (item == 'chart2') {
  1587. console.log('牛栏剩料率图表')
  1588. this.tab.chart2.isTable = false
  1589. this.tab.chart2.isChart = true
  1590. this.getChart2()
  1591. } else if (item == 'chart3') {
  1592. console.log('混料时间统计图表')
  1593. this.tab.chart3.isTable = false
  1594. this.tab.chart3.isChart = true
  1595. this.getChart3()
  1596. } else if (item == 'chart4') {
  1597. console.log('转化率图表')
  1598. this.tab.chart4.isTable = false
  1599. this.tab.chart4.isChart = true
  1600. this.getChart4()
  1601. } else if (item == 'chart5') {
  1602. console.log('成本分析图表')
  1603. this.tab.chart5.isTable = false
  1604. this.tab.chart5.isChart = true
  1605. this.getChart5()
  1606. }
  1607. },
  1608. // 切换tab2日期
  1609. changeTab2Date() {
  1610. this.getTab2List()
  1611. this.getTab2List2()
  1612. this.getTab2List3()
  1613. this.getTab2List4()
  1614. },
  1615. // 宾州筛分析
  1616. getTab2List() {
  1617. this.tab2.table.listLoading = true
  1618. GetDataByName(this.tab2.table.getdataListParm).then(response => {
  1619. console.log('宾州筛分析table数据', response.data.list)
  1620. if (response.data.list !== null) {
  1621. this.tab2.table.list = response.data.list
  1622. this.tab2.table.total = response.data.total
  1623. } else {
  1624. this.tab2.table.list = []
  1625. }
  1626. setTimeout(() => {
  1627. this.tab2.table.listLoading = false
  1628. }, 100)
  1629. })
  1630. },
  1631. // 粪便筛分析
  1632. getTab2List2() {
  1633. this.tab2.table2.listLoading = true
  1634. this.tab2.table2.getdataListParm.parammaps.date = this.tab2.table.getdataListParm.parammaps.date
  1635. GetDataByName(this.tab2.table2.getdataListParm).then(response => {
  1636. console.log('粪便筛分析table数据', response.data.list)
  1637. if (response.data.list !== null) {
  1638. this.tab2.table2.list = response.data.list
  1639. this.tab2.table2.total = response.data.total
  1640. } else {
  1641. this.tab2.table2.list = []
  1642. }
  1643. setTimeout(() => {
  1644. this.tab2.table2.listLoading = false
  1645. }, 100)
  1646. })
  1647. },
  1648. // BCS评分
  1649. getTab2List3() {
  1650. this.tab2.table3.listLoading = true
  1651. this.tab2.table3.getdataListParm.parammaps.date = this.tab2.table.getdataListParm.parammaps.date
  1652. GetDataByName(this.tab2.table3.getdataListParm).then(response => {
  1653. console.log('BCS评分table数据', response.data.list)
  1654. if (response.data.list !== null) {
  1655. this.tab2.table3.list = response.data.list
  1656. this.tab2.table3.total = response.data.total
  1657. } else {
  1658. this.tab2.table3.list = []
  1659. }
  1660. setTimeout(() => {
  1661. this.tab2.table3.listLoading = false
  1662. }, 100)
  1663. })
  1664. },
  1665. // 粪便评分
  1666. getTab2List4() {
  1667. this.tab2.table4.listLoading = true
  1668. this.tab2.table4.getdataListParm.parammaps.date = this.tab2.table.getdataListParm.parammaps.date
  1669. GetDataByName(this.tab2.table4.getdataListParm).then(response => {
  1670. console.log('成本分析table数据', response.data.list)
  1671. if (response.data.list !== null) {
  1672. this.tab2.table4.list = response.data.list
  1673. this.tab2.table4.total = response.data.total
  1674. } else {
  1675. this.tab2.table4.list = []
  1676. }
  1677. setTimeout(() => {
  1678. this.tab2.table4.listLoading = false
  1679. }, 100)
  1680. })
  1681. }
  1682. }
  1683. }
  1684. </script>
  1685. <style lang="scss" scoped>
  1686. .button{
  1687. height: 50px;
  1688. .exportTable{float: right;margin-right: 5px;}
  1689. }
  1690. .app-container1{padding-left: 10px;background-color: #F4F4F4;}
  1691. .dashboard-editor-container {
  1692. background-color: #F4F4F4;
  1693. .grid-content{
  1694. background-color:#fff;padding: 0 10px;
  1695. h4{text-align: center;line-height: 50px;}
  1696. }
  1697. }
  1698. </style>