index.vue 299 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430
  1. <template>
  2. <div class="app-container1">
  3. <el-tabs v-model="activeName" @tab-click="handleTabClick">
  4. <el-tab-pane label="汇总统计" name="first">
  5. <div ref="scrollContainer" @scroll="handleScroll" :style="{ height: myHeight1+'px', overflowY: 'auto', overflowX: 'hidden' }">
  6. <div class="search">
  7. <el-date-picker v-model="tab.table.getdataListParm.parammaps.inputDatetime" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;" :picker-options="pickerOptions" />
  8. <el-button class="el-icon-arrow-left elIconArrowLeft" :disabled="Beforedisabled" @click="handleBefore" />
  9. <el-button class="el-icon-arrow-right elIconArrowRight" :disabled="Nextdisabled" @click="handleNext" />
  10. <span style="margin-left: 10px;">统计类型:</span>
  11. <el-select v-model="tab.radio" placeholder="统计类型" class="filter-item" style="width: 120px;" @change="changeRadio">
  12. <el-option v-for="item in statisticalTypeList" :key="item.id" :label="item.name" :value="item.id" />
  13. </el-select>
  14. <el-checkbox v-model="tab.checked" style="margin-right: 10px;" @change="changeChecked">按日期统计</el-checkbox>
  15. <el-input v-if="tab.isDriver" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 140px;" placeholder="驾驶员" />
  16. <el-input v-if="tab.isFormulaName" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 140px;" placeholder="配方名称" />
  17. <el-input v-if="tab.isHouseName" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 140px;" placeholder="栏舍名称" />
  18. <el-input v-if="tab.isLivestockType" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 140px;" placeholder="牲畜名称" />
  19. <el-input v-if="tab.isTrainNumber" v-model="tab.table.getdataListParm.parammaps.projname" class="filter-item" style="width: 100px;" placeholder="车次" />
  20. <el-input v-if="tab.isFeed" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 140px;" placeholder="饲料" />
  21. <el-select v-if="tab.isTrainNumber" v-model="tab.table.getdataListParm.parammaps.times" filterable placeholder="班次" class="filter-item" style="width: 120px;" clearable>
  22. <el-option v-for="item in tab2.frequencyList" :key="item.id" :label="item.name" :value="item.id" />
  23. </el-select>
  24. <el-input v-if="tab.isTrainNumber" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 100px;" placeholder="TMR名称" />
  25. <el-select v-if="tab.isTMRName" v-model="tab.table.getdataListParm.parammaps.fname" placeholder="请选择TMR设备" class="filter-item" style="width: 150px;">
  26. <el-option v-for="(item,index) in tab.TMRNameList" :key="index" :label="item.tmrloadname" :value="item.tmrloadname" />
  27. </el-select>
  28. <div style="display: inline-block;" class="filter-item1">
  29. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.hlwc1" placeholder="混料误差值" style="width: 120px;" class="filter-item" clearable />
  30. <span>-</span>
  31. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.hlwc2" placeholder="混料误差值" style="width: 120px;" class="filter-item" clearable />
  32. </div>
  33. <div style="display: inline-block;" class="filter-item1">
  34. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.hlzq1" placeholder="混料准确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  35. <span>-</span>
  36. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.hlzq2" placeholder="混料准确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  37. </div>
  38. <div style="display: inline-block;" class="filter-item1">
  39. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.hlzql1" placeholder="混料正确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  40. <span>-</span>
  41. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.hlzql2" placeholder="混料正确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  42. </div>
  43. <div style="display: inline-block;" class="filter-item1">
  44. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.slwc1" placeholder="撒料误差值" style="width: 120px;" class="filter-item" clearable />
  45. <span>-</span>
  46. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.slwc2" placeholder="撒料误差值" style="width: 120px;" class="filter-item" clearable />
  47. </div>
  48. <div style="display: inline-block;" class="filter-item1">
  49. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.slzq1" placeholder="撒料准确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  50. <span>-</span>
  51. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.slzq2" placeholder="撒料准确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  52. </div>
  53. <div style="display: inline-block;" class="filter-item1">
  54. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.slzql1" placeholder="撒料正确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  55. <span>-</span>
  56. <el-input-number :controls="false" :precision="2" v-model="tab.table.getdataListParm.parammaps.slzql2" placeholder="撒料正确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  57. </div>
  58. <el-checkbox v-model="tab.table.getdataListParm.parammaps.error" style="margin-right: 10px;" @change="changeccysChecked">只看超出预设值数据</el-checkbox>
  59. <el-button class="successBorder" @click="form_search">查询</el-button>
  60. <el-button class="successBorder" @click="handleRefresh1">重置</el-button>
  61. <el-button class="export" icon="el-icon-upload2" @click="handleDownload">导出</el-button>
  62. <svg-icon icon-class="Up" class="down" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpChart" />
  63. </div>
  64. <div id="table" class="table">
  65. <h4>混料</h4>
  66. <u-table
  67. ref="plTable1"
  68. :key="tab.table.tableKey"
  69. v-loading="tab.table.listLoading"
  70. element-loading-text="给我一点时间"
  71. :data="tab.table.list"
  72. border
  73. fit
  74. highlight-current-row
  75. style="width: 100%;"
  76. :row-style="rowStyle"
  77. :cell-style="cellStyle"
  78. class="elTable table-fixed"
  79. :max-height="myHeight2"
  80. >
  81. <u-table-column v-if="tab.checked && !tab.isTrainNumber" :key="0" sortable label="日期" min-width="70px" align="center" prop="计划时间" />
  82. <u-table-column v-if="tab.isTrainNumber" :key="117" sortable label="日期" min-width="70px" align="center" prop="计划时间1" />
  83. <u-table-column v-if="tab.isTrainNumber" :key="113" sortable label="配方名称" min-width="70px" align="center" prop="templetname" />
  84. <u-table-column v-if="tab.isTrainNumber" :key="114" sortable label="车辆名称" min-width="70px" align="center" prop="TMR名称" />
  85. <u-table-column v-if="tab.isTrainNumber" :key="115" sortable label="开始加料时间" min-width="70px" align="center" prop="startTime" />
  86. <u-table-column v-if="tab.isTrainNumber" :key="116" sortable label="结束加料时间" min-width="70px" align="center" prop="endTime" />
  87. <u-table-column v-if="tab.isDriver" :key="1" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
  88. <u-table-column v-if="tab.isFormulaName" :key="2" sortable label="配方名称" min-width="70px" align="center" prop="配方名称" />
  89. <u-table-column v-if="tab.isHouseName" :key="3" sortable label="栏舍名称" min-width="70px" align="center" prop="栏舍名称" />
  90. <u-table-column v-if="tab.isLivestockType" :key="4" sortable label="牲畜类别" min-width="70px" align="center" prop="牲畜类别" />
  91. <u-table-column v-if="tab.isTrainNumber" :key="5" sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
  92. <u-table-column v-if="tab.isTrainNumber" :key="6" sortable label="车次" min-width="70px" align="center" prop="车次" />
  93. <u-table-column v-if="tab.isTrainNumber" :key="7" sortable label="班次" min-width="70px" align="center" prop="班次" />
  94. <u-table-column v-if="tab.isTrainNumber" :key="8" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
  95. <u-table-column v-if="tab.isTMRName" :key="9" sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
  96. <u-table-column v-if="tab.isTMRName" :key="10" sortable label="班次" min-width="70px" align="center" prop="班次" />
  97. <u-table-column v-if="tab.isTMRName" :key="11" sortable label="车次" min-width="70px" align="center" prop="车次" />
  98. <u-table-column v-if="tab.isTMRName" :key="12" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
  99. <u-table-column v-if="tab.isFeed" :key="13" sortable label="饲料" min-width="70px" align="center" prop="fname" />
  100. <u-table-column :key="14" sortable label="理论重量" min-width="60px" align="center" prop="理论重量" />
  101. <u-table-column :key="15" sortable label="实际重量" min-width="60px" align="center" prop="实际重量" />
  102. <u-table-column :key="16" sortable label="计划混料操作数" min-width="60px" align="center" prop="计划混料操作数" />
  103. <u-table-column :key="17" sortable label="已混料操作数" min-width="50px" align="center" prop="已混料操作数" />
  104. <u-table-column :key="18" sortable label="混料操作率" min-width="60px" align="center" prop="混料操作率" />
  105. <u-table-column :key="19" sortable label="混料误差值" min-width="60px" align="center" prop="混料误差值" />
  106. <u-table-column :key="20" sortable label="混料准确率" min-width="60px" align="center" prop="混料准确率" />
  107. <u-table-column v-if="tab.isTrainNumber" :key="21" sortable label="混料时间" min-width="70px" align="center" prop="混料时间" />
  108. <u-table-column v-if="tab.isTrainNumber" :key="22" sortable label="发料开始时间" min-width="70px" align="center" prop="startMaterialTime" />
  109. <u-table-column v-if="tab.isTrainNumber" :key="23" sortable label="等待时间" min-width="70px" align="center" prop="等待时间" />
  110. <u-table-column :key="24" sortable label="混料自动跳转次数" min-width="65px" align="center" prop="混料自动跳转次数" />
  111. <u-table-column :key="25" sortable label="混料手动跳转次数" min-width="65px" align="center" prop="混料手动跳转次数" />
  112. <u-table-column :key="26" sortable label="取消次数" min-width="70px" align="center" prop="取消次数" />
  113. <u-table-column :key="27" sortable label="混料正确数" min-width="70px" align="center" prop="混料正确数" />
  114. <u-table-column :key="28" sortable label="混料正确率" min-width="70px" align="center" prop="混料正确率" />
  115. <u-table-column :key="29" sortable label="去除取消正确率" min-width="60px" align="center" prop="去除取消正确率" />
  116. <u-table-column :key="30" sortable label="标准差" min-width="60px" align="center" prop="方差" />
  117. <u-table-column v-if="activeName=='first' && tab.table.list !== null" :key="31" align="center" width="70" label="操作" class-name="small-padding fixed-width" fixed="right">
  118. <template slot-scope="{row}">
  119. <el-button class="miniSuccess" icon="el-icon-search" @click="handleSee('1',row)" />
  120. </template>
  121. </u-table-column>
  122. <u-table-column v-else :key="31" align="center" width="70" label="操作" class-name="small-padding fixed-width">
  123. <template slot-scope="{row}">
  124. <el-button class="miniSuccess" icon="el-icon-search" @click="handleSee('1',row)" />
  125. </template>
  126. </u-table-column>
  127. </u-table>
  128. <span v-if="tab.table.listLoading == false" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab.table.total }}条</span>
  129. <div v-if="tab.radio !== '6'">
  130. <h4>撒料</h4>
  131. <u-table
  132. ref="plTable22"
  133. :key="tab.table2.tableKey"
  134. v-loading="tab.table2.listLoading"
  135. element-loading-text="给我一点时间"
  136. :data="tab.table2.list"
  137. border
  138. fit
  139. highlight-current-row
  140. style="width: 100%;"
  141. :row-style="rowStyle"
  142. :cell-style="cellStyle"
  143. class="elTable table-fixed"
  144. :max-height="myHeight2"
  145. >
  146. <u-table-column v-if="tab.checked && !tab.isTrainNumber" :key="0" sortable label="日期" min-width="70px" align="center" prop="计划时间" />
  147. <u-table-column v-if="tab.isTrainNumber" :key="117" sortable label="日期" min-width="70px" align="center" prop="计划时间1" />
  148. <u-table-column v-if="tab.isTrainNumber" :key="113" sortable label="配方名称" min-width="70px" align="center" prop="templetname" />
  149. <u-table-column v-if="tab.isTrainNumber" :key="114" sortable label="车辆名称" min-width="70px" align="center" prop="TMR名称" />
  150. <u-table-column v-if="tab.isTrainNumber" :key="115" sortable label="开始加料时间" min-width="70px" align="center" prop="startTime" />
  151. <u-table-column v-if="tab.isTrainNumber" :key="116" sortable label="结束加料时间" min-width="70px" align="center" prop="endTime" />
  152. <u-table-column v-if="tab.isDriver" :key="1" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
  153. <u-table-column v-if="tab.isFormulaName" :key="2" sortable label="配方名称" min-width="70px" align="center" prop="配方名称" />
  154. <u-table-column v-if="tab.isHouseName" :key="3" sortable label="栏舍名称" min-width="70px" align="center" prop="栏舍名称" />
  155. <u-table-column v-if="tab.isLivestockType" :key="4" sortable label="牲畜类别" min-width="70px" align="center" prop="牲畜类别" />
  156. <u-table-column v-if="tab.isTrainNumber" :key="5" sortable label="车次" min-width="70px" align="center" prop="车次" />
  157. <u-table-column v-if="tab.isTrainNumber" :key="6" sortable label="班次" min-width="70px" align="center" prop="班次" />
  158. <u-table-column v-if="tab.isTrainNumber" :key="7" sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
  159. <u-table-column v-if="tab.isTrainNumber" :key="8" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
  160. <u-table-column v-if="tab.isTMRName" :key="9" sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
  161. <u-table-column v-if="tab.isTMRName" :key="10" sortable label="班次" min-width="70px" align="center" prop="班次" />
  162. <u-table-column v-if="tab.isTMRName" :key="11" sortable label="车次" min-width="70px" align="center" prop="车次" />
  163. <u-table-column v-if="tab.isTMRName" :key="12" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
  164. <u-table-column v-if="tab.isFeed" :key="13" sortable label="饲料" min-width="70px" align="center" prop="饲料" />
  165. <u-table-column :key="14" sortable label="理论重量" min-width="60px" align="center" prop="理论重量" />
  166. <u-table-column :key="15" sortable label="实际重量" min-width="60px" align="center" prop="实际重量" />
  167. <u-table-column :key="16" sortable label="计划撒料操作数" min-width="60px" align="center" prop="计划撒料操作数" />
  168. <u-table-column :key="17" sortable label="已撒料操作数" min-width="50px" align="center" prop="已撒料操作数" />
  169. <u-table-column :key="18" sortable label="撒料操作率" min-width="60px" align="center" prop="撒料操作率" />
  170. <u-table-column :key="19" sortable label="撒料误差值" min-width="60px" align="center" prop="撒料误差值" />
  171. <u-table-column :key="20" sortable label="撒料准确率" min-width="60px" align="center" prop="撒料准确率" />
  172. <u-table-column v-if="tab.isTrainNumber" :key="21" sortable label="撒料时间" min-width="70px" align="center" prop="撒料时间" />
  173. <u-table-column v-if="tab.isTrainNumber" :key="22" sortable label="发料开始时间" min-width="70px" align="center" prop="startMaterialTime" />
  174. <u-table-column v-if="tab.isTrainNumber" :key="22" sortable label="等待时间" min-width="70px" align="center" prop="等待时间" />
  175. <u-table-column :key="23" sortable label="撒料自动跳转次数" width="65px" align="center" prop="撒料自动跳转次数" />
  176. <u-table-column :key="24" sortable label="撒料手动跳转次数" width="65px" align="center" prop="撒料手动跳转次数" />
  177. <u-table-column :key="25" sortable label="取消次数" min-width="70px" align="center" prop="取消次数" />
  178. <u-table-column :key="26" sortable label="撒料正确数" min-width="70px" align="center" prop="撒料正确数" />
  179. <u-table-column :key="27" sortable label="撒料正确率" min-width="70px" align="center" prop="撒料正确率" />
  180. <u-table-column :key="28" sortable label="去除取消正确率" min-width="65px" align="center" prop="去除取消正确率" />
  181. <u-table-column :key="29" sortable label="标准差" min-width="60px" align="center" prop="方差" />
  182. <u-table-column v-if="activeName=='first' && tab.table2.list !== null" :key="30" align="center" width="70" label="操作" class-name="small-padding fixed-width" fixed="right">
  183. <template slot-scope="{row}">
  184. <el-button class="miniSuccess" icon="el-icon-search" @click="handleSee('2',row)" />
  185. </template>
  186. </u-table-column>
  187. <u-table-column v-else :key="30" align="center" width="70" label="操作" class-name="small-padding fixed-width">
  188. <template slot-scope="{row}">
  189. <el-button class="miniSuccess" icon="el-icon-search" @click="handleSee('2',row)" />
  190. </template>
  191. </u-table-column>
  192. </u-table>
  193. <span v-if="tab.table2.listLoading == false" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab.table2.total }}条</span>
  194. </div>
  195. </div>
  196. <div id="AnalysisChart" class="AnalysisChart">
  197. <el-row :gutter="10">
  198. <el-col :span="24" style="margin-bottom: 10px;margin-top: 10px;">
  199. <span>图表查询时间:</span>
  200. <el-radio-group v-model="tab.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeAllSpecificDate">
  201. <el-radio-button label="1" border>日</el-radio-button>
  202. <el-radio-button label="3" border>月</el-radio-button>
  203. </el-radio-group>
  204. <div v-show="tab.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
  205. <el-date-picker v-model="tab.chartDate" :clearable="false" class="inputDatetime filter-item" style="width:250px;" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
  206. </div>
  207. <div v-show="tab.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
  208. <el-select v-model="tab.selectYear" class="filter-item" style="width:130px;margin-right:10px;" placeholder="请选择年份" @change="changeAllYear">
  209. <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
  210. </el-select>
  211. <el-select v-model="tab.selectWeek" class="filter-item" style="width:170px;" multiple :multiple-limit="2" placeholder="请选择周">
  212. <el-option v-for="(item,index) in tab.weekList" :key="index" :label="item.name" :value="item.id" />
  213. </el-select>
  214. </div>
  215. <div v-show="tab.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
  216. <el-date-picker v-model="tab.chartMonth" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" style="width:250px;" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
  217. </div>
  218. <el-button class="successBorder" style="margin-left:10px;" @click="handleAllDate">确认</el-button>
  219. <svg-icon icon-class="Up" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpTop" />
  220. </el-col>
  221. </el-row>
  222. <el-row :gutter="10" class="dashboard-editor-container">
  223. <el-col :span="12">
  224. <div class="grid-content">
  225. <h4>计划统计</h4>
  226. <div v-if="tab.chart2.isChart" class="button">
  227. <div class="chartButton">
  228. <el-radio-group v-model="tab.chart2.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart2')">
  229. <el-radio-button label="1" border>日</el-radio-button>
  230. <el-radio-button label="3" border>月</el-radio-button>
  231. </el-radio-group>
  232. <div v-show="tab.chart2.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
  233. <el-date-picker v-model="tab.chart2.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
  234. </div>
  235. <div v-show="tab.chart2.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
  236. <el-select v-model="tab.chart2.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart2')">
  237. <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
  238. </el-select>
  239. <el-select v-model="tab.chart2.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
  240. <el-option v-for="(item,index) in tab.chart2.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
  241. </el-select>
  242. </div>
  243. <div v-show="tab.chart2.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
  244. <el-date-picker v-model="tab.chart2.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" format="yyyy-MM" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
  245. </div>
  246. <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart2')">确认</el-button>
  247. </div>
  248. <div>
  249. <div class="exportTable2" @click="handleExport('chart2')">导出</div>
  250. <div class="exportTable2" @click="handleTable('chart2')">切换表格</div>
  251. </div>
  252. </div>
  253. <div v-if="tab.chart2.isChart" id="chartLine2" style="width:100%;height:385px;background: #fff;" />
  254. <div v-if="tab.chart2.isTable" class="table">
  255. <div class="button">
  256. <div class="exportTable" @click="handleExport('chart2')">导出</div>
  257. <div class="exportTable" @click="handleChart('chart2')">切换图表</div>
  258. </div>
  259. <el-table
  260. :key="tab.chart2.table.tableKey"
  261. v-loading="tab.chart2.table.listLoading"
  262. element-loading-text="给我一点时间"
  263. :data="tab.chart2.table.list"
  264. border
  265. fit
  266. highlight-current-row
  267. style="width: 100%;"
  268. height="385"
  269. :row-style="rowStyle"
  270. :cell-style="cellStyle"
  271. class="elTable table-fixed"
  272. >
  273. <el-table-column label="日期" sortable min-width="85px" align="center" prop="日期" />
  274. <el-table-column label="计划执行重量(kg)" sortable min-width="80px" align="center" prop="实际量" />
  275. <el-table-column label="配方理论重量(kg)" sortable min-width="80px" align="center" prop="理论量" />
  276. <el-table-column label="计划准确率" sortable min-width="85px" align="center" prop="field1" />
  277. <el-table-column label="计划取消重量(kg)" sortable min-width="80px" align="center" prop="计划取消重量" />
  278. <el-table-column label="计划准确率(去除取消重量)" sortable min-width="100px" align="center" prop="field3" />
  279. <el-table-column label="计划正确数" sortable min-width="85px" align="center" prop="正确数" />
  280. <el-table-column label="计划数" sortable min-width="60px" align="center" prop="计划数" />
  281. <el-table-column label="计划正确率" sortable min-width="75px" align="center" prop="field2" />
  282. </el-table>
  283. </div>
  284. </div>
  285. </el-col>
  286. <el-col :span="12">
  287. <div class="grid-content">
  288. <h4>配方准确率</h4>
  289. <div v-if="tab.chart1.isChart" class="button">
  290. <div class="chartButton">
  291. <my-select ref="tenantselect" :model="tab.chart1.getdataListParm.parammaps.statisticsList" :option="tab.chart1.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" placeholder="请选择统计参数" @searchSelect="changeStatisticChart1" />
  292. <el-radio-group v-model="tab.chart1.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart1')">
  293. <el-radio-button label="1" border>日</el-radio-button>
  294. <el-radio-button label="3" border>月</el-radio-button>
  295. </el-radio-group>
  296. <div v-show="tab.chart1.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
  297. <el-date-picker v-model="tab.chart1.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
  298. </div>
  299. <div v-show="tab.chart1.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
  300. <el-select v-model="tab.chart1.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart1')">
  301. <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
  302. </el-select>
  303. <el-select v-model="tab.chart1.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
  304. <el-option v-for="(item,index) in tab.chart1.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
  305. </el-select>
  306. </div>
  307. <div v-show="tab.chart1.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
  308. <el-date-picker v-model="tab.chart1.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
  309. </div>
  310. <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart1')">确认</el-button>
  311. </div>
  312. <div>
  313. <div class="exportTable2" @click="handleExport('chart1')">导出</div>
  314. <div class="exportTable2" @click="handleTable('chart1')">切换表格</div>
  315. </div>
  316. </div>
  317. <div v-if="tab.chart1.isChart" id="chartLine1" style="width:100%;height:385px;" />
  318. <div v-if="tab.chart1.isTable" class="table">
  319. <div class="button">
  320. <div class="exportTable" @click="handleExport('chart1')">导出</div>
  321. <div class="exportTable" @click="handleChart('chart1')">切换图表</div>
  322. </div>
  323. <el-table
  324. :key="tab.chart1.table.tableKey"
  325. v-loading="tab.chart1.table.listLoading"
  326. element-loading-text="给我一点时间"
  327. :data="tab.chart1.table.list"
  328. border
  329. fit
  330. highlight-current-row
  331. style="width: 100%;"
  332. height="385"
  333. :row-style="rowStyle"
  334. :cell-style="cellStyle"
  335. class="elTable table-fixed"
  336. >
  337. <el-table-column label="日期" sortable min-width="90px" align="center" prop="日期" />
  338. <el-table-column label="配方名称" sortable min-width="90px" align="center" prop="名称" />
  339. <el-table-column label="计划重量(kg)" sortable min-width="100px" align="center" prop="理论量" />
  340. <el-table-column label="实际重量(kg)" sortable min-width="100px" align="center" prop="实际量" />
  341. <el-table-column label="准确率" sortable min-width="90px" align="center" prop="准确率" />
  342. </el-table>
  343. </div>
  344. </div>
  345. </el-col>
  346. </el-row>
  347. <el-row :gutter="10" class="dashboard-editor-container">
  348. <el-col :span="12">
  349. <div class="grid-content">
  350. <h4>牛群准确率</h4>
  351. <div v-if="tab.chart3.isChart" class="button">
  352. <div class="chartButton">
  353. <my-select ref="tenantselect" :model="tab.chart3.getdataListParm.parammaps.statisticsList" :option="tab.chart3.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" placeholder="请选择统计参数" @searchSelect="changeStatisticChart3" />
  354. <el-radio-group v-model="tab.chart3.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart3')">
  355. <el-radio-button label="1" border>日</el-radio-button>
  356. <el-radio-button label="3" border>月</el-radio-button>
  357. </el-radio-group>
  358. <div v-show="tab.chart3.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
  359. <el-date-picker v-model="tab.chart3.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
  360. </div>
  361. <div v-show="tab.chart3.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
  362. <el-select v-model="tab.chart3.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart3')">
  363. <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
  364. </el-select>
  365. <el-select v-model="tab.chart3.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
  366. <el-option v-for="(item,index) in tab.chart3.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
  367. </el-select>
  368. </div>
  369. <div v-show="tab.chart3.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
  370. <el-date-picker v-model="tab.chart3.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
  371. </div>
  372. <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart3')">确认</el-button>
  373. </div>
  374. <div>
  375. <div class="exportTable2" @click="handleExport('chart3')">导出</div>
  376. <div class="exportTable2" @click="handleTable('chart3')">切换表格</div>
  377. </div>
  378. </div>
  379. <div v-if="tab.chart3.isChart" id="chartLine3" style="width:100%;height:385px;" />
  380. <div v-if="tab.chart3.isTable" class="table">
  381. <div class="button">
  382. <div class="exportTable" @click="handleExport('chart3')">导出</div>
  383. <div class="exportTable" @click="handleChart('chart3')">切换图表</div>
  384. </div>
  385. <el-table
  386. :key="tab.chart3.table.tableKey"
  387. v-loading="tab.chart3.table.listLoading"
  388. element-loading-text="给我一点时间"
  389. :data="tab.chart3.table.list"
  390. border
  391. fit
  392. highlight-current-row
  393. style="width: 100%;"
  394. height="385"
  395. :row-style="rowStyle"
  396. :cell-style="cellStyle"
  397. class="elTable table-fixed"
  398. >
  399. <el-table-column label="日期" sortable min-width="90px" align="center" prop="日期" />
  400. <el-table-column label="牲畜类别" sortable min-width="90px" align="center" prop="名称" />
  401. <el-table-column label="计划重量(kg)" sortable min-width="100px" align="center" prop="理论量" />
  402. <el-table-column label="实际重量(kg)" sortable min-width="100px" align="center" prop="实际量" />
  403. <el-table-column label="准确率" sortable min-width="90px" align="center" prop="准确率" />
  404. </el-table>
  405. </div>
  406. </div>
  407. </el-col>
  408. <el-col :span="12">
  409. <div class="grid-content">
  410. <h4>车辆准确率(重量)</h4>
  411. <div v-if="tab.chart4.isChart" class="button">
  412. <div class="chartButton">
  413. <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="请选择统计参数" @searchSelect="changeStatisticChart4" />
  414. <el-radio-group v-model="tab.chart4.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart4')">
  415. <el-radio-button label="1" border>日</el-radio-button>
  416. <el-radio-button label="3" border>月</el-radio-button>
  417. </el-radio-group>
  418. <div v-show="tab.chart4.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
  419. <el-date-picker v-model="tab.chart4.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
  420. </div>
  421. <div v-show="tab.chart4.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
  422. <el-select v-model="tab.chart4.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart4')">
  423. <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
  424. </el-select>
  425. <el-select v-model="tab.chart4.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
  426. <el-option v-for="(item,index) in tab.chart4.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
  427. </el-select>
  428. </div>
  429. <div v-show="tab.chart4.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
  430. <el-date-picker v-model="tab.chart4.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
  431. </div>
  432. <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart4')">确认</el-button>
  433. </div>
  434. <div>
  435. <div class="exportTable2" @click="handleExport('chart4')">导出</div>
  436. <div class="exportTable2" @click="handleTable('chart4')">切换表格</div>
  437. </div>
  438. </div>
  439. <div v-if="tab.chart4.isChart" id="chartLine4" style="width:100%;height:385px;" />
  440. <div v-if="tab.chart4.isTable" class="table">
  441. <div class="button">
  442. <div class="exportTable" @click="handleExport('chart4')">导出</div>
  443. <div class="exportTable" @click="handleChart('chart4')">切换图表</div>
  444. </div>
  445. <el-table
  446. :key="tab.chart4.table.tableKey"
  447. v-loading="tab.chart4.table.listLoading"
  448. element-loading-text="给我一点时间"
  449. :data="tab.chart4.table.list"
  450. border
  451. fit
  452. highlight-current-row
  453. style="width: 100%;"
  454. height="385"
  455. :row-style="rowStyle"
  456. :cell-style="cellStyle"
  457. class="elTable table-fixed"
  458. >
  459. <el-table-column label="日期" sortable min-width="90px" align="center" prop="日期" />
  460. <el-table-column label="车次" sortable min-width="90px" align="center" prop="名称" />
  461. <el-table-column label="计划重量(kg)" sortable min-width="100px" align="center" prop="理论量" />
  462. <el-table-column label="实际重量(kg)" sortable min-width="100px" align="center" prop="实际量" />
  463. <el-table-column label="准确率" sortable min-width="90px" align="center" prop="准确率" />
  464. </el-table>
  465. </div>
  466. </div>
  467. </el-col>
  468. </el-row>
  469. <el-row :gutter="10" class="dashboard-editor-container">
  470. <el-col :span="12">
  471. <div class="grid-content">
  472. <h4>混料统计</h4>
  473. <div v-if="tab.chart5.isChart" class="button">
  474. <div class="chartButton">
  475. <el-radio-group v-model="tab.chart5.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart5')">
  476. <el-radio-button label="1" border>日</el-radio-button>
  477. <el-radio-button label="3" border>月</el-radio-button>
  478. </el-radio-group>
  479. <div v-show="tab.chart5.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
  480. <el-date-picker v-model="tab.chart5.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
  481. </div>
  482. <div v-show="tab.chart5.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
  483. <el-select v-model="tab.chart5.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart5')">
  484. <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
  485. </el-select>
  486. <el-select v-model="tab.chart5.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
  487. <el-option v-for="(item,index) in tab.chart5.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
  488. </el-select>
  489. </div>
  490. <div v-show="tab.chart5.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
  491. <el-date-picker v-model="tab.chart5.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
  492. </div>
  493. <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart5')">确认</el-button>
  494. </div>
  495. <div>
  496. <div class="exportTable2" @click="handleExport('chart5')">导出</div>
  497. <div class="exportTable2" @click="handleTable('chart5')">切换表格</div>
  498. </div>
  499. </div>
  500. <div v-if="tab.chart5.isChart" id="chartLine5" class="button" style="width:100%;height:385px;" />
  501. <div v-if="tab.chart5.isTable" class="table">
  502. <div class="button">
  503. <div class="exportTable" @click="handleExport('chart5')">导出</div>
  504. <div class="exportTable" @click="handleChart('chart5')">切换图表</div>
  505. </div>
  506. <el-table
  507. :key="tab.chart5.table.tableKey"
  508. v-loading="tab.chart5.table.listLoading"
  509. element-loading-text="给我一点时间"
  510. :data="tab.chart5.table.list"
  511. border
  512. fit
  513. highlight-current-row
  514. style="width: 100%;"
  515. height="385"
  516. :row-style="rowStyle"
  517. :cell-style="cellStyle"
  518. class="elTable table-fixed"
  519. >
  520. <el-table-column label="日期" sortable min-width="100px" align="center" prop="日期" />
  521. <el-table-column label="自动跳转次数" sortable min-width="130px" align="center" prop="field1" />
  522. <el-table-column label="手动跳转次数" sortable min-width="130px" align="center" prop="field2" />
  523. <el-table-column label="自动跳转理论重量" sortable min-width="110px" align="center" prop="理论自动" />
  524. <el-table-column label="自动跳转实际重量" sortable min-width="110px" align="center" prop="实际自动" />
  525. <el-table-column label="自动跳转准确率" sortable min-width="110px" align="center" prop="field3" />
  526. <el-table-column label="手动跳转理论重量" sortable min-width="110px" align="center" prop="理论手动" />
  527. <el-table-column label="手动跳转实际重量" sortable min-width="110px" align="center" prop="实际手动" />
  528. <el-table-column label="手动跳转准确率" sortable min-width="110px" align="center" prop="field4" />
  529. </el-table>
  530. </div>
  531. </div>
  532. </el-col>
  533. <el-col :span="12">
  534. <div class="grid-content">
  535. <h4>混料计划取消次数</h4>
  536. <div v-if="tab.chart6.isChart" class="button">
  537. <div class="chartButton">
  538. <el-radio-group v-model="tab.chart6.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart6')">
  539. <el-radio-button label="1" border>日</el-radio-button>
  540. <el-radio-button label="3" border>月</el-radio-button>
  541. </el-radio-group>
  542. <div v-show="tab.chart6.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
  543. <el-date-picker v-model="tab.chart6.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
  544. </div>
  545. <div v-show="tab.chart6.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
  546. <el-select v-model="tab.chart6.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart6')">
  547. <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
  548. </el-select>
  549. <el-select v-model="tab.chart6.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
  550. <el-option v-for="(item,index) in tab.chart6.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
  551. </el-select>
  552. </div>
  553. <div v-show="tab.chart6.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
  554. <el-date-picker v-model="tab.chart6.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
  555. </div>
  556. <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart6')">确认</el-button>
  557. </div>
  558. <div>
  559. <div class="exportTable2" @click="handleExport('chart6')">导出</div>
  560. <div class="exportTable2" @click="handleTable('chart6')">切换表格</div>
  561. </div>
  562. </div>
  563. <div v-if="tab.chart6.isChart" id="chartLine6" style="width:100%;height:385px;" />
  564. <div v-if="tab.chart6.isTable" class="table">
  565. <div class="button">
  566. <div class="exportTable" @click="handleExport('chart6')">导出</div>
  567. <div class="exportTable" @click="handleChart('chart6')">切换图表</div>
  568. </div>
  569. <el-table
  570. :key="tab.chart6.table.tableKey"
  571. v-loading="tab.chart6.table.listLoading"
  572. element-loading-text="给我一点时间"
  573. :data="tab.chart6.table.list"
  574. border
  575. fit
  576. highlight-current-row
  577. style="width: 100%;"
  578. height="385"
  579. :row-style="rowStyle"
  580. :cell-style="cellStyle"
  581. class="elTable table-fixed"
  582. >
  583. <el-table-column label="日期" sortable min-width="110px" align="center" prop="日期" />
  584. <el-table-column label="混料计划取消次数" sortable min-width="110px" align="center" prop="field1" />
  585. </el-table>
  586. </div>
  587. </div>
  588. </el-col>
  589. </el-row>
  590. <el-row :gutter="10" class="dashboard-editor-container" style="margin-bottom: 30px;">
  591. <el-col :span="24">
  592. <div class="grid-content">
  593. <h4>栏舍撒料时间统计</h4>
  594. <div v-if="tab.chart7.isChart" class="button">
  595. <div class="chartButton">
  596. <!-- 君盛-->
  597. <!-- <el-select v-model="tab.chart7.getdataListParm.parammaps.statisticsList" multiple placeholder="请选择" collapse-tags @change="changeStatisticChart7">
  598. <el-option v-for="item in tab.chart7.statisticsList" :key="item.name" :label="item.name" :value="item.name" />
  599. </el-select> -->
  600. <!-- 其他牧场 -->
  601. <my-select ref="tenantselect" :model="tab.chart7.getdataListParm.parammaps.statisticsList" :option="tab.chart7.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" placeholder="请选择统计参数" @searchSelect="changeStatisticChart7" />
  602. <el-select v-model="tab.chart7.getdataListParm.parammaps.ftId" multiple collapse-tags placeholder="请选择" @change="changeformula()">
  603. <el-option v-for="item in tab.chart7.formulaList" :key="item.id" :label="item.tname" :value="item.id" />
  604. </el-select>
  605. <el-radio-group v-model="tab.chart7.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;margin-left: 10px;" @change="changeChartSpecificDate('chart7')">
  606. <el-radio-button label="1" border>日</el-radio-button>
  607. <el-radio-button label="3" border>月</el-radio-button>
  608. </el-radio-group>
  609. <div v-show="tab.chart7.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
  610. <el-date-picker v-model="tab.chart7.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
  611. </div>
  612. <div v-show="tab.chart7.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
  613. <el-select v-model="tab.chart7.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart7')">
  614. <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
  615. </el-select>
  616. <el-select v-model="tab.chart7.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
  617. <el-option v-for="(item,index) in tab.chart7.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
  618. </el-select>
  619. </div>
  620. <div v-show="tab.chart7.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
  621. <el-date-picker v-model="tab.chart7.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
  622. </div>
  623. <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart7')">确认</el-button>
  624. </div>
  625. <div>
  626. <div class="exportTable2" @click="handleExport('chart7')">导出</div>
  627. <div class="exportTable2" @click="handleTable('chart7')">切换表格</div>
  628. </div>
  629. </div>
  630. <div v-if="tab.chart7.isChart" id="chartLine7" style="width:100%;height:385px;" />
  631. <div v-if="tab.chart7.isTable" class="table">
  632. <div class="button">
  633. <div class="exportTable" @click="handleExport('chart7')">导出</div>
  634. <div class="exportTable" @click="handleChart('chart7')">切换图表</div>
  635. </div>
  636. <el-table
  637. :key="tab.chart7.table.tableKey"
  638. v-loading="tab.chart7.table.listLoading"
  639. element-loading-text="给我一点时间"
  640. :data="tab.chart7.table.list"
  641. border
  642. fit
  643. highlight-current-row
  644. style="width: 100%;"
  645. height="385"
  646. :row-style="rowStyle"
  647. :cell-style="cellStyle"
  648. class="elTable table-fixed"
  649. >
  650. <el-table-column label="日期" sortable min-width="110px" align="center" prop="日期" />
  651. <el-table-column label="栏舍" sortable min-width="110px" align="center" prop="fname" />
  652. <el-table-column label="撒料时间" sortable min-width="110px" align="center" prop="撒料时间" />
  653. </el-table>
  654. </div>
  655. </div>
  656. </el-col>
  657. </el-row>
  658. </div>
  659. </div>
  660. </el-tab-pane>
  661. <el-tab-pane label="混料统计" name="second">
  662. <div class="search" ref="myHeightSecond">
  663. <el-date-picker v-model="tab2.table.getdataListParm.parammaps.inputDatetime" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;" :picker-options="pickerOptions3" />
  664. <!-- <el-date-picker v-model="tab2.table.getdataListParm.parammaps.inputDatetime2" :clearable="false" style="width: 140px;margin-top: 5px;" type="date" placeholder="选择日期"> </el-date-picker> -->
  665. <el-button class="el-icon-arrow-left elIconArrowLeft" style="display:inline-block;margin-top: 5px;" :disabled="Beforedisabled2" @click="handleBefore2" />
  666. <el-button class="el-icon-arrow-right elIconArrowRight" style="display:inline-block;margin-top: 5px;" :disabled="Nextdisabled2" @click="handleNext2" />
  667. <el-select clearable filterable v-model="tab2.table.getdataListParm.parammaps.tmrtname" placeholder="TMR设备" class="filter-item" style="width: 120px;">
  668. <el-option v-for="(item,index) in tab2.TMRNameList" :key="index" :label="item.tmrloadname" :value="item.tmrloadname" />
  669. </el-select>
  670. <el-input v-model="tab2.table.getdataListParm.parammaps.projname" style="margin-top: 5px;width: 110px;" placeholder="车次" class="filter-item" clearable />
  671. <el-select v-model="tab2.table.getdataListParm.parammaps.times" style="margin-top: 5px;width: 110px;" filterable placeholder="班次" class="filter-item" clearable>
  672. <el-option v-for="item in tab2.frequencyList" :key="item.id" :label="item.name" :value="item.id" />
  673. </el-select>
  674. <el-input v-model="tab2.table.getdataListParm.parammaps.templetname" style="margin-top: 5px;width: 110px;" placeholder="配方名称" class="filter-item" clearable />
  675. <el-select v-model="tab2.table.getdataListParm.parammaps.buttontype" style="margin-top: 5px;width: 130px;" filterable placeholder="跳转方式" class="filter-item" clearable>
  676. <el-option v-for="item in tab2.jumpModeList" :key="item.id" :label="item.name" :value="item.id" />
  677. </el-select>
  678. <div style="display: inline-block;" class="filter-item1">
  679. <el-input-number :controls="false" :precision="2" v-model="tab2.table.getdataListParm.parammaps.hlwc1" placeholder="混料误差值" style="width: 120px;" class="filter-item" clearable />
  680. <span>-</span>
  681. <el-input-number :controls="false" :precision="2" v-model="tab2.table.getdataListParm.parammaps.hlwc2" placeholder="混料误差值" style="width: 120px;" class="filter-item" clearable />
  682. </div>
  683. <div style="display: inline-block;" class="filter-item1">
  684. <el-input-number :controls="false" :precision="2" v-model="tab2.table.getdataListParm.parammaps.hlzq1" placeholder="混料准确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  685. <span>-</span>
  686. <el-input-number :controls="false" :precision="2" v-model="tab2.table.getdataListParm.parammaps.hlzq2" placeholder="混料准确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  687. </div>
  688. <div style="display: inline-block;" class="filter-item1">
  689. <el-input-number :controls="false" :precision="2" v-model="tab2.table.getdataListParm.parammaps.hlzql1" placeholder="混料正确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  690. <span>-</span>
  691. <el-input-number :controls="false" :precision="2" v-model="tab2.table.getdataListParm.parammaps.hlzql2" placeholder="混料正确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  692. </div>
  693. <el-select v-model="tab2.table.getdataListParm.parammaps.premix" filterable placeholder="是否预混计划" class="filter-item" style="width: 120px;" clearable>
  694. <el-option v-for="item in tab2.premixList" :key="item.id" :label="item.name" :value="item.id" />
  695. </el-select>
  696. <el-checkbox v-model="tab2.table.getdataListParm.parammaps.error" style="margin-right: 10px;">只看超出预设值数据</el-checkbox>
  697. <el-button class="successBorder" style="margin-top: 5px;" @click="form_search2">查询</el-button>
  698. <el-button class="successBorder" style="margin-top: 5px;" @click="handleRefresh2">重置</el-button>
  699. <el-button style="float: right;margin-right: 10px;margin-bottom:10px;margin-top: 5px;" class="export" icon="el-icon-upload2" @click="handleExport2">导出</el-button>
  700. </div>
  701. <div class="table">
  702. <u-table
  703. ref="plTable2"
  704. :key="tab2.table.tableKey"
  705. v-loading="tab2.table.listLoading"
  706. element-loading-text="给我一点时间"
  707. :data="tab2.table.list"
  708. border
  709. fit
  710. highlight-current-row
  711. style="width: 100%;"
  712. :row-style="rowStyle"
  713. :cell-style="cellStyle"
  714. class="elTable table-fixed"
  715. :height="myHeightSecond"
  716. >
  717. <u-table-column sortable label="日期" min-width="70px" align="center" prop="日期" />
  718. <u-table-column sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
  719. <u-table-column sortable label="操作编号" min-width="70px" align="center" prop="sort" />
  720. <u-table-column sortable label="车次" min-width="50px" align="center" prop="车次" />
  721. <u-table-column sortable label="班次" min-width="50px" align="center" prop="班次" />
  722. <u-table-column sortable label="配方名称" min-width="70px" align="center" prop="配方名称">
  723. <template slot-scope="{row}">
  724. <a @click="clickRecipeName2(row)" style="text-decoration: underline;color: #0000FF;">{{ row.配方名称 }}</a>
  725. </template>
  726. </u-table-column>
  727. <u-table-column sortable label="饲料" min-width="70px" align="center" prop="饲料">
  728. <template slot-scope="{row}">
  729. <a @click="clickFeed2(row)" style="text-decoration: underline;color: #0000FF;">{{ row.饲料 }}</a>
  730. </template>
  731. </u-table-column>
  732. <u-table-column sortable label="理论重量" min-width="55px" align="center" prop="理论重量" />
  733. <u-table-column sortable label="实际重量" min-width="55px" align="center" prop="实际重量" />
  734. <u-table-column sortable label="误差值" min-width="45px" align="center" prop="误差值" />
  735. <u-table-column sortable label="准确率" min-width="45px" align="center" prop="准确率" />
  736. <u-table-column sortable label="计划时间" min-width="55px" align="center" prop="计划时间" />
  737. <u-table-column sortable label="开始时间" min-width="55px" align="center" prop="开始时间" />
  738. <u-table-column sortable label="结束时间" min-width="55px" align="center" prop="结束时间" />
  739. <u-table-column sortable label="搅拌时间" min-width="55px" align="center" prop="搅拌时间" />
  740. <u-table-column sortable label="跳转方式" min-width="55px" align="center" prop="跳转方式" />
  741. <u-table-column sortable label="开始重量" min-width="55px" align="center" prop="开始重量" />
  742. <u-table-column sortable label="结束重量" min-width="55px" align="center" prop="结束重量" />
  743. <u-table-column sortable label="车次描述" min-width="55px" align="center" prop="remark" />
  744. <u-table-column sortable label="是否达标" min-width="70px" align="center" prop="standard" />
  745. </u-table>
  746. <span v-if="tab2.table.listLoading == false" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab2.table.total }}条</span>
  747. </div>
  748. </el-tab-pane>
  749. <el-tab-pane label="撒料统计" name="third">
  750. <div class="search" ref="myHeightThird">
  751. <el-date-picker v-model="tab3.table.getdataListParm.parammaps.inputDatetime" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;" :picker-options="pickerOptions3" />
  752. <!-- <el-date-picker v-model="tab3.table.getdataListParm.parammaps.inputDatetime2" :clearable="false" style="margin-top: 5px;width:140px;" type="date" placeholder="选择日期"> </el-date-picker> -->
  753. <el-button class="el-icon-arrow-left elIconArrowLeft" style="dispaly:inline-block;margin-top: 5px;" :disabled="Beforedisabled3" @click="handleBefore3" />
  754. <el-button class="el-icon-arrow-right elIconArrowRight" style="dispaly:inline-block;margin-top: 5px;" :disabled="Nextdisabled3" @click="handleNext3" />
  755. <el-select v-model="tab3.table.getdataListParm.parammaps.tmrtname" placeholder="TMR设备" class="filter-item" style="margin-top: 5px;width: 120px;" clearable filterable>
  756. <el-option v-for="(item,index) in tab3.TMRNameList" :key="index" :label="item.tmrloadname" :value="item.tmrloadname" />
  757. </el-select>
  758. <el-input v-model="tab3.table.getdataListParm.parammaps.projname" style="margin-top: 5px;width: 150px;" placeholder="车次" class="filter-item" clearable />
  759. <el-select v-model="tab3.table.getdataListParm.parammaps.times" style="margin-top: 5px;width: 100px;" filterable placeholder="班次" class="filter-item" clearable>
  760. <el-option v-for="item in tab3.frequencyList" :key="item.id" :label="item.name" :value="item.id" />
  761. </el-select>
  762. <el-input v-model="tab3.table.getdataListParm.parammaps.templetname" style="margin-top: 5px;width: 110px;" placeholder="配方名称" class="filter-item" clearable />
  763. <el-input v-model="tab3.table.getdataListParm.parammaps.fname" style="margin-top: 5px;width: 110px;" placeholder="栏舍名称" class="filter-item" clearable />
  764. <el-select v-model="tab3.table.getdataListParm.parammaps.buttontype" style="margin-top: 5px;width: 110px;" filterable placeholder="跳转方式" class="filter-item" clearable>
  765. <el-option v-for="item in tab3.jumpModeList" :key="item.id" :label="item.name" :value="item.id" />
  766. </el-select>
  767. <div style="display: inline-block;" class="filter-item1">
  768. <el-input-number :controls="false" :precision="2" v-model="tab3.table.getdataListParm.parammaps.slwc1" placeholder="撒料误差值" style="width: 120px;" class="filter-item" clearable />
  769. <span>-</span>
  770. <el-input-number :controls="false" :precision="2" v-model="tab3.table.getdataListParm.parammaps.slwc2" placeholder="撒料误差值" style="width: 120px;" class="filter-item" clearable />
  771. </div>
  772. <div style="display: inline-block;" class="filter-item1">
  773. <el-input-number :controls="false" :precision="2" v-model="tab3.table.getdataListParm.parammaps.slzq1" placeholder="撒料准确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  774. <span>-</span>
  775. <el-input-number :controls="false" :precision="2" v-model="tab3.table.getdataListParm.parammaps.slzq2" placeholder="撒料准确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  776. </div>
  777. <div style="display: inline-block;" class="filter-item1">
  778. <el-input-number :controls="false" :precision="2" v-model="tab3.table.getdataListParm.parammaps.slzql1" placeholder="撒料正确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  779. <span>-</span>
  780. <el-input-number :controls="false" :precision="2" v-model="tab3.table.getdataListParm.parammaps.slzql2" placeholder="撒料正确率" :min="0" :max="100" style="width: 120px;" class="filter-item" clearable />
  781. </div>
  782. <el-checkbox v-model="tab3.table.getdataListParm.parammaps.error" style="margin-right: 10px;">只看超出预设值数据</el-checkbox>
  783. <el-button class="successBorder" style="margin-top: 5px;" @click="form_search3">查询</el-button>
  784. <el-button class="successBorder" style="margin-top: 5px;" @click="handleRefresh3">重置</el-button>
  785. <el-button style="float: right;margin-right: 10px;margin-bottom:10px;margin-top: 5px;" class="export" icon="el-icon-upload2" @click="handleExport3">导出</el-button>
  786. </div>
  787. <div class="table">
  788. <u-table
  789. ref="plTable3"
  790. :key="tab3.table.tableKey"
  791. v-loading="tab3.table.listLoading"
  792. element-loading-text="给我一点时间"
  793. :data="tab3.table.list"
  794. border
  795. fit
  796. highlight-current-row
  797. style="width: 100%;"
  798. :row-style="rowStyle"
  799. :cell-style="cellStyle"
  800. class="elTable table-fixed"
  801. :height="myHeightThird"
  802. >
  803. <u-table-column sortable label="日期" min-width="70px" align="center" prop="日期" />
  804. <u-table-column sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
  805. <u-table-column sortable label="操作编号" min-width="70px" align="center" prop="sort" />
  806. <u-table-column sortable label="车次" min-width="45px" align="center" prop="车次" />
  807. <u-table-column sortable label="班次" min-width="45px" align="center" prop="班次" />
  808. <u-table-column sortable label="配方名称" min-width="70px" align="center" prop="配方名称">
  809. <template slot-scope="{row}">
  810. <a @click="clickRecipeName3(row)" style="text-decoration: underline;color: #0000FF;">{{ row.配方名称 }}</a>
  811. </template>
  812. </u-table-column>
  813. <u-table-column sortable label="栏舍" min-width="70px" align="center" prop="栏舍">
  814. <template slot-scope="{row}">
  815. <a @click="clickFence3(row)" style="text-decoration: underline;color: #0000FF;">{{ row.栏舍 }}</a>
  816. </template>
  817. </u-table-column>
  818. <u-table-column sortable label="理论重量" min-width="55px" align="center" prop="理论重量" />
  819. <u-table-column sortable label="实际重量" min-width="55px" align="center" prop="实际重量" />
  820. <u-table-column sortable label="误差值" min-width="45px" align="center" prop="误差值" />
  821. <u-table-column sortable label="准确率" min-width="45px" align="center" prop="准确率" />
  822. <u-table-column sortable label="开始时间" min-width="55px" align="center" prop="开始时间" />
  823. <u-table-column sortable label="结束时间" min-width="55px" align="center" prop="结束时间" />
  824. <u-table-column sortable label="跳转方式" min-width="55px" align="center" prop="跳转方式" />
  825. <u-table-column sortable label="开始重量" min-width="55px" align="center" prop="开始重量" />
  826. <u-table-column sortable label="结束重量" min-width="55px" align="center" prop="结束重量" />
  827. <u-table-column sortable label="是否达标" min-width="70px" align="center" prop="standard" />
  828. </u-table>
  829. <span v-if="tab3.table.listLoading == false" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab3.table.total }}条</span>
  830. </div>
  831. </el-tab-pane>
  832. </el-tabs>
  833. <!-- 导出 -->
  834. <el-dialog :title="textMap[exportList.dialogStatus]" :visible.sync="exportList.dialogFormVisible" :close-on-click-modal="false" width="20%">
  835. <div>
  836. <span>导出时间范围:</span>
  837. <el-date-picker v-model="exportList.inputDatetime" :clearable="false" style="width: 230px;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions2" />
  838. </div>
  839. <div slot="footer" class="dialog-footer" style="margin-bottom: 10px;">
  840. <el-button class="cancelClose" @click="exportList.dialogFormVisible = false">关闭</el-button>
  841. <el-button class="save" v-if="activeName=='second'" :disabled="isokDisable" @click="exportList2()">确认</el-button>
  842. <el-button class="save" v-else-if="activeName=='third'" :disabled="isokDisable" @click="exportList3()">确认</el-button>
  843. </div>
  844. </el-dialog>
  845. <!-- 查看 -->
  846. <See :show.sync="isShowDialog" :row-pid="rowPid" :start-time="startTime" :stop-time="stopTime" :optdevice="optdevice" :title-fname="titlefname" :method-name="methodName" :error="error" />
  847. <!-- 配方名称弹窗 -->
  848. <el-dialog :title="textMap[recipeNameTemp2.dialogStatus]" :visible.sync="recipeNameTemp2.dialogFormVisible" :close-on-click-modal="false" width="90%">
  849. <div class="recipeNameTemp2">
  850. <div class="search">
  851. <el-date-picker ref="inputDatetime" :clearable="false" v-model="recipeNameTemp2.getdataListParm.parammaps.inputDatetime" class="filter-item inputDatetime" type="daterange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  852. <el-button class="successBorder" @click="handleRecipeNameSearch2">查询</el-button>
  853. </div>
  854. <div class="table">
  855. <el-table
  856. :key="recipeNameTemp2.tableKey"
  857. v-loading="recipeNameTemp2.listLoading"
  858. element-loading-text="给我一点时间"
  859. :data="recipeNameTemp2.list"
  860. border
  861. highlight-current-row
  862. style="width: 100%;"
  863. :row-style="rowStyle"
  864. :cell-style="cellStyle"
  865. class="elTable table-fixed"
  866. :max-height="450"
  867. >
  868. <el-table-column label="序号" align="center" type="index" width="50px" />
  869. <el-table-column label="修改时间" width="130px" align="center" prop="createdate" />
  870. <el-table-column label="修改用户" width="130px" align="center" prop="empname" />
  871. <el-table-column label="配方名称" min-width="70px" align="center" prop="tname">
  872. <template slot-scope="{row}">
  873. <span v-if="row.tname !==undefined &&row.tname.indexOf('/') !== -1" style="color: red;">
  874. {{row.tname}}
  875. </span>
  876. <span v-else>{{row.tname}}</span>
  877. </template>
  878. </el-table-column>
  879. <el-table-column label="配方编码" width="130px" align="center" prop="tcode" />
  880. <el-table-column label="配方颜色" min-width="70px" align="center">
  881. <template slot-scope="scope">
  882. <el-color-picker v-model="scope.row.tcolor" size="mini" :predefine="predefineColors" style="vertical-align: middle;" :disabled="scope.row.NoEdit" />
  883. </template>
  884. </el-table-column>
  885. <el-table-column label="牲畜类别" width="130px" align="center" prop="ccname">
  886. <template slot-scope="{row}">
  887. <span v-if="row.ccname !==undefined &&row.ccname.indexOf('/') !== -1" style="color: red;">
  888. {{row.ccname}}
  889. </span>
  890. <span v-else>{{row.ccname}}</span>
  891. </template>
  892. </el-table-column>
  893. <el-table-column label="配方类型" width="130px" align="center" prop="fttype">
  894. <template slot-scope="{row}">
  895. <span v-if="row.fttype !==undefined &&row.fttype.indexOf('/') !== -1" style="color: red;">
  896. {{row.fttype}}
  897. </span>
  898. <span v-else>{{row.fttype}}</span>
  899. </template>
  900. </el-table-column>
  901. <el-table-column label="来源" width="130px" align="center" prop="source">
  902. <template slot-scope="{row}">
  903. <span v-if="row.source !==undefined &&row.source.indexOf('/') !== -1" style="color: red;">
  904. {{row.source}}
  905. </span>
  906. <span v-else>{{row.source}}</span>
  907. </template>
  908. </el-table-column>
  909. <el-table-column label="版本号" width="130px" align="center" prop="version">
  910. <template slot-scope="{row}">
  911. <span v-if="row.version !== undefined && String(row.version).indexOf('/') !== -1" style="color: red;">
  912. {{row.version}}
  913. </span>
  914. <span v-else>{{row.version}}</span>
  915. </template>
  916. </el-table-column>
  917. <el-table-column label="备注" width="130px" align="center" prop="remark">
  918. <template slot-scope="{row}">
  919. <span v-if="row.remark !==undefined &&row.remark.indexOf('/') !== -1" style="color: red;">
  920. {{row.remark}}
  921. </span>
  922. <span v-else>{{row.remark}}</span>
  923. </template>
  924. </el-table-column>
  925. <el-table-column label="饲料信息" min-width="70px" align="center">
  926. <template slot-scope="{row}">
  927. <a @click="clickSeeFeed(row)" style="text-decoration: underline;color: #0000FF;">查看</a>
  928. </template>
  929. </el-table-column>
  930. </el-table>
  931. <pagination v-show="recipeNameTemp2.total>0" :total="recipeNameTemp2.total" :page.sync="recipeNameTemp2.getdataListParm.offset" :limit.sync="recipeNameTemp2.getdataListParm.pagecount" @pagination="getRecipeNameList2()" />
  932. </div>
  933. </div>
  934. <div slot="footer" class="dialog-footer" style="bottom: 10px;">
  935. <el-button class="cancelClose1" @click="recipeNameTemp2.dialogFormVisible = false; ">关闭</el-button>
  936. </div>
  937. </el-dialog>
  938. <!-- 撒料统计-配方名称 -->
  939. <el-dialog :title="textMap[recipeNameTemp3.dialogStatus]" :visible.sync="recipeNameTemp3.dialogFormVisible" :close-on-click-modal="false" width="90%">
  940. <div class="recipeNameTemp3">
  941. <!-- <div class="search">
  942. <el-date-picker ref="inputDatetime" :clearable="false" v-model="recipeNameTemp3.getdataListParm.parammaps.inputDatetime" class="filter-item inputDatetime" type="daterange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  943. <el-button class="successBorder" @click="handleRecipeNameSearch3">查询</el-button>
  944. </div> -->
  945. <div class="table">
  946. <el-table
  947. :key="recipeNameTemp3.tableKey"
  948. v-loading="recipeNameTemp3.listLoading"
  949. element-loading-text="给我一点时间"
  950. :data="recipeNameTemp3.list"
  951. border
  952. highlight-current-row
  953. style="width: 100%;"
  954. :row-style="rowStyle"
  955. :cell-style="cellStyle"
  956. class="elTable table-fixed"
  957. :max-height="450"
  958. >
  959. <el-table-column label="序号" align="center" type="index" width="50px" />
  960. <el-table-column label="饲料组" width="130px" align="center" prop="feedgroup" />
  961. <el-table-column label="饲料名称" min-width="70px" align="center" prop="fname">
  962. <template slot-scope="{row}">
  963. <span v-if="row.fweightstatus == 1" style="color: red;"> {{row.fname}} </span>
  964. <span v-else>{{row.fname}}</span>
  965. </template>
  966. </el-table-column>
  967. <el-table-column label="重量(KG)" width="130px" align="center" prop="fweight">
  968. <template slot-scope="{row}">
  969. <span v-if="row.fweight !==undefined &&row.fweight.indexOf('/') !== -1" style="color: red;">
  970. {{row.fweight}}
  971. </span>
  972. <span v-else>{{row.fweight}}</span>
  973. </template>
  974. </el-table-column>
  975. <el-table-column label="搅拌延时(min)" width="130px" align="center" prop="autosecond" />
  976. </el-table>
  977. <pagination v-show="recipeNameTemp3.total>0" :total="recipeNameTemp3.total" :page.sync="recipeNameTemp3.getdataListParm.offset" :limit.sync="recipeNameTemp3.getdataListParm.pagecount" @pagination="getRecipeNameList3()" />
  978. </div>
  979. </div>
  980. <div slot="footer" class="dialog-footer" style="bottom: 10px;">
  981. <el-button class="cancelClose1" @click="recipeNameTemp3.dialogFormVisible = false; ">关闭</el-button>
  982. </div>
  983. </el-dialog>
  984. <!-- 饲料 -->
  985. <el-dialog :title="textMap[feedTemp.dialogStatus]" :visible.sync="feedTemp.dialogFormVisible" :close-on-click-modal="false" width="98%">
  986. <div class="feedTemp">
  987. <div class="search">
  988. <el-date-picker ref="inputDatetime" v-model="feedTemp.getdataListParm.parammaps.inputDatetime" :clearable="false" class="filter-item inputDatetime" type="daterange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  989. <el-button class="successBorder" @click="handleFeedSearch">查询</el-button>
  990. </div>
  991. <div class="table">
  992. <el-table
  993. :key="feedTemp.tableKey"
  994. v-loading="feedTemp.listLoading"
  995. element-loading-text="给我一点时间"
  996. :data="feedTemp.list"
  997. border
  998. highlight-current-row
  999. style="width: 100%;"
  1000. :row-style="rowStyle"
  1001. :cell-style="cellStyle"
  1002. class="elTable table-fixed"
  1003. >
  1004. <el-table-column label="序号" align="center" type="index" width="50px">
  1005. <template slot-scope="scope">
  1006. <span>{{ scope.$index + (feedTemp.pageNum-1) * feedTemp.pageSize + 1 }}</span>
  1007. </template>
  1008. </el-table-column>
  1009. <el-table-column label="修改时间" min-width="100px" align="center" prop="updateTime" />
  1010. <el-table-column label="修改用户" width="130px" align="center" prop="empname" />
  1011. <el-table-column label="饲料重量(KG)" min-width="100px" align="center">
  1012. <template slot-scope="{row}">
  1013. <span v-if="row.weight !==undefined &&row.weight.indexOf('/') !== -1" style="color: red;">
  1014. {{row.weight}}
  1015. </span>
  1016. <span v-else>{{row.weight}}</span>
  1017. </template>
  1018. </el-table-column>
  1019. </el-table>
  1020. <pagination v-show="feedTemp.total>0" :total="feedTemp.total" :page.sync="feedTemp.getdataListParm.offset" :limit.sync="feedTemp.getdataListParm.pagecount" @pagination="getFeedList()" />
  1021. </div>
  1022. </div>
  1023. <div slot="footer" class="dialog-footer" style="bottom: 10px;">
  1024. <el-button class="cancelClose1" @click="feedTemp.dialogFormVisible = false; ">关闭</el-button>
  1025. </div>
  1026. </el-dialog>
  1027. <!-- 栏舍 -->
  1028. <el-dialog :title="textMap[fenceTemp.dialogStatus]" :visible.sync="fenceTemp.dialogFormVisible" :close-on-click-modal="false" width="90%">
  1029. <div class="fenceTemp">
  1030. <el-tabs v-model="fenceTemp.activeName" @tab-click="handleFenceTabClick">
  1031. <el-tab-pane label="班次重量" name="first">
  1032. <div class="search">
  1033. <el-date-picker ref="inputDatetime" v-model="fenceTemp.tab1.getdataListParm.parammaps.inputDatetime" :clearable="false" class="filter-item inputDatetime" type="daterange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  1034. <el-button class="successBorder" @click="handleFenceSearch">查询</el-button>
  1035. </div>
  1036. <div class="table">
  1037. <u-table
  1038. :key="fenceTemp.tab1.tableKey"
  1039. v-loading="fenceTemp.tab1.listLoading"
  1040. element-loading-text="给我一点时间"
  1041. :data="fenceTemp.tab1.list"
  1042. border
  1043. highlight-current-row
  1044. style="width: 100%;"
  1045. :row-style="rowStyle"
  1046. :cell-style="cellStyle"
  1047. class="elTable table-fixed"
  1048. :span-method="objectSpanMethod1"
  1049. >
  1050. <u-table-column label="序号" width="50px" align="center" type="index" />
  1051. <u-table-column label="修改时间" width="100px" align="center" prop="createdate" />
  1052. <u-table-column label="修改用户" width="130px" align="center" prop="empname" />
  1053. <u-table-column label="班次" min-width="100px" align="center" prop="times" />
  1054. <u-table-column label="实际牛头数" min-width="100px" align="center" prop="ccount">
  1055. <template slot-scope="{row}">
  1056. <span v-if="row.ccountstatus == 1" style="color: red;">{{row.ccount}}</span>
  1057. <span v-else >{{row.ccount}}</span>
  1058. </template>
  1059. </u-table-column>
  1060. <u-table-column label="系数(%)" min-width="100px" align="center" prop="ratio">
  1061. <template slot-scope="{row}">
  1062. <span v-if="row.ratiostatus == 1" style="color: red;">{{row.ratio}}</span>
  1063. <span v-else >{{row.ratio}}</span>
  1064. </template>
  1065. </u-table-column>
  1066. <u-table-column label="系数头数" min-width="100px" align="center" prop="ccountratio">
  1067. <template slot-scope="{row}">
  1068. <span v-if="row.ccountratiostatus == 1" style="color: red;">{{row.ccountratio}}</span>
  1069. <span v-else >{{row.ccountratio}}</span>
  1070. </template>
  1071. </u-table-column>
  1072. <u-table-column label="配方模板" min-width="70px" align="center" prop="ftname">
  1073. <template slot-scope="{row}">
  1074. <a v-if="row.ftnamestatus == 1" @click="clickRecipeTemplate3(row)" style="text-decoration: underline;color: red;">{{ row.ftname }}</a>
  1075. <a v-else @click="clickRecipeTemplate3(row)" style="text-decoration: underline;">{{ row.ftname }}</a>
  1076. </template>
  1077. </u-table-column>
  1078. <u-table-column label="比例(%)" min-width="100px" align="center">
  1079. <template slot-scope="{row}">
  1080. <span v-if="row.tratiostatus == 1" style="color: red;">{{row.tratio}}</span>
  1081. <span v-else >{{row.tratio}}</span>
  1082. </template>
  1083. </u-table-column>
  1084. <u-table-column label="重量(KG)" min-width="100px" align="center" prop="weight">
  1085. <template slot-scope="{row}">
  1086. <span v-if="row.weightstatus == 1" style="color: red;">{{row.weight}}</span>
  1087. <span v-else>{{row.weight}}</span>
  1088. </template>
  1089. </u-table-column>
  1090. </u-table>
  1091. </div>
  1092. </el-tab-pane>
  1093. <el-tab-pane label="车次重量" name="second">
  1094. <div class="search">
  1095. <el-date-picker ref="inputDatetime" :clearable="false" v-model="fenceTemp.tab2.getdataListParm.parammaps.inputDatetime" class="filter-item inputDatetime" type="daterange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  1096. <el-button class="successBorder" @click="handleFenceSearch">查询</el-button>
  1097. </div>
  1098. <div class="table">
  1099. <u-table
  1100. :key="fenceTemp.tab2.tableKey"
  1101. v-loading="fenceTemp.tab2.listLoading"
  1102. element-loading-text="给我一点时间"
  1103. :data="fenceTemp.tab2.list"
  1104. border
  1105. highlight-current-row
  1106. style="width: 100%;"
  1107. :row-style="rowStyle"
  1108. class="elTable table-fixed"
  1109. :span-method="objectSpanMethod2"
  1110. >
  1111. <u-table-column label="序号" width="50px" align="center" type="index" />
  1112. <u-table-column label="修改时间" width="100px" align="center" prop="createdate" />
  1113. <u-table-column label="修改用户" width="130px" align="center" prop="empname" />
  1114. <u-table-column label="班次" width="100px" align="center" prop="times" />
  1115. <!-- <u-table-column v-for="(item, index) in fenceTemp.tab2.tableLabel" :key="index" align="center" :min-width="item.width" :prop="item.prop" :label="item.label"> -->
  1116. <u-table-column v-for="(item, index) in fenceTemp.tab2.tableLabel" :key="index" align="center" :min-width="item.width" :prop="item.prop" :label="item.label">
  1117. <template slot-scope="scope">
  1118. <span v-if="scope.row[item.prop] !==undefined &&scope.row[item.prop].indexOf('/') !== -1" style="color: red;">
  1119. {{scope.row[item.prop]}}
  1120. </span>
  1121. <span v-else>{{scope.row[item.prop]}}</span>
  1122. </template>
  1123. </u-table-column>
  1124. </u-table>
  1125. </div>
  1126. </el-tab-pane>
  1127. </el-tabs>
  1128. </div>
  1129. <div slot="footer" class="dialog-footer" style="bottom: 10px;">
  1130. <el-button class="cancelClose1" @click="fenceTemp.dialogFormVisible = false; ">关闭</el-button>
  1131. </div>
  1132. </el-dialog>
  1133. <!-- 配方模板修改记录 -->
  1134. <el-dialog :title="textMap[modificationRecordTemp.dialogStatus]" :visible.sync="modificationRecordTemp.dialogFormVisible" :close-on-click-modal="false" width="90%">
  1135. <div class="modificationRecord">
  1136. <h3 style="flex: 1;">修改前</h3>
  1137. <div class="top">
  1138. <div class="left">
  1139. <div><b>配方名称:</b>{{modificationRecordTemp.list1.tname}}</div>
  1140. <div><b>配方编码:</b>{{modificationRecordTemp.list1.tcode}}</div>
  1141. <div><b>配方颜色:</b><el-color-picker v-model="modificationRecordTemp.list1.tcolor" size="mini" :predefine="predefineColors" style="vertical-align: middle;" disabled /></div>
  1142. <div><b>牲畜类别:</b>{{modificationRecordTemp.list1.ccname}}</div>
  1143. <div><b>配方类型:</b>{{modificationRecordTemp.list1.fttype}}</div>
  1144. <div><b>来源:</b>{{modificationRecordTemp.list1.source}}</div>
  1145. <div><b>版本号:</b>{{modificationRecordTemp.list1.version}}</div>
  1146. <div><b>备注:</b>{{modificationRecordTemp.list1.remark}}</div>
  1147. </div>
  1148. <div class="right">
  1149. <el-table
  1150. :key="modificationRecordTemp.tableKey1"
  1151. v-loading="modificationRecordTemp.listLoading1"
  1152. element-loading-text="给我一点时间"
  1153. :data="modificationRecordTemp.list1.fit"
  1154. border
  1155. fit
  1156. highlight-current-row
  1157. style="width: 100%;"
  1158. height="280"
  1159. :row-style="rowStyle"
  1160. :cell-style="cellStyle"
  1161. class="elTable table-fixed"
  1162. show-summary
  1163. :summary-method="getSummaries1"
  1164. >
  1165. <el-table-column label="饲料组" min-width="90px" align="center" prop="feedgroup" />
  1166. <el-table-column label="饲料名称" min-width="90px" align="center" prop="fname" />
  1167. <el-table-column label="重量(KG)" min-width="100px" align="center" prop="fweight" />
  1168. <el-table-column label="搅拌延时(min)" min-width="100px" align="center">
  1169. <template slot-scope="{row}">
  1170. <span>{{ row.autosecond }}</span>
  1171. </template>
  1172. </el-table-column>
  1173. </el-table>
  1174. </div>
  1175. </div>
  1176. <hr/>
  1177. <h3 style="color: red;">修改后</h3>
  1178. <div class="bottom">
  1179. <div class="left">
  1180. <div><b>配方名称:</b>{{modificationRecordTemp.list2.tname}}</div>
  1181. <div><b>配方编码:</b>{{modificationRecordTemp.list2.tcode}}</div>
  1182. <div><b>配方颜色:</b><el-color-picker v-model="modificationRecordTemp.list2.tcolor" size="mini" :predefine="predefineColors" style="vertical-align: middle;" disabled /></div>
  1183. <div><b>牲畜类别:</b>{{modificationRecordTemp.list2.ccname}}</div>
  1184. <div><b>配方类型:</b>{{modificationRecordTemp.list2.fttype}}</div>
  1185. <div><b>来源:</b>{{modificationRecordTemp.list2.source}}</div>
  1186. <div><b>版本号:</b>{{modificationRecordTemp.list2.version}}</div>
  1187. <div><b>备注:</b>{{modificationRecordTemp.list2.remark}}</div>
  1188. </div>
  1189. <div class="right">
  1190. <el-table
  1191. :key="modificationRecordTemp.tableKey2"
  1192. v-loading="modificationRecordTemp.listLoading2"
  1193. element-loading-text="给我一点时间"
  1194. :data="modificationRecordTemp.list2.fit"
  1195. border
  1196. fit
  1197. highlight-current-row
  1198. style="width: 100%;"
  1199. height="280"
  1200. :row-style="rowStyle"
  1201. :cell-style="cellStyle"
  1202. class="elTable table-fixed"
  1203. show-summary
  1204. :summary-method="getSummaries2"
  1205. >
  1206. <el-table-column label="饲料组" min-width="90px" align="center" prop="feedgroup" />
  1207. <el-table-column label="饲料名称" min-width="90px" align="center" prop="fname" />
  1208. <el-table-column label="重量(KG)" min-width="100px" align="center" prop="fweight" />
  1209. <el-table-column label="搅拌延时(min)" min-width="100px" align="center">
  1210. <template slot-scope="{row}">
  1211. <span>{{ row.autosecond }}</span>
  1212. </template>
  1213. </el-table-column>
  1214. </el-table>
  1215. </div>
  1216. </div>
  1217. </div>
  1218. <div slot="footer" class="dialog-footer" style="bottom: 10px;">
  1219. <el-button class="cancelClose1" @click="modificationRecordTemp.dialogFormVisible = false; ">关闭</el-button>
  1220. </div>
  1221. </el-dialog>
  1222. </div>
  1223. </template>
  1224. <script>
  1225. import echarts from 'echarts'
  1226. import See from './see.vue'
  1227. require('echarts/theme/macarons')
  1228. import { GetDataByName, GetReportform, whichWeek, postJson } from '@/api/common'
  1229. import Cookies from 'js-cookie'
  1230. import { parseTime, json2excel, handleTableSpan, handleObjectSpanMethod } from '@/utils/index.js'
  1231. import Pagination from '@/components/Pagination'
  1232. import { MessageBox } from 'element-ui'
  1233. import mySelect from '@/components/mySelect'
  1234. export default {
  1235. name: 'PastureErrorAnalysis',
  1236. components: { Pagination, mySelect, See },
  1237. data() {
  1238. return {
  1239. error:'',
  1240. optdevice:'',
  1241. stopTime:'',
  1242. startTime:'',
  1243. Eweight:'',
  1244. predefineColors: [
  1245. '#E57373', '#F06292', '#BA68C8', '#9575CD', '#7986CB', '#64B5F6', '#4FC3F7', '#4DD0E1', '#4DB6AC', '#81C784', '#AED581', '#DCE775', '#FFF176', '#FFD54F', '#FFB74D', '#FF8A65', '#A1887F', '#E0E0E0', '#90A4AE'
  1246. ],
  1247. pickerMinMonth: '',
  1248. pickerOptionsMonth: {
  1249. onPick: ({ maxDate, minDate }) => {
  1250. this.pickerMinMonth = minDate.getTime()
  1251. if (maxDate) {
  1252. this.pickerMinMonth = ''
  1253. }
  1254. },
  1255. // 限制不能选择今天之后的日期
  1256. disabledDate: (time) => {
  1257. if (this.pickerMinMonth !== '') {
  1258. const one = 24 * 3600 * 1000 * 365 * 5
  1259. const minTime = this.pickerMinMonth - 0
  1260. let maxTime = this.pickerMinMonth + one
  1261. if (maxTime > new Date()) {
  1262. maxTime = new Date()
  1263. }
  1264. return time.getTime() < minTime || time.getTime() > maxTime
  1265. }
  1266. return time.getTime() >= Date.now()
  1267. }
  1268. },
  1269. pickerMinDate: '',
  1270. pickerOptionsDate: {
  1271. showWeekNumber: false,
  1272. onPick: ({ maxDate, minDate }) => {
  1273. this.pickerMinDate = minDate.getTime()
  1274. if (maxDate) {
  1275. this.pickerMinDate = ''
  1276. }
  1277. },
  1278. // 限制不能选择今天之后的日期
  1279. disabledDate: (time) => {
  1280. if (this.pickerMinDate !== '') {
  1281. const one = 31 * 24 * 3600 * 1000
  1282. const minTime = this.pickerMinDate - one
  1283. let maxTime = this.pickerMinDate + one
  1284. if (maxTime > new Date()) {
  1285. maxTime = new Date()
  1286. }
  1287. return time.getTime() < minTime || time.getTime() > maxTime
  1288. }
  1289. return time.getTime() > Date.now()
  1290. }
  1291. },
  1292. Beforedisabled: false,
  1293. Nextdisabled: false,
  1294. Beforedisabled2: false,
  1295. Nextdisabled2: false,
  1296. Beforedisabled3: false,
  1297. Nextdisabled3: false,
  1298. pickerOptions: {
  1299. onPick: ({ maxDate, minDate }) => {
  1300. this.pickerMinDate = minDate.getTime()
  1301. if (maxDate) {
  1302. this.pickerMinDate = ''
  1303. }
  1304. },
  1305. // 限制不能选择今天之后的日期
  1306. disabledDate: (time) => {
  1307. if (this.pickerMinDate !== '') {
  1308. const one = 31 * 24 * 3600 * 1000
  1309. const minTime = this.pickerMinDate - one
  1310. let maxTime = this.pickerMinDate + one
  1311. if (maxTime > new Date()) {
  1312. maxTime = new Date()
  1313. }
  1314. return time.getTime() < minTime || time.getTime() > maxTime
  1315. }
  1316. return time.getTime() > Date.now()
  1317. }
  1318. },
  1319. pickerOptions2: {
  1320. onPick: ({ maxDate, minDate }) => {
  1321. this.pickerMinDate = minDate.getTime()
  1322. if (maxDate) {
  1323. this.pickerMinDate = ''
  1324. }
  1325. },
  1326. // 限制不能选择今天之后的日期
  1327. disabledDate: (time) => {
  1328. if (this.pickerMinDate !== '') {
  1329. const one = 100 * 24 * 3600 * 1000
  1330. const minTime = this.pickerMinDate - one
  1331. let maxTime = this.pickerMinDate + one
  1332. if (maxTime > new Date()) {
  1333. maxTime = new Date()
  1334. }
  1335. return time.getTime() < minTime || time.getTime() > maxTime
  1336. }
  1337. return time.getTime() > Date.now()
  1338. }
  1339. },
  1340. pickerOptions3:{
  1341. onPick: ({ maxDate, minDate }) => {
  1342. this.pickerMinDate = minDate.getTime()
  1343. if (maxDate) {
  1344. this.pickerMinDate = ''
  1345. }
  1346. },
  1347. // 限制不能选择今天之后的日期
  1348. disabledDate: (time) => {
  1349. if (this.pickerMinDate !== '') {
  1350. const one = 365 * 24 * 3600 * 1000
  1351. const minTime = this.pickerMinDate - one
  1352. let maxTime = this.pickerMinDate + one
  1353. if (maxTime > new Date()) {
  1354. maxTime = new Date()
  1355. }
  1356. return time.getTime() < minTime || time.getTime() > maxTime
  1357. }
  1358. return time.getTime() > Date.now()
  1359. }
  1360. },
  1361. // 班次
  1362. maxTime: {
  1363. getMaxTimesParm: {
  1364. name: 'getSysoptEnable',
  1365. page: 1,
  1366. offset: 1,
  1367. pagecount: 1,
  1368. returntype: 'Map',
  1369. parammaps: {
  1370. pastureid: Cookies.get('pastureid'),
  1371. inforname: 'times'
  1372. }
  1373. }
  1374. },
  1375. activeName: 'first',
  1376. tab: {
  1377. TMRNameList:[],
  1378. radio: '7',
  1379. isDriver: false,
  1380. isFormulaName: false, // 配方名称
  1381. isHouseName: true, // 栏舍名称
  1382. isLivestockType: false, // 牲畜类别
  1383. isTrainNumber: false, // 车次
  1384. isTMRName: false, // TMR名称
  1385. isFeed:false,//饲料
  1386. checked: false, // 按日期统计
  1387. chartDate: [],
  1388. selectWeek: [],
  1389. chartMonth: [],
  1390. specificDate: '1',
  1391. selectYear: parseTime(new Date(), '{y}'),
  1392. yearList: [],
  1393. weekList: [],
  1394. table: {
  1395. getdataListParm: {
  1396. name: 'getAccuracyHFT',
  1397. page: 1,
  1398. offset: 1,
  1399. pagecount: '',
  1400. returntype: 'Map',
  1401. parammaps: {
  1402. pastureid: Cookies.get('pastureid'),
  1403. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1404. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1405. inputDatetime: [new Date(), new Date()],
  1406. fname: '',
  1407. sort: '',
  1408. times: ''
  1409. }
  1410. },
  1411. tableKey: 1,
  1412. list: [],
  1413. total: 0,
  1414. listLoading: true,
  1415. temp: {}
  1416. },
  1417. table2: {
  1418. getdataListParm: {
  1419. name: 'getAccuracySFT',
  1420. page: 1,
  1421. offset: 1,
  1422. pagecount: '',
  1423. returntype: 'Map',
  1424. parammaps: {
  1425. pastureid: Cookies.get('pastureid'),
  1426. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1427. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1428. inputDatetime: [new Date(), new Date()],
  1429. fname: '',
  1430. sort: '',
  1431. times: ''
  1432. }
  1433. },
  1434. tableKey: 2,
  1435. list: [],
  1436. total: 0,
  1437. listLoading: true,
  1438. temp: {}
  1439. },
  1440. chartDate: [],
  1441. // 配方准确率
  1442. chart1: {
  1443. chartLine: null,
  1444. chartLine_data: {},
  1445. getdataListParm: {
  1446. name: 'getAccuracyAllFT',
  1447. page: 1,
  1448. offset: 1,
  1449. pagecount: '',
  1450. returntype: 'Map',
  1451. parammaps: {
  1452. pastureid: Cookies.get('pastureid'),
  1453. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1454. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1455. inputDatetime: [new Date(), new Date()],
  1456. specificDate: '1',
  1457. selectYear: parseTime(new Date(), '{y}'),
  1458. selectWeek: '',
  1459. chartMonth: '',
  1460. yearList: [],
  1461. weekList: [],
  1462. status: 0
  1463. }
  1464. },
  1465. tableKey: 1,
  1466. list: [],
  1467. total: 0,
  1468. listLoading: true,
  1469. statisticsList: [],
  1470. chart1Data3: [],
  1471. isChart: true,
  1472. isTable: false,
  1473. table: {
  1474. tableKey: 1,
  1475. list: [],
  1476. total: 0,
  1477. listLoading: false
  1478. }
  1479. },
  1480. // 计划统计
  1481. chart2: {
  1482. chartLine: null,
  1483. chartLine_data: {},
  1484. getdataListParm: {
  1485. name: 'getAccuracyAllJH',
  1486. page: 1,
  1487. offset: 1,
  1488. pagecount: '',
  1489. returntype: 'Map',
  1490. parammaps: {
  1491. pastureid: Cookies.get('pastureid'),
  1492. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1493. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1494. inputDatetime: [new Date(), new Date()],
  1495. specificDate: '1',
  1496. selectYear: parseTime(new Date(), '{y}'),
  1497. selectWeek: '',
  1498. chartMonth: '',
  1499. yearList: [],
  1500. weekList: [],
  1501. status: 0
  1502. }
  1503. },
  1504. tableKey: 1,
  1505. list: [],
  1506. total: 0,
  1507. listLoading: true,
  1508. isChart: true,
  1509. isTable: false,
  1510. table: {
  1511. tableKey: 1,
  1512. list: [],
  1513. total: 0,
  1514. listLoading: false
  1515. }
  1516. },
  1517. // 牛群准确率
  1518. chart3: {
  1519. chartLine: null,
  1520. chartLine_data: {},
  1521. getdataListParm: {
  1522. name: 'getAccuracyAllNQ',
  1523. page: 1,
  1524. offset: 1,
  1525. pagecount: '',
  1526. returntype: 'Map',
  1527. parammaps: {
  1528. pastureid: Cookies.get('pastureid'),
  1529. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1530. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1531. inputDatetime: [new Date(), new Date()],
  1532. specificDate: '1',
  1533. selectYear: parseTime(new Date(), '{y}'),
  1534. selectWeek: '',
  1535. chartMonth: '',
  1536. yearList: [],
  1537. weekList: [],
  1538. status: 0
  1539. }
  1540. },
  1541. tableKey: 1,
  1542. list: [],
  1543. total: 0,
  1544. listLoading: true,
  1545. statisticsList: [],
  1546. chart1Data3: [],
  1547. isChart: true,
  1548. isTable: false,
  1549. table: {
  1550. tableKey: 1,
  1551. list: [],
  1552. total: 0,
  1553. listLoading: false
  1554. }
  1555. },
  1556. // 车辆准确率(重量)
  1557. chart4: {
  1558. chartLine: null,
  1559. chartLine_data: {},
  1560. getdataListParm: {
  1561. name: 'getAccuracyAllCC',
  1562. page: 1,
  1563. offset: 1,
  1564. pagecount: '',
  1565. returntype: 'Map',
  1566. parammaps: {
  1567. pastureid: Cookies.get('pastureid'),
  1568. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1569. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1570. inputDatetime: [new Date(), new Date()],
  1571. specificDate: '1',
  1572. selectYear: parseTime(new Date(), '{y}'),
  1573. selectWeek: '',
  1574. chartMonth: '',
  1575. yearList: [],
  1576. weekList: [],
  1577. status: 0
  1578. }
  1579. },
  1580. tableKey: 1,
  1581. list: [],
  1582. total: 0,
  1583. listLoading: true,
  1584. statisticsList: [],
  1585. chart4Data3: [],
  1586. isChart: true,
  1587. isTable: false,
  1588. table: {
  1589. tableKey: 1,
  1590. list: [],
  1591. total: 0,
  1592. listLoading: false
  1593. }
  1594. },
  1595. // 混料统计
  1596. chart5: {
  1597. chartLine: null,
  1598. chartLine_data: {},
  1599. getdataListParm: {
  1600. name: 'getAccuracyAllHL',
  1601. page: 1,
  1602. offset: 1,
  1603. pagecount: '',
  1604. returntype: 'Map',
  1605. parammaps: {
  1606. pastureid: Cookies.get('pastureid'),
  1607. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1608. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1609. inputDatetime: [new Date(), new Date()],
  1610. specificDate: '1',
  1611. selectYear: parseTime(new Date(), '{y}'),
  1612. selectWeek: '',
  1613. chartMonth: '',
  1614. yearList: [],
  1615. weekList: [],
  1616. status: 0
  1617. }
  1618. },
  1619. tableKey: 1,
  1620. list: [],
  1621. total: 0,
  1622. listLoading: true,
  1623. isChart: true,
  1624. isTable: false,
  1625. table: {
  1626. tableKey: 1,
  1627. list: [],
  1628. total: 0,
  1629. listLoading: false
  1630. }
  1631. },
  1632. // 混料计划取消次数
  1633. chart6: {
  1634. chartLine: null,
  1635. chartLine_data: {},
  1636. getdataListParm: {
  1637. name: 'getAccuracyAllQX',
  1638. page: 1,
  1639. offset: 1,
  1640. pagecount: '',
  1641. returntype: 'Map',
  1642. parammaps: {
  1643. pastureid: Cookies.get('pastureid'),
  1644. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1645. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1646. inputDatetime: [new Date(), new Date()],
  1647. specificDate: '1',
  1648. selectYear: parseTime(new Date(), '{y}'),
  1649. selectWeek: '',
  1650. chartMonth: '',
  1651. yearList: [],
  1652. weekList: [],
  1653. status: 0
  1654. }
  1655. },
  1656. tableKey: 1,
  1657. list: [],
  1658. total: 0,
  1659. listLoading: true,
  1660. isChart: true,
  1661. isTable: false,
  1662. table: {
  1663. tableKey: 1,
  1664. list: [],
  1665. total: 0,
  1666. listLoading: false
  1667. }
  1668. },
  1669. // 栏舍撒料时间统计
  1670. chart7: {
  1671. chartLine: null,
  1672. chartLine_data: {},
  1673. getdataListParm: {
  1674. name: 'getAccuracyAllLS',
  1675. page: 1,
  1676. offset: 1,
  1677. pagecount: '',
  1678. returntype: 'Map',
  1679. parammaps: {
  1680. pastureid: Cookies.get('pastureid'),
  1681. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1682. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1683. inputDatetime: [new Date(), new Date()],
  1684. specificDate: '1',
  1685. selectYear: parseTime(new Date(), '{y}'),
  1686. selectWeek: '',
  1687. chartMonth: '',
  1688. yearList: [],
  1689. weekList: [],
  1690. status: 0
  1691. }
  1692. },
  1693. tableKey: 1,
  1694. list: [],
  1695. total: 0,
  1696. listLoading: true,
  1697. statisticsList: [],
  1698. chart7Data3: [],
  1699. formulaList:[],
  1700. isChart: true,
  1701. isTable: false,
  1702. table: {
  1703. tableKey: 1,
  1704. list: [],
  1705. total: 0,
  1706. listLoading: false
  1707. }
  1708. }
  1709. },
  1710. tab2: {
  1711. TMRNameList:[],
  1712. premixList:[{id:0,name:'预混'},{id:1,name:'非预混'}],
  1713. table: {
  1714. getdataListParm: {
  1715. name: 'getStatisticsHL',
  1716. page: 1,
  1717. offset: 1,
  1718. pagecount: '',
  1719. returntype: 'Map',
  1720. parammaps: {
  1721. pastureid: Cookies.get('pastureid'),
  1722. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1723. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1724. inputDatetime: [new Date(), new Date()],
  1725. inputDatetime2:new Date(),
  1726. tmrtname: '',
  1727. projname: '',
  1728. times: '',
  1729. buttontype: '',
  1730. templetname: '',
  1731. isuse: '',
  1732. premix:''
  1733. }
  1734. },
  1735. tableKey: 1,
  1736. list: [],
  1737. total: 0,
  1738. listLoading: true,
  1739. temp: {}
  1740. },
  1741. frequencyList: [],
  1742. jumpModeList: [{ id: '0', name: '手动跳转' }, { id: '1', name: '自动跳转' }],
  1743. isuseList: [{ id: '0', name: '未完成' }, { id: '2', name: '部分完成' }, { id: '1', name: '全部完成' }]
  1744. },
  1745. tab3: {
  1746. TMRNameList:[],
  1747. table: {
  1748. getdataListParm: {
  1749. name: 'getStatisticsSL',
  1750. page: 1,
  1751. offset: 1,
  1752. pagecount: '',
  1753. returntype: 'Map',
  1754. parammaps: {
  1755. pastureid: Cookies.get('pastureid'),
  1756. startTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1757. stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
  1758. inputDatetime: [new Date(), new Date()],
  1759. inputDatetime2: new Date(),
  1760. tmrtname: '',
  1761. projname: '',
  1762. times: '',
  1763. templetname: '',
  1764. fname: '',
  1765. buttontype: '',
  1766. isuse: ''
  1767. }
  1768. },
  1769. tableKey: 1,
  1770. list: [],
  1771. total: 0,
  1772. listLoading: true,
  1773. temp: {}
  1774. },
  1775. frequencyList: [],
  1776. jumpModeList: [{ id: '0', name: '手动跳转' }, { id: '1', name: '自动跳转' }],
  1777. isuseList: [{ id: '0', name: '未完成' }, { id: '2', name: '部分完成' }, { id: '1', name: '全部完成' }]
  1778. },
  1779. titlefname: '',
  1780. methodName:'',
  1781. rowPid: '',
  1782. optdevice:'',
  1783. startTime:'',
  1784. stopTime:'',
  1785. error:'',
  1786. isShowDialog: false,
  1787. statisticalTypeList: [{ id: '7', name: '无分类' }, { id: '0', name: '驾驶员' }, { id: '1', name: '配方名称' }, { id: '2', name: '栏舍名称' }, { id: '3', name: '牲畜类别' }, { id: '4', name: '车次' }, { id: '5', name: 'TMR名称' }, { id: '6', name: '饲料' }],
  1788. rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
  1789. cellStyle: { padding: 0 + 'px' },
  1790. exportList:{
  1791. dialogFormVisible:false,
  1792. inputDatetime: [new Date(), new Date()]
  1793. },
  1794. textMap: {
  1795. exportList: '导出',
  1796. recipeNameTxt:'配方修改记录',
  1797. feedTxt:'饲料',
  1798. fenceTxt:'栏舍',
  1799. modificationRecord:'配方模板修改记录'
  1800. },
  1801. isokDisable:false,
  1802. // search
  1803. myHeight1: document.documentElement.clientHeight - 85 - 80,
  1804. myHeight2: document.documentElement.clientHeight - 85 - 150,
  1805. myHeightSecond: '',
  1806. myHeightThird:'',
  1807. recipeNameTemp2:{
  1808. dialogStatus: '',
  1809. dialogFormVisible: false,
  1810. getdataListParm: {
  1811. name: 'getFitHistory1', 'name1': 'getFitHistory2', page: 1, offset: 1, pagecount: 10, returntype: 'Map',
  1812. parammaps: { inputDatetime: [], pastureid: '', ftid: '' }
  1813. },
  1814. tableKey: 0, total: 0, listLoading: true, list: []
  1815. },
  1816. recipeNameTemp3:{
  1817. dialogStatus: '',
  1818. dialogFormVisible: false,
  1819. getdataListParm: {
  1820. name: 'getFitHistory1', 'name1': 'getFitHistory2', page: 1, offset: 1, pagecount: 10, returntype: 'Map',
  1821. parammaps: { inputDatetime: [], pastureid: '', fitid: '' }
  1822. },
  1823. tableKey: 0, total: 0, listLoading: true, list: []
  1824. },
  1825. feedTemp:{
  1826. dialogStatus: '',
  1827. dialogFormVisible: false,
  1828. getdataListParm: {
  1829. name: 'getFitHistory1', 'name1': 'getFitHistory2', page: 1, offset: 1, pagecount: 10, returntype: 'Map',
  1830. parammaps: { inputDatetime: [], pastureid: '', fitid: '' }
  1831. },
  1832. tableKey: 0, total: 0, listLoading: true, list: []
  1833. },
  1834. fenceTemp:{
  1835. dialogStatus: '',
  1836. dialogFormVisible: false,
  1837. spanObj1: {},
  1838. spanObj2: {},
  1839. mergekeys1: ['createdate'],
  1840. mergekeys2: ['createdate'],
  1841. tab1:{
  1842. getdataListParm: {
  1843. name: 'getPlanModifyFPlist',page: 1, offset: 1, pagecount: '', returntype: 'Map',
  1844. parammaps: { inputDatetime: [], pastureid: '', fitid: '' }
  1845. },
  1846. tableKey: 0, total: 0, listLoading: true, list: [],
  1847. },
  1848. tab2:{
  1849. getdataListParm: {
  1850. name: 'getPlanModifyFPlist', page: 1, offset: 1, pagecount: '', returntype: 'Map',
  1851. parammaps: { inputDatetime: [], pastureid: '', fitid: '' }
  1852. },
  1853. tableKey: 0, total: 0, listLoading: true, list: [],
  1854. },
  1855. activeName:'first'
  1856. },
  1857. modificationRecordTemp:{
  1858. dialogStatus: '',
  1859. dialogFormVisible: false,
  1860. tableKey1: 0, total1: 0, listLoading1: false, list1: [],
  1861. tableKey2: 0, total2: 0, listLoading2: false, list2: [],
  1862. temp1:{},
  1863. temp2:{},
  1864. lastdate:'',currentdate:'',
  1865. },
  1866. }
  1867. },
  1868. created() {
  1869. this.getTimeFn()
  1870. this.getAllYear()
  1871. this.getIsDisplay()
  1872. this.getTabList()
  1873. this.getTabList2()
  1874. this.getformulaList()
  1875. // 暂时注释
  1876. // this.getChart1()
  1877. // this.getChart2()
  1878. // this.getChart3()
  1879. // this.getChart4()
  1880. // this.getChart5()
  1881. // this.getChart6()
  1882. },
  1883. mounted() {},
  1884. methods: {
  1885. // tab.chart7.formulaList
  1886. getformulaList() {
  1887. let url = 'authdata/GetDataByName'
  1888. let data = {
  1889. "name":"getFeedTempletName",
  1890. "page":1,"offset":1,"pagecount":"","returntype":"Map",
  1891. "parammaps":{"pastureid":Cookies.get('pastureid')},
  1892. }
  1893. postJson(url, data).then(response => {
  1894. if (response.data.list !== null) {
  1895. this.tab.chart7.formulaList = response.data.list
  1896. } else {
  1897. this.tab.chart7.formulaList = []
  1898. }
  1899. })
  1900. },
  1901. getAllYear() {
  1902. var myDate = new Date()
  1903. var thisYear = myDate.getFullYear() // 获取当年年份
  1904. var Section = thisYear - 2001 // 声明一个变量 获得当前年份至想获取年份差 eg.2008
  1905. this.tab.yearList = [] // 声明一个空数组 把遍历出的年份添加到数组里
  1906. for (var i = 0; i <= Section; i++) {
  1907. this.tab.yearList.push(thisYear--)
  1908. }
  1909. console.log(this.tab.yearList)
  1910. },
  1911. changeAllYear() {
  1912. console.log('this.selectYear==>', this.tab.selectYear)
  1913. this.tab.weekList = []
  1914. this.tab.selectWeek = []
  1915. var myWeekList = whichWeek(this.tab.selectYear)
  1916. console.log(myWeekList)
  1917. if(myWeekList !== null){
  1918. for (let i = 0; i <= myWeekList.length; i++) {
  1919. var obj = {}
  1920. var a = i + 1
  1921. obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
  1922. obj.id = i
  1923. this.tab.weekList.push(obj)
  1924. }
  1925. }
  1926. },
  1927. changeAllSpecificDate() {
  1928. var start = ''
  1929. var end = ''
  1930. if (this.tab.specificDate == '2') {
  1931. this.tab.selectYear = parseTime(new Date(), '{y}')
  1932. this.changeAllYear()
  1933. } else if (this.tab.specificDate == '3') {
  1934. start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
  1935. end = parseTime(new Date(), '{y}-{m}-{d}')
  1936. this.tab.chartMonth = []
  1937. this.tab.chartMonth.push(start, end)
  1938. }
  1939. },
  1940. handleAllDate() {
  1941. console.log('点击了确认时间')
  1942. MessageBox.confirm('是否调整以下所有图表查询时间?', {
  1943. confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
  1944. }).then(() => {
  1945. var startDate = ''
  1946. var endDate = ''
  1947. var status = ''
  1948. if (this.tab.specificDate == '1') {
  1949. startDate = parseTime(this.tab.chartDate[0], '{y}-{m}-{d}')
  1950. endDate = parseTime(this.tab.chartDate[1], '{y}-{m}-{d}')
  1951. this.tab.chart1.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
  1952. this.tab.chart2.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
  1953. this.tab.chart3.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
  1954. this.tab.chart4.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
  1955. this.tab.chart5.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
  1956. this.tab.chart6.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
  1957. this.tab.chart7.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
  1958. status = 0
  1959. console.log('开始日时==>', startDate)
  1960. console.log('结束日时==>', endDate)
  1961. } else if (this.tab.specificDate == '2') {
  1962. if (this.tab.selectYear == '') {
  1963. this.$message({ type: 'error', message: '请输入年', duration: 2000 })
  1964. return
  1965. }
  1966. if(this.tab.selectWeek !== null){
  1967. if (this.tab.selectWeek.length !== 2) {
  1968. this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
  1969. return
  1970. }
  1971. }
  1972. startDate = this.tab.selectYear + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[0]].month + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[0]].date
  1973. endDate = this.tab.selectYear + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[1]].last.month + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[1]].last.date
  1974. status = 1
  1975. this.tab.chart1.getdataListParm.parammaps.selectYear = this.tab.selectYear
  1976. this.tab.chart1.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
  1977. this.tab.chart1.getdataListParm.parammaps.weekList = this.tab.weekList
  1978. this.tab.chart2.getdataListParm.parammaps.selectYear = this.tab.selectYear
  1979. this.tab.chart2.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
  1980. this.tab.chart2.getdataListParm.parammaps.weekList = this.tab.weekList
  1981. this.tab.chart3.getdataListParm.parammaps.selectYear = this.tab.selectYear
  1982. this.tab.chart3.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
  1983. this.tab.chart3.getdataListParm.parammaps.weekList = this.tab.weekList
  1984. this.tab.chart4.getdataListParm.parammaps.selectYear = this.tab.selectYear
  1985. this.tab.chart4.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
  1986. this.tab.chart4.getdataListParm.parammaps.weekList = this.tab.weekList
  1987. this.tab.chart5.getdataListParm.parammaps.selectYear = this.tab.selectYear
  1988. this.tab.chart5.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
  1989. this.tab.chart5.getdataListParm.parammaps.weekList = this.tab.weekList
  1990. this.tab.chart6.getdataListParm.parammaps.selectYear = this.tab.selectYear
  1991. this.tab.chart6.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
  1992. this.tab.chart6.getdataListParm.parammaps.weekList = this.tab.weekList
  1993. this.tab.chart7.getdataListParm.parammaps.selectYear = this.tab.selectYear
  1994. this.tab.chart7.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
  1995. this.tab.chart7.getdataListParm.parammaps.weekList = this.tab.weekList
  1996. console.log('开始周时间==>', startDate)
  1997. console.log('结束周时间==>', endDate)
  1998. } else if (this.tab.specificDate == '3') {
  1999. if(this.tab.chartMonth !== null){
  2000. if (this.tab.chartMonth.length > 0) {
  2001. startDate = this.tab.chartMonth[0]
  2002. var dataArr = this.tab.chartMonth[1].substring(0, 7).split('-')
  2003. let temp = new Date(dataArr[0],dataArr[1],0);
  2004. let mm = temp.getDate(); //这里mm就是天数啦
  2005. endDate = this.tab.chartMonth[1].substring(0, 8) + mm
  2006. status = 2
  2007. this.tab.chart1.getdataListParm.parammaps.chartMonth = [startDate, endDate]
  2008. this.tab.chart2.getdataListParm.parammaps.chartMonth = [startDate, endDate]
  2009. this.tab.chart3.getdataListParm.parammaps.chartMonth = [startDate, endDate]
  2010. this.tab.chart4.getdataListParm.parammaps.chartMonth = [startDate, endDate]
  2011. this.tab.chart5.getdataListParm.parammaps.chartMonth = [startDate, endDate]
  2012. this.tab.chart6.getdataListParm.parammaps.chartMonth = [startDate, endDate]
  2013. this.tab.chart7.getdataListParm.parammaps.chartMonth = [startDate, endDate]
  2014. console.log('开始月时间==>', startDate)
  2015. console.log('结束月时间==>', endDate)
  2016. } else {
  2017. this.$message({ type: 'error', message: '请输入月', duration: 2000 })
  2018. }
  2019. }
  2020. }
  2021. this.tab.chart1.getdataListParm.parammaps.specificDate = this.tab.specificDate
  2022. this.tab.chart1.getdataListParm.parammaps.startTime = startDate
  2023. this.tab.chart1.getdataListParm.parammaps.stopTime = endDate
  2024. this.tab.chart1.getdataListParm.parammaps.status = status
  2025. this.tab.chart2.getdataListParm.parammaps.startTime = startDate
  2026. this.tab.chart2.getdataListParm.parammaps.stopTime = endDate
  2027. this.tab.chart2.getdataListParm.parammaps.status = status
  2028. this.tab.chart2.getdataListParm.parammaps.specificDate = this.tab.specificDate
  2029. this.tab.chart3.getdataListParm.parammaps.startTime = startDate
  2030. this.tab.chart3.getdataListParm.parammaps.stopTime = endDate
  2031. this.tab.chart3.getdataListParm.parammaps.status = status
  2032. this.tab.chart3.getdataListParm.parammaps.specificDate = this.tab.specificDate
  2033. this.tab.chart4.getdataListParm.parammaps.startTime = startDate
  2034. this.tab.chart4.getdataListParm.parammaps.stopTime = endDate
  2035. this.tab.chart4.getdataListParm.parammaps.status = status
  2036. this.tab.chart4.getdataListParm.parammaps.specificDate = this.tab.specificDate
  2037. this.tab.chart5.getdataListParm.parammaps.startTime = startDate
  2038. this.tab.chart5.getdataListParm.parammaps.stopTime = endDate
  2039. this.tab.chart5.getdataListParm.parammaps.status = status
  2040. this.tab.chart5.getdataListParm.parammaps.specificDate = this.tab.specificDate
  2041. this.tab.chart6.getdataListParm.parammaps.startTime = startDate
  2042. this.tab.chart6.getdataListParm.parammaps.stopTime = endDate
  2043. this.tab.chart6.getdataListParm.parammaps.status = status
  2044. this.tab.chart6.getdataListParm.parammaps.specificDate = this.tab.specificDate
  2045. this.tab.chart7.getdataListParm.parammaps.startTime = startDate
  2046. this.tab.chart7.getdataListParm.parammaps.stopTime = endDate
  2047. this.tab.chart7.getdataListParm.parammaps.status = status
  2048. this.tab.chart7.getdataListParm.parammaps.specificDate = this.tab.specificDate
  2049. this.getChart1()
  2050. this.getChart2()
  2051. this.getChart3()
  2052. this.getChart4()
  2053. this.getChart5()
  2054. this.getChart6()
  2055. this.getChart7()
  2056. })
  2057. },
  2058. changeChartSpecificDate(item) {
  2059. var start = ''
  2060. var end = ''
  2061. if (item == 'chart1') {
  2062. if (this.tab.chart1.getdataListParm.parammaps.specificDate == '2') {
  2063. this.tab.chart1.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
  2064. this.changeChartYear(item)
  2065. } else if (this.tab.chart1.getdataListParm.parammaps.specificDate == '3') {
  2066. start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
  2067. end = parseTime(new Date(), '{y}-{m}-{d}')
  2068. this.tab.chart1.getdataListParm.parammaps.weekList = []
  2069. this.tab.chart1.getdataListParm.parammaps.chartMonth = []
  2070. this.tab.chart1.getdataListParm.parammaps.chartMonth.push(start, end)
  2071. }
  2072. } else if (item == 'chart2') {
  2073. if (this.tab.chart2.getdataListParm.parammaps.specificDate == '2') {
  2074. this.tab.chart2.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
  2075. this.changeChartYear(item)
  2076. } else if (this.tab.chart2.getdataListParm.parammaps.specificDate == '3') {
  2077. start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
  2078. end = parseTime(new Date(), '{y}-{m}-{d}')
  2079. this.tab.chart2.getdataListParm.parammaps.weekList = []
  2080. this.tab.chart2.getdataListParm.parammaps.chartMonth = []
  2081. this.tab.chart2.getdataListParm.parammaps.chartMonth.push(start, end)
  2082. }
  2083. } else if (item == 'chart3') {
  2084. if (this.tab.chart3.getdataListParm.parammaps.specificDate == '2') {
  2085. this.tab.chart3.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
  2086. this.changeChartYear(item)
  2087. } else if (this.tab.chart3.getdataListParm.parammaps.specificDate == '3') {
  2088. start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
  2089. end = parseTime(new Date(), '{y}-{m}-{d}')
  2090. this.tab.chart3.getdataListParm.parammaps.weekList = []
  2091. this.tab.chart3.getdataListParm.parammaps.chartMonth = []
  2092. this.tab.chart3.getdataListParm.parammaps.chartMonth.push(start, end)
  2093. }
  2094. } else if (item == 'chart4') {
  2095. if (this.tab.chart4.getdataListParm.parammaps.specificDate == '2') {
  2096. this.tab.chart4.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
  2097. this.changeChartYear(item)
  2098. } else if (this.tab.chart4.getdataListParm.parammaps.specificDate == '3') {
  2099. start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
  2100. end = parseTime(new Date(), '{y}-{m}-{d}')
  2101. this.tab.chart4.getdataListParm.parammaps.weekList = []
  2102. this.tab.chart4.getdataListParm.parammaps.chartMonth = []
  2103. this.tab.chart4.getdataListParm.parammaps.chartMonth.push(start, end)
  2104. }
  2105. } else if (item == 'chart5') {
  2106. if (this.tab.chart5.getdataListParm.parammaps.specificDate == '2') {
  2107. this.tab.chart5.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
  2108. this.changeChartYear(item)
  2109. } else if (this.tab.chart5.getdataListParm.parammaps.specificDate == '3') {
  2110. start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
  2111. end = parseTime(new Date(), '{y}-{m}-{d}')
  2112. this.tab.chart5.getdataListParm.parammaps.weekList = []
  2113. this.tab.chart5.getdataListParm.parammaps.chartMonth = []
  2114. this.tab.chart5.getdataListParm.parammaps.chartMonth.push(start, end)
  2115. }
  2116. } else if (item == 'chart6') {
  2117. if (this.tab.chart6.getdataListParm.parammaps.specificDate == '2') {
  2118. this.tab.chart6.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
  2119. this.changeChartYear(item)
  2120. } else if (this.tab.chart6.getdataListParm.parammaps.specificDate == '3') {
  2121. start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
  2122. end = parseTime(new Date(), '{y}-{m}-{d}')
  2123. this.tab.chart6.getdataListParm.parammaps.weekList = []
  2124. this.tab.chart6.getdataListParm.parammaps.chartMonth = []
  2125. this.tab.chart6.getdataListParm.parammaps.chartMonth.push(start, end)
  2126. }
  2127. } else if (item == 'chart7') {
  2128. if (this.tab.chart7.getdataListParm.parammaps.specificDate == '2') {
  2129. this.tab.chart7.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
  2130. this.changeChartYear(item)
  2131. } else if (this.tab.chart7.getdataListParm.parammaps.specificDate == '3') {
  2132. start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
  2133. end = parseTime(new Date(), '{y}-{m}-{d}')
  2134. this.tab.chart7.getdataListParm.parammaps.weekList = []
  2135. this.tab.chart7.getdataListParm.parammaps.chartMonth = []
  2136. this.tab.chart7.getdataListParm.parammaps.chartMonth.push(start, end)
  2137. }
  2138. }
  2139. },
  2140. changeChartYear(item) {
  2141. var myWeekList = ''
  2142. if (item == 'chart1') {
  2143. this.tab.chart1.getdataListParm.parammaps.weekList = []
  2144. this.tab.chart1.getdataListParm.parammaps.selectWeek = []
  2145. myWeekList = whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)
  2146. console.log(myWeekList)
  2147. if(myWeekList !== null){
  2148. for (let i = 0; i <= myWeekList.length; i++) {
  2149. var obj = {}
  2150. var a = i + 1
  2151. obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
  2152. obj.id = i
  2153. this.tab.chart1.getdataListParm.parammaps.weekList.push(obj)
  2154. }
  2155. }
  2156. } else if (item == 'chart2') {
  2157. this.tab.chart2.getdataListParm.parammaps.selectWeek = []
  2158. this.tab.chart2.getdataListParm.parammaps.weekList = []
  2159. myWeekList = whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)
  2160. console.log(myWeekList)
  2161. if(myWeekList !== null){
  2162. for (let i = 0; i <= myWeekList.length; i++) {
  2163. var obj = {}
  2164. var a = i + 1
  2165. obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
  2166. obj.id = i
  2167. this.tab.chart2.getdataListParm.parammaps.weekList.push(obj)
  2168. }
  2169. }
  2170. } else if (item == 'chart3') {
  2171. this.tab.chart3.getdataListParm.parammaps.selectWeek = []
  2172. this.tab.chart3.getdataListParm.parammaps.weekList = []
  2173. myWeekList = whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)
  2174. console.log(myWeekList)
  2175. if(myWeekList !== null){
  2176. for (let i = 0; i <= myWeekList.length; i++) {
  2177. var obj = {}
  2178. var a = i + 1
  2179. obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
  2180. obj.id = i
  2181. this.tab.chart3.getdataListParm.parammaps.weekList.push(obj)
  2182. }
  2183. }
  2184. } else if (item == 'chart4') {
  2185. this.tab.chart4.getdataListParm.parammaps.selectWeek = []
  2186. this.tab.chart4.getdataListParm.parammaps.weekList = []
  2187. myWeekList = whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)
  2188. console.log(myWeekList)
  2189. if(myWeekList !== null){
  2190. for (let i = 0; i <= myWeekList.length; i++) {
  2191. var obj = {}
  2192. var a = i + 1
  2193. obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
  2194. obj.id = i
  2195. this.tab.chart4.getdataListParm.parammaps.weekList.push(obj)
  2196. }
  2197. }
  2198. } else if (item == 'chart5') {
  2199. this.tab.chart5.getdataListParm.parammaps.selectWeek = []
  2200. this.tab.chart5.getdataListParm.parammaps.weekList = []
  2201. myWeekList = whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)
  2202. console.log(myWeekList)
  2203. if(myWeekList !== null){
  2204. for (let i = 0; i <= myWeekList.length; i++) {
  2205. var obj = {}
  2206. var a = i + 1
  2207. obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
  2208. obj.id = i
  2209. this.tab.chart5.getdataListParm.parammaps.weekList.push(obj)
  2210. }
  2211. }
  2212. } else if (item == 'chart6') {
  2213. this.tab.chart6.getdataListParm.parammaps.selectWeek = []
  2214. this.tab.chart6.getdataListParm.parammaps.weekList = []
  2215. myWeekList = whichWeek(this.tab.chart6.getdataListParm.parammaps.selectYear)
  2216. console.log(myWeekList)
  2217. if(myWeekList !== null){
  2218. for (let i = 0; i <= myWeekList.length; i++) {
  2219. var obj = {}
  2220. var a = i + 1
  2221. obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
  2222. obj.id = i
  2223. this.tab.chart6.getdataListParm.parammaps.weekList.push(obj)
  2224. }
  2225. }
  2226. } else if (item == 'chart7') {
  2227. this.tab.chart7.getdataListParm.parammaps.selectWeek = []
  2228. this.tab.chart7.getdataListParm.parammaps.weekList = []
  2229. myWeekList = whichWeek(this.tab.chart7.getdataListParm.parammaps.selectYear)
  2230. console.log(myWeekList)
  2231. if(myWeekList !== null){
  2232. for (let i = 0; i <= myWeekList.length; i++) {
  2233. var obj = {}
  2234. var a = i + 1
  2235. obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
  2236. obj.id = i
  2237. this.tab.chart7.getdataListParm.parammaps.weekList.push(obj)
  2238. }
  2239. }
  2240. }
  2241. },
  2242. handleChartDate(item) {
  2243. console.log(item)
  2244. var startDate = ''
  2245. var endDate = ''
  2246. if (item == 'chart1') {
  2247. if (this.tab.chart1.getdataListParm.parammaps.specificDate == '1') {
  2248. startDate = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  2249. endDate = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  2250. console.log('配方准确率开始日期==>', startDate)
  2251. console.log('配方准确率结束日期==>', endDate)
  2252. this.tab.chart1.getdataListParm.parammaps.status = 0
  2253. } else if (this.tab.chart1.getdataListParm.parammaps.specificDate == '2') {
  2254. if (this.tab.chart1.getdataListParm.parammaps.selectYear == '') {
  2255. this.$message({ type: 'error', message: '请输入年', duration: 2000 })
  2256. return
  2257. }
  2258. if(this.tab.chart1.getdataListParm.parammaps.selectWeek !== null){
  2259. if (this.tab.chart1.getdataListParm.parammaps.selectWeek.length !== 2) {
  2260. this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
  2261. return
  2262. }
  2263. }
  2264. startDate = this.tab.chart1.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[0]].date
  2265. endDate = this.tab.chart1.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[1]].last.date
  2266. console.log('配方准确率开始周日期==>', startDate)
  2267. console.log('配方准确率结束周日期==>', endDate)
  2268. this.tab.chart1.getdataListParm.parammaps.status = 1
  2269. } else if (this.tab.chart1.getdataListParm.parammaps.specificDate == '3') {
  2270. startDate = this.tab.chart1.getdataListParm.parammaps.chartMonth[0]
  2271. endDate = this.tab.chart1.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
  2272. console.log('配方准确率开始月日期==>', startDate)
  2273. console.log('配方准确率结束月日期==>', endDate)
  2274. this.tab.chart1.getdataListParm.parammaps.status = 2
  2275. }
  2276. this.tab.chart1.getdataListParm.parammaps.startTime = startDate
  2277. this.tab.chart1.getdataListParm.parammaps.stopTime = endDate
  2278. this.getChart1()
  2279. } else if (item == 'chart2') {
  2280. if (this.tab.chart2.getdataListParm.parammaps.specificDate == '1') {
  2281. startDate = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  2282. endDate = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  2283. this.tab.chart2.getdataListParm.parammaps.status = 0
  2284. console.log('计划统计开始日期==>', startDate)
  2285. console.log('计划统计结束日期==>', endDate)
  2286. } else if (this.tab.chart2.getdataListParm.parammaps.specificDate == '2') {
  2287. if (this.tab.chart2.getdataListParm.parammaps.selectYear == '') {
  2288. this.$message({ type: 'error', message: '请输入年', duration: 2000 })
  2289. return
  2290. }
  2291. if (this.tab.chart2.getdataListParm.parammaps.selectWeek !== null) {
  2292. if (this.tab.chart2.getdataListParm.parammaps.selectWeek.length !== 2) {
  2293. this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
  2294. return
  2295. }
  2296. }
  2297. startDate = this.tab.chart2.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[0]].date
  2298. endDate = this.tab.chart2.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[1]].last.date
  2299. this.tab.chart2.getdataListParm.parammaps.status = 1
  2300. console.log('计划统计开始周日期==>', startDate)
  2301. console.log('计划统计结束周日期==>', endDate)
  2302. } else if (this.tab.chart2.getdataListParm.parammaps.specificDate == '3') {
  2303. console.log('计划统计开始月日期==>', this.tab.chart2.getdataListParm.parammaps.chartMonth)
  2304. startDate = this.tab.chart2.getdataListParm.parammaps.chartMonth[0]
  2305. endDate = this.tab.chart2.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
  2306. this.tab.chart2.getdataListParm.parammaps.status = 2
  2307. console.log('计划统计开始月日期==>', startDate)
  2308. console.log('计划统计结束月日期==>', endDate)
  2309. }
  2310. this.tab.chart2.getdataListParm.parammaps.startTime = startDate
  2311. this.tab.chart2.getdataListParm.parammaps.stopTime = endDate
  2312. this.getChart2()
  2313. } else if (item == 'chart3') {
  2314. if (this.tab.chart3.getdataListParm.parammaps.specificDate == '1') {
  2315. startDate = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  2316. endDate = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  2317. this.tab.chart3.getdataListParm.parammaps.status = 0
  2318. console.log('牛群准确率开始日期==>', startDate)
  2319. console.log('牛群准确率结束日期==>', endDate)
  2320. } else if (this.tab.chart3.getdataListParm.parammaps.specificDate == '2') {
  2321. if (this.tab.chart3.getdataListParm.parammaps.selectYear == '') {
  2322. this.$message({ type: 'error', message: '请输入年', duration: 2000 })
  2323. return
  2324. }
  2325. if (this.tab.chart3.getdataListParm.parammaps.selectWeek !== null) {
  2326. if (this.tab.chart3.getdataListParm.parammaps.selectWeek.length !== 2) {
  2327. this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
  2328. return
  2329. }
  2330. }
  2331. startDate = this.tab.chart3.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[0]].date
  2332. endDate = this.tab.chart3.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[1]].last.date
  2333. this.tab.chart3.getdataListParm.parammaps.status = 1
  2334. console.log('牛群准确率开始周日期==>', startDate)
  2335. console.log('牛群准确率结束周日期==>', endDate)
  2336. } else if (this.tab.chart3.getdataListParm.parammaps.specificDate == '3') {
  2337. startDate = this.tab.chart3.getdataListParm.parammaps.chartMonth[0]
  2338. endDate = this.tab.chart3.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
  2339. this.tab.chart3.getdataListParm.parammaps.status = 2
  2340. console.log('牛群准确率开始月日期==>', startDate)
  2341. console.log('牛群准确率结束月日期==>', endDate)
  2342. }
  2343. this.tab.chart3.getdataListParm.parammaps.startTime = startDate
  2344. this.tab.chart3.getdataListParm.parammaps.stopTime = endDate
  2345. this.getChart3()
  2346. } else if (item == 'chart4') {
  2347. if (this.tab.chart4.getdataListParm.parammaps.specificDate == '1') {
  2348. startDate = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  2349. endDate = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  2350. this.tab.chart4.getdataListParm.parammaps.status = 0
  2351. console.log('车辆准确率(重量)开始日期==>', startDate)
  2352. console.log('车辆准确率(重量)结束日期==>', endDate)
  2353. } else if (this.tab.chart4.getdataListParm.parammaps.specificDate == '2') {
  2354. if (this.tab.chart4.getdataListParm.parammaps.selectYear == '') {
  2355. this.$message({ type: 'error', message: '请输入年', duration: 2000 })
  2356. return
  2357. }
  2358. if (this.tab.chart4.getdataListParm.parammaps.selectWeek !== null) {
  2359. if (this.tab.chart4.getdataListParm.parammaps.selectWeek.length !== 2) {
  2360. this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
  2361. return
  2362. }
  2363. }
  2364. startDate = this.tab.chart4.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[0]].date
  2365. endDate = this.tab.chart4.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[1]].last.date
  2366. this.tab.chart4.getdataListParm.parammaps.status = 1
  2367. console.log('车辆准确率(重量)开始周日期==>', startDate)
  2368. console.log('车辆准确率(重量)结束周日期==>', endDate)
  2369. } else if (this.tab.chart4.getdataListParm.parammaps.specificDate == '3') {
  2370. startDate = this.tab.chart4.getdataListParm.parammaps.chartMonth[0]
  2371. endDate = this.tab.chart4.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
  2372. this.tab.chart4.getdataListParm.parammaps.status = 2
  2373. console.log('车辆准确率(重量)开始月日期==>', startDate)
  2374. console.log('车辆准确率(重量)结束月日期==>', endDate)
  2375. }
  2376. this.tab.chart4.getdataListParm.parammaps.startTime = startDate
  2377. this.tab.chart4.getdataListParm.parammaps.stopTime = endDate
  2378. this.getChart4()
  2379. } else if (item == 'chart5') {
  2380. if (this.tab.chart5.getdataListParm.parammaps.specificDate == '1') {
  2381. startDate = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  2382. endDate = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  2383. this.tab.chart5.getdataListParm.parammaps.status = 0
  2384. console.log('混料统计开始日期==>', startDate)
  2385. console.log('混料统计结束日期==>', endDate)
  2386. } else if (this.tab.chart5.getdataListParm.parammaps.specificDate == '2') {
  2387. if (this.tab.chart5.getdataListParm.parammaps.selectYear == '') {
  2388. this.$message({ type: 'error', message: '请输入年', duration: 2000 })
  2389. return
  2390. }
  2391. if (this.tab.chart5.getdataListParm.parammaps.selectWeek !== null) {
  2392. if (this.tab.chart5.getdataListParm.parammaps.selectWeek.length !== 2) {
  2393. this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
  2394. return
  2395. }
  2396. }
  2397. startDate = this.tab.chart5.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[0]].date
  2398. endDate = this.tab.chart5.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[1]].last.date
  2399. this.tab.chart5.getdataListParm.parammaps.status = 1
  2400. console.log('混料统计开始周日期==>', startDate)
  2401. console.log('混料统计结束周日期==>', endDate)
  2402. } else if (this.tab.chart5.getdataListParm.parammaps.specificDate == '3') {
  2403. startDate = this.tab.chart5.getdataListParm.parammaps.chartMonth[0]
  2404. endDate = this.tab.chart5.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
  2405. this.tab.chart5.getdataListParm.parammaps.status = 2
  2406. console.log('混料统计开始月日期==>', startDate)
  2407. console.log('混料统计结束月日期==>', endDate)
  2408. }
  2409. this.tab.chart5.getdataListParm.parammaps.startTime = startDate
  2410. this.tab.chart5.getdataListParm.parammaps.stopTime = endDate
  2411. this.getChart5()
  2412. } else if (item == 'chart6') {
  2413. if (this.tab.chart6.getdataListParm.parammaps.specificDate == '1') {
  2414. startDate = parseTime(this.tab.chart6.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  2415. endDate = parseTime(this.tab.chart6.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  2416. this.tab.chart6.getdataListParm.parammaps.status = 0
  2417. console.log('混料计划取消次数开始日期==>', startDate)
  2418. console.log('混料计划取消次数结束日期==>', endDate)
  2419. } else if (this.tab.chart6.getdataListParm.parammaps.specificDate == '2') {
  2420. if (this.tab.chart6.getdataListParm.parammaps.selectYear == '') {
  2421. this.$message({ type: 'error', message: '请输入年', duration: 2000 })
  2422. return
  2423. }
  2424. if (this.tab.chart6.getdataListParm.parammaps.selectWeek !== null) {
  2425. if (this.tab.chart6.getdataListParm.parammaps.selectWeek.length !== 2) {
  2426. this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
  2427. return
  2428. }
  2429. }
  2430. startDate = this.tab.chart6.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart6.getdataListParm.parammaps.selectYear)[this.tab.chart6.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart6.getdataListParm.parammaps.selectYear)[this.tab.chart6.getdataListParm.parammaps.selectWeek[0]].date
  2431. endDate = this.tab.chart6.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart6.getdataListParm.parammaps.selectYear)[this.tab.chart6.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart6.getdataListParm.parammaps.selectYear)[this.tab.chart6.getdataListParm.parammaps.selectWeek[1]].last.date
  2432. this.tab.chart6.getdataListParm.parammaps.status = 1
  2433. console.log('混料计划取消次数开始周日期==>', startDate)
  2434. console.log('混料计划取消次数结束周日期==>', endDate)
  2435. } else if (this.tab.chart6.getdataListParm.parammaps.specificDate == '3') {
  2436. startDate = this.tab.chart6.getdataListParm.parammaps.chartMonth[0]
  2437. endDate = this.tab.chart6.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
  2438. this.tab.chart6.getdataListParm.parammaps.status = 2
  2439. console.log('混料计划取消次数开始月日期==>', startDate)
  2440. console.log('混料计划取消次数结束月日期==>', endDate)
  2441. }
  2442. this.tab.chart6.getdataListParm.parammaps.startTime = startDate
  2443. this.tab.chart6.getdataListParm.parammaps.stopTime = endDate
  2444. this.getChart6()
  2445. } else if (item == 'chart7') {
  2446. if (this.tab.chart7.getdataListParm.parammaps.specificDate == '1') {
  2447. startDate = parseTime(this.tab.chart7.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  2448. endDate = parseTime(this.tab.chart7.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  2449. this.tab.chart7.getdataListParm.parammaps.status = 0
  2450. console.log('栏舍撒料时间统计开始日期==>', startDate)
  2451. console.log('栏舍撒料时间统计结束日期==>', endDate)
  2452. } else if (this.tab.chart7.getdataListParm.parammaps.specificDate == '2') {
  2453. if (this.tab.chart7.getdataListParm.parammaps.selectYear == '') {
  2454. this.$message({ type: 'error', message: '请输入年', duration: 2000 })
  2455. return
  2456. }
  2457. if (this.tab.chart7.getdataListParm.parammaps.selectWeek !== null) {
  2458. if (this.tab.chart7.getdataListParm.parammaps.selectWeek.length !== 2) {
  2459. this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
  2460. return
  2461. }
  2462. }
  2463. startDate = this.tab.chart7.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart7.getdataListParm.parammaps.selectYear)[this.tab.chart7.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart7.getdataListParm.parammaps.selectYear)[this.tab.chart7.getdataListParm.parammaps.selectWeek[0]].date
  2464. endDate = this.tab.chart7.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart7.getdataListParm.parammaps.selectYear)[this.tab.chart7.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart7.getdataListParm.parammaps.selectYear)[this.tab.chart7.getdataListParm.parammaps.selectWeek[1]].last.date
  2465. this.tab.chart7.getdataListParm.parammaps.status = 1
  2466. console.log('栏舍撒料时间统计开始周日期==>', startDate)
  2467. console.log('栏舍撒料时间统计结束周日期==>', endDate)
  2468. } else if (this.tab.chart7.getdataListParm.parammaps.specificDate == '3') {
  2469. startDate = this.tab.chart7.getdataListParm.parammaps.chartMonth[0]
  2470. endDate = this.tab.chart7.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
  2471. this.tab.chart7.getdataListParm.parammaps.status = 2
  2472. console.log('栏舍撒料时间统计开始月日期==>', startDate)
  2473. console.log('栏舍撒料时间统计结束月日期==>', endDate)
  2474. }
  2475. this.tab.chart7.getdataListParm.parammaps.startTime = startDate
  2476. this.tab.chart7.getdataListParm.parammaps.stopTime = endDate
  2477. this.getChart7()
  2478. }
  2479. },
  2480. getTimeFn() {
  2481. const that = this
  2482. const start = new Date()
  2483. const end = new Date()
  2484. const start2 = new Date()
  2485. const end2 = new Date()
  2486. start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
  2487. end2.setTime(end2.getTime() - 3600 * 1000 * 24 * 1)
  2488. // that.tab.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
  2489. // that.tab.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
  2490. that.tab.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
  2491. that.tab.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
  2492. that.tab.table.getdataListParm.parammaps.inputDatetime = [start2, end2]
  2493. that.tab.table2.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
  2494. that.tab.table2.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
  2495. that.tab2.table.getdataListParm.parammaps.inputDatetime = [start2, end2]
  2496. // that.tab2.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
  2497. // that.tab2.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
  2498. that.tab2.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
  2499. that.tab2.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
  2500. that.tab3.table.getdataListParm.parammaps.inputDatetime = [start2, end2]
  2501. // that.tab3.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
  2502. // that.tab3.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
  2503. that.tab3.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
  2504. that.tab3.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
  2505. // start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
  2506. start.setTime(start.getTime() - 3600 * 1000 * 24 * 10)
  2507. end.setTime(end.getTime() - 3600 * 1000 * 24 * 1)
  2508. that.tab.chartDate[0] = parseTime(start, '{y}-{m}-{d}')
  2509. that.tab.chartDate[1] = parseTime(end, '{y}-{m}-{d}')
  2510. that.tab.chart1.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  2511. that.tab.chart1.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  2512. that.tab.chart1.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  2513. that.tab.chart1.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  2514. that.tab.chart2.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  2515. that.tab.chart2.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  2516. that.tab.chart2.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  2517. that.tab.chart2.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  2518. that.tab.chart3.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  2519. that.tab.chart3.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  2520. that.tab.chart3.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  2521. that.tab.chart3.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  2522. that.tab.chart4.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  2523. that.tab.chart4.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  2524. that.tab.chart4.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  2525. that.tab.chart4.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  2526. that.tab.chart5.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  2527. that.tab.chart5.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  2528. that.tab.chart5.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  2529. that.tab.chart5.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  2530. that.tab.chart6.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  2531. that.tab.chart6.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  2532. that.tab.chart6.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  2533. that.tab.chart6.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  2534. that.tab.chart7.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
  2535. that.tab.chart7.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
  2536. that.tab.chart7.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
  2537. that.tab.chart7.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
  2538. },
  2539. getIsDisplay() {
  2540. GetDataByName(this.maxTime.getMaxTimesParm).then(response => {
  2541. if (response.data.list[0].inforvalue == 1) {
  2542. this.tab2.frequencyList = [{ id: '1', name: '第一班' }]
  2543. this.tab3.frequencyList = [{ id: '1', name: '第一班' }]
  2544. } else if (response.data.list[0].inforvalue == 2) {
  2545. this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }]
  2546. this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }]
  2547. } else if (response.data.list[0].inforvalue == 3) {
  2548. this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
  2549. this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
  2550. this.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
  2551. } else if (response.data.list[0].inforvalue == 4) {
  2552. this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }]
  2553. this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }]
  2554. } else if (response.data.list[0].inforvalue == 5) {
  2555. this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }, { id: '5', name: '第五班' }]
  2556. this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }, { id: '5', name: '第五班' }]
  2557. } else if (response.data.list[0].inforvalue == 6) {
  2558. this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }, { id: '5', name: '第五班' }, { id: '6', name: '第六班' }]
  2559. this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }, { id: '5', name: '第五班' }, { id: '6', name: '第六班' }]
  2560. }
  2561. })
  2562. },
  2563. // 导出
  2564. handleDownload() {
  2565. console.log(this.tab.table.list,'this.tab.table.list')
  2566. if(this.tab.table.list == null){
  2567. this.tab.table.list = []
  2568. }
  2569. if(this.tab.table2.list == null){
  2570. this.tab.table2.list = []
  2571. }
  2572. if (this.tab.checked == true) {
  2573. if (this.tab.radio == '0') {
  2574. var excelDatas0 = [
  2575. {
  2576. tHeader: ['日期', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '标准差'],
  2577. filterVal: ['计划时间', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '方差'],
  2578. tableDatas: this.tab.table.list,
  2579. sheetName: '混料'
  2580. },
  2581. {
  2582. tHeader: ['日期', '驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '标准差'],
  2583. filterVal: ['计划时间', '驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '方差'],
  2584. tableDatas: this.tab.table2.list,
  2585. sheetName: '撒料'
  2586. }
  2587. ]
  2588. json2excel(excelDatas0, '汇总统计—驾驶员', true, 'xlsx')
  2589. } else if (this.tab.radio == '1') {
  2590. var excelDatas = [
  2591. {
  2592. tHeader: ['日期', '配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '标准差'],
  2593. filterVal: ['计划时间', '配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '方差'],
  2594. tableDatas: this.tab.table.list,
  2595. sheetName: '混料'
  2596. },
  2597. {
  2598. tHeader: ['日期', '配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '标准差'],
  2599. filterVal: ['计划时间', '配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '方差'],
  2600. tableDatas: this.tab.table2.list,
  2601. sheetName: '撒料'
  2602. }
  2603. ]
  2604. json2excel(excelDatas, '汇总统计—配方名称', true, 'xlsx')
  2605. } else if (this.tab.radio == '2') {
  2606. var excelDatas2 = [
  2607. {
  2608. tHeader: ['日期','栏舍名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '标准差'],
  2609. filterVal: ['计划时间','栏舍名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '方差'],
  2610. tableDatas: this.tab.table.list,
  2611. sheetName: '混料'
  2612. },
  2613. {
  2614. tHeader: ['日期','栏舍名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '标准差'],
  2615. filterVal: ['计划时间','栏舍名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '方差'],
  2616. tableDatas: this.tab.table2.list,
  2617. sheetName: '撒料'
  2618. }
  2619. ]
  2620. json2excel(excelDatas2, '汇总统计-栏舍名称', true, 'xlsx')
  2621. } else if (this.tab.radio == '3') {
  2622. var excelDatas3 = [
  2623. {
  2624. tHeader: ['日期', '牲畜类别', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数','混料正确率','去除取消正确率','标准差'],
  2625. filterVal: ['计划时间', '牲畜类别', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '方差'],
  2626. tableDatas: this.tab.table.list,
  2627. sheetName: '混料'
  2628. },
  2629. {
  2630. tHeader: ['日期', '牲畜类别', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '标准差'],
  2631. filterVal: ['计划时间', '牲畜类别', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '方差'],
  2632. tableDatas: this.tab.table2.list,
  2633. sheetName: '撒料'
  2634. }
  2635. ]
  2636. json2excel(excelDatas3, '汇总统计-牲畜类别', true, 'xlsx')
  2637. } else if (this.tab.radio == '4') {
  2638. var excelDatas4 = [
  2639. {
  2640. tHeader: ['日期','配方名称','车辆名称','开始加料时间','结束加料时间', 'TMR名称', '车次', '班次', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料时间','发料开始时间','等待时间','混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '标准差'],
  2641. filterVal: ['计划时间1','templetname','TMR名称','startTime','endTime','TMR名称', '车次', '班次', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料时间','startMaterialTime','等待时间','混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数','混料正确率','去除取消正确率', '方差'],
  2642. tableDatas: this.tab.table.list,
  2643. sheetName: '混料'
  2644. },
  2645. {
  2646. tHeader: ['日期','配方名称','车辆名称','开始加料时间','结束加料时间', 'TMR名称', '车次','班次', '驾驶员','理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料时间','发料开始时间','等待时间','撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '标准差'],
  2647. filterVal: ['计划时间1','templetname','TMR名称','startTime','endTime', 'TMR名称', '车次','班次', '驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率','撒料时间','startMaterialTime','等待时间', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '方差'],
  2648. tableDatas: this.tab.table2.list,
  2649. sheetName: '撒料'
  2650. }
  2651. ]
  2652. json2excel(excelDatas4, '汇总统计-车次', true, 'xlsx')
  2653. } else if (this.tab.radio == '5') {
  2654. var excelDatas4 = [
  2655. {
  2656. tHeader: ['日期','TMR名称','班次','车次', '驾驶员','理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '标准差'],
  2657. filterVal: ['计划时间','TMR名称', '班次', '车次', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '方差'],
  2658. tableDatas: this.tab.table.list,
  2659. sheetName: '混料'
  2660. },
  2661. {
  2662. tHeader: ['日期','TMR名称', '班次', '车次', '驾驶员','理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数','撒料正确率','去除取消正确率','标准差'],
  2663. filterVal: ['计划时间','TMR名称','班次', '车次', '驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数','撒料正确率','去除取消正确率','方差'],
  2664. tableDatas: this.tab.table2.list,
  2665. sheetName: '撒料'
  2666. }
  2667. ]
  2668. json2excel(excelDatas4, '汇总统计-TMR名称', true, 'xlsx')
  2669. } else if (this.tab.radio == '6') {
  2670. var excelDatas5 = [
  2671. {
  2672. tHeader: ['日期','饲料','理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '标准差'],
  2673. filterVal: ['计划时间','fname', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '方差'],
  2674. tableDatas: this.tab.table.list,
  2675. sheetName: '混料'
  2676. }
  2677. ]
  2678. json2excel(excelDatas5, '汇总统计-饲料', true, 'xlsx')
  2679. }else if (this.tab.radio == '7') {
  2680. var excelDatas7 = [
  2681. {
  2682. tHeader: ['日期','理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '标准差'],
  2683. filterVal: ['计划时间','理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '方差'],
  2684. tableDatas: this.tab.table.list,
  2685. sheetName: '混料'
  2686. },
  2687. {
  2688. tHeader: ['日期','理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数','撒料正确率','去除取消正确率','标准差'],
  2689. filterVal: ['计划时间','理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数','撒料正确率','去除取消正确率','方差'],
  2690. tableDatas: this.tab.table2.list,
  2691. sheetName: '撒料'
  2692. }
  2693. ]
  2694. json2excel(excelDatas7, '汇总统计-无分类', true, 'xlsx')
  2695. }
  2696. } else {
  2697. if (this.tab.radio == '0') {
  2698. var excelDatas0 = [
  2699. {
  2700. tHeader: ['驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '标准差'],
  2701. filterVal: ['驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '方差'],
  2702. tableDatas: this.tab.table.list,
  2703. sheetName: '混料'
  2704. },
  2705. {
  2706. tHeader: ['驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '标准差'],
  2707. filterVal: ['驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '方差'],
  2708. tableDatas: this.tab.table2.list,
  2709. sheetName: '撒料'
  2710. }
  2711. ]
  2712. json2excel(excelDatas0, '汇总统计—驾驶员', true, 'xlsx')
  2713. } else if (this.tab.radio == '1') {
  2714. var excelDatas = [
  2715. {
  2716. tHeader: ['配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '标准差'],
  2717. filterVal: ['配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '方差'],
  2718. tableDatas: this.tab.table.list,
  2719. sheetName: '混料'
  2720. },
  2721. {
  2722. tHeader: ['配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '标准差'],
  2723. filterVal: ['配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '方差'],
  2724. tableDatas: this.tab.table2.list,
  2725. sheetName: '撒料'
  2726. }
  2727. ]
  2728. json2excel(excelDatas, '汇总统计—配方名称', true, 'xlsx')
  2729. } else if (this.tab.radio == '2') {
  2730. var excelDatas2 = [
  2731. {
  2732. tHeader: ['栏舍名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '标准差'],
  2733. filterVal: ['栏舍名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '方差'],
  2734. tableDatas: this.tab.table.list,
  2735. sheetName: '混料'
  2736. },
  2737. {
  2738. tHeader: ['栏舍名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '标准差'],
  2739. filterVal: ['栏舍名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '方差'],
  2740. tableDatas: this.tab.table2.list,
  2741. sheetName: '撒料'
  2742. }
  2743. ]
  2744. json2excel(excelDatas2, '汇总统计-栏舍名称', true, 'xlsx')
  2745. } else if (this.tab.radio == '3') {
  2746. var excelDatas3 = [
  2747. {
  2748. tHeader: ['牲畜类别', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数','混料正确率','去除取消正确率','标准差'],
  2749. filterVal: ['牲畜类别', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '方差'],
  2750. tableDatas: this.tab.table.list,
  2751. sheetName: '混料'
  2752. },
  2753. {
  2754. tHeader: ['牲畜类别', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '标准差'],
  2755. filterVal: ['牲畜类别', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '方差'],
  2756. tableDatas: this.tab.table2.list,
  2757. sheetName: '撒料'
  2758. }
  2759. ]
  2760. json2excel(excelDatas3, '汇总统计-牲畜类别', true, 'xlsx')
  2761. } else if (this.tab.radio == '4') {
  2762. var excelDatas4 = [
  2763. {
  2764. tHeader: ['日期','配方名称','车辆名称','开始加料时间','结束加料时间','TMR名称', '车次', '班次', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料时间','发料开始时间','等待时间','混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '标准差'],
  2765. filterVal: ['计划时间1','templetname','TMR名称','startTime','endTime','TMR名称', '车次', '班次', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料时间','startMaterialTime','等待时间','混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数','混料正确率','去除取消正确率', '方差'],
  2766. tableDatas: this.tab.table.list,
  2767. sheetName: '混料'
  2768. },
  2769. {
  2770. tHeader: ['日期','配方名称','车辆名称','开始加料时间','结束加料时间','TMR名称', '车次','班次', '驾驶员','理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料时间','发料开始时间','等待时间','撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '标准差'],
  2771. filterVal: ['计划时间1','templetname','TMR名称','startTime','endTime','TMR名称', '车次','班次', '驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率','撒料时间','startMaterialTime','等待时间', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数','撒料正确数','撒料正确率','去除取消正确率', '方差'],
  2772. tableDatas: this.tab.table2.list,
  2773. sheetName: '撒料'
  2774. }
  2775. ]
  2776. json2excel(excelDatas4, '汇总统计-车次', true, 'xlsx')
  2777. }else if (this.tab.radio == '5') {
  2778. var excelDatas5 = [
  2779. {
  2780. tHeader: ['TMR名称','班次','车次', '驾驶员','理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '标准差'],
  2781. filterVal: ['TMR名称', '班次', '车次', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '方差'],
  2782. tableDatas: this.tab.table.list,
  2783. sheetName: '混料'
  2784. },
  2785. {
  2786. tHeader: ['TMR名称', '班次', '车次', '驾驶员','理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数','撒料正确率','去除取消正确率','标准差'],
  2787. filterVal: ['TMR名称','班次', '车次', '驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数','撒料正确率','去除取消正确率','方差'],
  2788. tableDatas: this.tab.table2.list,
  2789. sheetName: '撒料'
  2790. }
  2791. ]
  2792. json2excel(excelDatas5, '汇总统计-TMR名称', true, 'xlsx')
  2793. }else if (this.tab.radio == '6') {
  2794. var excelDatas6 = [
  2795. {
  2796. tHeader: ['饲料','理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '标准差'],
  2797. filterVal: ['fname', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '方差'],
  2798. tableDatas: this.tab.table.list,
  2799. sheetName: '混料'
  2800. }
  2801. ]
  2802. json2excel(excelDatas6, '汇总统计-饲料', true, 'xlsx')
  2803. }else if (this.tab.radio == '7') {
  2804. var excelDatas7 = [
  2805. {
  2806. tHeader: ['理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '标准差'],
  2807. filterVal: ['理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数','混料正确数','混料正确率','去除取消正确率', '方差'],
  2808. tableDatas: this.tab.table.list,
  2809. sheetName: '混料'
  2810. },
  2811. {
  2812. tHeader: ['理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数','撒料正确率','去除取消正确率','标准差'],
  2813. filterVal: ['理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数','撒料正确率','去除取消正确率','方差'],
  2814. tableDatas: this.tab.table2.list,
  2815. sheetName: '撒料'
  2816. }
  2817. ]
  2818. json2excel(excelDatas7, '汇总统计-无分类', true, 'xlsx')
  2819. }
  2820. }
  2821. },
  2822. // 切换Tab
  2823. handleTabClick() {
  2824. if (this.activeName == 'first') {
  2825. const start = new Date()
  2826. const end = new Date()
  2827. start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
  2828. end.setTime(end.getTime() - 3600 * 1000 * 24 * 1)
  2829. this.tab.table.getdataListParm.parammaps.inputDatetime = [start, end]
  2830. this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  2831. this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  2832. this.tab.table2.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  2833. this.tab.table2.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  2834. this.tab.table.getdataListParm.parammaps.fname = ''
  2835. this.tab.table.getdataListParm.parammaps.sort = ''
  2836. this.tab.table.getdataListParm.parammaps.times = ''
  2837. this.tab.table2.getdataListParm.parammaps.fname = ''
  2838. this.tab.table2.getdataListParm.parammaps.sort = ''
  2839. this.tab.table2.getdataListParm.parammaps.times = ''
  2840. this.getTabList()
  2841. this.getTabList2()
  2842. this.getChart1()
  2843. this.getChart2()
  2844. this.getChart3()
  2845. this.getChart4()
  2846. this.getChart5()
  2847. this.getChart6()
  2848. this.$nextTick(() => {
  2849. this.$refs.plTable3.doLayout()
  2850. this.$refs.plTable3.doLayout()
  2851. })
  2852. } else if (this.activeName == 'second') {
  2853. this.$nextTick(()=>{
  2854. this.myHeightSecond = document.documentElement.clientHeight - 40 - this.$refs.myHeightSecond.offsetHeight - 150
  2855. const start2 = new Date()
  2856. start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
  2857. this.tab2.table.getdataListParm.parammaps.inputDatetime2 = start2
  2858. this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime2, '{y}-{m}-{d}')
  2859. this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime2, '{y}-{m}-{d}')
  2860. this.tab2.table.getdataListParm.parammaps.tmrtname = ''
  2861. this.tab2.table.getdataListParm.parammaps.projname = ''
  2862. this.tab2.table.getdataListParm.parammaps.times = ''
  2863. this.tab2.table.getdataListParm.parammaps.buttontype = ''
  2864. this.tab2.table.getdataListParm.parammaps.templetname = ''
  2865. this.getTab2List()
  2866. this.getTMRNameList2()
  2867. this.$nextTick(() => {
  2868. this.$refs.plTable3.doLayout()
  2869. })
  2870. })
  2871. } else if (this.activeName == 'third') {
  2872. this.$nextTick(()=>{
  2873. console.log(this.$refs.myHeightThird.offsetHeight,'myHeightThird')
  2874. this.myHeightThird = document.documentElement.clientHeight - 40 - this.$refs.myHeightThird.offsetHeight - 150
  2875. const start3 = new Date()
  2876. start3.setTime(start3.getTime() - 3600 * 1000 * 24 * 1)
  2877. this.tab3.table.getdataListParm.parammaps.inputDatetime2 = start3
  2878. this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime2, '{y}-{m}-{d}')
  2879. this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime2, '{y}-{m}-{d}')
  2880. this.tab3.table.getdataListParm.parammaps.tmrtname = ''
  2881. this.tab3.table.getdataListParm.parammaps.projname = ''
  2882. this.tab3.table.getdataListParm.parammaps.times = ''
  2883. this.tab3.table.getdataListParm.parammaps.templetname = ''
  2884. this.tab3.table.getdataListParm.parammaps.buttontype = ''
  2885. this.getTab3List()
  2886. this.getTMRNameList3()
  2887. this.$nextTick(() => {
  2888. this.$refs.plTable3.doLayout()
  2889. })
  2890. })
  2891. }
  2892. this.$forceUpdate()
  2893. },
  2894. // 切换统计类型
  2895. changeRadio() {
  2896. this.tab.table.getdataListParm.parammaps.sort = ''
  2897. this.tab.table.getdataListParm.parammaps.times = ''
  2898. this.tab.table.getdataListParm.parammaps.fname = ''
  2899. this.tab.table2.getdataListParm.parammaps.sort = ''
  2900. this.tab.table2.getdataListParm.parammaps.times = ''
  2901. this.tab.table2.getdataListParm.parammaps.fname = ''
  2902. if (this.tab.radio == '0') {
  2903. console.log('驾驶员')
  2904. this.tab.isDriver = true
  2905. this.tab.isFormulaName = false
  2906. this.tab.isHouseName = false
  2907. this.tab.isLivestockType = false
  2908. this.tab.isTrainNumber = false
  2909. this.tab.isTMRName = false
  2910. this.tab.isFeed = false
  2911. this.tab.table.getdataListParm.offset = 1
  2912. this.getTabList()
  2913. this.tab.table2.getdataListParm.offset = 1
  2914. this.getTabList2()
  2915. } else if (this.tab.radio == '1') {
  2916. console.log('配方名称')
  2917. this.tab.isDriver = false
  2918. this.tab.isFormulaName = true
  2919. this.tab.isHouseName = false
  2920. this.tab.isLivestockType = false
  2921. this.tab.isTrainNumber = false
  2922. this.tab.isTMRName = false
  2923. this.tab.isFeed = false
  2924. this.tab.table.getdataListParm.offset = 1
  2925. this.getTabList()
  2926. this.tab.table2.getdataListParm.offset = 1
  2927. this.getTabList2()
  2928. } else if (this.tab.radio == '2') {
  2929. console.log('栏舍名称')
  2930. this.tab.isDriver = false
  2931. this.tab.isFormulaName = false
  2932. this.tab.isHouseName = true
  2933. this.tab.isLivestockType = false
  2934. this.tab.isTrainNumber = false
  2935. this.tab.isTMRName = false
  2936. this.tab.isFeed = false
  2937. this.tab.table.getdataListParm.offset = 1
  2938. this.getTabList()
  2939. this.tab.table2.getdataListParm.offset = 1
  2940. this.getTabList2()
  2941. } else if (this.tab.radio == '3') {
  2942. console.log(' 牲畜类别')
  2943. this.tab.isDriver = false
  2944. this.tab.isFormulaName = false
  2945. this.tab.isHouseName = false
  2946. this.tab.isLivestockType = true
  2947. this.tab.isTrainNumber = false
  2948. this.tab.isTMRName = false
  2949. this.tab.isFeed = false
  2950. this.tab.table.getdataListParm.offset = 1
  2951. this.getTabList()
  2952. this.tab.table2.getdataListParm.offset = 1
  2953. this.getTabList2()
  2954. } else if (this.tab.radio == '4') {
  2955. console.log('车次')
  2956. this.tab.isDriver = false
  2957. this.tab.isFormulaName = false
  2958. this.tab.isHouseName = false
  2959. this.tab.isLivestockType = false
  2960. this.tab.isTrainNumber = true
  2961. this.tab.isTMRName = false
  2962. this.tab.isFeed = false
  2963. this.tab.table.getdataListParm.offset = 1
  2964. this.getTabList()
  2965. this.tab.table2.getdataListParm.offset = 1
  2966. this.getTabList2()
  2967. } else if (this.tab.radio == '5') {
  2968. console.log('TMR名称')
  2969. this.tab.isDriver = false
  2970. this.tab.isFormulaName = false
  2971. this.tab.isHouseName = false
  2972. this.tab.isLivestockType = false
  2973. this.tab.isTrainNumber = false
  2974. this.tab.isTMRName = true
  2975. this.tab.isFeed = false
  2976. this.tab.table.getdataListParm.offset = 1
  2977. this.getTabList()
  2978. this.tab.table2.getdataListParm.offset = 1
  2979. this.getTabList2()
  2980. this.getTMRNameList()
  2981. } else if (this.tab.radio == '6') {
  2982. console.log('饲料')
  2983. this.tab.isDriver = false
  2984. this.tab.isFormulaName = false
  2985. this.tab.isHouseName = false
  2986. this.tab.isLivestockType = false
  2987. this.tab.isTrainNumber = false
  2988. this.tab.isTMRName = false
  2989. this.tab.isFeed = true
  2990. this.tab.table.getdataListParm.offset = 1
  2991. this.getTabList()
  2992. } else if (this.tab.radio == '7') {
  2993. console.log('无分类')
  2994. this.tab.isDriver = false
  2995. this.tab.isFormulaName = false
  2996. this.tab.isHouseName = false
  2997. this.tab.isLivestockType = false
  2998. this.tab.isTrainNumber = false
  2999. this.tab.isTMRName = false
  3000. this.tab.isFeed = false
  3001. this.tab.table.getdataListParm.offset = 1
  3002. this.getTabList()
  3003. this.tab.table2.getdataListParm.offset = 1
  3004. this.getTabList2()
  3005. }
  3006. },
  3007. // 按日期统计
  3008. changeChecked() {
  3009. console.log(this.tab.checked)
  3010. this.form_search()
  3011. },
  3012. // 汇总统计/混料
  3013. getTabList() {
  3014. this.tab.table.listLoading = true
  3015. this.tab.table.getdataListParm.parammaps.status = this.tab.radio
  3016. this.tab.table.getdataListParm.parammaps.genre = 0
  3017. if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
  3018. this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  3019. this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  3020. } else {
  3021. this.tab.table.getdataListParm.parammaps.inputDatetime = ''
  3022. this.tab.table.getdataListParm.parammaps.startTime = ''
  3023. this.tab.table.getdataListParm.parammaps.stopTime = ''
  3024. }
  3025. let url = 'authdata/summary'
  3026. let data = {}
  3027. if(this.tab.checked ==false){
  3028. this.tab.table.getdataListParm.parammaps.isdate = 0
  3029. }else{
  3030. this.tab.table.getdataListParm.parammaps.isdate = 1
  3031. }
  3032. data.parammaps = this.tab.table.getdataListParm.parammaps
  3033. postJson(url, data).then(response => {
  3034. if (response.data !== null) {
  3035. console.log('汇总统计/混料table数据', response.data.list)
  3036. this.$refs.plTable1.reloadData(response.data.list)
  3037. this.tab.table.list = response.data.list
  3038. this.tab.table.total = response.data.total
  3039. } else {
  3040. this.$refs.plTable2.reloadData([])
  3041. this.tab.table.list = []
  3042. this.tab.table.total = 0
  3043. }
  3044. setTimeout(() => {
  3045. this.tab.table.listLoading = false
  3046. }, 100)
  3047. })
  3048. },
  3049. // 汇总统计/撒料
  3050. getTabList2() {
  3051. this.tab.table2.listLoading = true
  3052. this.tab.table2.getdataListParm.parammaps.status = this.tab.radio
  3053. this.tab.table2.getdataListParm.parammaps.genre = 1
  3054. this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
  3055. this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
  3056. this.tab.table2.getdataListParm.parammaps.hlwc1 = this.tab.table.getdataListParm.parammaps.hlwc1
  3057. this.tab.table2.getdataListParm.parammaps.hlwc2 = this.tab.table.getdataListParm.parammaps.hlwc2
  3058. this.tab.table2.getdataListParm.parammaps.hlzq1 = this.tab.table.getdataListParm.parammaps.hlzq1
  3059. this.tab.table2.getdataListParm.parammaps.hlzq2 = this.tab.table.getdataListParm.parammaps.hlzq2
  3060. this.tab.table2.getdataListParm.parammaps.hlzql1 = this.tab.table.getdataListParm.parammaps.hlzql1
  3061. this.tab.table2.getdataListParm.parammaps.hlzql2 = this.tab.table.getdataListParm.parammaps.hlzql2
  3062. this.tab.table2.getdataListParm.parammaps.slwc1 = this.tab.table.getdataListParm.parammaps.slwc1
  3063. this.tab.table2.getdataListParm.parammaps.slwc2 = this.tab.table.getdataListParm.parammaps.slwc2
  3064. this.tab.table2.getdataListParm.parammaps.slzq1 = this.tab.table.getdataListParm.parammaps.slzq1
  3065. this.tab.table2.getdataListParm.parammaps.slzq2 = this.tab.table.getdataListParm.parammaps.slzq2
  3066. this.tab.table2.getdataListParm.parammaps.slzql1 = this.tab.table.getdataListParm.parammaps.slzql1
  3067. this.tab.table2.getdataListParm.parammaps.slzql2 = this.tab.table.getdataListParm.parammaps.slzql2
  3068. this.tab.table2.getdataListParm.parammaps.error = this.tab.table.getdataListParm.parammaps.error
  3069. let url = 'authdata/summary'
  3070. let data = {}
  3071. if(this.tab.checked ==false){
  3072. this.tab.table2.getdataListParm.parammaps.isdate = 0
  3073. }else{
  3074. this.tab.table2.getdataListParm.parammaps.isdate = 1
  3075. }
  3076. data.parammaps = this.tab.table2.getdataListParm.parammaps
  3077. postJson(url, data).then(response => {
  3078. if (response.data !== null) {
  3079. console.log('汇总统计/撒料table数据', response.data.list)
  3080. this.$refs.plTable22.reloadData(response.data.list)
  3081. this.tab.table2.list = response.data.list
  3082. this.tab.table2.total = response.data.total
  3083. } else {
  3084. this.$refs.plTable22.reloadData([])
  3085. this.tab.table2.list = []
  3086. this.tab.table2.total = 0
  3087. }
  3088. setTimeout(() => {
  3089. this.tab.table2.listLoading = false
  3090. }, 100)
  3091. })
  3092. },
  3093. // 查询
  3094. form_search() {
  3095. if (this.tab.radio == '0') {
  3096. console.log('驾驶员/查询111')
  3097. this.tab.isDriver = true
  3098. this.tab.isFormulaName = false
  3099. this.tab.isHouseName = false
  3100. this.tab.isLivestockType = false
  3101. this.tab.isTrainNumber = false
  3102. this.tab.isTMRName = false
  3103. this.tab.isFeed = false
  3104. this.tab.table.getdataListParm.offset = 1
  3105. this.getTabList()
  3106. this.tab.table2.getdataListParm.offset = 1
  3107. this.getTabList2()
  3108. } else if (this.tab.radio == '1') {
  3109. console.log('配方名称/查询111')
  3110. this.tab.isDriver = false
  3111. this.tab.isFormulaName = true
  3112. this.tab.isHouseName = false
  3113. this.tab.isLivestockType = false
  3114. this.tab.isTrainNumber = false
  3115. this.tab.isTMRName = false
  3116. this.tab.isFeed = false
  3117. this.tab.table.getdataListParm.offset = 1
  3118. this.getTabList()
  3119. this.tab.table2.getdataListParm.offset = 1
  3120. this.getTabList2()
  3121. } else if (this.tab.radio == '2') {
  3122. console.log('栏舍名称/查询')
  3123. this.tab.isDriver = false
  3124. this.tab.isFormulaName = false
  3125. this.tab.isHouseName = true
  3126. this.tab.isLivestockType = false
  3127. this.tab.isTrainNumber = false
  3128. this.tab.isTMRName = false
  3129. this.tab.isFeed = false
  3130. this.tab.table.getdataListParm.offset = 1
  3131. this.getTabList()
  3132. this.tab.table2.getdataListParm.offset = 1
  3133. this.getTabList2()
  3134. } else if (this.tab.radio == '3') {
  3135. console.log(' 牲畜类别/查询')
  3136. this.tab.isDriver = false
  3137. this.tab.isFormulaName = false
  3138. this.tab.isHouseName = false
  3139. this.tab.isLivestockType = true
  3140. this.tab.isTrainNumber = false
  3141. this.tab.isTMRName = false
  3142. this.tab.isFeed = false
  3143. this.tab.table.getdataListParm.offset = 1
  3144. this.getTabList()
  3145. this.tab.table2.getdataListParm.offset = 1
  3146. this.getTabList2()
  3147. } else if (this.tab.radio == '4') {
  3148. console.log('车次/查询')
  3149. this.tab.isDriver = false
  3150. this.tab.isFormulaName = false
  3151. this.tab.isHouseName = false
  3152. this.tab.isLivestockType = false
  3153. this.tab.isTrainNumber = true
  3154. this.tab.isTMRName = false
  3155. this.tab.isFeed = false
  3156. this.tab.table.getdataListParm.offset = 1
  3157. this.getTabList()
  3158. this.tab.table2.getdataListParm.offset = 1
  3159. this.getTabList2()
  3160. } else if (this.tab.radio == '5') {
  3161. console.log('TMR名称/查询')
  3162. this.tab.isDriver = false
  3163. this.tab.isFormulaName = false
  3164. this.tab.isHouseName = false
  3165. this.tab.isLivestockType = false
  3166. this.tab.isTrainNumber = false
  3167. this.tab.isTMRName = true
  3168. this.tab.isFeed = false
  3169. this.tab.table.getdataListParm.offset = 1
  3170. this.getTabList()
  3171. this.tab.table2.getdataListParm.offset = 1
  3172. this.getTabList2()
  3173. this.getTMRNameList()
  3174. }else if(this.tab.radio == '6'){
  3175. this.tab.isDriver = false
  3176. this.tab.isFormulaName = false
  3177. this.tab.isHouseName = false
  3178. this.tab.isLivestockType = false
  3179. this.tab.isTrainNumber = false
  3180. this.tab.isTMRName = false
  3181. this.tab.isFeed = true
  3182. this.tab.table.getdataListParm.offset = 1
  3183. this.getTabList()
  3184. }else if(this.tab.radio == '7'){
  3185. this.tab.isDriver = false
  3186. this.tab.isFormulaName = false
  3187. this.tab.isHouseName = false
  3188. this.tab.isLivestockType = false
  3189. this.tab.isTrainNumber = false
  3190. this.tab.isTMRName = false
  3191. this.tab.isFeed = false
  3192. this.tab.table.getdataListParm.offset = 1
  3193. this.getTabList()
  3194. this.tab.table2.getdataListParm.offset = 1
  3195. this.getTabList2()
  3196. }
  3197. this.tab.table2.getdataListParm.parammaps.fname = this.tab.table.getdataListParm.parammaps.fname
  3198. },
  3199. handleRefresh1(){
  3200. this.tab.table.getdataListParm.parammaps.fname = ''
  3201. this.tab.table.getdataListParm.parammaps.projname = ''
  3202. this.tab.table.getdataListParm.parammaps.times = ''
  3203. this.tab.table.getdataListParm.parammaps.hlwc1 = undefined
  3204. this.tab.table.getdataListParm.parammaps.hlwc2 = undefined
  3205. this.tab.table.getdataListParm.parammaps.hlzq1 = undefined
  3206. this.tab.table.getdataListParm.parammaps.hlzq2 = undefined
  3207. this.tab.table.getdataListParm.parammaps.hlzql1 = undefined
  3208. this.tab.table.getdataListParm.parammaps.hlzql2 = undefined
  3209. this.tab.table.getdataListParm.parammaps.slwc1 = undefined
  3210. this.tab.table.getdataListParm.parammaps.slwc2 = undefined
  3211. this.tab.table.getdataListParm.parammaps.slzq1 = undefined
  3212. this.tab.table.getdataListParm.parammaps.slzq2 = undefined
  3213. this.tab.table.getdataListParm.parammaps.slzql1 = undefined
  3214. this.tab.table.getdataListParm.parammaps.slzql2 = undefined
  3215. this.tab.table.getdataListParm.parammaps.error = false
  3216. this.form_search()
  3217. },
  3218. handleBefore() {
  3219. this.$forceUpdate()
  3220. if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
  3221. var start = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))
  3222. var stop = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))
  3223. if (stop > Date.now() - 8.64e7) {
  3224. this.Nextdisabled = true
  3225. this.Beforedisabled = false
  3226. } else {
  3227. this.Nextdisabled = false
  3228. this.Beforedisabled = false
  3229. }
  3230. this.tab.table.getdataListParm.parammaps.inputDatetime = []
  3231. this.tab.table.getdataListParm.parammaps.inputDatetime.length = 0
  3232. this.tab.table.getdataListParm.parammaps.inputDatetime.push(start, stop)
  3233. this.$forceUpdate()
  3234. }
  3235. this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  3236. this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  3237. this.getTabList()
  3238. this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
  3239. this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
  3240. this.getTabList2()
  3241. this.getTMRNameList()
  3242. },
  3243. handleNext() {
  3244. this.$forceUpdate()
  3245. if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
  3246. var start2 = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))
  3247. var stop2 = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))
  3248. if (stop2 > Date.now() - 8.64e7) {
  3249. this.Nextdisabled = true
  3250. this.Beforedisabled = false
  3251. } else {
  3252. this.Nextdisabled = false
  3253. this.Beforedisabled = false
  3254. }
  3255. this.tab.table.getdataListParm.parammaps.inputDatetime = []
  3256. this.tab.table.getdataListParm.parammaps.inputDatetime.length = 0
  3257. this.tab.table.getdataListParm.parammaps.inputDatetime.push(start2, stop2)
  3258. this.$forceUpdate()
  3259. }
  3260. this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  3261. this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  3262. this.getTabList()
  3263. this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
  3264. this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
  3265. this.getTabList2()
  3266. this.getTMRNameList()
  3267. },
  3268. handleBefore2() {
  3269. this.$forceUpdate()
  3270. if (this.tab2.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {
  3271. var start3 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))
  3272. var stop3 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))
  3273. if (stop3 > Date.now() - 8.64e7) {
  3274. this.Nextdisabled = true
  3275. this.Beforedisabled = false
  3276. } else {
  3277. this.Nextdisabled = false
  3278. this.Beforedisabled = false
  3279. }
  3280. this.tab2.table.getdataListParm.parammaps.inputDatetime = []
  3281. this.tab2.table.getdataListParm.parammaps.inputDatetime.length = 0
  3282. this.tab2.table.getdataListParm.parammaps.inputDatetime.push(start3, stop3)
  3283. this.$forceUpdate()
  3284. }
  3285. this.tab2.table.getdataListParm.parammaps.startTime = parseTime(start3, '{y}-{m}-{d}')
  3286. this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(stop3, '{y}-{m}-{d}')
  3287. this.getTab2List()
  3288. this.getTMRNameList2()
  3289. },
  3290. handleNext2() {
  3291. if (this.tab2.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {
  3292. var start4 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))
  3293. var stop4 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))
  3294. if (stop4 > Date.now() - 8.64e7) {
  3295. this.Nextdisabled = true
  3296. this.Beforedisabled = false
  3297. } else {
  3298. this.Nextdisabled = false
  3299. this.Beforedisabled = false
  3300. }
  3301. this.tab2.table.getdataListParm.parammaps.inputDatetime = []
  3302. this.tab2.table.getdataListParm.parammaps.inputDatetime.length = 0
  3303. this.tab2.table.getdataListParm.parammaps.inputDatetime.push(start4, stop4)
  3304. this.$forceUpdate()
  3305. }
  3306. this.tab2.table.getdataListParm.parammaps.startTime = parseTime(start4, '{y}-{m}-{d}')
  3307. this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(start4, '{y}-{m}-{d}')
  3308. this.getTab2List()
  3309. this.getTMRNameList2()
  3310. },
  3311. handleBefore3() {
  3312. this.$forceUpdate()
  3313. if (this.tab3.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab3.table.getdataListParm.parammaps.inputDatetime !== null) {
  3314. var start5 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))
  3315. var stop5 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))
  3316. if (stop5 > Date.now() - 8.64e7) {
  3317. this.Nextdisabled = true
  3318. this.Beforedisabled = false
  3319. } else {
  3320. this.Nextdisabled = false
  3321. this.Beforedisabled = false
  3322. }
  3323. this.tab3.table.getdataListParm.parammaps.inputDatetime = []
  3324. this.tab3.table.getdataListParm.parammaps.inputDatetime.length = 0
  3325. this.tab3.table.getdataListParm.parammaps.inputDatetime.push(start5, stop5)
  3326. this.$forceUpdate()
  3327. }
  3328. this.tab3.table.getdataListParm.parammaps.startTime = parseTime(start5, '{y}-{m}-{d}')
  3329. this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(stop5, '{y}-{m}-{d}')
  3330. this.getTab3List()
  3331. this.getTMRNameList3()
  3332. },
  3333. handleNext3() {
  3334. if (this.tab3.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab3.table.getdataListParm.parammaps.inputDatetime !== null) {
  3335. var start6 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))
  3336. var stop6 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))
  3337. if (stop6 > Date.now() - 8.64e7) {
  3338. this.Nextdisabled = true
  3339. this.Beforedisabled = false
  3340. } else {
  3341. this.Nextdisabled = false
  3342. this.Beforedisabled = false
  3343. }
  3344. this.tab3.table.getdataListParm.parammaps.inputDatetime = []
  3345. this.tab3.table.getdataListParm.parammaps.inputDatetime.length = 0
  3346. this.tab3.table.getdataListParm.parammaps.inputDatetime.push(start6, stop6)
  3347. this.$forceUpdate()
  3348. }
  3349. this.tab3.table.getdataListParm.parammaps.startTime = parseTime(start6, '{y}-{m}-{d}')
  3350. this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(stop6, '{y}-{m}-{d}')
  3351. this.getTab3List()
  3352. this.getTMRNameList3()
  3353. },
  3354. // 快速跳转到图表
  3355. handleQuickJumpChart() {
  3356. var myHeight = document.getElementById('table').offsetHeight + 120
  3357. window.scrollTo(myHeight, myHeight)
  3358. },
  3359. // 快速回到顶部
  3360. handleQuickJumpTop() {
  3361. window.scrollTo(0, 0)
  3362. },
  3363. // 配方准确率
  3364. changeStatisticChart1(arr) {
  3365. var arr1 = []
  3366. if(arr !== null){
  3367. for (let i = 0; i < arr.length; i++) {
  3368. if (arr[i] !== 'all') {
  3369. arr1.push(arr[i])
  3370. }
  3371. }
  3372. }
  3373. this.tab.chart1.getdataListParm.parammaps.statisticsList = arr1
  3374. var arrData3 = []
  3375. if(this.tab.chart1.getdataListParm.parammaps.statisticsList !== null){
  3376. for (let i = 0; i < this.tab.chart1.getdataListParm.parammaps.statisticsList.length; i++) {
  3377. const myId = this.tab.chart1.statisticsList.find(obj => obj.name == this.tab.chart1.getdataListParm.parammaps.statisticsList[i]).id
  3378. if(this.tab.chart1.chart1Data3 !== null){
  3379. for (let j = 0; j < this.tab.chart1.chart1Data3.length; j++) {
  3380. if (j == myId) {
  3381. arrData3.push(this.tab.chart1.chart1Data3[j])
  3382. }
  3383. }
  3384. }
  3385. }
  3386. }
  3387. this.tab.chart1.chartLine_data.data3 = arrData3
  3388. this.tab.chart1.chartLine_data.data1 = this.tab.chart1.getdataListParm.parammaps.statisticsList
  3389. this.roadChartLine1(this.tab.chart1.chartLine_data)
  3390. },
  3391. // 配方准确率
  3392. getChart1() {
  3393. this.tab.chart1.listLoading = true
  3394. const url = 'authdata/chart/accuracyAllFT'
  3395. const data = {}
  3396. data.parammaps = {}
  3397. if (this.tab.chart2.getdataListParm.parammaps.specificDate == '1') {
  3398. data.parammaps.pastureid = this.tab.chart2.getdataListParm.parammaps.pastureid
  3399. data.parammaps.startTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  3400. data.parammaps.stopTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  3401. data.parammaps.status = this.tab.chart2.getdataListParm.parammaps.status
  3402. } else {
  3403. data.parammaps.pastureid = this.tab.chart2.getdataListParm.parammaps.pastureid
  3404. data.parammaps.startTime = this.tab.chart2.getdataListParm.parammaps.startTime
  3405. data.parammaps.stopTime = this.tab.chart2.getdataListParm.parammaps.stopTime
  3406. data.parammaps.status = this.tab.chart2.getdataListParm.parammaps.status
  3407. }
  3408. postJson(url, data).then(response => {
  3409. if (response.data !== null && response.data.list !== null && response.data.data !== null) {
  3410. for (let i = 0; i < response.data.data.length; i++) {
  3411. for (let i = 0; i < response.data.data.length; i++) {
  3412. if (response.data.data[i].准确率 !== '' && response.data.data[i].准确率 !== undefined) {
  3413. response.data.data[i].准确率 = parseFloat(response.data.data[i].准确率) + '%'
  3414. }
  3415. if (response.data.data[i].理论量 !== '' && response.data.data[i].理论量 !== undefined) {
  3416. response.data.data[i].理论量 = parseFloat(response.data.data[i].理论量)
  3417. }
  3418. if (response.data.data[i].实际量 !== '' && response.data.data[i].实际量 !== undefined) {
  3419. response.data.data[i].实际量 = parseFloat(response.data.data[i].实际量)
  3420. }
  3421. }
  3422. }
  3423. this.tab.chart1.table.list = response.data.data
  3424. this.tab.chart1.chartLine_data = response.data.list
  3425. this.tab.chart1.statisticsList = []
  3426. this.tab.chart1.getdataListParm.parammaps.statisticsList = []
  3427. if(response.data.list.data1 !== null){
  3428. for (let i = 0; i < response.data.list.data1.length; i++) {
  3429. this.tab.chart1.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
  3430. var obj = {}
  3431. obj.id = i
  3432. obj.name = response.data.list.data1[i]
  3433. this.tab.chart1.statisticsList.push(obj)
  3434. }
  3435. }
  3436. console.log(this.tab.chart1.statisticsList, '配方准确率下拉内容')
  3437. this.tab.chart1.chart1Data3 = response.data.list.data3
  3438. this.tab.chart1.total = response.data.total
  3439. console.log('配方准确率表数据', this.tab.chart1.table.list)
  3440. console.log('配方准确率图数据', this.tab.chart1.chartLine_data)
  3441. var arrData3 = []
  3442. if(this.tab.chart1.getdataListParm.parammaps.statisticsList !== null){
  3443. for (let i = 0; i < this.tab.chart1.getdataListParm.parammaps.statisticsList.length; i++) {
  3444. const myId = this.tab.chart1.statisticsList.find(obj => obj.name == this.tab.chart1.getdataListParm.parammaps.statisticsList[i]).id
  3445. if(this.tab.chart1.chart1Data3 !== null){
  3446. for (let j = 0; j < this.tab.chart1.chart1Data3.length; j++) {
  3447. if (j == myId) {
  3448. this.tab.chart1.chart1Data3[j].checkedState = true
  3449. arrData3.push(this.tab.chart1.chart1Data3[j])
  3450. }
  3451. }
  3452. }
  3453. }
  3454. }
  3455. this.tab.chart1.chartLine_data.data3 = arrData3
  3456. this.tab.chart1.chartLine_data.data1 = this.tab.chart1.getdataListParm.parammaps.statisticsList
  3457. this.roadChartLine1(this.tab.chart1.chartLine_data)
  3458. } else {
  3459. this.tab.chart1.list = []
  3460. }
  3461. setTimeout(() => {
  3462. this.tab.chart1.listLoading = false
  3463. }, 100)
  3464. })
  3465. },
  3466. roadChartLine1(chartLine_data) {
  3467. if (this.tab.chart1.chartLine != null) {
  3468. this.tab.chart1.chartLine.dispose()
  3469. }
  3470. this.tab.chart1.chartLine = echarts.init(document.getElementById('chartLine1'),null,{renderer: "svg"})
  3471. var option = {
  3472. title: {
  3473. text: ''
  3474. },
  3475. tooltip: {
  3476. trigger: 'axis'
  3477. },
  3478. legend: {
  3479. data: chartLine_data.data1,
  3480. right: 10, show: true, type: 'scroll'
  3481. },
  3482. grid: {
  3483. top: '20%',
  3484. left: '5%',
  3485. right: '8%',
  3486. containLabel: true
  3487. },
  3488. toolbox: {
  3489. show: true,
  3490. right: '2%',
  3491. feature: {}
  3492. },
  3493. xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
  3494. yAxis: {
  3495. min:0, //取0为最小刻度
  3496. max: 100, //取100为最大刻度
  3497. min:'min', //取最小值为最小刻度
  3498. max: 'max', //取最大值为最大刻度
  3499. min: function(value) {//取最小值向下取整为最小刻度
  3500. return Math.floor(value.min)
  3501. },
  3502. max: function(value) {//取最大值向上取整为最大刻度
  3503. return Math.ceil(value.max)
  3504. },
  3505. type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
  3506. },
  3507. series: (function() {
  3508. var serie = []
  3509. if(chartLine_data.data3 !== null){
  3510. for (var i = 0; i < chartLine_data.data3.length; i++) {
  3511. var item = {
  3512. name: chartLine_data.data1[i],
  3513. type: 'line',
  3514. data: chartLine_data.data3[i].data
  3515. }
  3516. serie.push(item)
  3517. }
  3518. }
  3519. return serie
  3520. }())
  3521. }
  3522. this.tab.chart1.chartLine.setOption(option)
  3523. window.onresize = ()=> {
  3524. this.tab.chart1.chartLine.resize()
  3525. }
  3526. },
  3527. // 计划统计
  3528. getChart2() {
  3529. this.tab.chart2.listLoading = true
  3530. const url = 'authdata/chart/accuracyAllJH'
  3531. const data = {}
  3532. data.parammaps = {}
  3533. if (this.tab.chart2.getdataListParm.parammaps.specificDate == '1') {
  3534. data.parammaps.pastureid = this.tab.chart2.getdataListParm.parammaps.pastureid
  3535. data.parammaps.startTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  3536. data.parammaps.stopTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  3537. data.parammaps.status = this.tab.chart2.getdataListParm.parammaps.status
  3538. } else {
  3539. data.parammaps.pastureid = this.tab.chart2.getdataListParm.parammaps.pastureid
  3540. data.parammaps.startTime = this.tab.chart2.getdataListParm.parammaps.startTime
  3541. data.parammaps.stopTime = this.tab.chart2.getdataListParm.parammaps.stopTime
  3542. data.parammaps.status = this.tab.chart2.getdataListParm.parammaps.status
  3543. }
  3544. postJson(url, data).then(response => {
  3545. if (response.data !== null && response.data.list !== null && response.data.data !== null) {
  3546. for (let i = 0; i < response.data.data.length; i++) {
  3547. if (response.data.data[i].实际量 !== '' && response.data.data[i].实际量 !== undefined) {
  3548. response.data.data[i].实际量 = parseFloat(response.data.data[i].实际量)
  3549. }
  3550. if (response.data.data[i].理论量 !== '' && response.data.data[i].理论量 !== undefined) {
  3551. response.data.data[i].理论量 = parseFloat(response.data.data[i].理论量)
  3552. }
  3553. if (response.data.data[i].field1 !== '' && response.data.data[i].field1 !== undefined) {
  3554. response.data.data[i].field1 = parseFloat(response.data.data[i].field1)
  3555. }
  3556. if (response.data.data[i].计划取消重量 !== '' && response.data.data[i].计划取消重量 !== undefined) {
  3557. response.data.data[i].计划取消重量 = parseFloat(response.data.data[i].计划取消重量)
  3558. }
  3559. if (response.data.data[i].field3 !== '' && response.data.data[i].field3 !== undefined) {
  3560. response.data.data[i].field3 = parseFloat(response.data.data[i].field3)
  3561. }
  3562. if (response.data.data[i].正确数 !== '' && response.data.data[i].正确数 !== undefined) {
  3563. response.data.data[i].正确数 = parseFloat(response.data.data[i].正确数)
  3564. }
  3565. if (response.data.data[i].计划数 !== '' && response.data.data[i].计划数 !== undefined) {
  3566. response.data.data[i].计划数 = parseFloat(response.data.data[i].计划数)
  3567. }
  3568. if (response.data.data[i].field2 !== '' && response.data.data[i].field2 !== undefined) {
  3569. response.data.data[i].field2 = parseFloat(response.data.data[i].field2)
  3570. }
  3571. }
  3572. this.tab.chart2.table.list = response.data.data
  3573. this.tab.chart2.chartLine_data = response.data.list
  3574. this.tab.chart2.total = response.data.total
  3575. console.log('计划统计图数据', this.tab.chart2.chartLine_data)
  3576. console.log('计划统计表数据', this.tab.chart2.table.list)
  3577. this.roadChartLine2(this.tab.chart2.chartLine_data)
  3578. } else {
  3579. this.tab.chart2.list = []
  3580. }
  3581. setTimeout(() => {
  3582. this.tab.chart2.listLoading = false
  3583. }, 100)
  3584. })
  3585. },
  3586. roadChartLine2(chartLine_data) {
  3587. if (this.tab.chart2.chartLine != null) {
  3588. this.tab.chart2.chartLine.dispose()
  3589. }
  3590. this.tab.chart2.chartLine = echarts.init(document.getElementById('chartLine2'),null,{renderer: "svg"})
  3591. var option = {
  3592. title: {
  3593. text: ''
  3594. },
  3595. tooltip: {
  3596. trigger: 'axis'
  3597. },
  3598. legend: {
  3599. data: ['计划准确率', '计划正确率', '计划准确率(去除取消重量)'],
  3600. right: 10
  3601. },
  3602. grid: {
  3603. top: '20%',
  3604. left: '5%',
  3605. right: '8%',
  3606. containLabel: true
  3607. },
  3608. toolbox: {
  3609. show: true,
  3610. right: '2%',
  3611. feature: {}
  3612. },
  3613. xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data1, name: '日期' },
  3614. yAxis: {
  3615. min:0, //取0为最小刻度
  3616. max: 100, //取100为最大刻度
  3617. min:'min', //取最小值为最小刻度
  3618. max: 'max', //取最大值为最大刻度
  3619. min: function(value) {//取最小值向下取整为最小刻度
  3620. return Math.floor(value.min)
  3621. },
  3622. max: function(value) {//取最大值向上取整为最大刻度
  3623. return Math.ceil(value.max)
  3624. },
  3625. type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
  3626. },
  3627. series: [
  3628. { name: '计划准确率', type: 'line', data: chartLine_data.data2 },
  3629. { name: '计划正确率', type: 'line', data: chartLine_data.data3 },
  3630. { name: '计划准确率(去除取消重量)', type: 'line', data: chartLine_data.data4 }
  3631. ]
  3632. }
  3633. this.tab.chart2.chartLine.setOption(option)
  3634. window.onresize = ()=> {
  3635. this.tab.chart2.chartLine.resize()
  3636. }
  3637. },
  3638. // 牛群准确率
  3639. changeStatisticChart3(arr) {
  3640. var arr1 = []
  3641. for (let i = 0; i < arr.length; i++) {
  3642. if (arr[i] !== 'all') {
  3643. arr1.push(arr[i])
  3644. }
  3645. }
  3646. this.tab.chart3.getdataListParm.parammaps.statisticsList = arr1
  3647. var arrData3 = []
  3648. for (let i = 0; i < this.tab.chart3.getdataListParm.parammaps.statisticsList.length; i++) {
  3649. const myId = this.tab.chart3.statisticsList.find(obj => obj.name == this.tab.chart3.getdataListParm.parammaps.statisticsList[i]).id
  3650. for (let j = 0; j < this.tab.chart3.chart3Data3.length; j++) {
  3651. if (j == myId) {
  3652. arrData3.push(this.tab.chart3.chart3Data3[j])
  3653. }
  3654. }
  3655. }
  3656. this.tab.chart3.chartLine_data.data3 = arrData3
  3657. this.tab.chart3.chartLine_data.data1 = this.tab.chart3.getdataListParm.parammaps.statisticsList
  3658. this.roadChartLine3(this.tab.chart3.chartLine_data)
  3659. },
  3660. // 牛群准确率
  3661. getChart3() {
  3662. this.tab.chart3.listLoading = true
  3663. const url = 'authdata/chart/accuracyAllNQ'
  3664. const data = {}
  3665. data.parammaps = {}
  3666. if (this.tab.chart3.getdataListParm.parammaps.specificDate == '1') {
  3667. data.parammaps.pastureid = this.tab.chart3.getdataListParm.parammaps.pastureid
  3668. data.parammaps.startTime = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  3669. data.parammaps.stopTime = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  3670. data.parammaps.status = this.tab.chart3.getdataListParm.parammaps.status
  3671. } else {
  3672. data.parammaps.pastureid = this.tab.chart3.getdataListParm.parammaps.pastureid
  3673. data.parammaps.startTime = this.tab.chart3.getdataListParm.parammaps.startTime
  3674. data.parammaps.stopTime = this.tab.chart3.getdataListParm.parammaps.stopTime
  3675. data.parammaps.status = this.tab.chart3.getdataListParm.parammaps.status
  3676. }
  3677. postJson(url, data).then(response => {
  3678. if (response.data !== null && response.data.list !== null && response.data.data !== null) {
  3679. for (let i = 0; i < response.data.data.length; i++) {
  3680. if (response.data.data[i].理论量 !== '' && response.data.data[i].理论量 !== undefined) {
  3681. response.data.data[i].理论量 = parseFloat(response.data.data[i].理论量)
  3682. }
  3683. if (response.data.data[i].实际量 !== '' && response.data.data[i].实际量 !== undefined) {
  3684. response.data.data[i].实际量 = parseFloat(response.data.data[i].实际量)
  3685. }
  3686. if (response.data.data[i].准确率 !== '' && response.data.data[i].准确率 !== undefined) {
  3687. response.data.data[i].准确率 = parseFloat(response.data.data[i].准确率) + '%'
  3688. }
  3689. }
  3690. this.tab.chart3.table.list = response.data.data
  3691. this.tab.chart3.chartLine_data = response.data.list
  3692. this.tab.chart3.total = response.data.total
  3693. this.tab.chart3.statisticsList = []
  3694. this.tab.chart3.getdataListParm.parammaps.statisticsList = []
  3695. for (let i = 0; i < response.data.list.data1.length; i++) {
  3696. // if (i < 10) {
  3697. this.tab.chart3.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
  3698. // }
  3699. var obj = {}
  3700. obj.id = i
  3701. obj.name = response.data.list.data1[i]
  3702. this.tab.chart3.statisticsList.push(obj)
  3703. }
  3704. this.tab.chart3.chart3Data3 = response.data.list.data3
  3705. this.tab.chart3.total = response.data.total
  3706. console.log('牛群准确率图数据', this.tab.chart3.chartLine_data)
  3707. console.log('牛群准确率表数据', this.tab.chart3.table.list)
  3708. var arrData3 = []
  3709. for (let i = 0; i < this.tab.chart3.getdataListParm.parammaps.statisticsList.length; i++) {
  3710. const myId = this.tab.chart3.statisticsList.find(obj => obj.name == this.tab.chart3.getdataListParm.parammaps.statisticsList[i]).id
  3711. for (let j = 0; j < this.tab.chart3.chart3Data3.length; j++) {
  3712. if (j == myId) {
  3713. arrData3.push(this.tab.chart3.chart3Data3[j])
  3714. }
  3715. }
  3716. }
  3717. this.tab.chart3.chartLine_data.data3 = arrData3
  3718. this.tab.chart3.chartLine_data.data1 = this.tab.chart3.getdataListParm.parammaps.statisticsList
  3719. this.roadChartLine3(this.tab.chart3.chartLine_data)
  3720. } else {
  3721. this.tab.chart3.list = []
  3722. }
  3723. setTimeout(() => {
  3724. this.tab.chart3.listLoading = false
  3725. }, 100)
  3726. })
  3727. },
  3728. roadChartLine3(chartLine_data) {
  3729. if (this.tab.chart3.chartLine != null) {
  3730. this.tab.chart3.chartLine.dispose()
  3731. }
  3732. this.tab.chart3.chartLine = echarts.init(document.getElementById('chartLine3'),null,{renderer: "svg"})
  3733. var option = {
  3734. title: {
  3735. text: ''
  3736. },
  3737. tooltip: {
  3738. trigger: 'axis'
  3739. },
  3740. legend: {
  3741. data: chartLine_data.data1,
  3742. right: 10, show: true, type: 'scroll'
  3743. },
  3744. grid: {
  3745. top: '20%',
  3746. left: '5%',
  3747. right: '8%',
  3748. containLabel: true
  3749. },
  3750. toolbox: {
  3751. show: true,
  3752. right: '2%',
  3753. feature: {}
  3754. },
  3755. xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
  3756. yAxis: {
  3757. min:0, //取0为最小刻度
  3758. max: 100, //取100为最大刻度
  3759. min:'min', //取最小值为最小刻度
  3760. max: 'max', //取最大值为最大刻度
  3761. min: function(value) {//取最小值向下取整为最小刻度
  3762. return Math.floor(value.min)
  3763. },
  3764. max: function(value) {//取最大值向上取整为最大刻度
  3765. return Math.ceil(value.max)
  3766. },
  3767. type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
  3768. },
  3769. series: (function() {
  3770. var serie = []
  3771. for (var i = 0; i < chartLine_data.data3.length; i++) {
  3772. var item = {
  3773. name: chartLine_data.data1[i],
  3774. type: 'line',
  3775. data: chartLine_data.data3[i].data
  3776. }
  3777. serie.push(item)
  3778. }
  3779. return serie
  3780. }())
  3781. }
  3782. this.tab.chart3.chartLine.setOption(option)
  3783. window.onresize = ()=> {
  3784. this.tab.chart3.chartLine.resize()
  3785. }
  3786. },
  3787. // 车辆准确率(重量)
  3788. changeStatisticChart4(arr) {
  3789. var arr1 = []
  3790. for (let i = 0; i < arr.length; i++) {
  3791. if (arr[i] !== 'all') {
  3792. arr1.push(arr[i])
  3793. }
  3794. }
  3795. this.tab.chart4.getdataListParm.parammaps.statisticsList = arr1
  3796. var arrData3 = []
  3797. for (let i = 0; i < this.tab.chart4.getdataListParm.parammaps.statisticsList.length; i++) {
  3798. const myId = this.tab.chart4.statisticsList.find(obj => obj.name == this.tab.chart4.getdataListParm.parammaps.statisticsList[i]).id
  3799. for (let j = 0; j < this.tab.chart4.chart4Data3.length; j++) {
  3800. if (j == myId) {
  3801. arrData3.push(this.tab.chart4.chart4Data3[j])
  3802. }
  3803. }
  3804. }
  3805. this.tab.chart4.chartLine_data.data3 = arrData3
  3806. this.tab.chart4.chartLine_data.data1 = this.tab.chart4.getdataListParm.parammaps.statisticsList
  3807. this.roadChartLine4(this.tab.chart4.chartLine_data)
  3808. },
  3809. // 车辆准确率
  3810. getChart4() {
  3811. this.tab.chart4.listLoading = true
  3812. const url = 'authdata/chart/accuracyAllCC'
  3813. const data = {}
  3814. data.parammaps = {}
  3815. if (this.tab.chart4.getdataListParm.parammaps.specificDate == '1') {
  3816. data.parammaps.pastureid = this.tab.chart4.getdataListParm.parammaps.pastureid
  3817. data.parammaps.startTime = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  3818. data.parammaps.stopTime = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  3819. data.parammaps.status = this.tab.chart4.getdataListParm.parammaps.status
  3820. } else {
  3821. data.parammaps.pastureid = this.tab.chart4.getdataListParm.parammaps.pastureid
  3822. data.parammaps.startTime = this.tab.chart4.getdataListParm.parammaps.startTime
  3823. data.parammaps.stopTime = this.tab.chart4.getdataListParm.parammaps.stopTime
  3824. data.parammaps.status = this.tab.chart4.getdataListParm.parammaps.status
  3825. }
  3826. postJson(url, data).then(response => {
  3827. if (response.data !== null && response.data.list !== null && response.data.data !== null) {
  3828. for (let i = 0; i < response.data.data.length; i++) {
  3829. if (response.data.data[i].理论量 !== '' && response.data.data[i].理论量 !== undefined) {
  3830. response.data.data[i].理论量 = parseFloat(response.data.data[i].理论量)
  3831. }
  3832. if (response.data.data[i].实际量 !== '' && response.data.data[i].实际量 !== undefined) {
  3833. response.data.data[i].实际量 = parseFloat(response.data.data[i].实际量)
  3834. }
  3835. if (response.data.data[i].准确率 !== '' && response.data.data[i].准确率 !== undefined) {
  3836. response.data.data[i].准确率 = parseFloat(response.data.data[i].准确率) + '%'
  3837. }
  3838. }
  3839. this.tab.chart4.table.list = response.data.data
  3840. this.tab.chart4.chartLine_data = response.data.list
  3841. this.tab.chart4.total = response.data.total
  3842. this.tab.chart4.statisticsList = []
  3843. this.tab.chart4.getdataListParm.parammaps.statisticsList = []
  3844. for (let i = 0; i < response.data.list.data1.length; i++) {
  3845. // if (i < 10) {
  3846. this.tab.chart4.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
  3847. // }
  3848. var obj = {}
  3849. obj.id = i
  3850. obj.name = response.data.list.data1[i]
  3851. this.tab.chart4.statisticsList.push(obj)
  3852. }
  3853. this.tab.chart4.chart4Data3 = response.data.list.data3
  3854. this.tab.chart4.total = response.data.total
  3855. console.log('车辆准确率(重量)图', this.tab.chart4.chartLine_data)
  3856. console.log('车辆准确率(重量)表', this.tab.chart4.table.list)
  3857. var arrData3 = []
  3858. for (let i = 0; i < this.tab.chart4.getdataListParm.parammaps.statisticsList.length; i++) {
  3859. const myId = this.tab.chart4.statisticsList.find(obj => obj.name == this.tab.chart4.getdataListParm.parammaps.statisticsList[i]).id
  3860. for (let j = 0; j < this.tab.chart4.chart4Data3.length; j++) {
  3861. if (j == myId) {
  3862. arrData3.push(this.tab.chart4.chart4Data3[j])
  3863. }
  3864. }
  3865. }
  3866. this.tab.chart4.chartLine_data.data3 = arrData3
  3867. this.tab.chart4.chartLine_data.data1 = this.tab.chart4.getdataListParm.parammaps.statisticsList
  3868. this.roadChartLine4(this.tab.chart4.chartLine_data)
  3869. } else {
  3870. this.tab.chart4.list = []
  3871. }
  3872. setTimeout(() => {
  3873. this.tab.chart4.listLoading = false
  3874. }, 100)
  3875. })
  3876. },
  3877. roadChartLine4(chartLine_data) {
  3878. if (this.tab.chart4.chartLine != null) {
  3879. this.tab.chart4.chartLine.dispose()
  3880. }
  3881. this.tab.chart4.chartLine = echarts.init(document.getElementById('chartLine4'),null,{renderer: "svg"})
  3882. var option = {
  3883. title: {
  3884. text: ''
  3885. },
  3886. tooltip: {
  3887. trigger: 'axis'
  3888. },
  3889. legend: {
  3890. data: chartLine_data.data1,
  3891. right: 10, show: true, type: 'scroll'
  3892. },
  3893. grid: {
  3894. top: '20%',
  3895. left: '5%',
  3896. right: '8%',
  3897. containLabel: true
  3898. },
  3899. toolbox: {
  3900. show: true,
  3901. right: '2%',
  3902. feature: {}
  3903. },
  3904. xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
  3905. yAxis: {
  3906. min:0, //取0为最小刻度
  3907. max: 100, //取100为最大刻度
  3908. min:'min', //取最小值为最小刻度
  3909. max: 'max', //取最大值为最大刻度
  3910. min: function(value) {//取最小值向下取整为最小刻度
  3911. return Math.floor(value.min)
  3912. },
  3913. max: function(value) {//取最大值向上取整为最大刻度
  3914. return Math.ceil(value.max)
  3915. },
  3916. type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
  3917. },
  3918. series: (function() {
  3919. var serie = []
  3920. for (var i = 0; i < chartLine_data.data3.length; i++) {
  3921. var item = {
  3922. name: chartLine_data.data1[i],
  3923. type: 'line',
  3924. data: chartLine_data.data3[i].data
  3925. }
  3926. serie.push(item)
  3927. }
  3928. return serie
  3929. }())
  3930. }
  3931. this.tab.chart4.chartLine.setOption(option)
  3932. window.onresize = ()=> {
  3933. this.tab.chart4.chartLine.resize()
  3934. }
  3935. },
  3936. // 混料统计
  3937. getChart5() {
  3938. this.tab.chart5.listLoading = true
  3939. const url = 'authdata/chart/accuracyAllHL'
  3940. const data = {}
  3941. data.parammaps = {}
  3942. if (this.tab.chart5.getdataListParm.parammaps.specificDate == '1') {
  3943. data.parammaps.pastureid = this.tab.chart5.getdataListParm.parammaps.pastureid
  3944. data.parammaps.startTime = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  3945. data.parammaps.stopTime = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  3946. data.parammaps.status = this.tab.chart5.getdataListParm.parammaps.status
  3947. } else {
  3948. data.parammaps.pastureid = this.tab.chart5.getdataListParm.parammaps.pastureid
  3949. data.parammaps.startTime = this.tab.chart5.getdataListParm.parammaps.startTime
  3950. data.parammaps.stopTime = this.tab.chart5.getdataListParm.parammaps.stopTime
  3951. data.parammaps.status = this.tab.chart5.getdataListParm.parammaps.status
  3952. }
  3953. postJson(url, data).then(response => {
  3954. if (response.data !== null && response.data.list !== null && response.data.data !== null) {
  3955. for (let i = 0; i < response.data.data.length; i++) {
  3956. if (response.data.data[i].field1 !== '' && response.data.data[i].field1 !== undefined) {
  3957. response.data.data[i].field1 = parseFloat(response.data.data[i].field1)
  3958. }
  3959. if (response.data.data[i].field2 !== '' && response.data.data[i].field2 !== undefined) {
  3960. response.data.data[i].field2 = parseFloat(response.data.data[i].field2)
  3961. }
  3962. if (response.data.data[i].理论自动 !== '' && response.data.data[i].理论自动 !== undefined) {
  3963. response.data.data[i].理论自动 = parseFloat(response.data.data[i].理论自动)
  3964. }
  3965. if (response.data.data[i].实际自动 !== '' && response.data.data[i].实际自动 !== undefined) {
  3966. response.data.data[i].实际自动 = parseFloat(response.data.data[i].实际自动)
  3967. }
  3968. if (response.data.data[i].field3 !== '' && response.data.data[i].field3 !== undefined) {
  3969. response.data.data[i].field3 = parseFloat(response.data.data[i].field3)
  3970. }
  3971. if (response.data.data[i].理论手动 !== '' && response.data.data[i].理论手动 !== undefined) {
  3972. response.data.data[i].理论手动 = parseFloat(response.data.data[i].理论手动)
  3973. }
  3974. if (response.data.data[i].实际手动 !== '' && response.data.data[i].实际手动 !== undefined) {
  3975. response.data.data[i].实际手动 = parseFloat(response.data.data[i].实际手动)
  3976. }
  3977. if (response.data.data[i].field4 !== '' && response.data.data[i].field4 !== undefined) {
  3978. response.data.data[i].field4 = parseFloat(response.data.data[i].field4)
  3979. }
  3980. }
  3981. this.tab.chart5.table.list = response.data.data
  3982. this.tab.chart5.chartLine_data = response.data.list
  3983. this.tab.chart5.total = response.data.total
  3984. console.log('混料统计图', this.tab.chart5.chartLine_data)
  3985. console.log('混料统计表', this.tab.chart5.table.list)
  3986. this.roadChartLine5(this.tab.chart5.chartLine_data)
  3987. } else {
  3988. this.tab.chart5.list = []
  3989. }
  3990. setTimeout(() => {
  3991. this.tab.chart5.listLoading = false
  3992. }, 100)
  3993. })
  3994. },
  3995. roadChartLine5(chartLine_data) {
  3996. if (this.tab.chart5.chartLine != null) {
  3997. this.tab.chart5.chartLine.dispose()
  3998. }
  3999. this.tab.chart5.chartLine = echarts.init(document.getElementById('chartLine5'),null,{renderer: "svg"})
  4000. var option = {
  4001. tooltip: {
  4002. trigger: 'axis',
  4003. axisPointer: {
  4004. type: 'cross',
  4005. crossStyle: {
  4006. color: '#999'
  4007. }
  4008. }
  4009. },
  4010. toolbox: {
  4011. feature: {}
  4012. },
  4013. legend: {
  4014. data: ['自动跳转次数', '手动跳转次数', '自动跳转准确率', '手动跳转准确率']
  4015. },
  4016. grid: {
  4017. top: '20%',
  4018. left: '5%',
  4019. right: '8%',
  4020. containLabel: true
  4021. },
  4022. xAxis: [
  4023. {
  4024. type: 'category',
  4025. data: chartLine_data.data1,
  4026. axisPointer: {
  4027. type: 'shadow'
  4028. }
  4029. }
  4030. ],
  4031. yAxis: [
  4032. {
  4033. splitLine: { show: false }, type: 'value',
  4034. name: '跳转次数',
  4035. axisLabel: {
  4036. formatter: '{value}'
  4037. }
  4038. },
  4039. {
  4040. splitLine: { show: false }, type: 'value',
  4041. name: '混料准确率',
  4042. min: 0,
  4043. max: 100,
  4044. interval: 10,
  4045. axisLabel: {
  4046. formatter: '{value} %'
  4047. }
  4048. }
  4049. ],
  4050. series: [
  4051. {
  4052. name: '自动跳转次数',
  4053. type: 'bar',
  4054. data: chartLine_data.data2
  4055. },
  4056. {
  4057. name: '手动跳转次数',
  4058. type: 'bar',
  4059. data: chartLine_data.data3
  4060. },
  4061. {
  4062. name: '自动跳转准确率',
  4063. type: 'line',
  4064. yAxisIndex: 1,
  4065. data: chartLine_data.data4
  4066. },
  4067. {
  4068. name: '手动跳转准确率',
  4069. type: 'line',
  4070. yAxisIndex: 1,
  4071. data: chartLine_data.data5
  4072. }
  4073. ]
  4074. }
  4075. this.tab.chart5.chartLine.setOption(option)
  4076. window.onresize = ()=> {
  4077. this.tab.chart5.chartLine.resize()
  4078. }
  4079. },
  4080. // 混料计划取消次数
  4081. getChart6() {
  4082. this.tab.chart6.listLoading = true
  4083. const url = 'authdata/chart/accuracyAllQX'
  4084. const data = {}
  4085. data.parammaps = {}
  4086. if (this.tab.chart6.getdataListParm.parammaps.specificDate == '1') {
  4087. data.parammaps.pastureid = this.tab.chart6.getdataListParm.parammaps.pastureid
  4088. data.parammaps.startTime = parseTime(this.tab.chart6.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  4089. data.parammaps.stopTime = parseTime(this.tab.chart6.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  4090. data.parammaps.status = this.tab.chart6.getdataListParm.parammaps.status
  4091. } else {
  4092. data.parammaps.pastureid = this.tab.chart6.getdataListParm.parammaps.pastureid
  4093. data.parammaps.startTime = this.tab.chart6.getdataListParm.parammaps.startTime
  4094. data.parammaps.stopTime = this.tab.chart6.getdataListParm.parammaps.stopTime
  4095. data.parammaps.status = this.tab.chart6.getdataListParm.parammaps.status
  4096. }
  4097. postJson(url, data).then(response => {
  4098. if (response.data !== null && response.data.list !== null && response.data.data !== null) {
  4099. for (let i = 0; i < response.data.data.length; i++) {
  4100. if (response.data.data[i].field1 !== '' && response.data.data[i].field1 !== undefined) {
  4101. response.data.data[i].field1 = parseFloat(response.data.data[i].field1)
  4102. }
  4103. }
  4104. this.tab.chart6.table.list = response.data.data
  4105. this.tab.chart6.chartLine_data = response.data.list
  4106. this.tab.chart6.total = response.data.total
  4107. console.log('混料计划取消次数图', this.tab.chart6.chartLine_data)
  4108. console.log('混料计划取消次数表', this.tab.chart6.table.list)
  4109. this.roadChartLine6(this.tab.chart6.chartLine_data)
  4110. } else {
  4111. this.tab.chart6.list = []
  4112. }
  4113. setTimeout(() => {
  4114. this.tab.chart6.listLoading = false
  4115. }, 100)
  4116. })
  4117. },
  4118. roadChartLine6(chartLine_data) {
  4119. if (this.tab.chart6.chartLine != null) {
  4120. this.tab.chart6.chartLine.dispose()
  4121. }
  4122. this.tab.chart6.chartLine = echarts.init(document.getElementById('chartLine6'),null,{renderer: "svg"})
  4123. var option = {
  4124. color: ['#3398DB'],
  4125. tooltip: {
  4126. trigger: 'axis',
  4127. axisPointer: { // 坐标轴指示器,坐标轴触发有效
  4128. type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  4129. }
  4130. },
  4131. legend: {
  4132. data: ['取消次数'],
  4133. right: 10, show: true, type: 'scroll'
  4134. },
  4135. grid: {
  4136. top: '20%',
  4137. left: '5%',
  4138. right: '8%',
  4139. containLabel: true
  4140. },
  4141. xAxis: [
  4142. {
  4143. name: '日期',
  4144. type: 'category',
  4145. data: chartLine_data.data1,
  4146. axisTick: {
  4147. alignWithLabel: true
  4148. }
  4149. }
  4150. ],
  4151. yAxis: [
  4152. {
  4153. name: '次数',
  4154. interval: 1, // 会出现负数刻度
  4155. min: 0,
  4156. type: 'value'
  4157. }
  4158. ],
  4159. series: [
  4160. {
  4161. name: '取消次数',
  4162. type: 'bar',
  4163. barWidth: '60%',
  4164. data: chartLine_data.data2
  4165. }
  4166. ]
  4167. }
  4168. this.tab.chart6.chartLine.setOption(option)
  4169. window.onresize = ()=> {
  4170. this.tab.chart6.chartLine.resize()
  4171. }
  4172. },
  4173. changeformula(){
  4174. this.getChart7()
  4175. },
  4176. // 栏舍撒料时间统计
  4177. changeStatisticChart7(arr) {
  4178. console.log(arr,'arr')
  4179. var arr1 = []
  4180. for (let i = 0; i < arr.length; i++) {
  4181. if (arr[i] !== 'all') {
  4182. arr1.push(arr[i])
  4183. }
  4184. }
  4185. this.tab.chart7.getdataListParm.parammaps.statisticsList = arr1
  4186. var arrData3 = []
  4187. for (let i = 0; i < this.tab.chart7.getdataListParm.parammaps.statisticsList.length; i++) {
  4188. const myId = this.tab.chart7.statisticsList.find(obj => obj.name == this.tab.chart7.getdataListParm.parammaps.statisticsList[i]).id
  4189. for (let j = 0; j < this.tab.chart7.chart7Data3.length; j++) {
  4190. if (j == myId) {
  4191. arrData3.push(this.tab.chart7.chart7Data3[j])
  4192. }
  4193. }
  4194. }
  4195. this.tab.chart7.chartLine_data.data3 = arrData3
  4196. this.tab.chart7.chartLine_data.data1 = this.tab.chart7.getdataListParm.parammaps.statisticsList
  4197. // console.log(this.tab.chart7.getdataListParm.parammaps.statisticsList,'我要看到v-model')
  4198. // console.log(JSON.parse(this.tab.chart7.statisticsList),'我要看的下拉数据')
  4199. // console.log(JSON.stringify(this.tab.chart7.statisticsList),'我要看的下拉数据')
  4200. this.roadChartLine7(this.tab.chart7.chartLine_data)
  4201. },
  4202. handleScroll() {
  4203. // 获取滚动容器的DOM元素
  4204. const scrollContainer = this.$refs.scrollContainer;
  4205. // 计算滚动条距离底部的距离
  4206. const distanceToBottom = scrollContainer.scrollHeight - (scrollContainer.scrollTop + scrollContainer.clientHeight);
  4207. // 如果滚动条已经滚到最下方
  4208. if (distanceToBottom === 0) {
  4209. console.log('滚动条已经滚到最下方');
  4210. this.getChart7()
  4211. // 在这里可以执行相应的操作
  4212. }
  4213. },
  4214. getChart7() {
  4215. this.tab.chart7.listLoading = true
  4216. const url = 'authdata/chart/accuracyAllLS'
  4217. const data = {}
  4218. data.parammaps = {}
  4219. if (this.tab.chart7.getdataListParm.parammaps.specificDate == '1') {
  4220. data.parammaps.pastureid = this.tab.chart7.getdataListParm.parammaps.pastureid
  4221. data.parammaps.startTime = parseTime(this.tab.chart7.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  4222. data.parammaps.stopTime = parseTime(this.tab.chart7.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  4223. data.parammaps.status = this.tab.chart7.getdataListParm.parammaps.status
  4224. data.parammaps.ftId = this.tab.chart7.getdataListParm.parammaps.ftId.join(",")
  4225. } else {
  4226. data.parammaps.pastureid = this.tab.chart7.getdataListParm.parammaps.pastureid
  4227. data.parammaps.startTime = this.tab.chart7.getdataListParm.parammaps.startTime
  4228. data.parammaps.stopTime = this.tab.chart7.getdataListParm.parammaps.stopTime
  4229. data.parammaps.status = this.tab.chart7.getdataListParm.parammaps.status
  4230. data.parammaps.ftId = this.tab.chart7.getdataListParm.parammaps.ftId.join(",")
  4231. }
  4232. postJson(url, data).then(response => {
  4233. if (response.data !== null && response.data.list !== null && response.data.data !== null) {
  4234. for (let i = 0; i < response.data.data.length; i++) {
  4235. // 撒料时间
  4236. var b = []
  4237. for (let j = 0; j <= response.data.data[i].准确率.length; j++) {
  4238. // console.log(response.data.data[i].准确率)
  4239. if (response.data.data[i].准确率.charAt(j) == '.') {
  4240. b[j] = response.data.data[i].准确率.replace('.', ':')
  4241. }
  4242. }
  4243. response.data.data[i].准确率 = b[b.length - 1]
  4244. response.data.data[i].撒料时间 = response.data.data[i].准确率
  4245. }
  4246. this.tab.chart7.table.list = response.data.data
  4247. this.tab.chart7.chartLine_data = response.data.list
  4248. this.tab.chart7.statisticsList = []
  4249. this.tab.chart7.getdataListParm.parammaps.statisticsList = []
  4250. for (let i = 0; i < response.data.list.data1.length; i++) {
  4251. // 君盛
  4252. // if (i < 10) {
  4253. // this.tab.chart7.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
  4254. // }
  4255. // 其他牧场
  4256. this.tab.chart7.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
  4257. var obj = {}
  4258. obj.id = i
  4259. obj.name = response.data.list.data1[i]
  4260. this.tab.chart7.statisticsList.push(obj)
  4261. }
  4262. console.log("------->",this.tab.chart7)
  4263. this.tab.chart7.chart7Data3 = response.data.list.data3
  4264. this.tab.chart7.total = response.data.total
  4265. console.log('栏舍撒料时间统计图', this.tab.chart7.chartLine_data)
  4266. console.log('栏舍撒料时间统计表', this.tab.chart7.table.list)
  4267. var arrData3 = []
  4268. for (let i = 0; i < this.tab.chart7.getdataListParm.parammaps.statisticsList.length; i++) {
  4269. const myId = this.tab.chart7.statisticsList.find(obj => obj.name == this.tab.chart7.getdataListParm.parammaps.statisticsList[i]).id
  4270. for (let j = 0; j < this.tab.chart7.chart7Data3.length; j++) {
  4271. if (j == myId) {
  4272. arrData3.push(this.tab.chart7.chart7Data3[j])
  4273. }
  4274. }
  4275. }
  4276. this.tab.chart7.chartLine_data.data3 = arrData3
  4277. this.tab.chart7.chartLine_data.data1 = this.tab.chart7.getdataListParm.parammaps.statisticsList
  4278. // console.log(this.tab.chart7.getdataListParm.parammaps.statisticsList,'我要看到v-model')
  4279. // console.log(JSON.stringify(this.tab.chart7.statisticsList),'我要看的下拉数据')
  4280. this.roadChartLine7(this.tab.chart7.chartLine_data)
  4281. } else {
  4282. this.tab.chart7.list = []
  4283. }
  4284. setTimeout(() => {
  4285. this.tab.chart7.listLoading = false
  4286. }, 100)
  4287. })
  4288. },
  4289. roadChartLine7(chartLine_data) {
  4290. console.log(chartLine_data,'chartLine_data777')
  4291. if (this.tab.chart7.chartLine != null) {
  4292. this.tab.chart7.chartLine.dispose()
  4293. }
  4294. this.tab.chart7.chartLine = echarts.init(document.getElementById('chartLine7'),null,{renderer: "svg"})
  4295. var option = {
  4296. useWorker: true,
  4297. title: {
  4298. text: ''
  4299. },
  4300. tooltip: {
  4301. trigger: 'axis',
  4302. formatter: function(params) {
  4303. // console.log(params)
  4304. var tip = params[0].name
  4305. if(params !== null && params !== ''){
  4306. for (let i = 0; i < params.length; i++) {
  4307. var b = []
  4308. // var str = params[i].value
  4309. for (let j = 0; j <= params[i].value.length; j++) {
  4310. if (params[i].value !== '') {
  4311. if (params[i].value.charAt(j) == '.') {
  4312. b[j] = params[i].value.replace('.', ':')
  4313. }
  4314. } else {
  4315. b[j] = ''
  4316. }
  4317. }
  4318. tip += '<br>' + params[i].seriesName + ': ' + b[b.length - 1]
  4319. }
  4320. }
  4321. return tip
  4322. }
  4323. },
  4324. legend: {
  4325. data: chartLine_data.data1,
  4326. top:10,right: 10, show: true, type: 'scroll'
  4327. },
  4328. grid: {
  4329. top: '15%',
  4330. left: '5%',
  4331. right: '8%',
  4332. containLabel: true
  4333. },
  4334. toolbox: {
  4335. show: true,
  4336. right: '2%',
  4337. feature: {}
  4338. },
  4339. xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
  4340. yAxis: [{
  4341. type: '',
  4342. name: '时间',
  4343. mix: 0,
  4344. max: 24,
  4345. interval: 2,
  4346. axisLabel: {
  4347. formatter: function(value) {
  4348. var texts = []
  4349. if (value < 10) {
  4350. texts.push('0' + value + ':00')
  4351. } else {
  4352. texts.push(value + ':00')
  4353. }
  4354. return texts
  4355. }
  4356. }
  4357. }],
  4358. series: (function() {
  4359. var serie = []
  4360. for (var i = 0; i < chartLine_data.data3.length; i++) {
  4361. var item = {
  4362. name: chartLine_data.data1[i],
  4363. type: 'line',
  4364. data: chartLine_data.data3[i].data
  4365. }
  4366. serie.push(item)
  4367. }
  4368. return serie
  4369. }())
  4370. }
  4371. this.tab.chart7.chartLine.setOption(option)
  4372. if (this.tab.chart7.chartLine != null) {
  4373. window.onresize = ()=> {
  4374. this.tab.chart7.chartLine.resize()
  4375. }
  4376. }
  4377. },
  4378. // 导出
  4379. handleExport(item) {
  4380. if (item == 'chart1') {
  4381. console.log('配方准确率导出')
  4382. var excelDatasTabChart1 = [
  4383. {
  4384. tHeader: ['日期', '配方名称', '计划重量(kg)', '实际重量(kg)', '准确率'],
  4385. filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
  4386. tableDatas: this.tab.chart1.table.list,
  4387. sheetName: '配方准确率'
  4388. }
  4389. ]
  4390. json2excel(excelDatasTabChart1, '配方准确率', true, 'xlsx')
  4391. } else if (item == 'chart2') {
  4392. console.log('计划统计导出')
  4393. var excelDatasTabChart2 = [
  4394. {
  4395. tHeader: ['日期', '计划执行重量(kg)', '配方理论重量(kg)', '计划准确率', '计划取消重量(kg)', '计划准确率(去除取消重量)', '计划正确数', '计划数', '计划正确率'],
  4396. filterVal: ['日期', '实际量', '理论量', 'field1', '计划取消重量', 'field3', '正确数', '计划数', 'field2'],
  4397. tableDatas: this.tab.chart2.table.list,
  4398. sheetName: '计划统计'
  4399. }
  4400. ]
  4401. json2excel(excelDatasTabChart2, '计划统计', true, 'xlsx')
  4402. } else if (item == 'chart3') {
  4403. console.log('牛群准确率导出')
  4404. var excelDatasTabChart3 = [
  4405. {
  4406. tHeader: ['日期', '牲畜类别', '计划重量(kg)', '实际重量(kg)', '准确率'],
  4407. filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
  4408. tableDatas: this.tab.chart3.table.list,
  4409. sheetName: '牛群准确率'
  4410. }
  4411. ]
  4412. json2excel(excelDatasTabChart3, '牛群准确率', true, 'xlsx')
  4413. } else if (item == 'chart4') {
  4414. console.log('车辆准确率(重量)导出')
  4415. var excelDatasTabChart4 = [
  4416. {
  4417. tHeader: ['日期', '车次', '计划重量(kg)', '实际重量(kg)', '准确率'],
  4418. filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
  4419. tableDatas: this.tab.chart4.table.list,
  4420. sheetName: '车辆准确率(重量)'
  4421. }
  4422. ]
  4423. json2excel(excelDatasTabChart4, '车辆准确率(重量)', true, 'xlsx')
  4424. } else if (item == 'chart5') {
  4425. console.log('混料统计导出')
  4426. var excelDatasTabChart5 = [
  4427. {
  4428. tHeader: ['日期', '自动跳转次数', '手动跳转次数', '自动跳转理论重量', '自动跳转实际重量', '自动跳转准确率', '手动跳转理论重量', '手动跳转实际重量', '手动跳转准确率'],
  4429. filterVal: ['日期', 'field1', 'field2', '理论自动', '实际自动', 'field3', '理论手动', '实际手动', 'field4'],
  4430. tableDatas: this.tab.chart5.table.list,
  4431. sheetName: '混料统计'
  4432. }
  4433. ]
  4434. json2excel(excelDatasTabChart5, '混料统计', true, 'xlsx')
  4435. } else if (item == 'chart6') {
  4436. console.log('混料计划取消次数导出')
  4437. var excelDatasTabChart6 = [
  4438. {
  4439. tHeader: ['日期', '混料计划取消次数'],
  4440. filterVal: ['日期', 'field1'],
  4441. tableDatas: this.tab.chart6.table.list,
  4442. sheetName: '混料计划取消次数'
  4443. }
  4444. ]
  4445. json2excel(excelDatasTabChart6, '混料计划取消次数', true, 'xlsx')
  4446. } else if (item == 'chart7') {
  4447. console.log('栏舍撒料时间统计导出')
  4448. var excelDatasTabChart7 = [
  4449. {
  4450. tHeader: ['日期', '栏舍', '撒料时间'],
  4451. filterVal: ['日期', 'fname', '准确率'],
  4452. tableDatas: this.tab.chart7.table.list,
  4453. sheetName: '栏舍撒料时间统计'
  4454. }
  4455. ]
  4456. json2excel(excelDatasTabChart7, '栏舍撒料时间统计', true, 'xlsx')
  4457. }
  4458. },
  4459. // 切换表格
  4460. handleTable(item) {
  4461. // 显示切换表格
  4462. if (item == 'chart1') {
  4463. console.log('配方准确率表格')
  4464. this.tab.chart1.isTable = true
  4465. this.tab.chart1.isChart = false
  4466. } else if (item == 'chart2') {
  4467. console.log('计划统计表格')
  4468. this.tab.chart2.isTable = true
  4469. this.tab.chart2.isChart = false
  4470. } else if (item == 'chart3') {
  4471. console.log('牛群准确率表格')
  4472. this.tab.chart3.isTable = true
  4473. this.tab.chart3.isChart = false
  4474. } else if (item == 'chart4') {
  4475. console.log('车辆准确率(重量)表格')
  4476. this.tab.chart4.isTable = true
  4477. this.tab.chart4.isChart = false
  4478. } else if (item == 'chart5') {
  4479. console.log('混料统计表格')
  4480. this.tab.chart5.isTable = true
  4481. this.tab.chart5.isChart = false
  4482. } else if (item == 'chart6') {
  4483. console.log('混料计划取消次数表格')
  4484. this.tab.chart6.isTable = true
  4485. this.tab.chart6.isChart = false
  4486. } else if (item == 'chart7') {
  4487. console.log('栏舍撒料时间统计表格')
  4488. this.tab.chart7.isTable = true
  4489. this.tab.chart7.isChart = false
  4490. }
  4491. },
  4492. // 切换图表
  4493. handleChart(item) {
  4494. // 显示切换图表
  4495. if (item == 'chart1') {
  4496. console.log('配方准确率图表')
  4497. this.tab.chart1.isTable = false
  4498. this.tab.chart1.isChart = true
  4499. this.getChart1()
  4500. } else if (item == 'chart2') {
  4501. console.log('计划统计图表')
  4502. this.tab.chart2.isTable = false
  4503. this.tab.chart2.isChart = true
  4504. this.getChart2()
  4505. } else if (item == 'chart3') {
  4506. console.log('牛群准确率图表')
  4507. this.tab.chart3.isTable = false
  4508. this.tab.chart3.isChart = true
  4509. this.getChart3()
  4510. } else if (item == 'chart4') {
  4511. console.log('车辆准确率(重量)图表')
  4512. this.tab.chart4.isTable = false
  4513. this.tab.chart4.isChart = true
  4514. this.getChart4()
  4515. } else if (item == 'chart5') {
  4516. console.log('混料统计图表')
  4517. this.tab.chart5.isTable = false
  4518. this.tab.chart5.isChart = true
  4519. this.getChart5()
  4520. } else if (item == 'chart6') {
  4521. console.log('混料计划取消次数图表')
  4522. this.tab.chart6.isTable = false
  4523. this.tab.chart6.isChart = true
  4524. this.getChart6()
  4525. } else if (item == 'chart7') {
  4526. console.log('栏舍撒料时间统计图表')
  4527. this.tab.chart7.isTable = false
  4528. this.tab.chart7.isChart = true
  4529. this.getChart7()
  4530. }
  4531. },
  4532. // 混料统计
  4533. getTab2List() {
  4534. this.tab2.table.listLoading = true
  4535. GetDataByName(this.tab2.table.getdataListParm).then(response => {
  4536. if (response.data.list !== null) {
  4537. console.log('混料统计table数据', response.data.list)
  4538. // this.tab2.table.list = response.data.list
  4539. this.$refs.plTable2.reloadData(response.data.list)
  4540. this.tab2.table.total = response.data.total
  4541. } else {
  4542. this.$refs.plTable2.reloadData([])
  4543. this.tab2.table.total = 0
  4544. // this.tab2.table.list = []
  4545. }
  4546. setTimeout(() => {
  4547. this.tab2.table.listLoading = false
  4548. }, 100)
  4549. })
  4550. },
  4551. form_search2() {
  4552. this.tab2.table.getdataListParm.name = 'getStatisticsHL'
  4553. if (this.tab2.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {
  4554. console.log(this.tab2.table.getdataListParm.parammaps.inputDatetime)
  4555. this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  4556. this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  4557. } else {
  4558. this.tab2.table.getdataListParm.parammaps.inputDatetime = ''
  4559. this.tab2.table.getdataListParm.parammaps.startTime = ''
  4560. this.tab2.table.getdataListParm.parammaps.stopTime = ''
  4561. }
  4562. // this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime2, '{y}-{m}-{d}')
  4563. // this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime2, '{y}-{m}-{d}')
  4564. this.tab2.table.getdataListParm.offset = 1
  4565. this.getTab2List()
  4566. this.getTMRNameList2()
  4567. },
  4568. handleRefresh2() {
  4569. this.tab2.table.getdataListParm.parammaps.tmrtname = ''
  4570. this.tab2.table.getdataListParm.parammaps.projname = ''
  4571. this.tab2.table.getdataListParm.parammaps.times = ''
  4572. this.tab2.table.getdataListParm.parammaps.templetname = ''
  4573. this.tab2.table.getdataListParm.parammaps.buttontype = ''
  4574. this.tab2.table.getdataListParm.parammaps.hlwc1 = undefined
  4575. this.tab2.table.getdataListParm.parammaps.hlwc2 = undefined
  4576. this.tab2.table.getdataListParm.parammaps.hlzq1 = undefined
  4577. this.tab2.table.getdataListParm.parammaps.hlzq2 = undefined
  4578. this.tab2.table.getdataListParm.parammaps.hlzql1 = undefined
  4579. this.tab2.table.getdataListParm.parammaps.hlzql2 = undefined
  4580. this.tab2.table.getdataListParm.parammaps.error = false
  4581. this.getTab2List()
  4582. },
  4583. handleExport2() {
  4584. console.log('导出')
  4585. this.exportList.dialogFormVisible = true
  4586. this.exportList.dialogStatus = 'exportList'
  4587. // var excelDatasTab2 = [
  4588. // {
  4589. // tHeader: ['日期', 'TMR名称', '车次', '班次', '配方名称', '饲料', '理论重量', '实际重量', '误差值', '准确率', '计划时间', '开始时间', '结束时间', ' 跳转方式', '开始重量', '结束重量', '搅拌时间'],
  4590. // filterVal: ['日期', 'TMR名称', '车次', '班次', '配方名称', '饲料', '理论重量', '实际重量', '误差值', '准确率', '计划时间', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量', '搅拌时间'],
  4591. // tableDatas: this.tab2.table.list,
  4592. // sheetName: '混料统计'
  4593. // }
  4594. // ]
  4595. // json2excel(excelDatasTab2, '混料统计', true, 'xlsx')
  4596. },
  4597. exportList2(){
  4598. this.isokDisable = true
  4599. var url = 'authdata/GetDataByName'
  4600. var data = {
  4601. 'name':"getStatisticsHL",
  4602. "page":1,"offset":1,"pagecount":"","returntype":"Map",
  4603. "parammaps":{"pastureid":Cookies.get('pastureid'),"startTime":"","stopTime":"","templetname":"","isuse":""}
  4604. }
  4605. data.parammaps.startTime = parseTime(this.exportList.inputDatetime[0],'{y}-{m}-{d}')
  4606. data.parammaps.stopTime = parseTime(this.exportList.inputDatetime[1],'{y}-{m}-{d}')
  4607. data.parammaps.tmrtname = this.tab2.table.getdataListParm.parammaps.tmrtname
  4608. data.parammaps.projname = this.tab2.table.getdataListParm.parammaps.projname
  4609. data.parammaps.times = this.tab2.table.getdataListParm.parammaps.times
  4610. data.parammaps.buttontype = this.tab2.table.getdataListParm.parammaps.buttontype
  4611. data.parammaps.templetname = this.tab2.table.getdataListParm.parammaps.templetname
  4612. data.parammaps.isuse = this.tab2.table.getdataListParm.parammaps.isuse
  4613. postJson(url,data).then(response => {
  4614. var exportList = []
  4615. if (response.data.list !== null) {
  4616. console.log('混料统计table数据', response.data.list)
  4617. exportList = response.data.list
  4618. } else {
  4619. exportList = []
  4620. }
  4621. var excelDatasTab2 = [
  4622. {
  4623. tHeader: ['日期', 'TMR名称', '操作编号','车次', '班次', '配方名称', '饲料', '理论重量', '实际重量', '误差值', '准确率', '计划时间', '开始时间', '结束时间', ' 跳转方式', '开始重量', '结束重量', '搅拌时间','是否达标',],
  4624. filterVal: ['日期', 'TMR名称','sort', '车次', '班次', '配方名称', '饲料', '理论重量', '实际重量', '误差值', '准确率', '计划时间', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量', '搅拌时间','standard'],
  4625. tableDatas: exportList,
  4626. sheetName: '混料统计'
  4627. }
  4628. ]
  4629. json2excel(excelDatasTab2, '混料统计', true, 'xlsx')
  4630. this.isokDisable = false
  4631. this.exportList.dialogFormVisible = false
  4632. })
  4633. },
  4634. // 撒料统计
  4635. getTab3List() {
  4636. this.tab3.table.listLoading = true
  4637. GetDataByName(this.tab3.table.getdataListParm).then(response => {
  4638. console.log('撒料统计table数据', response.data.list)
  4639. if (response.data.list !== null) {
  4640. // this.tab3.table.list = response.data.list
  4641. this.$refs.plTable3.reloadData(response.data.list)
  4642. this.tab3.table.total = response.data.total
  4643. } else {
  4644. // this.tab3.table.list = []
  4645. this.$refs.plTable3.reloadData([])
  4646. this.tab3.table.total = 0
  4647. }
  4648. setTimeout(() => {
  4649. this.tab3.table.listLoading = false
  4650. }, 100)
  4651. })
  4652. },
  4653. form_search3() {
  4654. this.tab3.table.getdataListParm.name = 'getStatisticsSL'
  4655. if (this.tab3.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab3.table.getdataListParm.parammaps.inputDatetime !== null) {
  4656. this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  4657. this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  4658. } else {
  4659. this.tab3.table.getdataListParm.parammaps.inputDatetime = ''
  4660. this.tab3.table.getdataListParm.parammaps.startTime = ''
  4661. this.tab3.table.getdataListParm.parammaps.stopTime = ''
  4662. }
  4663. // this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime2, '{y}-{m}-{d}')
  4664. // this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime2, '{y}-{m}-{d}')
  4665. this.tab3.table.getdataListParm.offset = 1
  4666. this.getTab3List()
  4667. this.getTMRNameList3()
  4668. },
  4669. handleRefresh3() {
  4670. this.tab3.table.getdataListParm.parammaps.tmrtname = ''
  4671. this.tab3.table.getdataListParm.parammaps.projname = ''
  4672. this.tab3.table.getdataListParm.parammaps.times = ''
  4673. this.tab3.table.getdataListParm.parammaps.templetname = ''
  4674. this.tab3.table.getdataListParm.parammaps.buttontype = ''
  4675. this.tab3.table.getdataListParm.parammaps.fname = ''
  4676. this.tab3.table.getdataListParm.parammaps.slwc1 = undefined
  4677. this.tab3.table.getdataListParm.parammaps.slwc2 = undefined
  4678. this.tab3.table.getdataListParm.parammaps.slzq1 = undefined
  4679. this.tab3.table.getdataListParm.parammaps.slzq2 = undefined
  4680. this.tab3.table.getdataListParm.parammaps.slzql1 = undefined
  4681. this.tab3.table.getdataListParm.parammaps.slzql2 = undefined
  4682. this.tab3.table.getdataListParm.parammaps.error = false
  4683. this.getTab3List()
  4684. },
  4685. handleExport3() {
  4686. this.exportList.dialogFormVisible = true
  4687. this.exportList.dialogStatus = 'exportList'
  4688. // var excelDatasTab3 = [
  4689. // {
  4690. // tHeader: ['日期', 'TMR名称', '车次', '班次', '配方名称', '栏舍', '理论重量', '实际重量', '误差值', '准确率', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量', '搅拌时间'],
  4691. // filterVal: ['日期', 'TMR名称', '车次', '班次', '配方名称', '栏舍', '理论重量', '实际重量', '误差值', '准确率', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量', '搅拌时间'],
  4692. // tableDatas: this.tab3.table.list,
  4693. // sheetName: '撒料统计'
  4694. // }
  4695. // ]
  4696. // json2excel(excelDatasTab3, '撒料统计', true, 'xlsx')
  4697. },
  4698. exportList3(){
  4699. this.isokDisable = true
  4700. var url = 'authdata/GetDataByName'
  4701. var data = {
  4702. 'name':"getStatisticsSL",
  4703. "page":1,"offset":1,"pagecount":"","returntype":"Map",
  4704. "parammaps":{"pastureid":Cookies.get('pastureid'),"startTime":"","stopTime":"","templetname":"","isuse":""}
  4705. }
  4706. data.parammaps.startTime = parseTime(this.exportList.inputDatetime[0],'{y}-{m}-{d}')
  4707. data.parammaps.stopTime = parseTime(this.exportList.inputDatetime[1],'{y}-{m}-{d}')
  4708. data.parammaps.tmrtname = this.tab3.table.getdataListParm.parammaps.tmrtname
  4709. data.parammaps.projname = this.tab3.table.getdataListParm.parammaps.projname
  4710. data.parammaps.times = this.tab3.table.getdataListParm.parammaps.times
  4711. data.parammaps.buttontype = this.tab3.table.getdataListParm.parammaps.buttontype
  4712. data.parammaps.templetname = this.tab3.table.getdataListParm.parammaps.templetname
  4713. data.parammaps.isuse = this.tab3.table.getdataListParm.parammaps.isuse
  4714. postJson(url,data).then(response => {
  4715. console.log('混料统计table数据', response.data.list)
  4716. var exportList = []
  4717. if (response.data.list !== null) {
  4718. exportList = response.data.list
  4719. } else {
  4720. exportList = []
  4721. }
  4722. var excelDatasTab3 = [
  4723. {
  4724. tHeader: ['日期', 'TMR名称','操作编号', '车次', '班次', '配方名称', '栏舍', '理论重量', '实际重量', '误差值', '准确率', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量', '搅拌时间','是否达标',],
  4725. filterVal: ['日期', 'TMR名称','sort', '车次', '班次', '配方名称', '栏舍', '理论重量', '实际重量', '误差值', '准确率', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量', '搅拌时间','standard'],
  4726. tableDatas: exportList,
  4727. sheetName: '撒料统计'
  4728. }
  4729. ]
  4730. json2excel(excelDatasTab3, '撒料统计', true, 'xlsx')
  4731. this.isokDisable = false
  4732. this.exportList.dialogFormVisible = false
  4733. })
  4734. },
  4735. handleSee(item,row) {
  4736. if(this.tab.table.getdataListParm.parammaps.error == true){
  4737. this.error = true
  4738. }else{
  4739. this.error = ''
  4740. }
  4741. if(item == 1){
  4742. // 混料
  4743. if (this.tab.radio == 0) {
  4744. this.methodName = 'getDownloadedplanByJsyHL'
  4745. this.optdevice = row.驾驶员
  4746. this.titlefname = '准确性详情——驾驶员:' + row.驾驶员
  4747. }else if (this.tab.radio == 1) {
  4748. this.methodName = 'getDownloadedplanByTemHL'
  4749. this.optdevice = row.配方名称
  4750. this.titlefname = '准确性详情——配方名称:' + row.配方名称
  4751. } else if (this.tab.radio == 2) {
  4752. this.methodName = 'getDownloadedplanByBarHL'
  4753. this.optdevice = row.栏舍名称
  4754. this.titlefname = '准确性详情——栏舍名称:' + row.栏舍名称
  4755. } else if (this.tab.radio == 3) {
  4756. this.methodName = 'getDownloadedplanBySCHL'
  4757. this.optdevice = row.牲畜类别
  4758. this.titlefname = '准确性详情——牲畜类别:' + row.牲畜类别
  4759. } else if (this.tab.radio == 4) {
  4760. this.methodName = 'getDownloadedplanByTrainsHL'
  4761. this.optdevice = row.车次
  4762. this.titlefname = '准确性详情——车次:' + row.车次
  4763. } else if (this.tab.radio == 5) {
  4764. this.methodName = 'getDownloadedplanByTmrHL'
  4765. this.optdevice = row.TMR名称
  4766. this.titlefname = '准确性详情——TMR名称:' + row.TMR名称
  4767. } else if (this.tab.radio == 6) {
  4768. this.methodName = 'getDownloadedplanByFeedHL'
  4769. this.optdevice = row.fname
  4770. this.titlefname = '准确性详情——饲料:' + row.fname
  4771. } else if (this.tab.radio == 7) {
  4772. this.methodName = 'getDownloadedplanByWflHL'
  4773. this.optdevice = row.fname
  4774. this.titlefname = '准确性详情'
  4775. }
  4776. }else{
  4777. // 撒料
  4778. if (this.tab.radio == 0) {
  4779. this.methodName = 'getDownloadedplanByJsySL'
  4780. this.optdevice = row.驾驶员
  4781. this.titlefname = '准确性详情——驾驶员:' + row.驾驶员
  4782. }else if (this.tab.radio == 1) {
  4783. this.methodName = 'getDownloadedplanByTemSL'
  4784. this.optdevice = row.配方名称
  4785. this.titlefname = '准确性详情——配方名称:' + row.配方名称
  4786. } else if (this.tab.radio == 2) {
  4787. this.methodName = 'getDownloadedplanByBarSL'
  4788. this.optdevice = row.栏舍名称
  4789. this.titlefname = '准确性详情——栏舍名称:' + row.栏舍名称
  4790. } else if (this.tab.radio == 3) {
  4791. this.methodName = 'getDownloadedplanBySCSL'
  4792. this.optdevice = row.牲畜类别
  4793. this.titlefname = '准确性详情——牲畜类别:' + row.牲畜类别
  4794. } else if (this.tab.radio == 4) {
  4795. this.methodName = 'getDownloadedplanByTrainsSL'
  4796. this.optdevice = row.车次
  4797. this.titlefname = '准确性详情——车次:' + row.车次
  4798. } else if (this.tab.radio == 5) {
  4799. this.methodName = 'getDownloadedplanByTmrSL'
  4800. this.optdevice = row.TMR名称
  4801. this.titlefname = '准确性详情——TMR名称:' + row.TMR名称
  4802. }else if (this.tab.radio == 7) {
  4803. this.methodName = 'getDownloadedplanByWflSL'
  4804. this.optdevice = row.fname
  4805. this.titlefname = '准确性详情'
  4806. }
  4807. }
  4808. console.log(row, 'row')
  4809. // this.rowPid = row.pid
  4810. this.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
  4811. this.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
  4812. this.isShowDialog = true
  4813. },
  4814. getTMRNameList(){
  4815. var data = {}
  4816. data.name = 'getAccuracyMCTmrName'
  4817. data.parammaps = {}
  4818. data.parammaps.pastureid = Cookies.get('pastureid')
  4819. data.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
  4820. data.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
  4821. GetDataByName(data).then(response => {
  4822. if(response.data.list !== null){
  4823. this.tab.TMRNameList = response.data.list
  4824. }else{
  4825. this.tab.TMRNameList = []
  4826. }
  4827. })
  4828. },
  4829. getTMRNameList2(){
  4830. var data = {}
  4831. data.name = 'getAccuracyMCTmrName'
  4832. data.parammaps = {}
  4833. data.parammaps.pastureid = Cookies.get('pastureid')
  4834. data.parammaps.startTime = this.tab2.table.getdataListParm.parammaps.startTime
  4835. data.parammaps.stopTime = this.tab2.table.getdataListParm.parammaps.stopTime
  4836. GetDataByName(data).then(response => {
  4837. if(response.data !== null){
  4838. this.tab2.TMRNameList = response.data.list
  4839. }else{
  4840. this.tab2.TMRNameList = []
  4841. }
  4842. })
  4843. },
  4844. getTMRNameList3(){
  4845. var data = {}
  4846. data.name = 'getAccuracyMCTmrName'
  4847. data.parammaps = {}
  4848. data.parammaps.pastureid = Cookies.get('pastureid')
  4849. data.parammaps.startTime = this.tab3.table.getdataListParm.parammaps.startTime
  4850. data.parammaps.stopTime = this.tab3.table.getdataListParm.parammaps.stopTime
  4851. GetDataByName(data).then(response => {
  4852. if(response.data.list !== null){
  4853. this.tab3.TMRNameList = response.data.list
  4854. }else{
  4855. this.tab3.TMRNameList = []
  4856. }
  4857. })
  4858. },
  4859. clickRecipeName2(row) {
  4860. console.log('点击了混料统计-配方名称',row)
  4861. this.recipeNameTemp2.temp = Object.assign({}, row)
  4862. this.recipeNameTemp2.dialogFormVisible = true
  4863. this.textMap.recipeNameTxt = '配方修改记录——配方:' + row.配方名称
  4864. this.recipeNameTemp2.dialogStatus = 'recipeNameTxt'
  4865. this.recipeNameTemp2.getdataListParm.parammaps.pastureid = Cookies.get('pastureid')
  4866. this.recipeNameTemp2.getdataListParm.parammaps.ftid = row.ftid
  4867. this.recipeNameTemp2.getdataListParm.parammaps.inputDatetime = []
  4868. const start = new Date()
  4869. const end = new Date()
  4870. this.recipeNameTemp2.getdataListParm.parammaps.inputDatetime[0] = parseTime(start.setTime(start.getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}')
  4871. this.recipeNameTemp2.getdataListParm.parammaps.inputDatetime[1] = parseTime(end.setTime(end.getTime()), '{y}-{m}-{d}')
  4872. this.getRecipeNameList2()
  4873. },
  4874. getRecipeNameList2(){
  4875. this.recipeNameTemp2.listLoading = true
  4876. if (this.recipeNameTemp2.getdataListParm.parammaps.inputDatetime == null) {
  4877. this.recipeNameTemp2.getdataListParm.parammaps.inputDatetime = ''
  4878. this.recipeNameTemp2.getdataListParm.parammaps.startdate = ''
  4879. this.recipeNameTemp2.getdataListParm.parammaps.enddate = ''
  4880. } else {
  4881. this.recipeNameTemp2.getdataListParm.parammaps.startdate = this.recipeNameTemp2.getdataListParm.parammaps.inputDatetime[0] + ' 00:00'
  4882. this.recipeNameTemp2.getdataListParm.parammaps.enddate = this.recipeNameTemp2.getdataListParm.parammaps.inputDatetime[1] + ' 23:59'
  4883. }
  4884. const url = 'authdata/feedtemplet/history'
  4885. const data = {
  4886. pastureid:this.recipeNameTemp2.getdataListParm.parammaps.pastureid,
  4887. ftid:this.recipeNameTemp2.getdataListParm.parammaps.ftid,
  4888. startdate:this.recipeNameTemp2.getdataListParm.parammaps.startdate,
  4889. enddate:this.recipeNameTemp2.getdataListParm.parammaps.enddate
  4890. }
  4891. postJson(url, data).then(response => {
  4892. if (response.data !== null && response.data !=='') {
  4893. this.recipeNameTemp2.list = response.data
  4894. } else {
  4895. this.recipeNameTemp2.list = []
  4896. this.recipeNameTemp2.total = 0
  4897. }
  4898. console.log(response.data, 'response.data')
  4899. setTimeout(() => {
  4900. this.recipeNameTemp2.listLoading = false
  4901. }, 100)
  4902. })
  4903. },
  4904. handleRecipeNameSearch2(){
  4905. this.getRecipeNameList2()
  4906. },
  4907. clickSeeFeed(row){
  4908. this.recipeNameTemp3.listLoading = false
  4909. this.recipeNameTemp3.list = row.fit
  4910. this.recipeNameTemp3.temp = Object.assign({}, row)
  4911. this.recipeNameTemp3.dialogFormVisible = true
  4912. this.textMap.recipeNameTxt = '配方饲料修改记录'
  4913. this.recipeNameTemp3.dialogStatus = 'recipeNameTxt'
  4914. const start = new Date()
  4915. const end = new Date()
  4916. this.recipeNameTemp3.getdataListParm.parammaps.inputDatetime = []
  4917. this.recipeNameTemp3.getdataListParm.parammaps.inputDatetime[0] = parseTime(start.setTime(start.getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}')
  4918. this.recipeNameTemp3.getdataListParm.parammaps.inputDatetime[1] = parseTime(end.setTime(end.getTime()), '{y}-{m}-{d}')
  4919. },
  4920. clickFeed2(row) {
  4921. console.log('点击了混料统计-饲料',row)
  4922. this.feedTemp.temp = Object.assign({}, row)
  4923. this.feedTemp.dialogFormVisible = true
  4924. this.textMap.feedTxt = '配方修改记录——饲料:' + row.饲料
  4925. this.feedTemp.dialogStatus = 'feedTxt'
  4926. this.feedTemp.getdataListParm.parammaps.pastureid = row.pastureid
  4927. this.feedTemp.getdataListParm.parammaps.ftid = row.ftid
  4928. this.feedTemp.getdataListParm.parammaps.name = row.饲料
  4929. this.feedTemp.getdataListParm.parammaps.inputDatetime = []
  4930. const start = new Date()
  4931. const end = new Date()
  4932. this.feedTemp.getdataListParm.parammaps.inputDatetime[0] = parseTime(start.setTime(start.getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}')
  4933. this.feedTemp.getdataListParm.parammaps.inputDatetime[1] = parseTime(end.setTime(end.getTime()), '{y}-{m}-{d}')
  4934. this.getFeedList()
  4935. },
  4936. getFeedList(){
  4937. this.feedTemp.listLoading = true
  4938. if (this.feedTemp.getdataListParm.parammaps.inputDatetime == null) {
  4939. this.feedTemp.getdataListParm.parammaps.inputDatetime = ''
  4940. this.feedTemp.getdataListParm.parammaps.startTime = ''
  4941. this.feedTemp.getdataListParm.parammaps.stopTime = ''
  4942. } else {
  4943. this.feedTemp.getdataListParm.parammaps.startTime = this.feedTemp.getdataListParm.parammaps.inputDatetime[0] +' 00:00'
  4944. this.feedTemp.getdataListParm.parammaps.stopTime = this.feedTemp.getdataListParm.parammaps.inputDatetime[1] +' 23:59'
  4945. }
  4946. const url = 'authdata/GetDataByName'
  4947. const data = {
  4948. name:'getFitistoryByName',
  4949. page: this.feedTemp.getdataListParm.page,
  4950. offset: this.feedTemp.getdataListParm.offset,
  4951. pagecount: this.feedTemp.getdataListParm.pagecount,
  4952. returntype: this.feedTemp.getdataListParm.returntype,
  4953. parammaps: this.feedTemp.getdataListParm.parammaps
  4954. }
  4955. postJson(url, data).then(response => {
  4956. if (response.data.list !== null && response.data.list !== '') {
  4957. for (let i = 0; i < response.data.list.length; i++) {
  4958. if (response.data.list[i].arrList == null) {
  4959. this.$set(response.data.list[i], 'arrList', [])
  4960. }
  4961. }
  4962. this.feedTemp.list = response.data.list
  4963. this.feedTemp.pageNum = response.data.pageNum
  4964. this.feedTemp.pageSize = response.data.pageSize
  4965. this.feedTemp.total = response.data.total
  4966. } else {
  4967. this.feedTemp.list = []
  4968. this.feedTemp.total = 0
  4969. }
  4970. console.log(response.data, 'response.data')
  4971. setTimeout(() => {
  4972. this.feedTemp.listLoading = false
  4973. }, 100)
  4974. })
  4975. },
  4976. handleFeedSearch(){
  4977. this.getFeedList()
  4978. },
  4979. clickRecipeName3(row) {
  4980. console.log('点击了撒料统计-配方名称',row)
  4981. this.recipeNameTemp2.temp = Object.assign({}, row)
  4982. this.recipeNameTemp2.dialogFormVisible = true
  4983. this.textMap.recipeNameTxt = '配方修改记录——配方:' + row.配方名称
  4984. this.recipeNameTemp2.dialogStatus = 'recipeNameTxt'
  4985. this.recipeNameTemp2.getdataListParm.parammaps.pastureid = Cookies.get('pastureid')
  4986. this.recipeNameTemp2.getdataListParm.parammaps.ftid = row.ftid
  4987. const start = new Date()
  4988. const end = new Date()
  4989. this.recipeNameTemp2.getdataListParm.parammaps.inputDatetime = []
  4990. this.recipeNameTemp2.getdataListParm.parammaps.inputDatetime[0] = parseTime(start.setTime(start.getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}')
  4991. this.recipeNameTemp2.getdataListParm.parammaps.inputDatetime[1] = parseTime(end.setTime(end.getTime()), '{y}-{m}-{d}')
  4992. this.getRecipeNameList2()
  4993. },
  4994. getRecipeNameList3(){
  4995. this.recipeNameTemp3.listLoading = true
  4996. if (this.recipeNameTemp3.getdataListParm.parammaps.inputDatetime == null) {
  4997. this.recipeNameTemp3.getdataListParm.parammaps.inputDatetime = ''
  4998. this.recipeNameTemp3.getdataListParm.parammaps.startTime = ''
  4999. this.recipeNameTemp3.getdataListParm.parammaps.stopTime = ''
  5000. } else {
  5001. this.recipeNameTemp3.getdataListParm.parammaps.startTime = this.recipeNameTemp3.getdataListParm.parammaps.inputDatetime[0] + ' 00:00'
  5002. this.recipeNameTemp3.getdataListParm.parammaps.stopTime = this.recipeNameTemp3.getdataListParm.parammaps.inputDatetime[1] + ' 23:59'
  5003. }
  5004. const url = 'authdata/GetArrList'
  5005. const data = {
  5006. name:'getFitHistory1',
  5007. name1:'getFitHistory2',
  5008. page:this.recipeNameTemp3.getdataListParm.page,
  5009. offset:this.recipeNameTemp3.getdataListParm.offset,
  5010. pagecount:this.recipeNameTemp3.getdataListParm.pagecount,
  5011. returntype:this.recipeNameTemp3.getdataListParm.returntype,
  5012. parammaps:this.recipeNameTemp3.getdataListParm.parammaps
  5013. }
  5014. postJson(url, data).then(response => {
  5015. if (response.data.list !== null && response.data.list !=='') {
  5016. for (let i = 0; i < response.data.list.length; i++) {
  5017. if (response.data.list[i].arrList == null) {
  5018. this.$set(response.data.list[i], 'arrList', [])
  5019. }
  5020. }
  5021. this.recipeNameTemp3.list = response.data.list
  5022. this.recipeNameTemp3.pageNum = response.data.pageNum
  5023. this.recipeNameTemp3.pageSize = response.data.pageSize
  5024. this.recipeNameTemp3.total = response.data.total
  5025. } else {
  5026. this.recipeNameTemp3.list = []
  5027. this.recipeNameTemp3.total = 0
  5028. }
  5029. console.log(response.data, 'response.data')
  5030. setTimeout(() => {
  5031. this.recipeNameTemp3.listLoading = false
  5032. }, 100)
  5033. })
  5034. },
  5035. handleRecipeNameSearch3(){
  5036. this.getRecipeNameList2()
  5037. },
  5038. clickFence3(row) {
  5039. console.log('点击了撒料统计-栏舍',row)
  5040. this.fenceTemp.temp = Object.assign({}, row)
  5041. this.fenceTemp.dialogFormVisible = true
  5042. this.textMap.fenceTxt = '配方修改记录——栏舍:' + row.栏舍
  5043. this.fenceTemp.dialogStatus = 'fenceTxt'
  5044. this.fenceTemp.activeName = 'first'
  5045. this.fenceTemp.tab1.getdataListParm.parammaps.barname = row.栏舍
  5046. this.fenceTemp.tab2.getdataListParm.parammaps.barname = row.栏舍
  5047. this.fenceTemp.tab1.getdataListParm.parammaps.inputDatetime = []
  5048. const start = new Date()
  5049. const end = new Date()
  5050. this.fenceTemp.tab1.getdataListParm.parammaps.inputDatetime[0] = parseTime(start.setTime(start.getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}')
  5051. this.fenceTemp.tab1.getdataListParm.parammaps.inputDatetime[1] = parseTime(end.setTime(end.getTime()), '{y}-{m}-{d}')
  5052. this.getFenceList1()
  5053. },
  5054. getFenceList1(){
  5055. this.fenceTemp.tab1.listLoading = true
  5056. this.fenceTemp.tab1.getdataListParm.parammaps.fitid = this.fenceTemp.temp.id
  5057. if (this.fenceTemp.tab1.getdataListParm.parammaps.inputDatetime == null) {
  5058. this.fenceTemp.tab1.getdataListParm.parammaps.inputDatetime = ''
  5059. this.fenceTemp.tab1.getdataListParm.parammaps.startDate = ''
  5060. this.fenceTemp.tab1.getdataListParm.parammaps.endDate = ''
  5061. } else {
  5062. this.fenceTemp.tab1.getdataListParm.parammaps.startDate = this.fenceTemp.tab1.getdataListParm.parammaps.inputDatetime[0]+' 00:00'
  5063. this.fenceTemp.tab1.getdataListParm.parammaps.endDate = this.fenceTemp.tab1.getdataListParm.parammaps.inputDatetime[1]+' 23:59'
  5064. }
  5065. const url = 'authdata/feedp/history'
  5066. // const data = this.fenceTemp.tab1.getdataListParm
  5067. const data = {
  5068.     barname:this.fenceTemp.tab1.getdataListParm.parammaps.barname,
  5069.     startDate:this.fenceTemp.tab1.getdataListParm.parammaps.startDate,
  5070.     endDate:this.fenceTemp.tab1.getdataListParm.parammaps.endDate
  5071. }
  5072. postJson(url, data).then(response => {
  5073. this.fenceTemp.tab1.listLoading = false
  5074. if (response.data !== null && response.data !== '') {
  5075. for (let i = 0; i < response.data.length; i++) {
  5076. if (response.data[i].ptid == undefined || response.data[i].ptname == '') {
  5077. this.$set(response.data[i], 'ptid', '')
  5078. this.$set(response.data[i], 'ptname', '')
  5079. }
  5080. }
  5081. this.fenceTemp.tab1.list = response.data
  5082. this.handleSpan1()
  5083. } else {
  5084. this.fenceTemp.tab1.list = []
  5085. this.fenceTemp.tab1.total = 0
  5086. }
  5087. console.log(response.data, 'response.data')
  5088. setTimeout(() => {
  5089. this.fenceTemp.tab1.listLoading = false
  5090. }, 100)
  5091. })
  5092. },
  5093. getFenceList2(){
  5094. this.fenceTemp.tab2.listLoading = true
  5095. this.fenceTemp.tab2.getdataListParm.parammaps.fitid = this.fenceTemp.temp.id
  5096. if (this.fenceTemp.tab2.getdataListParm.parammaps.inputDatetime == null) {
  5097. this.fenceTemp.tab2.getdataListParm.parammaps.inputDatetime = ''
  5098. this.fenceTemp.tab2.getdataListParm.parammaps.startDate = ''
  5099. this.fenceTemp.tab2.getdataListParm.parammaps.endDate = ''
  5100. } else {
  5101. this.fenceTemp.tab2.getdataListParm.parammaps.startDate = this.fenceTemp.tab2.getdataListParm.parammaps.inputDatetime[0]+' 00:00'
  5102. this.fenceTemp.tab2.getdataListParm.parammaps.endDate = this.fenceTemp.tab2.getdataListParm.parammaps.inputDatetime[1]+' 23:59'
  5103. }
  5104. const url = 'authdata/spillageall/history'
  5105. const data = {
  5106. barname:this.fenceTemp.tab2.getdataListParm.parammaps.barname,
  5107. pastureid:Cookies.get('pastureid'),
  5108.     startDate:this.fenceTemp.tab2.getdataListParm.parammaps.startDate,
  5109.     endDate:this.fenceTemp.tab2.getdataListParm.parammaps.endDate
  5110. }
  5111. postJson(url, data).then(response => {
  5112. if (response.data.data !== null) {
  5113. // 表数据
  5114. this.fenceTemp.tab2.list = response.data.data
  5115. this.fenceTemp.tab2.tableLabel = response.data.trains
  5116. this.handleSpan2()
  5117. } else {
  5118. this.fenceTemp.tab2.list = []
  5119. this.fenceTemp.tab2.total = 0
  5120. }
  5121. console.log(response.data, 'response.data')
  5122. setTimeout(() => {
  5123. this.fenceTemp.tab2.listLoading = false
  5124. }, 100)
  5125. })
  5126. },
  5127. handleFenceSearch(){
  5128. if(this.fenceTemp.activeName == 'first'){
  5129. this.getFenceList1()
  5130. }else{
  5131. this.getFenceList2()
  5132. }
  5133. },
  5134. handleFenceTabClick(item){
  5135. const start = new Date()
  5136. const end = new Date()
  5137. if(item == 'first'){
  5138. this.fenceTemp.tab1.getdataListParm.parammaps.inputDatetime = []
  5139. this.fenceTemp.tab1.getdataListParm.parammaps.inputDatetime[0] = parseTime(start.setTime(start.getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}')
  5140. this.fenceTemp.tab1.getdataListParm.parammaps.inputDatetime[1] = parseTime(end.setTime(end.getTime()), '{y}-{m}-{d}')
  5141. this.getFenceList1()
  5142. }else{
  5143. this.fenceTemp.tab2.getdataListParm.parammaps.inputDatetime = []
  5144. this.fenceTemp.tab2.getdataListParm.parammaps.inputDatetime[0] = parseTime(start.setTime(start.getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}')
  5145. this.fenceTemp.tab2.getdataListParm.parammaps.inputDatetime[1] = parseTime(end.setTime(end.getTime()), '{y}-{m}-{d}')
  5146. this.getFenceList2()
  5147. }
  5148. },
  5149. handleSpan1() {
  5150. this.fenceTemp.mergekeys1.forEach(key => {
  5151. this.fenceTemp.spanObj1[key] = []
  5152. let position = 0
  5153. this.fenceTemp.tab1.list.forEach((item, index) => {
  5154. if (index === 0) {
  5155. this.fenceTemp.spanObj1[key].push(1)
  5156. position = 0
  5157. } else {
  5158. if (this.fenceTemp.tab1.list[index][key] === this.fenceTemp.tab1.list[index - 1][key]) {
  5159. this.fenceTemp.spanObj1[key][position] += 1
  5160. this.fenceTemp.spanObj1[key].push(0)
  5161. } else {
  5162. this.fenceTemp.spanObj1[key].push(1)
  5163. position = index
  5164. }
  5165. }
  5166. })
  5167. })
  5168. },
  5169. handleSpan2() {
  5170. this.fenceTemp.mergekeys2.forEach(key => {
  5171. this.fenceTemp.spanObj2[key] = []
  5172. let position = 0
  5173. this.fenceTemp.tab2.list.forEach((item, index) => {
  5174. if (index === 0) {
  5175. this.fenceTemp.spanObj2[key].push(1)
  5176. position = 0
  5177. } else {
  5178. if (this.fenceTemp.tab2.list[index][key] === this.fenceTemp.tab2.list[index - 1][key]) {
  5179. this.fenceTemp.spanObj2[key][position] += 1
  5180. this.fenceTemp.spanObj2[key].push(0)
  5181. } else {
  5182. this.fenceTemp.spanObj2[key].push(1)
  5183. position = index
  5184. }
  5185. }
  5186. })
  5187. })
  5188. },
  5189. objectSpanMethod1({ row, column, rowIndex, columnIndex }) {
  5190. if(this.fenceTemp.mergekeys1 !== null && this.fenceTemp.mergekeys1 !== ''){
  5191. for (let i = 0; i < this.fenceTemp.mergekeys1.length; i++) {
  5192. if (column.property === this.fenceTemp.mergekeys1[i]) {
  5193. const _row = this.fenceTemp.spanObj1[this.fenceTemp.mergekeys1[i]][rowIndex]
  5194. const _col = _row > 0 ? 1 : 0
  5195. return {
  5196. rowspan: _row,
  5197. colspan: _col
  5198. }
  5199. }
  5200. }
  5201. }
  5202. },
  5203. objectSpanMethod2({ row, column, rowIndex, columnIndex }) {
  5204. if(this.fenceTemp.mergekeys2 !== null && this.fenceTemp.mergekeys2 !== ''){
  5205. for (let i = 0; i < this.fenceTemp.mergekeys2.length; i++) {
  5206. if (column.property === this.fenceTemp.mergekeys2[i]) {
  5207. const _row = this.fenceTemp.spanObj2[this.fenceTemp.mergekeys2[i]][rowIndex]
  5208. const _col = _row > 0 ? 1 : 0
  5209. return {
  5210. rowspan: _row,
  5211. colspan: _col
  5212. }
  5213. }
  5214. }
  5215. }
  5216. },
  5217. clickRecipeTemplate3(row){
  5218. this.modificationRecordTemp.temp1 = Object.assign({}, row)
  5219. // setTimeout(()=>{
  5220. // this.modificationRecordTemp.dialogFormVisible = true
  5221. // },500)
  5222. this.modificationRecordTemp.dialogStatus = 'modificationRecord'
  5223. this.getFTHisdryweightList()
  5224. this.getRecipeTemplateList1()
  5225. },
  5226. getRecipeTemplateList1() {
  5227. this.modificationRecordTemp.listLoading1 = true
  5228. let url = 'authdata/recipetemplate/history'
  5229. let data = {
  5230. ftid: this.modificationRecordTemp.temp1.ftid,
  5231. pastureid: Cookies.get('pastureid'),
  5232. createdate: this.modificationRecordTemp.temp1.createdate,
  5233. lastftid:this.modificationRecordTemp.temp1.lastftid
  5234. }
  5235. postJson(url, data).then(response => {
  5236. if (response.data !== null) {
  5237. this.modificationRecordTemp.list1 = response.data.current
  5238. this.modificationRecordTemp.list2 = response.data.last
  5239. } else {
  5240. this.modificationRecordTemp.list1 = []
  5241. }
  5242. this.modificationRecordTemp.dialogFormVisible = true
  5243. setTimeout(() => {
  5244. this.modificationRecordTemp.listLoading1 = false
  5245. }, 100)
  5246. })
  5247. },
  5248. getFTHisdryweightList(){
  5249. let url = 'authdata/GetDataByName'
  5250. let data = {
  5251. name:'getFTHisdryweight',
  5252. parammaps:{
  5253. ftid: this.modificationRecordTemp.temp1.ftid,
  5254. pastureid: Cookies.get('pastureid'),
  5255. createdate: this.modificationRecordTemp.temp1.createdate
  5256. }
  5257. }
  5258. postJson(url, data).then(response => {
  5259. console.log(response)
  5260. if (response.data !== null) {
  5261. this.modificationRecordTemp.lastdate = response.data.list.lastdate
  5262. this.modificationRecordTemp.currentdate = response.data.list.currentdate
  5263. } else {
  5264. this.modificationRecordTemp.lastdate = ''
  5265. this.modificationRecordTemp.currentdate = ''
  5266. }
  5267. })
  5268. },
  5269. changeccysChecked(item){
  5270. if(item == false){
  5271. this.tab.table.getdataListParm.parammaps.error = ''
  5272. }
  5273. this.getTabList()
  5274. this.getTabList2()
  5275. },
  5276. getSummaries1(param) {
  5277. const { columns, data } = param
  5278. const sums = []
  5279. columns.forEach((column, index) => {
  5280. if (index === 0) {
  5281. sums[index] = '合计'
  5282. return
  5283. }
  5284. if (column.property !== undefined) {
  5285. // 加了prop属性的el-table-column 才能找到column.property
  5286. const values = data.map(item => Number(item[column.property]))
  5287. if (!values.every(value => isNaN(value))) {
  5288. sums[index] = values.reduce((prev, curr) => {
  5289. const value = Number(curr)
  5290. if (!isNaN(value)) {
  5291. return prev + curr // 多行相加
  5292. } else {
  5293. return prev
  5294. }
  5295. }, 0)
  5296. if(this.modificationRecordTemp.lastdate == undefined){
  5297. this.modificationRecordTemp.lastdate = ''
  5298. }
  5299. sums[index] = sums[index].toFixed(4) + '(干物质量:' + this.modificationRecordTemp.lastdate + ')'
  5300. } else {
  5301. sums[index] = ''
  5302. }
  5303. }
  5304. })
  5305. // console.log(sums, 'sums[index]')
  5306. return sums
  5307. },
  5308. getSummaries2(param) {
  5309. const { columns, data } = param
  5310. const sums = []
  5311. columns.forEach((column, index) => {
  5312. if (index === 0) {
  5313. sums[index] = '合计'
  5314. return
  5315. }
  5316. if (column.property !== undefined) {
  5317. // 加了prop属性的el-table-column 才能找到column.property
  5318. const values = data.map(item => Number(item[column.property]))
  5319. if (!values.every(value => isNaN(value))) {
  5320. sums[index] = values.reduce((prev, curr) => {
  5321. const value = Number(curr)
  5322. if (!isNaN(value)) {
  5323. return prev + curr // 多行相加
  5324. } else {
  5325. return prev
  5326. }
  5327. }, 0)
  5328. if(this.modificationRecordTemp.currentdate == undefined){
  5329. this.modificationRecordTemp.currentdate = ''
  5330. }
  5331. sums[index] = sums[index].toFixed(4) + '(干物质量:' + this.modificationRecordTemp.currentdate + ')'
  5332. } else {
  5333. sums[index] = ''
  5334. }
  5335. }
  5336. })
  5337. // console.log(sums, 'sums[index]')
  5338. return sums
  5339. },
  5340. }
  5341. }
  5342. </script>
  5343. <style lang="scss" scoped>
  5344. .search{
  5345. .el-radio{margin-right: 10px;}
  5346. }
  5347. .filter-item1{
  5348. margin-top: 10px;
  5349. span{margin-right: 5px;}
  5350. }
  5351. .button{
  5352. height: 95px;
  5353. .exportTable2{float: right;margin-right: 5px;margin-top: 5px;}
  5354. }
  5355. .app-container1{padding-left: 10px;background-color: #F4F4F4;}
  5356. .dashboard-editor-container {
  5357. background-color: #F4F4F4;
  5358. .grid-content{
  5359. background-color:#fff;padding: 0 10px;
  5360. h4{text-align: center;line-height: 50px;}
  5361. }
  5362. }
  5363. .table{margin-bottom: 10px;}
  5364. /deep/ .el-table th>.cell{
  5365. padding-left: 0 !important;;
  5366. padding-right: 0 !important;;
  5367. }
  5368. /deep/ .el-table td>.cell{
  5369. padding-left: 0 !important;;
  5370. padding-right: 0 !important;;
  5371. }
  5372. /deep/ .specificDate .el-radio{margin-right: 0px;}
  5373. /deep/ .el-radio-button__inner{padding: 7px 7px ;}
  5374. /deep/ .el-range-editor.el-input__inner .el-input__icon{width: 0;}
  5375. .modificationRecord .top{
  5376. height: 300px;width: 100%;display: flex;flex-direction: row;
  5377. .left{
  5378. width: 200px;
  5379. height: 100%;
  5380. div{line-height: 35px;}
  5381. }
  5382. .right {
  5383. height: 200px;
  5384. flex: 1;
  5385. }
  5386. }
  5387. .modificationRecord .bottom{
  5388. height: 300px;width: 100%;display: flex;flex-direction: row;
  5389. .left{
  5390. width: 200px;
  5391. height: 100%;
  5392. div{line-height: 35px;}
  5393. }
  5394. .right {
  5395. height: 200px;
  5396. flex: 1;
  5397. }
  5398. }
  5399. </style>