| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286 | <template>  <div class="app-container">    <div class="operation">      <el-button class="success" style="float: left;" @click="handleNutritional">营养评估</el-button>      <el-button class="success" style="float: left;" @click="handleDryMatterRegulation">干物质调节</el-button>      <el-upload style="float: right;" :headers="headers" :data="uploadData" :action="uploadExcelUrl" :show-file-list="false" :before-upload="beforeImport" :on-success="handleImportSuccess">        <el-button class="import" style="float: right;">导入</el-button>      </el-upload>      <el-dropdown style="float: right;margin-right: 10px;">        <el-button class="export">导出</el-button>        <el-dropdown-menu slot="dropdown">          <el-dropdown-item @click.native="handleExport(1)">导出模板</el-dropdown-item>          <el-dropdown-item @click.native="handleExport(2)">导出数据</el-dropdown-item>        </el-dropdown-menu>      </el-dropdown>      <el-button class="export" style="float: right;margin-right: 10px;" @click="handleHistoryRecords">历史记录</el-button>    </div>    <div class="search" />    <div class="table">      <el-table        :key="table.tableKey"        v-loading="table.listLoading"        element-loading-text="给我一点时间"        :data="table.list"        border        fit        highlight-current-row        style="width: 100%;"        :row-style="rowStyle"        :cell-style="cellStyle"        class="elTable table-fixed"        @header-click="headerClick"        @cell-click="cellClick"        @selection-change="handleSelect"      >        <el-table-column type="selection" width="50" />        <el-table-column :key="1" label="序号" align="center" type="index" width="50px" class-name="small-padding fixed-width" fixed="left">          <template slot-scope="scope">            <span>{{ scope.$index + (table.pageNum-1) * table.pageSize + 1 }}</span>          </template>        </el-table-column>        <el-table-column label="栏舍名称" min-width="100px" align="center" class-name="small-padding fixed-width" fixed="left">          <template slot-scope="scope">            <span>{{ scope.row.barname }}</span>          </template>        </el-table-column>        <el-table-column label="软件牛头数" min-width="70px" align="center">          <template slot-scope="scope">            <span>{{ scope.row.softccount }}</span>          </template>        </el-table-column>        <el-table-column label="实际牛头数" min-width="100px" align="center">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.ccount }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.ccount" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurCcount(scope.row)" />          </template>        </el-table-column>        <el-table-column label="系数(%)" min-width="100px" align="center">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.ratio }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.ratio" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurRatio(scope.row)" />          </template>        </el-table-column>        <el-table-column label="系数头数" min-width="100px" align="center">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.ccountratio }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.ccountratio" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurCcountratio(scope.row)" />          </template>        </el-table-column>        <el-table-column label="配方模板" min-width="130px" align="center">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.ftname }}</span>            <el-select v-if="scope.row.Edit" v-model="scope.row.ftid" filterable placeholder="配方模板" class="filter-item" style="width:99%;" @change="(value)=> {changeRecipeTemplate(value, scope.row)}">              <el-option v-for="item in recipeTemplateList" :key="item.id" :label="item.tname" :value="item.id" />            </el-select>          </template>        </el-table-column>        <el-table-column v-if="table.isPtsfname" :key="8" label="补料配方" min-width="130px" align="center">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.ptsfname }}</span>            <el-select v-if="scope.row.Edit" v-model="scope.row.ptsfid" clearable filterable placeholder="补料配方" class="filter-item" style="width:95%;padding:10px 0;" @change="(value)=> {changeFeedingFormula(value, scope.row)}">              <el-option v-for="item in feedingFormulaList" :key="item.id" :label="item.tname" :value="item.id" />            </el-select>          </template>        </el-table-column>        <el-table-column v-if="table.isRW1" :key="9" label="第一班比例(%)" min-width="95px" align="center">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.r1 }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.r1" :disabled="scope.row.isOneWeight" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurR(scope.row)" />          </template>        </el-table-column>        <el-table-column v-if="table.isRW1" :key="10" label="第一班重量" min-width="130px" align="center" :render-header="renderHeader">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.w1 }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.w1" :disabled="scope.row.isOneWeight" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurW(scope.row)" @focus="focusW(scope.row)" />          </template>        </el-table-column>        <el-table-column v-if="table.isRW2" :key="11" label="第二班比例(%)" min-width="95px" align="center">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.r2 }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.r2" step="0.01" type="number" :disabled="scope.row.isTwoWeight" style="width:95%;padding:10px 0;" @blur="blurR(scope.row)" />          </template>        </el-table-column>        <el-table-column v-if="table.isRW2" :key="12" label="第二班重量" min-width="130px" align="center" :render-header="renderHeader">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.w2 }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.w2" :disabled="scope.row.isTwoWeight" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurW2(scope.row)" @focus="focusW2(scope.row)" />          </template>        </el-table-column>        <el-table-column v-if="table.isRW3" :key="13" label="第三班比例(%)" min-width="95px" align="center">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.r3 }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.r3" step="0.01" type="number" :disabled="scope.row.isThreeWeight" style="width:95%;padding:10px 0;" @blur="blurR(scope.row)" />          </template>        </el-table-column>        <el-table-column v-if="table.isRW3" :key="14" label="第三班重量" min-width="130px" align="center" :render-header="renderHeader">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.w3 }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.w3" :disabled="scope.row.isThreeWeight" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurW3(scope.row)" @focus="focusW3(scope.row)" />          </template>        </el-table-column>        <el-table-column v-if="table.isRW4" :key="15" label="第四班比例(%)" min-width="95px" align="center">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.r4 }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.r4" step="0.01" type="number" :disabled="scope.row.isFourWeight" style="width:95%;padding:10px 0;" @blur="blurR(scope.row)" />          </template>        </el-table-column>        <el-table-column v-if="table.isRW4" :key="16" label="第四班重量" min-width="130px" align="center" :render-header="renderHeader">          <template slot-scope="scope">            <span v-if="scope.row.NoEdit">{{ scope.row.w4 }}</span>            <el-input v-if="scope.row.Edit" v-model="scope.row.w4" :disabled="scope.row.isFourWeight" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurW4(scope.row)" @focus="focusW4(scope.row)" />          </template>        </el-table-column>        <el-table-column :key="17" label="总比例(%)" min-width="85px" align="center">          <template slot-scope="scope">            <span>{{ scope.row.sumr }}</span>          </template>        </el-table-column>        <el-table-column :key="18" label="投喂量" min-width="80px" align="center">          <template slot-scope="scope">            <span>{{ scope.row.feedweight }}</span>          </template>        </el-table-column>        <el-table-column :key="19" label="配方重量" min-width="90px" align="center">          <template slot-scope="scope">            <span>{{ scope.row.ftweight }}</span>          </template>        </el-table-column>        <el-table-column v-if="table.isPtsfname" :key="20" label="补料重量" min-width="130px" align="center">          <template slot-scope="scope">            <span>{{ scope.row.supplyweight }}</span>          </template>        </el-table-column>        <el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width" fixed="right">          <template slot-scope="{row}">            <!-- 编辑 -->            <el-button v-if="row.isUpdate" class="miniSuccess" @click="handleUpdate(row)">编辑</el-button>            <!-- 编辑保存 -->            <el-button v-if="row.isUpdateSave" class="miniSuccess" :disabled="isokDisable" @click="updateData(row)">保存</el-button>            <el-button v-if="row.isUpdateSave" class="minCancel" @click="updateCancel(row)">取消</el-button>          </template>        </el-table-column>      </el-table>      <pagination v-show="table.total>=0" :total="table.total" :page.sync="table.getdataListParm.offset" :limit.sync="table.getdataListParm.pagecount" @pagination="getList" />    </div>    <!-- 历史记录 -->    <el-dialog :title="textMap[history.dialogStatus]" :destroy-on-close="true" :visible.sync="history.dialogFormVisible" :close-on-click-modal="false" width="90%">      <div class="app-history">        <div class="search">          <el-date-picker v-model="history.getdataListParm.parammaps.date" type="date" placeholder="请选择历史记录时间" :clearable="false" style="width: 180px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeDate" />          <!-- <el-button class="successBorder" @click="handleApplication">应用</el-button> -->        </div>        <div class="table">          <el-table            :key="history.tableKey"            v-loading="history.listLoading"            element-loading-text="给我一点时间"            :data="history.list"            border            fit            highlight-current-row            style="width: 100%;"            :row-style="rowStyle"            :cell-style="cellStyle"            class="elTable table-fixed"          >            <el-table-column type="selection" width="50" />            <el-table-column label="序号" align="center" type="index" width="50px">              <template slot-scope="scope">                <span>{{ scope.$index + (history.pageNum-1) * history.pageSize + 1 }}</span>              </template>            </el-table-column>            <el-table-column label="栏舍名称" min-width="100px" align="center">              <template slot-scope="scope">                <span>{{ scope.row.barname }}</span>              </template>            </el-table-column>            <el-table-column label="软件牛头数" min-width="100px" align="center">              <template slot-scope="scope">                <span>{{ scope.row.softccount }}</span>              </template>            </el-table-column>            <el-table-column label="实际牛头数" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.ccount }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.ccount" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurCcount(scope.row)" />              </template>            </el-table-column>            <el-table-column label="系数(%)" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.ratio }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.ratio" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurRatio(scope.row)" />              </template>            </el-table-column>            <el-table-column label="系数头数" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.ccountratio }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.ccountratio" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurCcountratio(scope.row)" />              </template>            </el-table-column>            <el-table-column label="配方模板" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.ftname }}</span>                <el-select v-if="scope.row.Edit" v-model="scope.row.ftid" filterable placeholder="配方模板" class="filter-item" style="width:95%;padding:10px 0;" @change="(value)=> {changeRecipeTemplate(value, scope.row)}">                  <el-option v-for="item in recipeTemplateList" :key="item.id" :label="item.tname" :value="item.id" />                </el-select>              </template>            </el-table-column>            <el-table-column v-if="history.isPtsfname" label="补料配方" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.ptsfname }}</span>                <el-select v-if="scope.row.Edit" v-model="scope.row.ptsfid" filterable placeholder="补料配方" class="filter-item" style="width:95%;padding:10px 0;" @change="(value)=> {changeFeedingFormula(value, scope.row)}">                  <el-option v-for="item in feedingFormulaList" :key="item.id" :label="item.tname" :value="item.id" />                </el-select>              </template>            </el-table-column>            <el-table-column v-if="history.isRW1" label="第一班比例(%)" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.r1 }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.r1" step="0.01" type="number" :disabled="scope.row.isOneWeight" style="width:95%;padding:10px 0;" @blur="blurR(scope.row)" />              </template>            </el-table-column>            <el-table-column v-if="history.isRW1" label="第一班重量" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.w1 }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.w1" :disabled="scope.row.isTwoWeight" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurW(scope.row)" />              </template>            </el-table-column>            <el-table-column v-if="table.isRW2" label="第二班比例(%)" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.r2 }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.r2" step="0.01" type="number" :disabled="scope.row.isTwoWeight" style="width:95%;padding:10px 0;" @blur="blurR(scope.row)" />              </template>            </el-table-column>            <el-table-column v-if="history.isRW2" label="第二班重量" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.w2 }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.w2" :disabled="scope.row.isTwoWeight" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurW2(scope.row)" />              </template>            </el-table-column>            <el-table-column v-if="history.isRW3" label="第三班比例(%)" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.r3 }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.r3" step="0.01" type="number" :disabled="scope.row.isThreeWeight" style="width:95%;padding:10px 0;" @blur="blurR(scope.row)" />              </template>            </el-table-column>            <el-table-column v-if="history.isRW3" label="第三班重量" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.w3 }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.w3" :disabled="scope.row.isThreeWeight" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurW3(scope.row)" />              </template>            </el-table-column>            <el-table-column v-if="table.isRW4" label="第四班比例(%)" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.r4 }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.r4" step="0.01" type="number" disabled="scope.row.isFourWeight" style="width:95%;padding:10px 0;" @blur="blurR(scope.row)" />              </template>            </el-table-column>            <el-table-column v-if="history.isRW4" label="第四班重量" min-width="130px" align="center">              <template slot-scope="scope">                <span v-if="scope.row.NoEdit">{{ scope.row.w4 }}</span>                <el-input v-if="scope.row.Edit" v-model="scope.row.w4" :disabled="scope.row.isFourWeight" step="0.01" type="number" style="width:95%;padding:10px 0;" @blur="blurW4(scope.row)" />              </template>            </el-table-column>            <el-table-column label="总比例(%)" min-width="130px" align="center">              <template slot-scope="scope">                <span>{{ scope.row.sumr }}</span>              </template>            </el-table-column>            <el-table-column label="投喂量" min-width="130px" align="center">              <template slot-scope="scope">                <span>{{ scope.row.feedweight }}</span>              </template>            </el-table-column>            <el-table-column label="配方重量" min-width="130px" align="center">              <template slot-scope="scope">                <span>{{ scope.row.ftweight }}</span>              </template>            </el-table-column>            <el-table-column v-if="history.isPtsfname" label="补料重量" min-width="130px" align="center">              <template slot-scope="scope">                <span>{{ scope.row.supplyweight }}</span>              </template>            </el-table-column>          </el-table>          <pagination v-show="history.total>0" :total="history.total" :page.sync="history.getdataListParm.offset" :limit.sync="history.getdataListParm.pagecount" @pagination="getHistoryList" />        </div>        <div slot="footer" class="dialog-footer">          <el-button class="cancelClose" @click="history.dialogFormVisible = false; ">关闭</el-button>        </div>      </div>    </el-dialog>    <!-- 营养评估 -->    <el-dialog :title="textMap[nutritional.dialogStatus]" :visible.sync="nutritional.dialogFormVisible" :close-on-click-modal="false" width="90%">      <div class="app-nutritional">        <h4 style="position: absolute;top:-5px;left:140px;font:18px/24px '' ;color:#303133;">栏舍:{{ nutritional.tab1.temp.barname }}</h4>        <el-tabs v-model="nutritional.activeName" @tab-click="handleNutritionalTab">          <el-tab-pane label="营养评估" name="first">            <el-form ref="temp" :rules="rules" :model="nutritional.tab1.temp" label-position="right" label-width="95px" style="width: 100%;margin-bottom:30px">              <el-row>                <el-col :span="4">                  <el-form-item label="类别" prop="cowclassid">                    <el-select v-model="nutritional.tab1.temp.cowclassid" :disabled="nutritional.tab1.disabledCowclass" filterable placeholder="" class="filter-item" style="width:100%;">                      <el-option v-for="item in livestockTypeList" :key="item.id" :label="item.mixname" :value="item.id" />                    </el-select>                  </el-form-item>                </el-col>                <el-col :span="4">                  <el-form-item label="月龄" prop="avgmonthage">                    <el-input ref="avgmonthage" v-model="nutritional.tab1.temp.avgmonthage" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>                <el-col :span="4">                  <el-form-item label="体重(kg)" prop="bw">                    <el-input ref="bw" v-model="nutritional.tab1.temp.bw" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>                <el-col :span="4">                  <el-form-item label="日增重(kg)" prop="dayw">                    <el-input ref="dayw" v-model="nutritional.tab1.temp.dayw" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>                <el-col :span="4">                  <el-form-item label="胎次(次)" prop="fetal">                    <el-input ref="fetal" v-model="nutritional.tab1.temp.fetal" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>                <el-col :span="4">                  <el-form-item label="泌乳天数(天)" prop="avgdim">                    <el-input ref="avgdim" v-model="nutritional.tab1.temp.avgdim" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>              </el-row>              <el-row>                <el-col :span="4">                  <el-form-item label="怀孕天数(天)" prop="dayspre">                    <el-input ref="dayspre" v-model="nutritional.tab1.temp.dayspre" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>                <el-col :span="4">                  <el-form-item label="产奶量(kg)" prop="product">                    <el-input ref="product" v-model="nutritional.tab1.temp.product" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>                <el-col :span="4">                  <el-form-item label="乳脂率(%)" prop="fat">                    <el-input ref="fat" v-model="nutritional.tab1.temp.fat" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>                <el-col :span="4">                  <el-form-item label="乳蛋白率(%)" prop="pro">                    <el-input ref="pro" v-model="nutritional.tab1.temp.pro" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>                <el-col :span="4">                  <el-form-item label="乳糖率(%)" prop="lactose">                    <el-input ref="lactose" v-model="nutritional.tab1.temp.lactose" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>                <el-col :span="4">                  <el-form-item label="温度(℃)" prop="tem">                    <el-input ref="tem" v-model="nutritional.tab1.temp.tem" class="filter-item" placeholder="" style="width:100%;" />                  </el-form-item>                </el-col>              </el-row>            </el-form>            <div style="height: 50px;">              <el-date-picker v-model="nutritional.tab1.inputDatetime" :picker-options="pickerOptions" class="inputDatetime filter-item" :clearable="false" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;margin-right: 10px;" />              <el-button class="el-icon-arrow-left elIconArrowLeft" @click="handleBefore" />              <el-button class="el-icon-arrow-right elIconArrowRight" @click="handleNext" />              <el-button class="success" :disabled="isokDisable" @click="assessmentData()">评估</el-button>            </div>            <div class="table">              <el-table                :key="nutritional.tab1.tableKey"                v-loading="nutritional.tab1.listLoading"                element-loading-text="给我一点时间"                :data="nutritional.tab1.list"                border                fit                highlight-current-row                style="width: 100%;margin-bottom:60px;"                :row-style="rowStyle"                :cell-style="cellStyle"                class="elTable table-fixed"              >                <el-table-column label="序号" align="center" type="index" width="50px" />                <el-table-column label="指标" min-width="130px" align="center">                  <template slot-scope="scope">                    <span>{{ scope.row.standard }}</span>                  </template>                </el-table-column>                <el-table-column label="奶牛需要" min-width="130px" align="center">                  <template slot-scope="scope">                    <span>{{ scope.row.cowneed }}</span>                  </template>                </el-table-column>                <el-table-column label="配方量" min-width="130px" align="center">                  <template slot-scope="scope">                    <span>{{ scope.row.ftpro }}</span>                  </template>                </el-table-column>                <el-table-column label="TMR料" min-width="130px" align="center">                  <template slot-scope="scope">                    <span>{{ scope.row.hprov }}</span>                  </template>                </el-table-column>                <el-table-column label="采食量" min-width="130px" align="center">                  <template slot-scope="scope">                    <span>{{ scope.row.sprov }}</span>                  </template>                </el-table-column>              </el-table>            </div>          </el-tab-pane>          <el-tab-pane label="牛群评估" name="second">            <el-date-picker v-model="nutritional.tab2.inputDatetime" :picker-options="pickerOptions" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;margin-right: 10px;" @change="changeTab2Date" />            <el-button class="el-icon-arrow-left elIconArrowLeft" @click="handleBefore" />            <el-button class="el-icon-arrow-right elIconArrowRight" @click="handleNext" />            <el-row>              <el-col :span="24">                <h3 style="text-align: center;">宾州筛分析</h3>                <div class="table">                  <el-table                    :key="nutritional.tab2.tableKey1"                    v-loading="nutritional.tab2.listLoading1"                    element-loading-text="给我一点时间"                    :data="nutritional.tab2.list1"                    border                    fit                    highlight-current-row                    style="width: 100%;margin-bottom:60px;"                    :row-style="rowStyle"                    :cell-style="cellStyle"                    class="elTable table-fixed"                  >                    <el-table-column label="日期" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.operatetime }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第一层重量(g)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.oneweight }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第一层百分比" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.onerate }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第二层重量(g)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.twoweight }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第二层百分比" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.tworate }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第三层重量(g)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.threeweight }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第三层百分比" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.threerate }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第四层重量(g)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.fourweight }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第四层百分比" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.fourrate }}</span>                      </template>                    </el-table-column>                    <el-table-column label="参考标准" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.standard }}</span>                      </template>                    </el-table-column>                  </el-table>                </div>              </el-col>            </el-row>            <el-row>              <el-col :span="24">                <h3 style="text-align: center;">粪便筛分析</h3>                <div class="table">                  <el-table                    :key="nutritional.tab2.tableKey2"                    v-loading="nutritional.tab2.listLoading2"                    element-loading-text="给我一点时间"                    :data="nutritional.tab2.list2"                    border                    fit                    highlight-current-row                    style="width: 100%;margin-bottom:60px;"                    :row-style="rowStyle"                    :cell-style="cellStyle"                    class="elTable table-fixed"                  >                    <el-table-column label="日期" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.operatetime }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第一层重量(g)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.oneweight }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第一层百分比" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.onerate }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第二层重量(g)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.twoweight }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第二层百分比" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.tworate }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第三层重量(g)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.threeweight }}</span>                      </template>                    </el-table-column>                    <el-table-column label="第三层百分比" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.threerate }}</span>                      </template>                    </el-table-column>                    <el-table-column label="参考标准" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.standard }}</span>                      </template>                    </el-table-column>                  </el-table>                </div>              </el-col>            </el-row>            <el-row>              <el-col :span="24">                <h3 style="text-align: center;">BCS评分</h3>                <div class="table">                  <el-table                    :key="nutritional.tab2.tableKey3"                    v-loading="nutritional.tab2.listLoading3"                    element-loading-text="给我一点时间"                    :data="nutritional.tab2.list3"                    border                    fit                    highlight-current-row                    style="width: 100%;margin-bottom:60px;"                    :row-style="rowStyle"                    :cell-style="cellStyle"                    class="elTable table-fixed"                  >                    <el-table-column label="日期" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.operatetime }}</span>                      </template>                    </el-table-column>                    <el-table-column label="抽查样本数" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.sumcowcount }}</span>                      </template>                    </el-table-column>                    <el-table-column label="单产(kg/头)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.product }}</span>                      </template>                    </el-table-column>                    <el-table-column label="物质采食量(kg/头)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.cowneed }}</span>                      </template>                    </el-table-column>                    <el-table-column label="泌乳天数" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.avgdim }}</span>                      </template>                    </el-table-column>                    <el-table-column label="标准分数" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.standardscore }}</span>                      </template>                    </el-table-column>                    <el-table-column label="2.5-分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score25 }}</span>                      </template>                    </el-table-column>                    <el-table-column label="2.75分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score275 }}</span>                      </template>                    </el-table-column>                    <el-table-column label="3分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score3 }}</span>                      </template>                    </el-table-column>                    <el-table-column label="3.25分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score325 }}</span>                      </template>                    </el-table-column>                    <el-table-column label="3.5分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.feedprov }}</span>                      </template>                    </el-table-column>                    <el-table-column label="3.75分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score375 }}</span>                      </template>                    </el-table-column>                    <el-table-column label="4+分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score4 }}</span>                      </template>                    </el-table-column>                  </el-table>                </div>              </el-col>            </el-row>            <el-row>              <el-col :span="24">                <h3 style="text-align: center;">粪便评分</h3>                <div class="table">                  <el-table                    :key="nutritional.tab2.tableKey4"                    v-loading="nutritional.tab2.listLoading4"                    element-loading-text="给我一点时间"                    :data="nutritional.tab2.list4"                    border                    fit                    highlight-current-row                    style="width: 100%;margin-bottom:60px;"                    :row-style="rowStyle"                    :cell-style="cellStyle"                    class="elTable table-fixed"                  >                    <el-table-column label="日期" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.operatetime }}</span>                      </template>                    </el-table-column>                    <el-table-column label="抽查样本数" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.sumcowcount }}</span>                      </template>                    </el-table-column>                    <el-table-column label="单产(kg/头)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.product }}</span>                      </template>                    </el-table-column>                    <el-table-column label="干物质采食量(kg/头)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.cowneed }}</span>                      </template>                    </el-table-column>                    <el-table-column label="泌乳天数" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.avgdim }}</span>                      </template>                    </el-table-column>                    <el-table-column label="标准分数" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.cowneed }}</span>                      </template>                    </el-table-column>                    <el-table-column label="1分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score1 }}</span>                      </template>                    </el-table-column>                    <el-table-column label="2分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score2 }}</span>                      </template>                    </el-table-column>                    <el-table-column label="3分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score3 }}</span>                      </template>                    </el-table-column>                    <el-table-column label="4分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score4 }}</span>                      </template>                    </el-table-column>                    <el-table-column label="5分(数量、百分比)" min-width="130px" align="center">                      <template slot-scope="scope">                        <span>{{ scope.row.score5 }}</span>                      </template>                    </el-table-column>                  </el-table>                </div>              </el-col>            </el-row>          </el-tab-pane>        </el-tabs>        <div slot="footer" class="dialog-footer" style="bottom: 0;">          <el-button class="cancelClose" @click="nutritional.dialogFormVisible = false; ">关闭</el-button>        </div>      </div>    </el-dialog>  </div></template><script>import { GetDataByName, GETNurJudge, GetDataByNames, compareSort, ExecDataByConfig, failproccess, PostDataByName, formatNum } from '@/api/common'import Pagination from '@/components/Pagination'import { parseTime, json2excel } from '@/utils/index.js'import { MessageBox } from 'element-ui'import Cookies from 'js-cookie'import { getToken } from '@/utils/auth'export default {  inject: ['reload'],  name: 'DhedFormula',  components: { Pagination },  data() {    return {      pickerMinDate: '',      pickerOptions: {        onPick: ({ maxDate, minDate }) => {          this.pickerMinDate = minDate.getTime()          if (maxDate) {            this.pickerMinDate = ''          }        },        // 限制不能选择今天之后的日期        disabledDate: (time) => {          if (this.pickerMinDate !== '') {            const one = 31 * 24 * 3600 * 1000            const minTime = this.pickerMinDate - one            let maxTime = this.pickerMinDate + one            if (maxTime > new Date()) {              maxTime = new Date()            }            return time.getTime() < minTime - 8.64e7 || time.getTime() > maxTime - 8.64e7          }          return time.getTime() > Date.now() - 8.64e7        }      },      requestParams: [        { name: 'getFTSWList', offset: 0, pagecount: 0, parammaps: { pastureid: Cookies.get('pastureid') }},        { name: 'getFTBLList', offset: 0, pagecount: 0, parammaps: { pastureid: Cookies.get('pastureid') }},        { name: 'getCowclassListEnable', offset: 0, pagecount: 0, parammaps: { pastureid: Cookies.get('pastureid') }}      ],      recipeTemplateList: [], // 配方模板      feedingFormulaList: [], // 补料配方      livestockTypeList: [], // 类别      rules: {        cowclassid: [{ type: 'string', required: true, message: '必填', trigger: 'blur' }]      },      table: {        getdataListParm: {          name: 'getFPList',          page: 1,          offset: 1,          pagecount: 10,          returntype: 'Map',          parammaps: {            pastureid: Cookies.get('pastureid'),            enable: ''          }        },        tableKey: 0,        list: [],        total: 0,        listLoading: true,        temp: {},        rwList: [],        isPtsfname: false, // 补料配方/补料重量        getdataListParm2: {          name: 'getSysoptEnable',          page: 1,          offset: 1,          pagecount: 1,          returntype: 'Map',          parammaps: {            pastureid: Cookies.get('pastureid'),            inforname: 'isEnableSupplyFeed'          }        },        isRW1: false, // 第一班        isRW2: false, // 第二班        isRW3: false, // 第三班        isRW4: false, // 第四班        getdataListParm3: {          name: 'getSysoptEnable1',          page: 1,          offset: 1,          pagecount: 1,          returntype: 'Map',          parammaps: {            pastureid: Cookies.get('pastureid'),            inforname: 'times'          }        },        RWLength: '' // 班次长度      },      selectList: [],      // 营养评估      nutritional: {        dialogFormVisible: false,        dialogStatus: '',        activeName: 'first ',        tab1: {          inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 1), new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 1)],          listLoading1: true,          getdataListParm1: {            name: 'getnurj',            page: 1,            offset: 1,            pagecount: 10,            returntype: 'Map',            parammaps: {              pastureid: '',              barid: ''            }          },          disabledCowclass: false,          temp: {},          tableKey: 0,          list: [],          total: 0,          listLoading2: true,          getdataListParm2: {            name: 'GETNurJudge',            page: 1,            offset: 1,            pagecount: 10,            returntype: 'Map',            parammaps: {              pastureid: '',              cowclassid: ''            }          }        },        tab2: {          inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 1), new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 1)],          listLoading1: true,          tableKey1: 0,          list1: [],          total1: 0,          getdataListParm1: {            name: 'getPennsieveList',            page: 1,            offset: 1,            pagecount: 10,            returntype: 'Map',            parammaps: {              pastureid: '',              barid: '',              startTime: '',              stopTime: '',              inputDatetime: ''            }          },          listLoading2: true,          tableKey2: 0,          list2: [],          total2: 0,          getdataListParm2: {            name: 'getDungsieveList',            page: 1,            offset: 1,            pagecount: 10,            returntype: 'Map',            parammaps: {              pastureid: '',              barid: '',              startTime: '',              stopTime: '',              inputDatetime: ''            }          },          listLoading3: true,          tableKey3: 0,          list3: [],          total3: 0,          getdataListParm3: {            name: 'getBodyscoreList',            page: 1,            offset: 1,            pagecount: 10,            returntype: 'Map',            parammaps: {              pastureid: '',              barid: '',              startTime: '',              stopTime: '',              inputDatetime: ''            }          },          listLoading4: true,          tableKey4: 0,          list4: [],          total4: 0,          getdataListParm4: {            name: 'getDungscoreList',            page: 1,            offset: 1,            pagecount: 10,            returntype: 'Map',            parammaps: {              pastureid: '',              barid: '',              startTime: '',              stopTime: '',              inputDatetime: ''            }          }        }      },      history: {        dialogFormVisible: false,        dialogStatus: '',        temp: {},        rules: {},        tableKey: 0,        list: [],        total: 0,        listLoading: true,        getdataListParm: {          name: 'getFPListDate',          page: 1,          offset: 1,          pagecount: 10,          returntype: 'Map',          parammaps: {            pastureid: Cookies.get('pastureid'),            date: ''          }        },        isPtsfname: false, // 补料配方/补料重量        getdataListParm2: {          name: 'getSysoptEnable',          page: 1,          offset: 1,          pagecount: 1,          returntype: 'Map',          parammaps: {            pastureid: Cookies.get('pastureid'),            inforname: 'isEnableSupplyFeed'          }        },        isRW1: false, // 第一班        isRW2: false, // 第二班        isRW3: false, // 第三班        isRW4: false, // 第四班        getdataListParm3: {          name: 'getSysoptEnable1',          page: 1,          offset: 1,          pagecount: 1,          returntype: 'Map',          parammaps: {            pastureid: Cookies.get('pastureid'),            inforname: 'times'          }        },        getdataDateParm: {          name: 'getFPMaxDate',          page: 1,          offset: 1,          pagecount: 10,          returntype: 'Map',          parammaps: {            pastureid: Cookies.get('pastureid')          }        }      },      textMap: {        Nutritional: '营养评估',        history: '历史记录'      },      focusWRow: {}, // 一班重量得到焦点暂存      focusWRow2: {}, // 2班重量得到焦点暂存      focusWRow3: {}, // 3班重量得到焦点暂存      focusWRow4: {}, // 4班重量得到焦点暂存      requestParam: {},      download: {        getdataListParm: {          name: 'getFPList',          page: 1,          offset: 1,          pagecount: 0,          returntype: 'Map',          parammaps: {            pastureid: Cookies.get('pastureid'),            enable: ''          }        },        list: []      },      isokDisable: false,      rowStyle: { maxHeight: 50 + 'px', height: 45 + 'px' },      cellStyle: { padding: 0 + 'px' }    }  },  computed: {    // 设置请求头    headers() {      return {        token: getToken()      }    },    uploadData() {      return {        name: '颛孙洋洋-栏舍配方',        importParams: '栏舍名称,实际牛头数,系数(%),系数头数,配方模板,补料配方,第一班比例(%),第二班比例(%),第三班比例(%)',        requiredParams: '栏舍名称,实际牛头数,系数(%),系数头数,配方模板,补料配方,第一班比例(%),第二班比例(%),第三班比例(%)',        dateParams: '实际牛头数',        sheetname: 'SheetJS'      }    },    // 设置上传地址    uploadExcelUrl() {      return process.env.VUE_APP_BASE_API + 'authdata/ImportExcel'    }  },  created() {    this.getIsDisplay()    this.getDownList()  },  methods: {    getDownList() {      GetDataByNames(this.requestParams).then(response => {        this.recipeTemplateList = response.data.getFTSWList.list        this.feedingFormulaList = response.data.getFTBLList.list        this.livestockTypeList = response.data.getCowclassListEnable.list      })    },    getIsDisplay() {      GetDataByName(this.table.getdataListParm2).then(response => {        console.log(response.data.list[0].inforvalue)        if (response.data.list !== null) {          if (response.data.list[0].inforvalue == 0) {            this.table.isPtsfname = false          } else {            this.table.isPtsfname = true          }        }      })      GetDataByName(this.table.getdataListParm3).then(response => {        console.log(response.data.list[0].inforvalue)        if (response.data.list !== null) {          this.table.RWLength = response.data.list[0].inforvalue          if (response.data.list[0].inforvalue == 1) {            this.table.isRW1 = true            this.table.isRW2 = false            this.table.isRW3 = false            this.table.isRW4 = false          } else if (response.data.list[0].inforvalue == 2) {            this.table.isRW1 = true            this.table.isRW2 = true            this.table.isRW3 = false            this.table.isRW4 = false          } else if (response.data.list[0].inforvalue == 3) {            this.table.isRW1 = true            this.table.isRW2 = true            this.table.isRW3 = true            this.table.isRW4 = false          } else if (response.data.list[0].inforvalue == 4) {            this.table.isRW1 = true            this.table.isRW2 = true            this.table.isRW3 = true            this.table.isRW4 = true          }        } else {          this.table.isRW1 = false          this.table.isRW2 = false          this.table.isRW3 = false          this.table.isRW4 = false        }      })      this.getList()    },    getList() {      this.table.listLoading = true      GetDataByName(this.table.getdataListParm).then(response => {        console.log('table数据', response.data.list)        if (response.data.list !== null) {          for (let i = 0; i < response.data.list.length; i++) {            this.$set(response.data.list[i], 'Edit', false) // 编辑            this.$set(response.data.list[i], 'NoEdit', true) // 不可编辑/输入            this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作            this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存            if (response.data.list[i].ftid == undefined || response.data.list[i].ftname == '') {              this.$set(response.data.list[i], 'ftid', '')              this.$set(response.data.list[i], 'ftname', '')            }            if (response.data.list[i].ptsfid == undefined || response.data.list[i].ptsfname == '') {              this.$set(response.data.list[i], 'ptsfid', '')              this.$set(response.data.list[i], 'ptsfname', '')            }            if (response.data.list[i].ccount == undefined) {              this.$set(response.data.list[i], 'ccount', '')            }            if (response.data.list[i].softccount == undefined) {              this.$set(response.data.list[i], 'softccount', '')            }            if (response.data.list[i].ratio == undefined) {              this.$set(response.data.list[i], 'ratio', 100)            }            if (response.data.list[i].ccountratio == undefined) {              this.$set(response.data.list[i], 'ccountratio', '')            }            if (response.data.list[i].r1 == undefined) {              this.$set(response.data.list[i], 'r1', '')            }            if (response.data.list[i].r2 == undefined) {              this.$set(response.data.list[i], 'r2', '')            }            if (response.data.list[i].r3 == undefined) {              this.$set(response.data.list[i], 'r3', '')            }            if (response.data.list[i].r4 == undefined) {              this.$set(response.data.list[i], 'r4', '')            }            if (response.data.list[i].w1 == undefined) {              this.$set(response.data.list[i], 'w1', '')            }            if (response.data.list[i].w2 == undefined) {              this.$set(response.data.list[i], 'w2', '')            }            if (response.data.list[i].w3 == undefined) {              this.$set(response.data.list[i], 'w3', '')            }            if (response.data.list[i].w4 == undefined) {              this.$set(response.data.list[i], 'w4', '')            }            if (response.data.list[i].supplyweight == undefined) {              this.$set(response.data.list[i], 'supplyweight', '')            }            if (response.data.list[i].feedweight == undefined) {              this.$set(response.data.list[i], 'feedweight', '')            }            if (response.data.list[i].Bfweight == undefined) {              this.$set(response.data.list[i], 'Bfweight', '')            }            if (response.data.list[i].Sfweight == undefined) {              this.$set(response.data.list[i], 'Sfweight', '')            }            if (response.data.list[i].isOneWeight == undefined) {              this.$set(response.data.list[i], 'isOneWeight', false)            }            if (response.data.list[i].isTwoWeight == undefined) {              this.$set(response.data.list[i], 'isTwoWeight', false)            }            if (response.data.list[i].isThreeWeight == undefined) {              this.$set(response.data.list[i], 'isThreeWeight', false)            }            if (response.data.list[i].isFourWeight == undefined) {              this.$set(response.data.list[i], 'isFourWeight', false)            }            if (response.data.list[i].timesopt !== undefined) {              var timesoptArr = response.data.list[i].timesopt.split(',')              for (let j = 0; j < timesoptArr.length; j++) {                response.data.list[i]['r' + timesoptArr[j].split(':')[0]] = timesoptArr[j].split(':')[1]                response.data.list[i]['w' + timesoptArr[j].split(':')[0]] = timesoptArr[j].split(':')[2]              }            }          }          // console.log(response.data.list, sumr)          for (let i = 0; i < response.data.list.length; i++) {            if (response.data.list[i].r1 == '') {              response.data.list[i].r1 = 0            }            if (response.data.list[i].r2 == '') {              response.data.list[i].r2 = 0            }            if (response.data.list[i].r3 == '') {              response.data.list[i].r3 = 0            }            if (response.data.list[i].r4 == '') {              response.data.list[i].r4 = 0            }            this.$set(response.data.list[i], 'sumr', parseFloat(response.data.list[i].r1) + parseFloat(response.data.list[i].r2) + parseFloat(response.data.list[i].r3) + parseFloat(response.data.list[i].r4))            response.data.list[i].sumr = formatNum(response.data.list[i].sumr, 2)          }          this.table.list = response.data.list          console.log(this.table.list, 'this.table.list')          this.table.pageNum = response.data.pageNum          this.table.pageSize = response.data.pageSize          this.table.total = response.data.total        } else {          this.table.list = []        }        setTimeout(() => {          this.table.listLoading = false        }, 100)      })    },    renderHeader(h, { column, $index }) { // h即为cerateElement的简写,具体可看vue官方文档      // console.log(column)      return h(        'div',        [          h('span', column.label),          h('i', {            class: 'el-icon-unlock',            ref: 'el-icon-unlock',            style: 'margin-left:5px;'          })        ]      )    },    headerClick(column, event) {      console.log(column, event)      if (column.label == '第一班重量') {        for (let i = 0; i < this.table.list.length; i++) {          if (this.table.list[i].Edit == true) {            if (event.target.outerHTML == '<i class="el-icon-unlock" style="margin-left: 5px;"></i>') {              event.target.className = 'el-icon-lock'              this.$set(this.table.list[i], 'isOneWeight', true) // 锁住不可编辑            } else if (event.target.outerHTML == '<i class="el-icon-lock" style="margin-left: 5px;"></i>') {              event.target.className = 'el-icon-unlock'              this.$set(this.table.list[i], 'isOneWeight', false) // 解锁可编辑            }          }        }      } else if (column.label == '第二班重量') {        for (let i = 0; i < this.table.list.length; i++) {          if (this.table.list[i].Edit == true) {            if (event.target.outerHTML == '<i class="el-icon-unlock" style="margin-left: 5px;"></i>') {              event.target.className = 'el-icon-lock'              this.$set(this.table.list[i], 'isTwoWeight', true) // 锁住不可编辑            } else if (event.target.outerHTML == '<i class="el-icon-lock" style="margin-left: 5px;"></i>') {              event.target.className = 'el-icon-unlock'              this.$set(this.table.list[i], 'isTwoWeight', false) // 解锁可编辑            }          }        }      } else if (column.label == '第三班重量') {        for (let i = 0; i < this.table.list.length; i++) {          if (this.table.list[i].Edit == true) {            if (event.target.outerHTML == '<i class="el-icon-unlock" style="margin-left: 5px;"></i>') {              event.target.className = 'el-icon-lock'              this.$set(this.table.list[i], 'isThreeWeight', true) // 锁住不可编辑            } else if (event.target.outerHTML == '<i class="el-icon-lock" style="margin-left: 5px;"></i>') {              event.target.className = 'el-icon-unlock'              this.$set(this.table.list[i], 'isThreeWeight', false) // 解锁可编辑            }          }        }      } else if (column.label == '第四班重量') {        for (let i = 0; i < this.table.list.length; i++) {          if (this.table.list[i].Edit == true) {            if (event.target.outerHTML == '<i class="el-icon-unlock" style="margin-left: 5px;"></i>') {              event.target.className = 'el-icon-lock'              this.$set(this.table.list[i], 'isFourWeight', true) // 锁住不可编辑            } else if (event.target.outerHTML == '<i class="el-icon-lock" style="margin-left: 5px;"></i>') {              event.target.className = 'el-icon-unlock'              this.$set(this.table.list[i], 'isFourWeight', false) // 解锁可编辑            }          }        }      }    },    // 配方模板    changeRecipeTemplate(item, row) {      console.log(row.supplyweight, 'row.supplyweight')      row.ftname = this.recipeTemplateList.find(obj => obj.id == item).tname      row.Sfweight = this.recipeTemplateList.find(obj => obj.id == item).Sfweight// Sfweight      row.SfweightLock = this.recipeTemplateList.find(obj => obj.id == item).SfweightLock// SfweightLock      // 补料重量supplyweight      // 配方重量ftweight      // 系数头数ccountratio      // 投喂量feedweight      // 实际牛头数ccount      // 投喂量 = 配方重量 + 补料重量      // 配方重量 = Sfweight * 系数头数 + SfweightLock * 实际牛头数ccount      console.log(row.Sfweight, 'row.Sfweight')      console.log(row.ccountratio, '系数头数')      console.log(row.SfweightLock, 'SfweightLock')      console.log(row.ccount, '实际牛头数')      if (row.Sfweight !== '' && row.ccount !== '') {        this.$set(row, 'ftweight', formatNum(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount), 2))      } else {        row.ftweight = ''      }      // console.log(row.ftweight, 'row.ftweight')      // console.log(row.supplyweight, 'row.supplyweight')      // console.log(this.table.isPtsfname, 'isPtsfname')      if (this.table.isPtsfname == false) {        row.feedweight = formatNum(parseFloat(row.ftweight), 2)      } else {        if (row.supplyweight == 'NaN') {          row.supplyweight = 0        }        console.log(row.supplyweight)        if (row.supplyweight !== '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.supplyweight) + parseFloat(row.ftweight), 2)        } else if (row.supplyweight == '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.ftweight), 2)        } else if (row.supplyweight !== '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.supplyweight), 2)        }        if (row.ccountratio !== '' && row.ftweight !== '') {          row.ftweight = formatNum(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount), 2)        }        if (row.Sfweight !== '' && row.ccount !== '') {          this.$set(row, 'ftweight', formatNum(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount), 2))        } else {          row.ftweight = ''        }      }      console.log(row.supplyweight)      if (row.supplyweight == 'NaN') { row.supplyweight = 0 }      if (row.r1 !== '') { this.$set(row, 'w1', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r1) / 100), 2)) }      if (row.r2 !== '') { this.$set(row, 'w2', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r2) / 100), 2)) }      if (row.r3 !== '') { this.$set(row, 'w3', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r3) / 100), 2)) }      if (row.r4 !== '') { this.$set(row, 'w4', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r4) / 100), 2)) }    },    // 补料配方    changeFeedingFormula(item, row) {      console.log(item, '=========')      // 补料重量supplyweight      // 配方重量ftweight      // 系数头数ccountratio      // 投喂量feedweight      // 实际牛头数ccount      // 投喂量 = 配方重量 + 补料重量      if (item !== '') {        console.log(456)        row.ptsfname = this.feedingFormulaList.find(obj => obj.id == item).tname        row.BLweight = this.feedingFormulaList.find(obj => obj.id == item).Sfweight        row.BLSfweightLock = this.feedingFormulaList.find(obj => obj.id == item).SfweightLock      } else {        row.ptsfname = ''        row.BLweight = 0        row.BLSfweightLock = 0      }      // 配方重量 = 系数头数 * Sfweight      // if (row.ccountratio !== '' && row.ftweight !== '') {      //   row.ftweight = parseFloat(row.Sfweight) * parseFloat(row.ccountratio)      // }      // 补料重量 = 系数头数 * BLweight      // console.log(row.ccountratio)      // console.log(row.ccount)      // console.log(row.BLweight)      // console.log(row.BLSfweightLock)      if (row.ccountratio !== '' && row.ccount !== '' && row.ccount.BLweight !== '' && row.BLSfweightLock !== '') {        this.$set(row, 'supplyweight', formatNum(parseFloat(row.BLweight) * parseFloat(row.ccountratio) + parseFloat(row.BLSfweightLock) * parseFloat(row.ccount), 2))      } else {        row.supplyweight = ''      }      if (this.table.isPtsfname == false) {        row.feedweight = parseFloat(row.ftweight)      } else {        if (row.supplyweight !== '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.supplyweight) + parseFloat(row.ftweight), 2)        } else if (row.supplyweight == '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.ftweight), 2)        } else if (row.supplyweight !== '' && row.ftweight == '') {          row.feedweight = formatNum(parseFloat(row.supplyweight), 2)        }        // if (row.ccountratio !== '' && row.ftweight !== '') {        //   row.ftweight = parseFloat(row.Sfweight) * parseFloat(row.ccountratio)        // }        // if (row.ccountratio !== '' && row.BLweight !== '') {        //   row.supplyweight = parseFloat(row.BLweight) * parseFloat(row.ccountratio)        // }      }      if (row.r1 !== '') { this.$set(row, 'w1', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r1) / 100), 2)) }      if (row.r2 !== '') { this.$set(row, 'w2', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r2) / 100), 2)) }      if (row.r3 !== '') { this.$set(row, 'w3', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r3) / 100), 2)) }      if (row.r4 !== '') { this.$set(row, 'w4', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r4) / 100), 2)) }    },    // 实际牛头数失去焦点计算    // ccount实际牛头数    // ratio系数    // ccountratio系数牛头数    blurCcount(row) { // 实际牛头数      console.log(row)      if (row.ftid !== '-1' && row.ftid !== '') {        console.log(this.recipeTemplateList.find(obj => obj.id == row.ftid).Sfweight)        row.Sfweight = this.recipeTemplateList.find(obj => obj.id == row.ftid).Sfweight        row.SfweightLock = this.recipeTemplateList.find(obj => obj.id == row.ftid).SfweightLock      }      if (row.ptsfid !== '-1' && row.ptsfid !== '' && this.table.isPtsfname == true) {        // row.ptsfid = parseInt(row.ptsfid)        row.BLweight = formatNum(parseFloat(this.feedingFormulaList.find(obj => obj.id == row.ptsfid).Sfweight), 2)        row.BLweightLock = formatNum(parseFloat(this.feedingFormulaList.find(obj => obj.id == row.ptsfid).SfweightLock), 2)      }      if (row.ptsfid == '') {        row.BLweight = 0        row.BLweightLock = 0      }      if (row.Sfweight !== '' && row.ccount !== '') {        // console.log(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount))        row.ftweight = formatNum(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount), 2)      }      // 系数牛头数 = 实际牛头数 * 系数/100      if (row.ccount !== '' && row.ratio !== '') {        row.ccountratio = formatNum(parseFloat(row.ccount) * parseFloat(row.ratio) / 100, 2)      } else if (row.ratio !== '' && row.ccountratio !== '') {        row.ccount = formatNum(parseFloat(row.ccountratio) * 100 / parseFloat(row.ratio) / 100, 2)      } else if (row.ccount !== '' || row.ratio !== '') {        row.ccountratio = ''      }      // 补料重量      console.log(row.ccountratio, row.BLweight)      if (row.BLweight == 'undefined') {        this.$set(row, 'BLweight', '')      }      console.log('BLweight', row.BLweight)      console.log('ccountratio', row.ccountratio)      console.log('BLweightLock', row.BLweightLock)      console.log('ccount', row.ccount)      if (row.ccountratio !== '' && row.BLweight !== '') {        row.supplyweight = formatNum(parseFloat(row.BLweight) * parseFloat(row.ccountratio) + parseFloat(row.BLweightLock) * parseFloat(row.ccount), 2)      } else if (row.ccountratio !== '' && row.BLweight == '') {        row.supplyweight = ''        row.feedweight = ''      } else if (row.ccountratio == '' && row.BLweight !== '') {        row.supplyweight = ''        row.feedweight = ''      }      // 配方重量      if (row.ccountratio !== '' && row.Sfweight !== '') {        row.ftweight = formatNum(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount), 2)      } else if (row.ccountratio !== '' && row.Sfweight == '') {        row.ftweight = ''        row.feedweight = ''      } else if (row.ccountratio == '' && row.Sfweight !== '') {        row.ftweight = ''        row.feedweight = ''      }      if (this.table.isPtsfname == false) {        row.feedweight = parseFloat(row.ftweight)      } else {        if (row.supplyweight !== '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.supplyweight) + parseFloat(row.ftweight), 2)        } else if (row.supplyweight !== '' && row.ftweight == '') {          row.feedweight = formatNum(parseFloat(row.supplyweight), 2)        } else if (row.supplyweight == '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.ftweight), 2)        }        // 配方重量 = 系数头数 * Sfweight        if (row.ccountratio !== '' && row.ftweight !== '') {          row.ftweight = formatNum(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount), 2)        }        // 补料重量 = 系数头数 * BLweight        if (row.ccountratio !== '' && row.BLweight !== '') {          row.supplyweight = formatNum(parseFloat(row.BLweight) * parseFloat(row.ccountratio) + parseFloat(row.BLweightLock) * parseFloat(row.ccount), 2)        }      }      if (row.r1 !== '') { this.$set(row, 'w1', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r1) / 100), 2)) }      if (row.r2 !== '') { this.$set(row, 'w2', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r2) / 100), 2)) }      if (row.r3 !== '') { this.$set(row, 'w3', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r3) / 100), 2)) }      if (row.r4 !== '') { this.$set(row, 'w4', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r4) / 100), 2)) }    },    blurRatio(row) {      console.log(row, '--------------')      if (row.ftid !== '-1' && row.ftid !== '') {        row.Sfweight = this.recipeTemplateList.find(obj => obj.id == row.ftid).Sfweight        row.SfweightLock = this.recipeTemplateList.find(obj => obj.id == row.ftid).SfweightLock      }      if (row.ptsfid !== '-1' && row.ptsfid !== '' && this.table.isPtsfname == true) {        // row.ptsfid = parseInt(row.ptsfid)        row.BLweight = formatNum(parseFloat(this.feedingFormulaList.find(obj => obj.id == row.ptsfid).Sfweight), 2)        row.BLweightLock = formatNum(parseFloat(this.feedingFormulaList.find(obj => obj.id == row.ptsfid).SfweightLock), 2)      }      if (row.ptsfid == '') {        row.BLweight = 0        row.BLweightLock = 0      }      // 系数      if (row.ccount !== '' && row.ratio !== '' && row.ccountratio !== '') {        row.ccountratio = formatNum(parseFloat(row.ccount) * parseFloat(row.ratio) / 100, 2)      } else if (row.ccount !== '' && row.ccountratio !== '') {        row.ratio = formatNum(parseFloat(row.ccountratio) * 100 / parseFloat(row.ccount), 2)      } else if (row.ccount !== '' || row.ccountratio !== '') {        row.ratio = ''      }      // 补料重量      if (row.ccountratio !== '' && row.BLweight !== '') {        row.supplyweight = formatNum(parseFloat(row.BLweight) * parseFloat(row.ccountratio) + parseFloat(row.BLweightLock) * parseFloat(row.ccount), 2)      } else if (row.ccountratio !== '' && row.BLweight == '' || row.ccountratio == '' && row.BLweight !== '') {        row.supplyweight = ''        row.feedweight = ''      }      // 配方重量      if (row.ccountratio !== '' && row.Sfweight !== '') {        row.ftweight = formatNum(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount), 2)      } else if (row.ccountratio !== '' && row.Sfweight == '' || row.ccountratio == '' && row.Sfweight !== '') {        row.ftweight = ''        row.feedweight = ''      }      // 投喂量      if (row.supplyweight !== '' && row.ftweight !== '') {        row.feedweight = formatNum(parseFloat(row.BLweight) * parseFloat(row.ccountratio) + parseFloat(row.BLweightLock) * parseFloat(row.ccount), 2)      } else if (row.supplyweight == '' && row.ftweight !== '') {        row.feedweight = formatNum(parseFloat(row.ftweight), 2)      } else if (row.supplyweight !== '' && row.ftweight == '') {        row.feedweight = formatNum(parseFloat(row.supplyweight), 2)      }      console.log(row.supplyweight, '补料重量')      console.log(row.ftweight, '配方重量')      if (this.table.isPtsfname == false) {        row.feedweight = formatNum(parseFloat(row.ftweight), 2)      } else {        // 投喂量        if (row.supplyweight !== '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.supplyweight) + parseFloat(row.ftweight), 2)        } else if (row.supplyweight == '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.ftweight), 2)        } else if (row.supplyweight !== '' && row.ftweight == '') {          row.feedweight = formatNum(parseFloat(row.supplyweight), 2)        }        // 补料重量        if (row.ccountratio !== '' && row.BLweight !== '') {          row.supplyweight = formatNum(parseFloat(row.BLweight) * parseFloat(row.ccountratio) + parseFloat(row.BLweightLock) * parseFloat(row.ccount), 2)        } else if (row.ccountratio !== '' && row.BLweight == '') {          row.supplyweight = ''          row.feedweight = ''        } else if (row.ccountratio == '' && row.BLweight !== '') {          row.supplyweight = ''          row.feedweight = ''        }        // 配方重量        if (row.ccountratio !== '' && row.Sfweight !== '') {          row.ftweight = formatNum(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount), 2)        } else if (row.ccountratio !== '' && row.Sfweight == '') {          row.ftweight = ''          row.feedweight = ''        } else if (row.ccountratio == '' && row.Sfweight !== '') {          row.ftweight = ''          row.feedweight = ''        }      }      if (row.r1 !== '') { this.$set(row, 'w1', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r1) / 100), 2)) }      if (row.r2 !== '') { this.$set(row, 'w2', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r2) / 100), 2)) }      if (row.r3 !== '') { this.$set(row, 'w3', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r3) / 100), 2)) }      if (row.r4 !== '') { this.$set(row, 'w4', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r4) / 100), 2)) }    },    blurCcountratio(row) {      if (row.ftid !== '-1' && row.ftid !== '') {        row.Sfweight = this.recipeTemplateList.find(obj => obj.id == row.ftid).Sfweight        row.SfweightLock = this.recipeTemplateList.find(obj => obj.id == row.ftid).SfweightLock      }      if (row.ptsfid !== '-1' && row.ptsfid !== '' && this.table.isPtsfname == true) {        // row.ptsfid = parseInt(row.ptsfid)        row.BLweight = formatNum(parseFloat(this.feedingFormulaList.find(obj => obj.id == row.ptsfid).Sfweight), 2)        row.BLweightLock = formatNum(parseFloat(this.feedingFormulaList.find(obj => obj.id == row.ptsfid).SfweightLock), 2)      }      if (row.ptsfid == '') {        row.BLweight = 0        row.BLweightLock = 0      }      if (row.ptsfid == '') {        row.BLweight = 0        row.BLweightLock = 0      }      // 系数头数      if (row.ccountratio !== '' && row.ccount !== '' && row.ratio !== '') {        row.ratio = formatNum(parseFloat(row.ccountratio) * 100 / parseFloat(row.ccount), 2)      } else if (row.ccount !== '' && row.ratio !== '') {        row.ccountratio = formatNum(parseFloat(row.ccount) * parseFloat(row.ratio) / 100, 2)      } else if (row.ccountratio !== '' && row.ccount !== '') {        row.ratio = formatNum(parseFloat(row.ccountratio) * 100 / parseFloat(row.ccount), 2)      } else if (row.ccountratio !== '' && row.ratio !== '') {        row.ccount = formatNum(parseFloat(row.ccountratio) * 100 / parseFloat(row.ratio) / 100, 2)      }      // 补料重量      if (row.ccountratio !== '' && row.BLweight !== '') {        row.supplyweight = formatNum(parseFloat(row.BLweight) * parseFloat(row.ccountratio) + parseFloat(row.BLweightLock) * parseFloat(row.ccount), 2)      } else if (row.ccountratio !== '' && row.BLweight == '') {        row.supplyweight = ''        row.feedweight = ''      } else if (row.ccountratio == '' && row.BLweight !== '') {        row.supplyweight = ''        row.feedweight = ''      }      // 配方重量      if (row.ccountratio !== '' && row.Sfweight !== '') {        row.ftweight = formatNum(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount), 2)      } else if (row.ccountratio !== '' && row.Sfweight == '') {        row.ftweight = ''        row.feedweight = ''      } else if (row.ccountratio == '' && row.Sfweight !== '') {        row.ftweight = ''        row.feedweight = ''      }      // 投喂量      if (row.supplyweight !== '' && row.ftweight !== '') {        row.feedweight = formatNum(parseFloat(row.supplyweight) + parseFloat(row.ftweight), 2)      } else if (row.supplyweight == '' && row.ftweight !== '') {        row.feedweight = formatNum(parseFloat(row.ftweight), 2)      } else if (row.supplyweight !== '' && row.ftweight == '') {        row.feedweight = formatNum(parseFloat(row.supplyweight), 2)      }      if (this.table.isPtsfname == false) {        console.log(row)        row.feedweight = formatNum(parseFloat(row.ftweight), 2)      } else {        // 投喂量        if (row.supplyweight !== '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.supplyweight) + parseFloat(row.ftweight), 2)        } else if (row.supplyweight == '' && row.ftweight !== '') {          row.feedweight = formatNum(parseFloat(row.ftweight), 2)        } else if (row.supplyweight !== '' && row.ftweight == '') {          row.feedweight = formatNum(parseFloat(row.supplyweight), 2)        }        // 补料重量        if (row.ccountratio !== '' && row.BLweight !== '') {          row.supplyweight = formatNum(parseFloat(row.BLweight) * parseFloat(row.ccountratio) + parseFloat(row.BLweightLock) * parseFloat(row.ccount), 2)        } else if (row.ccountratio !== '' && row.BLweight == '') {          row.supplyweight = ''          row.feedweight = ''        } else if (row.ccountratio == '' && row.BLweight !== '') {          row.supplyweight = ''          row.feedweight = ''        }        // 配方重量        if (row.ccountratio !== '' && row.Sfweight !== '') {          row.ftweight = formatNum(parseFloat(row.Sfweight) * parseFloat(row.ccountratio) + parseFloat(row.SfweightLock) * parseFloat(row.ccount), 2)        } else if (row.ccountratio !== '' && row.Sfweight == '') {          row.ftweight = ''          row.feedweight = ''        } else if (row.ccountratio == '' && row.Sfweight !== '') {          row.ftweight = ''          row.feedweight = ''        }      }      if (row.r1 !== '') { this.$set(row, 'w1', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r1) / 100), 2)) }      if (row.r2 !== '') { this.$set(row, 'w2', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r2) / 100), 2)) }      if (row.r3 !== '') { this.$set(row, 'w3', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r3) / 100), 2)) }      if (row.r4 !== '') { this.$set(row, 'w4', formatNum(parseFloat(row.feedweight) * (parseFloat(row.r4) / 100), 2)) }    },    // 总比例    blurR(row) {      if (row.r1 == '') { row.r1 = 0 }      if (row.r2 == '') { row.r2 = 0 }      if (row.r3 == '') { row.r3 = 0 }      if (row.r4 == '') { row.r4 = 0 }      if (row.r1 !== '') {        row.w1 = formatNum(parseFloat(row.feedweight) * parseFloat(row.r1) / 100, 2)      }      if (row.r2 !== '') {        row.w2 = formatNum(parseFloat(row.feedweight) * parseFloat(row.r2) / 100, 2)      }      if (row.r3 !== '') {        row.w3 = formatNum(parseFloat(row.feedweight) * parseFloat(row.r3) / 100, 2)      }      if (row.r4 !== '') {        row.w4 = formatNum(parseFloat(row.feedweight) * parseFloat(row.r4) / 100, 2)      }      this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))    },    // 一班重量得到焦点    focusW(row) {      console.log(row)      this.focusWRow = Object.assign({}, row)    },    // 1班重量得到焦点    focusW2(row) {      this.focusWRow2 = Object.assign({}, row)    },    // 3班重量得到焦点    focusW3(row) {      this.focusWRow3 = Object.assign({}, row)    },    // 4班重量得到焦点    focusW4(row) {      this.focusWRow4 = Object.assign({}, row)    },    // 一班重量    blurW(row) {      if (row.w1 == '') {        row.w1 = 0      }      if (row.w2 == '') {        row.w2 = 0      }      if (row.w3 == '') {        row.w3 = 0      }      if (row.w4 == '') {        row.w4 = 0      }      if (row.r1 == '') {        row.r1 = 0      }      if (row.r2 == '') {        row.r2 = 0      }      if (row.r3 == '') {        row.r3 = 0      }      if (row.r4 == '') {        row.r4 = 0      }      // row.ftweight = parseFloat(row.w1) + parseFloat(row.w2) + parseFloat(row.w3) + parseFloat(row.w4)      console.log(row, '=======投喂量feedweight')      // isOneWeight,isTwoWeight,isThreeWeight,isFourWeight      if (this.table.RWLength == 4) {        // 2班3班4班都锁定        if (row.isTwoWeight == true && row.isThreeWeight == true && row.isFourWeight == true) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班3班锁定4班未锁定        if (row.isTwoWeight == true && row.isThreeWeight == true && row.isFourWeight == false) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2) - parseFloat(row.w3), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班4班锁定3班未锁定        if (row.isTwoWeight == true && row.isFourWeight == true && row.isThreeWeight == false) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2) - parseFloat(row.w4), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 3班4班锁定2班未锁定        if (row.isTwoWeight == false && row.isThreeWeight == true && row.isFourWeight == true) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w3) - parseFloat(row.w4), 2)          row.r2 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班锁定,3班4班未锁        if (row.isTwoWeight == true && row.isThreeWeight == false && row.isFourWeight == false) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2)) * parseFloat(row.r3) / (parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r4)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100)          row.w4 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2)) * parseFloat(row.r4) / (parseFloat(this.focusWRow.r3) + parseFloat(row.r4)), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100)          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 3班锁定,2班4班未锁        if (row.isTwoWeight == false && row.isThreeWeight == true && row.isFourWeight == false) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w3)) * parseFloat(row.r2) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r4)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w3)) * parseFloat(row.r4) / (parseFloat(this.focusWRow.r2) + parseFloat(row.r4)), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 4班锁定,2班3班未锁        if (row.isTwoWeight == false && row.isThreeWeight == false && row.isFourWeight == true) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w4)) * parseFloat(row.r2) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w4)) * parseFloat(row.r3) / (parseFloat(this.focusWRow.r2) + parseFloat(row.r3)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班3班4班未锁        if (row.isTwoWeight == false && row.isThreeWeight == false && row.isFourWeight == false) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1)) * parseFloat(row.r2) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r4)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1)) * parseFloat(row.r3) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r4)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1)) * parseFloat(row.r4) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r4)), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }      } else if (this.table.RWLength == 3) {        // 三班        // 2班/3班锁定        if (row.isTwoWeight == true && row.isThreeWeight == true) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }        // 2班不锁3班锁        if (row.isTwoWeight == false && row.isThreeWeight == true) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w3), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }        // 3班不锁2班锁        if (row.isTwoWeight == true && row.isThreeWeight == false) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }        // 2班3班都不锁        if (row.isTwoWeight == false && row.isThreeWeight == false) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1)) * parseFloat(row.r2) / (parseFloat(row.r2) + parseFloat(row.r3)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1)) * parseFloat(row.r3) / (parseFloat(this.focusWRow.r2) + parseFloat(row.r3)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }      } else if (this.table.RWLength == 2) {        // 两班isOneWeight,isTwoWeight        if (row.w1 == '') { row.w1 = 0 }        if (row.w2 == '') { row.w2 = 0 }        if (row.r1 == '') { row.r1 = 0 }        if (row.r2 == '') { row.r2 = 0 }        if (row.isTwoWeight == false) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) { row.w2 = 0; row.r2 = 0 }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2), 2))        } else {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2), 2))        }      }    },    blurW2(row) {      // 2班重量      if (row.w1 == '') {        row.w1 = 0      }      if (row.w2 == '') {        row.w2 = 0      }      if (row.w3 == '') {        row.w3 = 0      }      if (row.w4 == '') {        row.w4 = 0      }      if (row.r1 == '') {        row.r1 = 0      }      if (row.r2 == '') {        row.r2 = 0      }      if (row.r3 == '') {        row.r3 = 0      }      if (row.r4 == '') {        row.r4 = 0      }      // row.ftweight = parseFloat(row.w1) + parseFloat(row.w2) + parseFloat(row.w3) + parseFloat(row.w4)      console.log(row, '=======投喂量feedweight')      // isOneWeight,isTwoWeight,isThreeWeight,isFourWeight      if (this.table.RWLength == 4) {        // 四班        // 1班3班4班都锁定        if (row.isOneWeight == true && row.isThreeWeight == true && row.isFourWeight == true) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 1班3班锁定4班未锁定        if (row.isOneWeight == true && row.isThreeWeight == true && row.isFourWeight == false) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2) - parseFloat(row.w3), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 1班4班锁定3班未锁定        if (row.isOneWeight == true && row.isFourWeight == true && row.isThreeWeight == false) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2) - parseFloat(row.w4), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 3班4班锁定1班未锁定        if (row.isOneWeight == false && row.isThreeWeight == true && row.isFourWeight == true) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w2) - parseFloat(row.w3) - parseFloat(row.w4), 2)          row.r1 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 1班锁定,3班4班未锁        if (row.isOneWeight == true && row.isThreeWeight == false && row.isFourWeight == false) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2)) * parseFloat(row.r3) / (parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r4)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2)) * parseFloat(row.r4) / (parseFloat(this.focusWRow.r3) + parseFloat(row.r4)), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 3班锁定,1班4班未锁        if (row.isOneWeight == false && row.isThreeWeight == true && row.isFourWeight == false) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2) - parseFloat(row.w3)) * parseFloat(row.r1) / (parseFloat(this.focusWRow.r1) + parseFloat(this.focusWRow.r2)), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2) - parseFloat(row.w3)) * parseFloat(row.r4) / (parseFloat(this.focusWRow.r1) + parseFloat(row.r2)), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 4班锁定,1班3班未锁        if (row.isOneWeight == false && row.isThreeWeight == false && row.isFourWeight == true) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2) - parseFloat(row.w4)) * parseFloat(row.r1) / (parseFloat(this.focusWRow.r1) + parseFloat(this.focusWRow.r3)), 2)          row.r1 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2) - parseFloat(row.w4)) * parseFloat(row.r3) / (parseFloat(this.focusWRow.r1) + parseFloat(row.r3)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 1班3班4班未锁        if (row.isOneWeight == false && row.isThreeWeight == false && row.isFourWeight == false) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2)) * parseFloat(row.r1) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r1)), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2)) * parseFloat(row.r3) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r1)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2)) * parseFloat(row.r4) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r1)), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }      } else if (this.table.RWLength == 3) {        // 三班        // 1班/3班锁定        if (row.isOneWeight == true && row.isThreeWeight == true) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }        // 1班不锁3班锁        if (row.isOneWeight == false && row.isThreeWeight == true) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w2) - parseFloat(row.w3), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }        // 3班不锁1班锁        if (row.isOneWeight == true && row.isThreeWeight == false) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }        // 1班3班都不锁        if (row.isOneWeight == false && row.isThreeWeight == false) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2)) * parseFloat(row.r1) / (parseFloat(row.r1) + parseFloat(row.r3)), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2)) * parseFloat(row.r3) / (parseFloat(this.focusWRow2.r1) + parseFloat(row.r3)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }      } else if (this.table.RWLength == 2) {        // 两班        if (row.isTwoWeight == false) {          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w2), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) { row.w1 = 0; row.r1 = 0 }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2), 2))        } else {          row.r2 = parseFloat(row.w2) / parseFloat(row.feedweight) * 100          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2), 2))        }      }    },    blurW3(row) {      // 3班重量      if (row.w1 == '') {        row.w1 = 0      }      if (row.w2 == '') {        row.w2 = 0      }      if (row.w3 == '') {        row.w3 = 0      }      if (row.w4 == '') {        row.w4 = 0      }      if (row.r1 == '') {        row.r1 = 0      }      if (row.r2 == '') {        row.r2 = 0      }      if (row.r3 == '') {        row.r3 = 0      }      if (row.r4 == '') {        row.r4 = 0      }      // row.ftweight = parseFloat(row.w1) + parseFloat(row.w2) + parseFloat(row.w3) + parseFloat(row.w4)      console.log(row, '=======投喂量feedweight')      // isOneWeight,isTwoWeight,isThreeWeight,isFourWeight      if (this.table.RWLength == 4) {        // 四班        // 1班2班4班都锁定        if (row.isOneWeight == true && row.isTwoWeight == true && row.isFourWeight == true) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 1班2班锁定4班未锁定        if (row.isOneWeight == true && row.isTwoWeight == true && row.isFourWeight == false) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2) - parseFloat(row.w3), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班4班锁定1班未锁定        if (row.isOneWeight == false && row.isTwoWeight == true && row.isFourWeight == true) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w2) - parseFloat(row.w3) - parseFloat(row.w4), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 1班4班锁定2班未锁定        if (row.isTwoWeight == false && row.isOneWeight == true && row.isFourWeight == true) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w3) - parseFloat(row.w4), 2)          row.r2 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班锁定,1班4班未锁        if (row.isTwoWeight == true && row.isOneWeight == false && row.isFourWeight == false) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2) - parseFloat(row.w3)) * parseFloat(row.r1) / (parseFloat(this.focusWRow.r1) + parseFloat(this.focusWRow.r4)), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w2) - parseFloat(row.w3)) * parseFloat(row.r4) / (parseFloat(this.focusWRow.r1) + parseFloat(row.r4)), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 1班锁定,2班4班未锁        if (row.isTwoWeight == false && row.isOneWeight == true && row.isFourWeight == false) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w3)) * parseFloat(row.r2) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r4)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w3)) * parseFloat(row.r4) / (parseFloat(this.focusWRow.r2) + parseFloat(row.r4)), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 4班锁定,2班1班未锁        if (row.isTwoWeight == false && row.isOneWeight == false && row.isFourWeight == true) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w3) - parseFloat(row.w4)) * parseFloat(row.r1) / (parseFloat(this.focusWRow.r1) + parseFloat(this.focusWRow.r2)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w3) - parseFloat(row.w4)) * parseFloat(row.r2) / (parseFloat(this.focusWRow.r1) + parseFloat(row.r2)), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班1班4班未锁        if (row.isTwoWeight == false && row.isOneWeight == false && row.isFourWeight == false) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w3)) * parseFloat(row.r1) / (parseFloat(this.focusWRow.r1) + parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r4)), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w3)) * parseFloat(row.r2) / (parseFloat(this.focusWRow.r1) + parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r4)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w4 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w3)) * parseFloat(row.r4) / (parseFloat(this.focusWRow.r1) + parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r4)), 2)          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          if (row.w4 <= 0) {            row.w4 = 0            row.r4 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }      } else if (this.table.RWLength == 3) {        // 三班        // 1班/2班锁定        if (row.isOneWeight == true && row.isTwoWeight == true) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }        // 1班不锁2班锁        if (row.isOneWeight == false && row.isTwoWeight == true) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w2) - parseFloat(row.w3), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }        // 3班不锁2班锁        // 2班不锁1班锁        if (row.isOneWeight == true && row.isTwoWeight == false) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w3), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }        // 2班3班都不锁        // 1班2班都不锁        if (row.isOneWeight == false && row.isTwoWeight == false) {          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w3)) * parseFloat(row.r1) / (parseFloat(row.r1) + parseFloat(row.r2)), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w3)) * parseFloat(row.r2) / (parseFloat(this.focusWRow3.r1) + parseFloat(row.r2)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3), 2))        }      }    },    blurW4(row) {      if (row.w1 == '') {        row.w1 = 0      }      if (row.w2 == '') {        row.w2 = 0      }      if (row.w3 == '') {        row.w3 = 0      }      if (row.w4 == '') {        row.w4 = 0      }      if (row.r1 == '') {        row.r1 = 0      }      if (row.r2 == '') {        row.r2 = 0      }      if (row.r3 == '') {        row.r3 = 0      }      if (row.r4 == '') {        row.r4 = 0      }      // row.ftweight = parseFloat(row.w1) + parseFloat(row.w2) + parseFloat(row.w3) + parseFloat(row.w4)      console.log(row, '=======投喂量feedweight')      // isOneWeight,isTwoWeight,isThreeWeight,isFourWeight      if (this.table.RWLength == 4) {        // 四班        // 1班2班3班都锁定        if (row.isOneWeight == true && row.isTwoWeight == true && row.isThreeWeight == true) {          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班3班锁定1班未锁定        if (row.isOneWeight == false && row.isTwoWeight == true && row.isThreeWeight == true) {          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w4) - parseFloat(row.w2) - parseFloat(row.w3), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班1班锁定3班未锁定        if (row.isOneWeight == true && row.isTwoWeight == true && row.isThreeWeight == false) {          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w2) - parseFloat(row.w4), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 3班1班锁定2班未锁定        if (row.isOneWeight == true && row.isTwoWeight == false && row.isThreeWeight == true) {          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum(parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w3) - parseFloat(row.w4), 2)          row.r2 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班锁定,3班1班未锁        if (row.isOneWeight == false && row.isTwoWeight == true && row.isThreeWeight == false) {          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w4) - parseFloat(row.w2)) * parseFloat(row.r3) / (parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r1)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w4) - parseFloat(row.w2)) * parseFloat(row.r1) / (parseFloat(this.focusWRow.r3) + parseFloat(row.r1)), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 3班锁定,2班1班未锁        if (row.isOneWeight == false && row.isTwoWeight == false && row.isThreeWeight == true) {          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w4) - parseFloat(row.w3)) * parseFloat(row.r2) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r1)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w4) - parseFloat(row.w3)) * parseFloat(row.r1) / (parseFloat(this.focusWRow.r2) + parseFloat(row.r1)), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 1班锁定,2班3班未锁        if (row.isOneWeight == true && row.isTwoWeight == false && row.isThreeWeight == false) {          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w4)) * parseFloat(row.r2) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w1) - parseFloat(row.w4)) * parseFloat(row.r3) / (parseFloat(this.focusWRow.r2) + parseFloat(row.r3)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }        // 2班3班1班未锁        if (row.isOneWeight == false && row.isTwoWeight == false && row.isThreeWeight == false) {          row.r4 = formatNum(parseFloat(row.w4) / parseFloat(row.feedweight) * 100, 2)          row.w1 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w4)) * parseFloat(row.r1) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r1)), 2)          row.r1 = formatNum(parseFloat(row.w1) / parseFloat(row.feedweight) * 100, 2)          row.w2 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w4)) * parseFloat(row.r2) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r1)), 2)          row.r2 = formatNum(parseFloat(row.w2) / parseFloat(row.feedweight) * 100, 2)          row.w3 = formatNum((parseFloat(row.feedweight) - parseFloat(row.w4)) * parseFloat(row.r3) / (parseFloat(this.focusWRow.r2) + parseFloat(this.focusWRow.r3) + parseFloat(this.focusWRow.r1)), 2)          row.r3 = formatNum(parseFloat(row.w3) / parseFloat(row.feedweight) * 100, 2)          if (row.w1 <= 0) {            row.w1 = 0            row.r1 = 0          }          if (row.w2 <= 0) {            row.w2 = 0            row.r2 = 0          }          if (row.w3 <= 0) {            row.w3 = 0            row.r3 = 0          }          this.$set(row, 'sumr', formatNum(parseFloat(row.r1) + parseFloat(row.r2) + parseFloat(row.r3) + parseFloat(row.r4), 2))        }      }    },    // 编辑    handleUpdate(row) {      console.log(row)      for (let i = 0; i < this.table.list.length; i++) {        if (this.table.list[i].Edit == true) {          this.$message({            type: 'error',            message: '当前内容未保存,请点击取消或保存继续进行操作',            duration: 2000          })          return false        }      }      // 编辑true,不可编辑false      row.Edit = true      row.NoEdit = false      // 编辑false,编辑保存true      row.isUpdate = false      row.isUpdateSave = true      row.ftid = String(row.ftid)      if (row.ptsfid == '-1') {        row.ptsfid = ''      }      row.ptsfid = String(row.ptsfid)      this.table.temp.ftid = row.ftid      this.table.temp.ftname = row.ftname      this.table.temp.ptsfid = row.ptsfid      this.table.temp.ptsfname = row.ptsfname    },    updateData(row) {      console.log(row)      if (row.r1 == 'NaN') { this.$set(row, 'r1', 0) }      if (row.r2 == 'NaN') { this.$set(row, 'r2', 0) }      if (row.r3 == 'NaN') { this.$set(row, 'r3', 0) }      if (row.r4 == 'NaN') { this.$set(row, 'r4', 0) }      if (row.w1 == 'NaN') { this.$set(row, 'w1', 0) }      if (row.w2 == 'NaN') { this.$set(row, 'w2', 0) }      if (row.w3 == 'NaN') { this.$set(row, 'w3', 0) }      if (row.w4 == 'NaN') { this.$set(row, 'w4', 0) }      console.log(row)      var arr = []      for (let i = 1; i <= this.table.RWLength; i++) {        var obj = {}        obj['times'] = i        obj['pastureid'] = row.pastureid        obj['barid'] = row.barid        obj['cowcount'] = row.ccount        obj['ccountradio'] = row.ccountradio        obj['ptid'] = row.ftid        if (row.ptsfid !== '') {          obj['ptsid'] = row.ptsfid        } else {          obj['ptsid'] = '-1'        }        obj['weight'] = row['w' + i]        obj['tratio'] = Math.round(row['r' + i])        arr.push(obj)      }      if (this.table.isPtsfname == 0) {        row.ptsfid = '-1'        row.ptsfname = ''      } else {        if (row.ptsfid == '') {          row.ptsfid = '-1'          row.ptsfname = ''        }      }      if (row.supplyweight == '') {        row.supplyweight = '0'      }      if (this.table.isPtsfname == false) {        row.supplyweight = '0'      }      console.log(row, '============')      this.$set(row, 'ratio', Math.floor(parseFloat(row.ratio) * 100) / 100)      this.$set(row, 'ccountratio', Math.floor(parseFloat(row.ccountratio) * 100) / 100)      row.ratio = String(row.ratio)      row.ccountratio = String(row.ccountratio)      row.sumr = Math.round(row.sumr)      this.table.rwList = arr      console.log('点击了编辑保存', row)      this.table.temp.pastureid = row.pastureid      this.table.temp.id = row.id      this.table.temp.barname = row.barname      this.table.temp.barid = row.barid      this.table.temp.ccount = row.ccount      this.table.temp.ratio = row.ratio      this.table.temp.ccountratio = row.ccountratio      this.table.temp.ftid = row.ftid      this.table.temp.ftname = row.ftname      this.table.temp.ptsfid = row.ptsfid      this.table.temp.ptsfname = row.ptsfname      this.table.temp.ftweight = row.ftweight      this.table.temp.supplyweight = row.supplyweight      this.table.temp.feedweight = row.feedweight      this.table.temp.owner = row.owner      this.table.temp.sumr = row.sumr      if (row.softccount == '') {        row.softccount = 0      }      if (row.r1 == '') {        row.r1 = 0      }      if (row.r2 == '') {        row.r2 = 0      }      if (row.r3 == '') {        row.r3 = 0      }      if (row.r4 == '') {        row.r4 = 0      }      if (row.w1 == '') {        row.w1 = 0      }      if (row.w2 == '' || row.w4 == NaN) {        row.w2 = 0      }      if (row.w3 == '' || row.w4 == NaN) {        row.w3 = 0      }      if (row.w4 == '' || row.w4 == NaN) {        row.w4 = 0      }      console.log(row, '===========')      this.table.temp.softccount = row.softccount      this.table.temp.r1 = Math.round(row.r1)      this.table.temp.r2 = Math.round(row.r2)      this.table.temp.r3 = Math.round(row.r3)      this.table.temp.r4 = Math.round(row.r4)      this.table.temp.w1 = row.w1      this.table.temp.w2 = row.w2      this.table.temp.w3 = row.w3      this.table.temp.w4 = row.w4      if (this.table.temp.ccount == '' && this.table.temp.ratio == '' && this.table.temp.ccountratio == '' && this.table.temp.ftid == '') {        this.$message({ type: 'error', message: '实际牛头数/系数/系数头数/配方模版不能为空', duration: 2000 })        return false      }      if (this.table.temp.ratio == '' && this.table.temp.ccountratio == '' && this.table.temp.ftid == '') {        this.$message({ type: 'error', message: '系数/系数头数/配方模版不能为空', duration: 2000 })        return false      }      if (this.table.temp.ccountratio == '' && this.table.temp.ftid == '') {        this.$message({ type: 'error', message: '系数头数/配方模版不能为空', duration: 2000 })        return false      }      console.log(this.table.temp.ccount, '实际牛头数不能为空')      if (this.table.temp.ccount == '') {        this.$message({ type: 'error', message: '实际牛头数不能为空', duration: 2000 })        return false      }      if (this.table.temp.ratio == '') {        this.$message({ type: 'error', message: '系数不能为空', duration: 2000 })        return false      }      if (this.table.temp.ccountratio == '') {        this.$message({ type: 'error', message: '系数头数不能为空', duration: 2000 })        return false      }      if (this.table.temp.ftid == '') {        this.$message({ type: 'error', message: '配方模版不能为空', duration: 2000 })        return false      }      const positiveInteger = /^[0-9]\d*$/      if (!positiveInteger.test(parseFloat(this.table.temp.ccount))) {        this.$message({          type: 'error',          message: '实际牛头数请输入正整数',          duration: 2000        })        return false      }      this.isokDisable = true      setTimeout(() => {        this.isokDisable = false      }, 1000)      // this.requestParam.parammaps = this.table.temp      this.requestParam.common = {        'returnmap': '0'      }      this.requestParam.data = []      this.requestParam.data[0] = { 'name': 'updateBigFP', 'type': 'e', 'parammaps': {        pastureid: row.pastureid,        id: row.id,        barname: row.barname,        barid: row.barid,        softccount: row.softccount,        ccount: row.ccount,        ratio: row.ratio,        ccountratio: row.ccountratio,        ftid: row.ftid,        ftname: row.ftname,        ptsfid: row.ptsfid,        ptsfname: row.ptsfname,        ftweight: row.ftweight,        supplyweight: row.supplyweight,        feedweight: row.feedweight,        owner: row.owner,        sumr: row.sumr      }}      this.requestParam.data[1] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.table.rwList }}      this.requestParam.data[1].children = []      this.requestParam.data[1].children[0] = { 'name': 'updateBigFPDetail', 'type': 'e', 'parammaps': {        pastureid: '@insertSpotList.pastureid',        barname: row.barname,        barid: '@insertSpotList.barid',        times: '@insertSpotList.times',        tratio: '@insertSpotList.tratio',        weight: '@insertSpotList.weight',        cowcount: '@insertSpotList.cowcount',        ccountradio: row.ccountratio,        ptid: '@insertSpotList.ptid',        ptsid: '@insertSpotList.ptsid',        feedweight: row.feedweight,        supplyweight: row.supplyweight,        ratio: row.ratio      }}      this.requestParam.data[2] = { 'name': 'updateLPPbyFPChange', 'type': 'e', 'parammaps': {        pastureid: row.pastureid,        fpid: row.id      }}      ExecDataByConfig(this.requestParam).then(response => {        console.log('编辑保存发送参数', this.requestParam)        if (response.msg === 'fail') {          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })        } else {          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })          this.getList()        }      })    },    updateCancel(row) {      console.log('点击了编辑取消')      // 编辑false,不可编辑true      row.Edit = false      row.NoEdit = true      // 编辑true,编辑保存false      row.isUpdate = true      row.isUpdateSave = false      // this.reload()      console.log(this.table.getdataListParm.offset)      this.table.getdataListParm.offset = this.table.getdataListParm.offset      this.getList()      // this.$router.push('/formulationPlan/dhedFormula')    },    cellClick(row, column, event) {      console.log(column)    },    handleSelect(val) {      console.log('勾选数据', val)      this.selectList = val    },    // 营养评估    handleNutritional() {      console.log('点击了营养评估')      if (this.selectList.length !== 1) {        this.$message({ type: 'error', message: '请选择一条栏舍信息进行营养评估', duration: 2000 })        return false      } else {        console.log(this.nutritional.temp)        this.nutritional.dialogStatus = 'Nutritional'        this.nutritional.activeName = 'first'        this.nutritional.dialogFormVisible = true        this.nutritional.tab1.getdataListParm1.parammaps.pastureid = this.selectList[0].pastureid        this.nutritional.tab1.getdataListParm1.parammaps.barid = this.selectList[0].barid        this.getNutritionalList()        this.nutritional.tab1.list = []      }    },    handleNutritionalTab(item) {      if (item == 'first ') {        this.nutritional.tab1.getdataListParm1.parammaps.pastureid = this.selectList[0].pastureid        this.nutritional.tab1.getdataListParm1.parammaps.barid = this.selectList[0].barid        this.getNutritionalList()        this.nutritional.tab1.list = []      } else {        console.log('牛群评估')        this.nutritional.tab2.getdataListParm1.parammaps.pastureid = this.selectList[0].pastureid        this.nutritional.tab2.getdataListParm1.parammaps.barid = this.selectList[0].barid        this.nutritional.tab2.getdataListParm1.parammaps.startTime = parseTime(this.nutritional.tab2.inputDatetime[0], '{y}-{m}-{d}')        this.nutritional.tab2.getdataListParm1.parammaps.stopTime = parseTime(this.nutritional.tab2.inputDatetime[1], '{y}-{m}-{d}')        this.nutritional.tab2.getdataListParm2.parammaps.pastureid = this.nutritional.tab2.getdataListParm1.parammaps.pastureid        this.nutritional.tab2.getdataListParm2.parammaps.barid = this.nutritional.tab2.getdataListParm1.parammaps.barid        this.nutritional.tab2.getdataListParm2.parammaps.startTime = this.nutritional.tab2.getdataListParm1.parammaps.startTime        this.nutritional.tab2.getdataListParm2.parammaps.stopTime = this.nutritional.tab2.getdataListParm1.parammaps.stopTime        this.nutritional.tab2.getdataListParm3.parammaps.pastureid = this.nutritional.tab2.getdataListParm1.parammaps.pastureid        this.nutritional.tab2.getdataListParm3.parammaps.barid = this.nutritional.tab2.getdataListParm1.parammaps.barid        this.nutritional.tab2.getdataListParm3.parammaps.startTime = this.nutritional.tab2.getdataListParm1.parammaps.startTime        this.nutritional.tab2.getdataListParm3.parammaps.stopTime = this.nutritional.tab2.getdataListParm1.parammaps.stopTime        this.nutritional.tab2.getdataListParm4.parammaps.pastureid = this.nutritional.tab2.getdataListParm1.parammaps.pastureid        this.nutritional.tab2.getdataListParm4.parammaps.barid = this.nutritional.tab2.getdataListParm1.parammaps.barid        this.nutritional.tab2.getdataListParm4.parammaps.startTime = this.nutritional.tab2.getdataListParm1.parammaps.startTime        this.nutritional.tab2.getdataListParm4.parammaps.stopTime = this.nutritional.tab2.getdataListParm1.parammaps.stopTime        this.getTab2NutritionalList1()        this.getTab2NutritionalList2()        this.getTab2NutritionalList3()        this.getTab2NutritionalList4()      }    },    changeTab2Date() {      this.nutritional.tab2.getdataListParm1.parammaps.pastureid = this.selectList[0].pastureid      this.nutritional.tab2.getdataListParm1.parammaps.barid = this.selectList[0].barid      this.nutritional.tab2.getdataListParm1.parammaps.startTime = parseTime(this.nutritional.tab2.inputDatetime[0], '{y}-{m}-{d}')      this.nutritional.tab2.getdataListParm1.parammaps.stopTime = parseTime(this.nutritional.tab2.inputDatetime[1], '{y}-{m}-{d}')      this.nutritional.tab2.getdataListParm2.parammaps.pastureid = this.nutritional.tab2.getdataListParm1.parammaps.pastureid      this.nutritional.tab2.getdataListParm2.parammaps.barid = this.nutritional.tab2.getdataListParm1.parammaps.barid      this.nutritional.tab2.getdataListParm2.parammaps.startTime = this.nutritional.tab2.getdataListParm1.parammaps.startTime      this.nutritional.tab2.getdataListParm2.parammaps.stopTime = this.nutritional.tab2.getdataListParm1.parammaps.stopTime      this.nutritional.tab2.getdataListParm3.parammaps.pastureid = this.nutritional.tab2.getdataListParm1.parammaps.pastureid      this.nutritional.tab2.getdataListParm3.parammaps.barid = this.nutritional.tab2.getdataListParm1.parammaps.barid      this.nutritional.tab2.getdataListParm3.parammaps.startTime = this.nutritional.tab2.getdataListParm1.parammaps.startTime      this.nutritional.tab2.getdataListParm3.parammaps.stopTime = this.nutritional.tab2.getdataListParm1.parammaps.stopTime      this.nutritional.tab2.getdataListParm4.parammaps.pastureid = this.nutritional.tab2.getdataListParm1.parammaps.pastureid      this.nutritional.tab2.getdataListParm4.parammaps.barid = this.nutritional.tab2.getdataListParm1.parammaps.barid      this.nutritional.tab2.getdataListParm4.parammaps.startTime = this.nutritional.tab2.getdataListParm1.parammaps.startTime      this.nutritional.tab2.getdataListParm4.parammaps.stopTime = this.nutritional.tab2.getdataListParm1.parammaps.stopTime      this.getTab2NutritionalList1()      this.getTab2NutritionalList2()      this.getTab2NutritionalList3()      this.getTab2NutritionalList4()    },    handleBefore() {      if (this.nutritional.activeName == 'first') {        if (this.nutritional.tab1.inputDatetime !== '' && this.nutritional.tab1.inputDatetime !== null) {          var start = new Date(this.nutritional.tab1.inputDatetime[0].setDate(this.nutritional.tab1.inputDatetime[0].getDate() - 1))          var stop = new Date(this.nutritional.tab1.inputDatetime[1].setDate(this.nutritional.tab1.inputDatetime[1].getDate() - 1))          this.nutritional.tab1.inputDatetime.length = 0          this.nutritional.tab1.inputDatetime.push(start, stop)          this.$forceUpdate()        }      } else {        var start2 = new Date(this.nutritional.tab2.inputDatetime[0].setDate(this.nutritional.tab2.inputDatetime[0].getDate() - 1))        var stop2 = new Date(this.nutritional.tab2.inputDatetime[1].setDate(this.nutritional.tab2.inputDatetime[1].getDate() - 1))        this.nutritional.tab2.inputDatetime.length = 0        this.nutritional.tab2.inputDatetime.push(start2, stop2)        this.$forceUpdate()      }    },    handleNext() {      if (this.nutritional.activeName == 'first') {        if (this.nutritional.tab1.inputDatetime !== '' && this.nutritional.tab1.inputDatetime !== null) {          console.log(this.nutritional.tab1.inputDatetime)          var start3 = new Date(this.nutritional.tab1.inputDatetime[0].setDate(this.nutritional.tab1.inputDatetime[0].getDate() + 1))          var stop3 = new Date(this.nutritional.tab1.inputDatetime[1].setDate(this.nutritional.tab1.inputDatetime[1].getDate() + 1))          this.nutritional.tab1.inputDatetime.length = 0          this.nutritional.tab1.inputDatetime.push(start3, stop3)          this.$forceUpdate()        }      } else {        if (this.nutritional.tab2.inputDatetime !== '' && this.nutritional.tab2.inputDatetime !== null) {          var start4 = new Date(this.nutritional.tab2.inputDatetime[0].setDate(this.nutritional.tab2.inputDatetime[0].getDate() + 1))          var stop4 = new Date(this.nutritional.tab2.inputDatetime[1].setDate(this.nutritional.tab2.inputDatetime[1].getDate() + 1))          this.nutritional.tab2.inputDatetime.length = 0          this.nutritional.tab2.inputDatetime.push(start4, stop4)          this.$forceUpdate()        }      }    },    getNutritionalList() {      this.nutritional.tab1.listLoading1 = true      GetDataByName(this.nutritional.tab1.getdataListParm1).then(response => {        console.log('评估上方数据', response.data.list)        if (response.data.list !== null) {          response.data.list[0].cowclassid = String(response.data.list[0].cowclassid)          this.nutritional.tab1.temp = response.data.list[0]          this.nutritional.tab1.disabledCowclass = true        } else {          this.nutritional.tab1.temp = []          this.nutritional.tab1.disabledCowclass = false        }        setTimeout(() => {          this.nutritional.tab1.listLoading = false        }, 100)      })    },    assessmentData() {      console.log('评估保存')      this.$refs['temp'].validate(valid => {        if (valid) {          if (this.nutritional.tab1.inputDatetime == '' || this.nutritional.tab1.inputDatetime == null) {            this.$message({ type: 'error', message: '开始日期结束日期不能为空', duration: 2000 })            return false          } else {            this.nutritional.tab1.getdataListParm2.parammaps.name = 'judgenurFT'            this.nutritional.tab1.getdataListParm2.parammaps.name1 = 'judgenurBarHSL'            this.nutritional.tab1.getdataListParm2.parammaps.startTime = parseTime(this.nutritional.tab1.inputDatetime[0], '{y}-{m}-{d}')            this.nutritional.tab1.getdataListParm2.parammaps.stopTime = parseTime(this.nutritional.tab1.inputDatetime[1], '{y}-{m}-{d}')            this.nutritional.tab1.getdataListParm2.parammaps.bw = parseFloat(this.nutritional.tab1.temp.bw)            this.nutritional.tab1.getdataListParm2.parammaps.dayw = parseFloat(this.nutritional.tab1.temp.dayw)            this.nutritional.tab1.getdataListParm2.parammaps.fetal = parseFloat(this.nutritional.tab1.temp.fetal)            this.nutritional.tab1.getdataListParm2.parammaps.avgdim = parseFloat(this.nutritional.tab1.temp.avgdim)            this.nutritional.tab1.getdataListParm2.parammaps.dayspre = parseFloat(this.nutritional.tab1.temp.dayspre)            this.nutritional.tab1.getdataListParm2.parammaps.product = parseFloat(this.nutritional.tab1.temp.product)            this.nutritional.tab1.getdataListParm2.parammaps.fat = parseFloat(this.nutritional.tab1.temp.fat)            this.nutritional.tab1.getdataListParm2.parammaps.pro = parseFloat(this.nutritional.tab1.temp.pro)            this.nutritional.tab1.getdataListParm2.parammaps.lactose = parseFloat(this.nutritional.tab1.temp.lactose)            this.nutritional.tab1.getdataListParm2.parammaps.source = parseFloat(this.nutritional.tab1.temp.source)            this.nutritional.tab1.getdataListParm2.parammaps.tem = parseFloat(this.nutritional.tab1.temp.tem)            this.nutritional.tab1.getdataListParm2.parammaps.cowsum = parseFloat(this.nutritional.tab1.temp.cowsum)            this.nutritional.tab1.getdataListParm2.parammaps.cowclass = this.nutritional.tab1.temp.cowclass            this.nutritional.tab1.getdataListParm2.parammaps.cowclassid = this.nutritional.tab1.temp.cowclassid            this.nutritional.tab1.getdataListParm2.parammaps.bigcowclass = this.nutritional.tab1.temp.bigcowclass            this.nutritional.tab1.getdataListParm2.parammaps.pastureid = this.selectList[0].pastureid            this.nutritional.tab1.getdataListParm2.parammaps.barid = this.nutritional.tab1.temp.barid            this.nutritional.tab1.getdataListParm2.parammaps.date = this.nutritional.tab1.temp.date            this.getNutritionalList2()          }        }      })    },    getNutritionalList2() {      this.nutritional.tab1.listLoading2 = true      GETNurJudge(this.nutritional.tab1.getdataListParm2).then(response => {        console.log('评估下方数据', response.data)        if (response.data.list !== null) {          // response.data = response.data.sort(compareSort('sort'))          console.log(response.data)          this.nutritional.tab1.list = response.data          this.nutritional.tab1.total = response.data.total        } else {          this.nutritional.tab1.list = []        }        setTimeout(() => {          this.nutritional.tab1.listLoading2 = false        }, 100)      })    },    // 牛群评估    getTab2NutritionalList1() {      this.nutritional.tab2.listLoading1 = true      GetDataByName(this.nutritional.tab2.getdataListParm1).then(response => {        console.log('宾州筛分析', response.data.list)        if (response.data.list !== null) {          this.nutritional.tab2.list1 = response.data.list          this.nutritional.tab2.pageNum1 = response.data.pageNum          this.nutritional.tab2.pageSize1 = response.data.pageSize          this.nutritional.tab2.total1 = response.data.total        } else {          this.nutritional.tab2.list1 = []        }        setTimeout(() => {          this.nutritional.tab2.listLoading1 = false        }, 100)      })    },    getTab2NutritionalList2() {      this.nutritional.tab2.listLoading2 = true      GetDataByName(this.nutritional.tab2.getdataListParm2).then(response => {        console.log('粪便筛分析', response.data.list)        if (response.data.list !== null) {          this.nutritional.tab2.list2 = response.data.list          this.nutritional.tab2.pageNum2 = response.data.pageNum          this.nutritional.tab2.pageSize2 = response.data.pageSize          this.nutritional.tab2.total2 = response.data.total        } else {          this.nutritional.tab2.list2 = []        }        setTimeout(() => {          this.nutritional.tab2.listLoading2 = false        }, 100)      })    },    getTab2NutritionalList3() {      this.nutritional.tab2.listLoading3 = true      GetDataByName(this.nutritional.tab2.getdataListParm3).then(response => {        console.log('BCS评分', response.data.list)        if (response.data.list !== null) {          this.nutritional.tab2.list3 = response.data.list          this.nutritional.tab2.pageNum3 = response.data.pageNum          this.nutritional.tab2.pageSize3 = response.data.pageSize          this.nutritional.tab2.total3 = response.data.total        } else {          this.nutritional.tab2.list3 = []        }        setTimeout(() => {          this.nutritional.tab2.listLoading3 = false        }, 100)      })    },    getTab2NutritionalList4() {      this.nutritional.tab2.listLoading4 = true      GetDataByName(this.nutritional.tab2.getdataListParm4).then(response => {        console.log('粪便评分', response.data.list)        if (response.data.list !== null) {          this.nutritional.tab2.list4 = response.data.list          this.nutritional.tab2.pageNum4 = response.data.pageNum          this.nutritional.tab2.pageSize4 = response.data.pageSize          this.nutritional.tab2.total4 = response.data.total        } else {          this.nutritional.tab2.list4 = []        }        setTimeout(() => {          this.nutritional.tab2.listLoading4 = false        }, 100)      })    },    // 历史记录    handleHistoryRecords() {      console.log('点击了历史记录')      this.history.dialogStatus = 'history'      this.history.dialogFormVisible = true      this.getDateList()    },    // 历史时间    getDateList() {      GetDataByName(this.history.getdataDateParm).then(response => {        console.log('table数据', response.data.list)        if (response.data.list !== null) {          this.history.getdataListParm.parammaps.date = response.data.list[0].maxdate          this.getHistoryIsDisplay()        } else {          this.history.getdataListParm.parammaps.date = ''        }      })    },    getHistoryIsDisplay() {      GetDataByName(this.table.getdataListParm2).then(response => {        console.log(response.data.list[0].inforvalue)        if (response.data.list !== null) {          if (response.data.list[0].inforvalue == 0) {            this.table.isPtsfname = false          } else {            this.table.isPtsfname = true          }        }      })      GetDataByName(this.table.getdataListParm3).then(response => {        if (response.data.list !== null) {          if (response.data.list[0].inforvalue == 1) {            this.history.isRW1 = true            this.history.isRW2 = false            this.history.isRW3 = false            this.history.isRW4 = false          } else if (response.data.list[0].inforvalue == 2) {            this.history.isRW1 = true            this.history.isRW2 = true            this.history.isRW3 = false            this.history.isRW4 = false          } else if (response.data.list[0].inforvalue == 3) {            this.history.isRW1 = true            this.history.isRW2 = true            this.history.isRW3 = true            this.history.isRW4 = false          } else if (response.data.list[0].inforvalue == 4) {            this.history.isRW1 = true            this.history.isRW2 = true            this.history.isRW3 = true            this.history.isRW4 = true          }        } else {          this.history.isRW1 = false          this.history.isRW2 = false          this.history.isRW3 = false          this.history.isRW4 = false        }      })      this.getHistoryList()    },    getHistoryList() {      this.history.listLoading = true      GetDataByName(this.history.getdataListParm).then(response => {        console.log('table数据', response.data.list)        if (response.data.list !== null) {          console.log('table数据', response.data.list)          for (let i = 0; i < response.data.list.length; i++) {            this.$set(response.data.list[i], 'Edit', false) // 编辑            this.$set(response.data.list[i], 'NoEdit', true) // 不可编辑/输入            this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作            this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存            if (response.data.list[i].ftid == undefined || response.data.list[i].ftname == '') {              this.$set(response.data.list[i], 'ftid', '')              this.$set(response.data.list[i], 'ftname', '')            }            if (response.data.list[i].ptsfid == undefined || response.data.list[i].ptsfname == '') {              this.$set(response.data.list[i], 'ptsfid', '')              this.$set(response.data.list[i], 'ptsfname', '')            }            if (response.data.list[i].ccount == undefined) {              this.$set(response.data.list[i], 'ccount', '')            }            if (response.data.list[i].ratio == undefined) {              this.$set(response.data.list[i], 'ratio', '100')            }            if (response.data.list[i].ccountratio == undefined) {              this.$set(response.data.list[i], 'ccountratio', '')            }            if (response.data.list[i].r1 == undefined) {              this.$set(response.data.list[i], 'r1', '')            }            if (response.data.list[i].r2 == undefined) {              this.$set(response.data.list[i], 'r2', '')            }            if (response.data.list[i].r3 == undefined) {              this.$set(response.data.list[i], 'r3', '')            }            if (response.data.list[i].r4 == undefined) {              this.$set(response.data.list[i], 'r4', '')            }            if (response.data.list[i].w1 == undefined) {              this.$set(response.data.list[i], 'w1', '')            }            if (response.data.list[i].w2 == undefined) {              this.$set(response.data.list[i], 'w2', '')            }            if (response.data.list[i].w3 == undefined) {              this.$set(response.data.list[i], 'w3', '')            }            if (response.data.list[i].w4 == undefined) {              this.$set(response.data.list[i], 'w4', '')            }            if (response.data.list[i].feedweight == undefined) {              this.$set(response.data.list[i], 'feedweight', '')            }            if (response.data.list[i].Bfweight == undefined) {              this.$set(response.data.list[i], 'Bfweight', '')            }            if (response.data.list[i].Sfweight == undefined) {              this.$set(response.data.list[i], 'Sfweight', '')            }            if (response.data.list[i].timesopt !== undefined) {              var timesoptArr = response.data.list[i].timesopt.split(',')              for (let j = 0; j < timesoptArr.length; j++) {                response.data.list[i]['r' + timesoptArr[j].split(':')[0]] = timesoptArr[j].split(':')[1]                response.data.list[i]['w' + timesoptArr[j].split(':')[0]] = timesoptArr[j].split(':')[2]              }            }          }          this.history.list = response.data.list          for (let i = 0; i < response.data.list.length; i++) {            if (response.data.list[i].r1 == '') { response.data.list[i].r1 = 0 }            if (response.data.list[i].r2 == '') { response.data.list[i].r2 = 0 }            if (response.data.list[i].r3 == '') { response.data.list[i].r3 = 0 }            if (response.data.list[i].r4 == '') { response.data.list[i].r4 = 0 }            this.$set(response.data.list[i], 'sumr', Math.round(parseFloat(response.data.list[i].r1) + parseFloat(response.data.list[i].r2) + parseFloat(response.data.list[i].r3) + parseFloat(response.data.list[i].r4)))          }          this.history.pageNum = response.data.pageNum          this.history.pageSize = response.data.pageSize          this.history.total = response.data.total        } else {          this.history.list = []        }        setTimeout(() => {          this.history.listLoading = false        }, 100)      })    },    changeDate() {      this.getHistoryList()    },    // 应用    handleApplication() {      console.log('点击了应用')      MessageBox.confirm('是否确认将' + this.history.getdataListParm.parammaps.date + '的数据应用到当前?', {        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'      }).then(() => {        this.requestParam.name = 'applyFPdate'        this.requestParam.parammaps = {}        this.requestParam.parammaps.pastureid = Cookies.get('pastureid')        this.requestParam.parammaps.date = this.history.getdataListParm.parammaps.date        PostDataByName(this.requestParam).then(response => {          if (response.msg === 'fail') {            this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })          } else {            this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })            this.getHistoryIsDisplay()            this.getList()          }        })      }).catch(() => {        this.$message({ type: 'info', message: '已取消应用' })      })    },    // 导出    handleExport(item) {      if (item == 1) {        console.log('点击了导出模板')      } else {        console.log('点击了导出数据')        this.download.getdataListParm.parammaps = this.table.getdataListParm.parammaps        GetDataByName(this.download.getdataListParm).then(response => {          if (response.data.list !== null) {            for (let i = 0; i < response.data.list.length; i++) {              if (response.data.list[i].timesopt !== undefined) {                var timesoptArr = response.data.list[i].timesopt.split(',')                for (let j = 0; j < timesoptArr.length; j++) {                  response.data.list[i]['r' + timesoptArr[j].split(':')[0]] = timesoptArr[j].split(':')[1]                  response.data.list[i]['w' + timesoptArr[j].split(':')[0]] = timesoptArr[j].split(':')[2]                }              }              if (response.data.list[i].r1 == '' || response.data.list[i].r1 == undefined) {                response.data.list[i].r1 = 0              }              if (response.data.list[i].r2 == '' || response.data.list[i].r2 == undefined) {                response.data.list[i].r2 = 0              }              if (response.data.list[i].r3 == '' || response.data.list[i].r3 == undefined) {                response.data.list[i].r3 = 0              }              if (response.data.list[i].r4 == '' || response.data.list[i].r4 == undefined) {                response.data.list[i].r4 = 0              }              this.$set(response.data.list[i], 'sumr', parseFloat(response.data.list[i].r1) + parseFloat(response.data.list[i].r2) + parseFloat(response.data.list[i].r3) + parseFloat(response.data.list[i].r4))              response.data.list[i].sumr = formatNum(response.data.list[i].sumr, 2)            }            this.download.list = response.data.list          } else {            this.download.list = []          }          if (this.table.isRW1 == true && this.table.isRW2 == false && this.table.isRW3 == false && this.table.isRW4 == false) {            var excelDatas = [              {                tHeader: ['栏舍名称', '软件牛头数', '实际牛头数', '系数(%)', '系数头数', '配方模板', '补料配方', '第一班比例(%)', '第一班重量', '总比例', '投喂量', '配方重量', '补料重量'],                filterVal: ['barname', 'softccount', 'ccount', 'ratio', 'ccountratio', 'ftname', 'ptsfname', 'r1', 'w1', 'sumr', 'feedweight', 'ftweight', 'supplyweight'],                tableDatas: this.download.list,                sheetName: 'Sheet1'              }            ]          } else if (this.table.isRW1 == true && this.table.isRW2 == true && this.table.isRW3 == false && this.table.isRW4 == false) {            var excelDatas = [              {                tHeader: ['栏舍名称', '软件牛头数', '实际牛头数', '系数(%)', '系数头数', '配方模板', '补料配方', '第一班比例(%)', '第一班重量', '第二班比例(%)', '第二班重量', '总比例', '投喂量', '配方重量', '补料重量'],                filterVal: ['barname', 'softccount', 'ccount', 'ratio', 'ccountratio', 'ftname', 'ptsfname', 'r1', 'w1', 'r2', 'w2', 'sumr', 'feedweight', 'ftweight', 'supplyweight'],                tableDatas: this.download.list,                sheetName: 'Sheet1'              }            ]          } else if (this.table.isRW1 == true && this.table.isRW2 == true && this.table.isRW3 == true && this.table.isRW4 == false) {            var excelDatas = [              {                tHeader: ['栏舍名称', '软件牛头数', '实际牛头数', '系数(%)', '系数头数', '配方模板', '补料配方', '第一班比例(%)', '第一班重量', '第二班比例(%)', '第二班重量', '第三班比例(%)', '第三班重量', '总比例', '投喂量', '配方重量', '补料重量'],                filterVal: ['barname', 'softccount', 'ccount', 'ratio', 'ccountratio', 'ftname', 'ptsfname', 'r1', 'w1', 'r2', 'w2', 'r3', 'w3', 'sumr', 'feedweight', 'ftweight', 'supplyweight'],                tableDatas: this.download.list,                sheetName: 'Sheet1'              }            ]          } else {            var excelDatas = [              {                tHeader: ['栏舍名称', '软件牛头数', '实际牛头数', '系数(%)', '系数头数', '配方模板', '补料配方', '第一班比例(%)', '第一班重量', '第二班比例(%)', '第二班重量', '第三班比例(%)', '第三班重量', '第四班比例(%)', '第四班重量', '总比例', '投喂量', '配方重量', '补料重量'],                filterVal: ['barname', 'softccount', 'ccount', 'ratio', 'ccountratio', 'ftname', 'ptsfname', 'r1', 'w1', 'r2', 'w2', 'r3', 'w3', 'r4', 'w4', 'sumr', 'feedweight', 'ftweight', 'supplyweight'],                tableDatas: this.download.list,                sheetName: 'Sheet1'              }            ]          }          json2excel(excelDatas, '栏舍配方', true, 'xlsx')        })      }    },    beforeImport(file) {      const isLt2M = file.size / 1024 / 1024 < 2      if (!isLt2M) {        this.$message.error('上传文件大小不能超过 2MB!')      }      return isLt2M    },    handleImportSuccess(res, file) {      this.getList()      if (res.msg === 'ok') {        this.$message({ title: '成功', message: '导入成功:' + res.data.success + '条!', type: 'success', duration: 2000 })        if (res.data.err_count > 0) {          this.$notify({ title: '失败', message: '导入失败:' + res.data.err_count + '条!', type: 'danger', duration: 2000 })           import('@/vendor/Export2Excel').then(excel => {             const list1 = res.data.result             const tHeader = [               '栏舍名称', '实际牛头数', '系数(%)', '系数头数', '配方模板', '补料配方', '第一班比例(%)', '第二班比例(%)', '第三班比例(%)', '错误信息'             ]             const filterVal = [               '栏舍名称', '实际牛头数', '系数(%)', '系数头数', '配方模板', '补料配方', '第一班比例(%)', '第二班比例(%)', '第三班比例(%)', 'error_msg'             ]             const data1 = this.formatJson(filterVal, list1)             excel.export_json_to_excel({ header: tHeader, data: data1, filename: '栏舍配方导入报错信息', autoWidth: true, bookType: 'xlsx' })           })        }      } else {        this.$notify({ title: '失败', message: '上传失败', type: 'danger', duration: 2000 })      }    },    formatJson(filterVal, jsonData) {      return jsonData.map(v =>        filterVal.map(j => {          if (j === 'timestamp') {            return parseTime(v[j])          } else {            return v[j]          }        })      )    },    // 干物质调节    handleDryMatterRegulation() {      console.log('干物质调节')    }  }}</script><style lang="scss" scoped>  .search {    clear: both;  }  .table {    margin-top: 10px;  }</style>
 |