index.vue 157 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214
  1. <template>
  2. <div class="app-container">
  3. <div v-if="isPercentage" class="percentage" style="width: 210px;height: 90px;background: #fff;position: fixed;bottom: 0;left: 0;z-index: 9999999999999;">
  4. <h4 style="padding-left: 10px;line-height: 0;">导出进度:</h4>
  5. <el-progress style="padding-left: 10px;" :text-inside="true" :stroke-width="26" :percentage="percentage" />
  6. </div>
  7. <el-tabs v-model="tabName" @tab-click="handleTabClick">
  8. <el-tab-pane v-if="isBasic" label="设备基础信息" name="first">
  9. <div class="filter-container">
  10. <el-select v-model="getdataListParm.parammaps.pastureName" placeholder="牧场" class="filter-item" style="width: 120px;" @change="changePastureName">
  11. <el-option v-for="item in findAllPasture" :key="item.id" :label="item.name" :value="item.name" />
  12. </el-select>
  13. <tree-select
  14. v-model="getdataListParm.parammaps.eqClassId"
  15. :height="150"
  16. :width="250"
  17. class="typeSelect"
  18. size="small"
  19. :data="parentClass"
  20. :default-props="defaultProps"
  21. :node-key="nodeKey"
  22. clearable
  23. :disabled="disabled"
  24. placeholder="请选择设备类别"
  25. :checked-keys="defaultCheckedKeys"
  26. style="display: inline-block;"
  27. @popoverHide="popoverHide"
  28. />
  29. <el-input v-model="getdataListParm.parammaps.eqName" placeholder="设备名称" clearable style="width: 120px;" class="filter-item" />
  30. <el-input v-model="getdataListParm.parammaps.eqCode" placeholder="设备内部编号" clearable style="width: 150px;" class="filter-item" />
  31. <el-input v-model="getdataListParm.parammaps.financeCode" placeholder="财务编号" clearable style="width: 120px;" class="filter-item" />
  32. <el-select v-model="getdataListParm.parammaps.departmentId" clearable placeholder="部门" class="filter-item" style="width: 120px;">
  33. <el-option v-for="item in findAllDepart" :key="item.id" :label="item.name" :value="item.id" />
  34. </el-select>
  35. <el-select v-model="getdataListParm.parammaps.status" clearable placeholder="状态" class="filter-item" style="width: 120px;">
  36. <el-option v-for="item in getDictByName" :key="item.id" :label="item.label" :value="item.id" />
  37. </el-select>
  38. <el-select v-model="getdataListParm.parammaps.warning" clearable placeholder="折旧预警" class="filter-item" style="width: 120px;">
  39. <el-option v-for="item in depreciationAlertList" :key="item.id" :label="item.name" :value="item.id" />
  40. </el-select>
  41. <!-- <el-date-picker ref="inputDatetime1" v-model="getdataListParm.parammaps.inputDatetime1" class="inputDatetime" type="daterange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="审批日期" end-placeholder="审批日期" /> -->
  42. <el-date-picker ref="inputDatetime2" v-model="getdataListParm.parammaps.inputDatetime2" class="inputDatetime" type="daterange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="购置日期" end-placeholder="购置日期" />
  43. <!-- <el-date-picker ref="inputDatetime3" v-model="getdataListParm.parammaps.inputDatetime3" class="inputDatetime" type="daterange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="报废日期" end-placeholder="报废日期" /> -->
  44. <el-input v-model="getdataListParm.parammaps.assetCode" placeholder="资产编号" clearable style="width: 120px;" class="filter-item" />
  45. <el-input v-model="getdataListParm.parammaps.brand" placeholder="品牌" clearable style="width: 120px;" class="filter-item" />
  46. <!-- <el-input v-model="getdataListParm.parammaps.proName" placeholder="供应商" clearable style="width: 120px;" class="filter-item" /> -->
  47. <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="form_search">搜索</el-button>
  48. <div>
  49. <el-button v-if="isBasicsAdd" class="filter-item" type="primary" icon="el-icon-edit" @click="form_add">新增</el-button>
  50. <el-upload style="display: inline-block;" :headers="headers" :data="uploadData" :action="uploadExcelUrl" :show-file-list="false" :before-upload="beforeImportExcel" :on-success="handleImportExcelSuccess">
  51. <el-button v-waves class="filter-item" type="warning" icon="el-icon-upload2">导入</el-button>
  52. </el-upload>
  53. <el-button class="filter-item" type="success" icon="el-icon-download" style="" @click="handleDownload">导出</el-button>
  54. <el-button class="filter-item" type="primary" icon="el-icon-edit" @click="handleBatchChange">批量变更</el-button>
  55. </div>
  56. <el-table
  57. :key="tableKey"
  58. v-loading="listLoading"
  59. element-loading-text="给我一点时间"
  60. :data="list"
  61. border
  62. fit
  63. highlight-current-row
  64. style="width: 100%;"
  65. :row-style="rowStyle"
  66. :cell-style="cellStyle"
  67. class="elTable"
  68. @selection-change="handleSelectionChange"
  69. @sort-change="tableSort2"
  70. :max-height="myHeight"
  71. >
  72. <el-table-column type="selection" width="55" />
  73. <el-table-column label="序号" align="center" type="index" width="50px">
  74. <template slot-scope="scope">
  75. <span>{{ scope.$index + (pageNum-1) * pageSize + 1 }}</span>
  76. </template>
  77. </el-table-column>
  78. <el-table-column label="牧场" align="center" prop="pastureName" />
  79. <el-table-column label="设备类别" align="center" prop="eqClassName" />
  80. <el-table-column align="center" prop="eqName" width="120">
  81. <template slot="header" slot-scope="scope">
  82. <div>
  83. 设备名称
  84. <!-- <el-popover placement="top" width="200" trigger="click">
  85. <p>多行信息多行信息多行信息<br/>第二行信息</p>
  86. <i class="el-icon-question" slot="reference"></i>
  87. </el-popover> -->
  88. <!-- <el-tooltip placement="top" trigger="click">
  89. <div slot="content">多行信息多行信息多行信息<br/>第二 行信息</div>
  90. <i class="el-icon-question"></i>
  91. </el-tooltip> -->
  92. </div>
  93. </template>
  94. <template slot-scope="{row}">
  95. <div v-if="row.exceed == 1">
  96. <div style="background:#EC808D;display:block;line-height: 50px;">{{ row.eqName }}</div>
  97. </div>
  98. <div v-else>
  99. <div style="display:block;line-height: 50px;">{{ row.eqName }}</div>
  100. </div>
  101. </template>
  102. </el-table-column>
  103. <el-table-column label="设备内部编号" align="center" prop="eqCode" />
  104. <el-table-column label="财务编号" align="center" prop="financeCode" />
  105. <el-table-column label="规格" align="center" prop="specification" />
  106. <el-table-column label="品牌" align="center" prop="brandName" />
  107. <el-table-column label="状态" align="center" prop="status">
  108. <template slot-scope="{row}">
  109. <div v-if="row.status == '正常'">
  110. <div v-if="row.warning == 1" style="background:#EC808D;display:block;line-height: 50px;">{{ row.status }}</div>
  111. <div v-else-if="row.warning == 2" style="background:#FACD91;display:block;line-height: 50px;">{{ row.status }}</div>
  112. <div v-else>{{ row.status }}</div>
  113. </div>
  114. <div v-else>
  115. <div style="background:#D7D7D7;display:block;line-height: 50px;">{{ row.status }}</div>
  116. </div>
  117. </template>
  118. </el-table-column>
  119. <el-table-column label="用途" align="center" prop="purpose" />
  120. <el-table-column label="部门" align="center" prop="deptName" />
  121. <el-table-column label="责任人" align="center" prop="employeName" />
  122. <el-table-column label="审批日期" sortable align="center" prop="spDate" />
  123. <el-table-column label="购置日期" sortable align="center" prop="purchaseDate" />
  124. <el-table-column label="入场日期" sortable align="center" prop="entranceDate" />
  125. <el-table-column label="报废日期" sortable align="center" prop="bfDate" />
  126. <el-table-column label="设备图片" prop="picpath" align="center" min-width="110px">
  127. <template slot-scope="scope">
  128. <el-popover placement="right" title="" trigger="hover">
  129. <img v-if="scope.row.picpath !== '' && scope.row.srcpath !== ''" :src="scope.row.picpath">
  130. <img v-if="scope.row.picpath !== '' && scope.row.srcpath !== ''" slot="reference" :src="scope.row.picpath" :alt="scope.row.srcpath" style="height: 100px;width:100px;">
  131. </el-popover>
  132. </template>
  133. </el-table-column>
  134. <el-table-column label="折旧年限" sortable align="center" prop="depreciation" />
  135. <el-table-column label="使用时长(年)" sortable align="center" prop="serviceDuration" />
  136. <el-table-column label="使用率(%)" sortable align="center" prop="utilizationRate" />
  137. <el-table-column label="物联网编码" sortable align="center" prop="license" />
  138. <el-table-column label="标准工作时长" sortable align="center" prop="duration" />
  139. <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
  140. <template slot-scope="{row}">
  141. <el-button v-if="isBasicsCard" type="primary" size="mini" @click="form_see(row)">查看</el-button>
  142. <el-button type="success" size="mini" v-if="roleSet1(row)" @click="form_edit(row)">编辑</el-button>
  143. <el-button v-if="roleSet2(row)" style="display:inline-block" type="danger" size="mini" @click="form_delete(row)">删除</el-button>
  144. <!-- <el-button v-if="isBasicsDel2" style="display:inline-block" type="danger" size="mini" @click="form_delete(row)">删除</el-button> -->
  145. <el-button v-else style="display:none" type="danger" size="mini" @click="form_delete(row)">删除</el-button>
  146. </template>
  147. </el-table-column>
  148. </el-table>
  149. <pagination v-show="total>=0" :total="total" :page.sync="getdataListParm.offset" :limit.sync="getdataListParm.pagecount" @pagination="get_table_data" />
  150. </div>
  151. </el-tab-pane>
  152. <el-tab-pane v-if="isBasicSH" label="审核设备" name="second">
  153. <div class="filter-container">
  154. <el-select v-model="getdataListParmSH.parammaps.pastureName" placeholder="牧场" class="filter-item" style="width: 120px;">
  155. <el-option v-for="item in findAllPasture" :key="item.id" :label="item.name" :value="item.name" />
  156. </el-select>
  157. <el-input v-model="getdataListParmSH.parammaps.assetCode" placeholder="资产编号" clearable style="width: 180px;" class="filter-item" />
  158. <el-input v-model="getdataListParmSH.parammaps.eqName" placeholder="设备名称" clearable style="width: 120px;" class="filter-item" />
  159. <el-input v-model="getdataListParmSH.parammaps.eqCode" placeholder="设备内部编号" clearable style="width: 150px;" class="filter-item" />
  160. <el-input v-model="getdataListParmSH.parammaps.financeCode" placeholder="财务编码" clearable style="width: 120px;" class="filter-item" />
  161. <el-select v-model="getdataListParmSH.parammaps.departmentId" clearable placeholder="部门" class="filter-item" style="width: 120px;">
  162. <el-option v-for="item in findAllDepart" :key="item.id" :label="item.name" :value="item.id" />
  163. </el-select>
  164. <el-select v-model="getdataListParmSH.parammaps.status" clearable placeholder="状态" class="filter-item" style="width: 120px;">
  165. <el-option v-for="item in getDictByName" :key="item.id" :label="item.label" :value="item.id" />
  166. </el-select>
  167. <el-select v-model="getdataListParmSH.parammaps.SHStatus" clearable placeholder="审核状态" class="filter-item" style="width: 120px;">
  168. <el-option v-for="item in statues" :key="item.id" :label="item.name" :value="item.id" />
  169. </el-select>
  170. <el-date-picker ref="inputDatetime1" v-model="getdataListParmSH.parammaps.inputDatetime1" class="inputDatetime" type="datetimerange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  171. <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="form_searchSH">搜索</el-button>
  172. <div>
  173. <el-button class="filter-item" type="success" icon="el-icon-download" style="" @click="handleDownloadSH">导出</el-button>
  174. </div>
  175. <el-table
  176. :key="tableKey"
  177. v-loading="listLoadingSH"
  178. element-loading-text="给我一点时间"
  179. :data="listSH"
  180. border
  181. fit
  182. highlight-current-row
  183. style="width: 100%;"
  184. :row-style="rowStyle"
  185. :cell-style="cellStyle"
  186. class="elTable"
  187. :max-height="myHeight"
  188. >
  189. <el-table-column label="序号" align="center" type="index" width="50px">
  190. <template slot-scope="scope">
  191. <span>{{ scope.$index + (pageNumSH-1) * pageSizeSH + 1 }}</span>
  192. </template>
  193. </el-table-column>
  194. <el-table-column label="牧场" align="center" prop="pastureName" />
  195. <el-table-column label="资产编号" align="center" prop="assetCode" />
  196. <el-table-column label="设备名称" align="center" prop="eqName" />
  197. <el-table-column label="设备内部编号" align="center" prop="eqCode" />
  198. <el-table-column label="财务编号" align="center" prop="financeCode" />
  199. <el-table-column label="规格" align="center" prop="specification" />
  200. <el-table-column label="品牌" align="center" prop="brandName" />
  201. <el-table-column label="状态" align="center" prop="status" />
  202. <el-table-column label="部门" align="center" prop="deptName" />
  203. <el-table-column label="责任人" align="center" prop="employeName" />
  204. <el-table-column label="录入日期" sortable align="center" prop="lrTime" />
  205. <el-table-column label="审核状态" min-width="110px" align="center" :formatter="SHStatus" />
  206. <el-table-column label="设备图片" prop="specifications" align="center" min-width="110px">
  207. <template slot-scope="scope">
  208. <el-popover placement="right" title="" trigger="hover">
  209. <img v-if="scope.row.picpath !== ''" :src="scope.row.picpath">
  210. <img v-if="scope.row.picpath !== ''" slot="reference" :src="scope.row.picpath" :alt="scope.row.srcpath" style="height: 100px;width:100px;">
  211. </el-popover>
  212. </template>
  213. </el-table-column>
  214. <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
  215. <template slot-scope="{row}">
  216. <el-button v-if="isBasicsCard" type="primary" size="mini" @click="form_see(row)">查看</el-button>
  217. <el-button v-if="isBasicsUpdate && row.SHStatus == 2" style="display:inline-block" type="success" size="mini" @click="form_edit(row)">编辑</el-button>
  218. <el-button v-else style="display:none" type="success" size="mini" @click="form_edit(row)">编辑</el-button>
  219. <el-button v-if="isBasicExamine && row.SHStatus == 0" style="display:inline-block" type="success" size="mini" @click="handleExamine(row)">审核</el-button>
  220. <el-button v-else style="display:none" type="success" size="mini" @click="handleExamine(row)">审核</el-button>
  221. <el-button v-if="isBasicsDel && row.SHStatus == 2" style="display:inline-block" type="danger" size="mini" @click="form_delete(row)">删除</el-button>
  222. <el-button v-else style="display:none" type="danger" size="mini" @click="form_delete(row)">删除</el-button>
  223. </template>
  224. </el-table-column>
  225. </el-table>
  226. <pagination v-show="totalSH>=0" :total="totalSH" :page.sync="getdataListParmSH.offset" :limit.sync="getdataListParmSH.pagecount" @pagination="get_table_dataSH" />
  227. </div>
  228. </el-tab-pane>
  229. </el-tabs>
  230. <!-- 新增 -->
  231. <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" v-show = "dialogFormVisible" :close-on-click-modal="false" width="90%">
  232. <div class="app-add">
  233. <el-form ref="createTemp" :rules="rulesCreate" :model="createTemp" label-position="right" label-width="115px" style="width: 90%;margin:0 auto 30px">
  234. <el-row>
  235. <el-col :span="10">
  236. <el-form-item label="设备类别:" prop="eqClassId">
  237. <tree-select
  238. v-model="createTemp.eqClassId"
  239. :height="200"
  240. :width="300"
  241. size="small"
  242. :data="parentClass"
  243. :default-props="defaultProps"
  244. :node-key="nodeKey"
  245. :disabled="disabled"
  246. :placeholder="placeholder"
  247. :checked-keys="defaultCheckedKeys"
  248. @popoverHide="popoverHide"
  249. />
  250. </el-form-item>
  251. </el-col>
  252. </el-row>
  253. <el-row>
  254. <el-col :span="6">
  255. <el-form-item label="资产编号:" prop="assetCode">
  256. <el-input ref="assetCode" v-model="createTemp.assetCode" placeholder="请输入编号" disabled />
  257. </el-form-item>
  258. </el-col>
  259. <el-col :span="6">
  260. <el-form-item label="设备名称:" prop="eqName">
  261. <el-input ref="eqName" v-model="createTemp.eqName" placeholder="请输入设备名称" disabled/>
  262. </el-form-item>
  263. </el-col>
  264. <el-col :span="6">
  265. <el-form-item label="设备内部编号:" prop="eqCode">
  266. <el-input ref="eqCode" v-model="createTemp.eqCode" placeholder="请输入设备内部编号" />
  267. </el-form-item>
  268. </el-col>
  269. <el-col :span="6">
  270. <el-form-item label="财务编号:" prop="financeCode">
  271. <el-input ref="financeCode" v-model="createTemp.financeCode" placeholder="请输入财务编号" />
  272. </el-form-item>
  273. </el-col>
  274. </el-row>
  275. <el-row>
  276. <el-col :span="6">
  277. <el-form-item label="设备规格:" prop="specification">
  278. <el-input ref="specification" v-model="createTemp.specification" placeholder="请输入设备规格" />
  279. </el-form-item>
  280. </el-col>
  281. <el-col :span="6">
  282. <el-form-item label="品牌:" prop="brandName">
  283. <el-autocomplete v-model="createTemp.brandName" value-key="brandName" class="inline-input" :fetch-suggestions="brandSearch" placeholder="请输入品牌" style="width:100%;" @select="(value)=> {handleSelectBrand(value)}" />
  284. </el-form-item>
  285. </el-col>
  286. <!-- <el-col :span="6">
  287. <el-form-item label="供应商:" prop="providerId">
  288. <el-select v-model="createTemp.providerId" filterable placeholder="请选择供应商" style="width:100%">
  289. <el-option v-for="item in findAllProvider" :key="item.id" clearable :label="item.name" :value="item.id" />
  290. </el-select>
  291. </el-form-item>
  292. </el-col> -->
  293. <el-col :span="6">
  294. <el-form-item label="用途:" prop="purpose">
  295. <el-input ref="purpose" v-model="createTemp.purpose" placeholder="请输入用途" />
  296. </el-form-item>
  297. </el-col>
  298. </el-row>
  299. <el-row>
  300. <el-col :span="6">
  301. <el-form-item label="状态:" prop="status">
  302. <el-select v-model="createTemp.status" placeholder="状态" class="filter-item">
  303. <el-option v-for="item in getDictByName" :key="item.id" :label="item.label" :value="item.id" />
  304. </el-select>
  305. </el-form-item>
  306. </el-col>
  307. <el-col :span="6">
  308. <el-form-item label="购置日期:" prop="purchaseDate">
  309. <el-date-picker v-model="createTemp.purchaseDate" type="date" placeholder="选择日期" style="width:170px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" />
  310. </el-form-item>
  311. </el-col>
  312. <el-col :span="6">
  313. <el-form-item label="入场日期:" prop="entranceDate">
  314. <el-date-picker v-model="createTemp.entranceDate" type="date" placeholder="选择日期" style="width:170px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" />
  315. </el-form-item>
  316. </el-col>
  317. <el-col :span="6">
  318. <el-form-item label="折旧年限:" prop="depreciation">
  319. <el-input ref="depreciation" v-model="createTemp.depreciation" placeholder="请输入折旧年限" />
  320. </el-form-item>
  321. </el-col>
  322. </el-row>
  323. <el-row>
  324. <el-col :span="6">
  325. <el-form-item label="原值:" prop="yuanzhi">
  326. <el-input ref="yuanzhi" v-model="createTemp.yuanzhi" placeholder="请输入原值" />
  327. </el-form-item>
  328. </el-col>
  329. <el-col :span="6">
  330. <el-form-item label="残值:" prop="salvage">
  331. <el-input ref="salvage" v-model="createTemp.salvage" placeholder="请输入残值" />
  332. </el-form-item>
  333. </el-col>
  334. <el-col :span="6">
  335. <el-form-item label="月核减值:" prop="subtractvalue">
  336. <el-input ref="subtractvalue" v-model="createTemp.subtractvalue" placeholder="请输入月核减值" />
  337. </el-form-item>
  338. </el-col>
  339. <el-col :span="6">
  340. <el-form-item label="保养级别:" prop="upkeepgrade">
  341. <el-select ref="upkeepgrade" v-model="createTemp.upkeepgrade" placeholder="保养级别" class="filter-item" @visible-change="upkeepgradeChange" @change="changeUpkeepgrade">
  342. <el-option v-for="item in upkeepgrades" :key="item.id" :label="item.label" :value="item.id" />
  343. </el-select>
  344. </el-form-item>
  345. </el-col>
  346. </el-row>
  347. <el-row>
  348. <el-col :span="6">
  349. <el-form-item label="保养费用:" prop="yearUpkeepCost">
  350. <el-input ref="yearUpkeepCost" v-model="createTemp.yearUpkeepCost" placeholder="请输入近一年保养费用" />
  351. </el-form-item>
  352. </el-col>
  353. <el-col :span="6">
  354. <el-form-item label="维修费用:" prop="yearMaintainCost">
  355. <el-input ref="yearMaintainCost" v-model="createTemp.yearMaintainCost" placeholder="请输入近一年维修费用" />
  356. </el-form-item>
  357. </el-col>
  358. <el-col :span="6">
  359. <el-form-item label="基数(小时):" prop="baseHours">
  360. <el-input ref="baseHours" v-model="createTemp.baseHours" placeholder="请输入基数" />
  361. </el-form-item>
  362. </el-col>
  363. <el-col :span="6">
  364. <el-form-item label="牧场:" prop="pastureId">
  365. <el-select v-model="createTemp.pastureId" placeholder="牧场" class="filter-item" @change="changePasture">
  366. <el-option v-for="item in findAllPasture" :key="item.id" :label="item.name" :value="item.id" />
  367. </el-select>
  368. </el-form-item>
  369. </el-col>
  370. </el-row>
  371. <el-row>
  372. <el-col :span="6">
  373. <el-form-item label="部门:" prop="deptId">
  374. <el-select v-model="createTemp.deptId" :disabled="disabled" placeholder="部门" class="filter-item" style="width: 100%;" @change="changeDepart">
  375. <el-option v-for="item in createDepartList" :key="item.id" :label="item.name" :value="item.id" />
  376. </el-select>
  377. </el-form-item>
  378. </el-col>
  379. <el-col :span="6">
  380. <el-form-item label="责任人:" prop="employeName">
  381. <el-autocomplete v-model="createTemp.employeName" value-key="empname" class="inline-input" :fetch-suggestions="employeSearch" placeholder="请输入责任人" style="width:100%;" @select="handleSelectEmploye">
  382. <template slot-scope="{ item }">
  383. <div class="name" style="display: inline;">{{ item.name }}</div>
  384. </template>
  385. </el-autocomplete>
  386. </el-form-item>
  387. </el-col>
  388. <el-col :span="6">
  389. <el-form-item label="录入人:" prop="inputUser">
  390. <el-select v-model="createTemp.inputUser" placeholder="录入人" class="filter-item">
  391. <el-option v-for="item in findAllEmploye" :key="item.id" :label="item.name" :value="item.id" />
  392. </el-select>
  393. </el-form-item>
  394. </el-col>
  395. <el-col :span="6">
  396. <el-form-item label="录入时间:" prop="inputDatetime">
  397. <el-date-picker v-model="createTemp.inputDatetime" :picker-options="pickerOptions1" type="date" placeholder="录入时间" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width:170px;" />
  398. </el-form-item>
  399. </el-col>
  400. </el-row>
  401. <el-row>
  402. <el-col :span="6">
  403. <el-form-item label="指定维修人:" prop="maintenance">
  404. <el-select v-model="createTemp.maintenance" multiple filterable placeholder="指定维修人" class="filter-item" style="width: 100%;" >
  405. <el-option v-for="item in findAllEmploye" :key="item.id" :label="item.name" :value="item.id" />
  406. </el-select>
  407. </el-form-item>
  408. </el-col>
  409. <!-- <el-col :span="6">
  410. <el-form-item label="间隔时间:" prop="pushTime">
  411. <el-select v-model="createTemp.pushTime" placeholder="间隔时间" class="filter-item">
  412. <el-option v-for="item in pushNameList" :key="item.id" :label="item.name" :value="item.id" />
  413. </el-select>
  414. </el-form-item>
  415. </el-col> -->
  416. <el-col :span="6">
  417. <el-form-item label="一级督办:" prop="levelone">
  418. <el-select v-model="createTemp.levelone" filterable placeholder="设备主管" class="filter-item">
  419. <el-option v-for="item in findAllEmploye" :key="item.id" :label="item.name" :value="item.id" />
  420. </el-select>
  421. </el-form-item>
  422. </el-col>
  423. <el-col :span="6">
  424. <el-form-item label="一级间隔时间(小时)" prop="leveloneTime">
  425. <el-select v-model="createTemp.leveloneTime" placeholder="间隔时间" class="filter-item">
  426. <el-option v-for="item in pushNameList2" :key="item.id" :label="item.name" :value="item.id" />
  427. </el-select>
  428. </el-form-item>
  429. </el-col>
  430. <el-col :span="6">
  431. <el-form-item label="二级督办:" prop="leveltwo">
  432. <el-select v-model="createTemp.leveltwo" filterable placeholder="设备助理" class="filter-item">
  433. <el-option v-for="item in findAllEmploye" :key="item.id" :label="item.name" :value="item.id" />
  434. </el-select>
  435. </el-form-item>
  436. </el-col>
  437. </el-row>
  438. <el-row>
  439. <el-col :span="6">
  440. <el-form-item label="二级间隔时间(小时)" prop="leveltwoTime">
  441. <el-select v-model="createTemp.leveltwoTime" placeholder="间隔时间" class="filter-item">
  442. <el-option v-for="item in pushNameList2" :key="item.id" :label="item.name" :value="item.id" />
  443. </el-select>
  444. </el-form-item>
  445. </el-col>
  446. <el-col :span="6">
  447. <el-form-item label="三级督办:" prop="levelthree">
  448. <el-select v-model="createTemp.levelthree" filterable placeholder="场长" class="filter-item">
  449. <el-option v-for="item in findAllEmploye" :key="item.id" :label="item.name" :value="item.id" />
  450. </el-select>
  451. </el-form-item>
  452. </el-col>
  453. <el-col :span="6">
  454. <el-form-item label="三级间隔时间(小时)" prop="levelthreeTime">
  455. <el-select v-model="createTemp.levelthreeTime" placeholder="间隔时间" class="filter-item">
  456. <el-option v-for="item in pushNameList2" :key="item.id" :label="item.name" :value="item.id" />
  457. </el-select>
  458. </el-form-item>
  459. </el-col>
  460. <el-col :span="6">
  461. <el-form-item label="物联网编码" prop="license">
  462. <el-input ref="license" v-model="createTemp.license" placeholder="物联网编码" />
  463. </el-form-item>
  464. </el-col>
  465. </el-row>
  466. <el-row>
  467. <el-col :span="6">
  468. <el-form-item label="标准工作时长" prop="duration">
  469. <el-input ref="duration" v-model="createTemp.duration" placeholder="标准工作时长" />
  470. </el-form-item>
  471. </el-col>
  472. </el-row>
  473. <el-row>
  474. <el-col :span="6">
  475. <el-form-item label="设备图片:">
  476. <el-upload
  477. id="uploadPic"
  478. ref="upload"
  479. :limit="1"
  480. list-type="picture-card"
  481. :file-list="createTemp.fileList"
  482. :headers="headers"
  483. :action="uploadImageUrl"
  484. :auto-upload="true"
  485. :on-preview="handlePicPreview"
  486. :before-remove="beforeRemove"
  487. :class="{hide:showUpload}"
  488. :on-change="(file,fileList)=>{ return handlePicChange(file, fileList) }"
  489. :on-success="(response,file, fileList)=>{ return handlePicSuccess(response,file, fileList) }"
  490. :on-remove="(file, fileList)=>{ return handlePicRemove(file, fileList) }"
  491. >
  492. <i class="el-icon-plus" />
  493. </el-upload>
  494. <el-dialog :visible.sync="dialogVisible" append-to-body :width="width">
  495. <img :src="dialogImageUrl" alt="" @load="onLoad">
  496. </el-dialog>
  497. </el-form-item>
  498. </el-col>
  499. </el-row>
  500. </el-form>
  501. <div slot="footer" class="dialog-footer" style="right:30px;position:absolute;bottom:5px">
  502. <el-button v-if="dialogStatus==='create'" ref="createb" type="success" :disabled="isokDisable" @click="add_dialog_save_again()">保存并新增</el-button>
  503. <el-button type="primary" :disabled="isokDisable" @click="dialogStatus==='create'?add_dialog_save():edit_dialog_save()">保存并关闭</el-button>
  504. <el-button @click="dialogFormVisible = false; getdataListParm.parammaps.inputDatetime = ''">取消并关闭</el-button>
  505. </div>
  506. </div>
  507. </el-dialog>
  508. <!-- 查看 -->
  509. <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible_See" :close-on-click-modal="false" width="90%">
  510. <div class="app-contentcard">
  511. <div style="position: absolute;top:20px;left:150px;font:18px/24px '' ;color:#303133;">
  512. <span style="margin:0 10px;">设备名称:{{ seeTemp.eqName }}</span>
  513. <span>内部编号:{{ seeTemp.eqCode }}</span>
  514. </div>
  515. <div class="card">
  516. <el-tabs v-model="activeName" @tab-click="form_seeTabClick">
  517. <el-tab-pane label="基础信息" name="first">
  518. <el-form ref="seeTemp" :rules="rules" :model="seeTemp" label-position="right" label-width="115px" style="width: 100%;margin-bottom:30px">
  519. <el-row>
  520. <el-form-item label="设备类别:" prop="eqClassName">
  521. <el-input ref="eqClassName" v-model="seeTemp.eqClassName" placeholder="请输入设备类别" disabled />
  522. </el-form-item>
  523. </el-row>
  524. <el-row>
  525. <el-col :span="6">
  526. <el-form-item label="资产编号:" prop="assetCode">
  527. <el-input ref="assetCode" v-model="seeTemp.assetCode" placeholder="请输入资产编号" disabled />
  528. </el-form-item>
  529. </el-col>
  530. <el-col :span="6">
  531. <el-form-item label="设备名称:" prop="eqName">
  532. <el-input ref="eqName" v-model="seeTemp.eqName" placeholder="请输入设备名称" disabled />
  533. </el-form-item>
  534. </el-col>
  535. <el-col :span="6">
  536. <el-form-item label="设备内部编号:" prop="eqCode">
  537. <el-input ref="eqCode" v-model="seeTemp.eqCode" placeholder="请输入设备内部编号" disabled />
  538. </el-form-item>
  539. </el-col>
  540. <el-col :span="6">
  541. <el-form-item label="财务编号:" prop="financeCode">
  542. <el-input ref="financeCode" v-model="seeTemp.financeCode" placeholder="请输入财务编号" disabled />
  543. </el-form-item>
  544. </el-col>
  545. </el-row>
  546. <el-row>
  547. <el-col :span="6">
  548. <el-form-item label="设备规格:" prop="specification">
  549. <el-input ref="specification" v-model="seeTemp.specification" placeholder="请输入设备规格" disabled />
  550. </el-form-item>
  551. </el-col>
  552. <el-col :span="6">
  553. <el-form-item label="品牌:" prop="brandName">
  554. <el-input ref="brandName" v-model="seeTemp.brandName" placeholder="请输入品牌" disabled />
  555. </el-form-item>
  556. </el-col>
  557. <!-- <el-col :span="6">
  558. <el-form-item label="供应商:" prop="providerName">
  559. <el-input ref="providerName" v-model="seeTemp.providerName" placeholder="请输入供应商" disabled />
  560. </el-form-item>
  561. </el-col> -->
  562. <el-col :span="6">
  563. <el-form-item label="用途:" prop="purpose">
  564. <el-input ref="purpose" v-model="seeTemp.purpose" placeholder="请输入用途" disabled />
  565. </el-form-item>
  566. </el-col>
  567. </el-row>
  568. <el-row>
  569. <el-col :span="6">
  570. <el-form-item label="状态:" prop="status">
  571. <el-input ref="status" v-model="seeTemp.status" placeholder="请输入状态" disabled />
  572. </el-form-item>
  573. </el-col>
  574. <el-col :span="6">
  575. <el-form-item label="购置日期:" prop="purchaseDate">
  576. <el-input ref="purchaseDate" v-model="seeTemp.purchaseDate" placeholder="请输入购置日期" disabled />
  577. </el-form-item>
  578. </el-col>
  579. <el-col :span="6">
  580. <el-form-item label="入场日期:" prop="entranceDate">
  581. <el-input ref="entranceDate" v-model="seeTemp.entranceDate" placeholder="请输入入场日期" disabled />
  582. </el-form-item>
  583. </el-col>
  584. <el-col :span="6">
  585. <el-form-item label="折旧年限:" prop="depreciation">
  586. <el-input ref="depreciation" v-model="seeTemp.depreciation" placeholder="请输入折旧年限" disabled />
  587. </el-form-item>
  588. </el-col>
  589. </el-row>
  590. <el-row>
  591. <el-col :span="6">
  592. <el-form-item label="原值:" prop="yuanzhi">
  593. <el-input ref="yuanzhi" v-model="seeTemp.yuanzhi" placeholder="请输入原值" disabled />
  594. </el-form-item>
  595. </el-col>
  596. <el-col :span="6">
  597. <el-form-item label="残值:" prop="salvage">
  598. <el-input ref="salvage" v-model="seeTemp.salvage" placeholder="请输入残值" disabled />
  599. </el-form-item>
  600. </el-col>
  601. <el-col :span="6">
  602. <el-form-item label="月核减值:" prop="subtractvalue">
  603. <el-input ref="subtractvalue" v-model="seeTemp.subtractvalue" placeholder="请输入月核减值" disabled />
  604. </el-form-item>
  605. </el-col>
  606. <el-col :span="6">
  607. <el-form-item label="保养级别:" prop="upkeepgrade">
  608. <el-input ref="upkeepgrade" v-model="seeTemp.upkeepgrade" placeholder="请输入保养级别" disabled />
  609. </el-form-item>
  610. </el-col>
  611. </el-row>
  612. <el-row>
  613. <el-col :span="6">
  614. <el-form-item label="保养费用:" prop="yearUpkeepCost">
  615. <el-input ref="yearUpkeepCost" v-model="seeTemp.yearUpkeepCost" placeholder="请输入近一年保养费用" disabled />
  616. </el-form-item>
  617. </el-col>
  618. <el-col :span="6">
  619. <el-form-item label="维修费用:" prop="yearMaintainCost">
  620. <el-input ref="yearMaintainCost" v-model="seeTemp.yearMaintainCost" placeholder="请输入近一年维修费用" disabled />
  621. </el-form-item>
  622. </el-col>
  623. <el-col :span="6">
  624. <el-form-item label="基数(小时):" prop="baseHours">
  625. <el-input ref="baseHours" v-model="seeTemp.baseHours" placeholder="请输入基数" disabled />
  626. </el-form-item>
  627. </el-col>
  628. <el-col :span="6">
  629. <el-form-item label="牧场:" prop="pastureName">
  630. <el-input ref="pastureName" v-model="seeTemp.pastureName" placeholder="请输入牧场" disabled />
  631. </el-form-item>
  632. </el-col>
  633. </el-row>
  634. <el-row>
  635. <el-col :span="6">
  636. <el-form-item label="部门:" prop="deptName">
  637. <el-input ref="deptName" v-model="seeTemp.deptName" placeholder="请输入部门" disabled />
  638. </el-form-item>
  639. </el-col>
  640. <el-col :span="6">
  641. <el-form-item label="责任人:" prop="employeName">
  642. <el-input ref="employeName" v-model="seeTemp.employeName" placeholder="请输入责任人" disabled />
  643. </el-form-item>
  644. </el-col>
  645. <el-col :span="6">
  646. <el-form-item label="录入人:" prop="inputUserName">
  647. <el-input ref="inputUserName" v-model="seeTemp.inputUserName" placeholder="请输入录入人" disabled />
  648. </el-form-item>
  649. </el-col>
  650. <el-col :span="6">
  651. <el-form-item label="录入时间:" prop="inputDatetime">
  652. <el-input ref="inputDatetime" v-model="seeTemp.inputDatetime" placeholder="请输入录入时间" disabled />
  653. </el-form-item>
  654. </el-col>
  655. </el-row>
  656. <el-row>
  657. <el-col :span="6">
  658. <el-form-item label="指定维修人:" prop="maintenanceName">
  659. <el-input ref="maintenanceName" v-model="seeTemp.maintenanceName" placeholder="" disabled />
  660. </el-form-item>
  661. </el-col>
  662. <el-col :span="6">
  663. <el-form-item label="一级督办:" prop="leveloneName">
  664. <el-input ref="leveloneName" v-model="seeTemp.leveloneName" placeholder="" disabled />
  665. </el-form-item>
  666. </el-col>
  667. <el-col :span="6">
  668. <el-form-item label="一级间隔时间(小时):" prop="leveloneTime">
  669. <el-input ref="leveloneTime" v-model="seeTemp.leveloneTime" placeholder="" disabled />
  670. </el-form-item>
  671. </el-col>
  672. <el-col :span="6">
  673. <el-form-item label="二级督办:" prop="leveltwoName">
  674. <el-input ref="leveltwoName" v-model="seeTemp.leveltwoName" placeholder="" disabled />
  675. </el-form-item>
  676. </el-col>
  677. </el-row>
  678. <el-row>
  679. <el-col :span="6">
  680. <el-form-item label="二级间隔时间(小时):" prop="leveltwoTime">
  681. <el-input ref="leveltwoTime" v-model="seeTemp.leveltwoTime" placeholder="" disabled />
  682. </el-form-item>
  683. </el-col>
  684. <el-col :span="6">
  685. <el-form-item label="三级督办:" prop="levelthreeName">
  686. <el-input ref="levelthreeName" v-model="seeTemp.levelthreeName" placeholder="" disabled />
  687. </el-form-item>
  688. </el-col>
  689. <el-col :span="6">
  690. <el-form-item label="三级间隔时间(小时):" prop="levelthreeTime">
  691. <el-input ref="levelthreeTime" v-model="seeTemp.levelthreeTime" placeholder="" disabled />
  692. </el-form-item>
  693. </el-col>
  694. <el-col :span="6">
  695. <el-form-item label="物联网编码" prop="license">
  696. <el-input ref="license" v-model="seeTemp.license" placeholder="物联网编码" disabled />
  697. </el-form-item>
  698. </el-col>
  699. </el-row>
  700. <el-row>
  701. <el-col :span="6">
  702. <el-form-item label="标准工作时长" prop="duration">
  703. <el-input ref="duration" v-model="seeTemp.duration" placeholder="标准工作时长" disabled />
  704. </el-form-item>
  705. </el-col>
  706. </el-row>
  707. <el-row>
  708. <el-col>
  709. <el-form-item label="设备图片:">
  710. <el-popover placement="right" title="" trigger="hover">
  711. <img v-if="seeTemp.picpath !== '' && seeTemp.srcpath !== ''" :src="seeTemp.picpath">
  712. <img v-if="seeTemp.picpath !== '' && seeTemp.srcpath !== ''" slot="reference" :src="seeTemp.picpath" :alt="seeTemp.srcpath" style="height: 100px;width:100px;">
  713. </el-popover>
  714. </el-form-item>
  715. </el-col>
  716. </el-row>
  717. <div v-if="isFlowChart">
  718. <el-row>
  719. <el-col>
  720. <el-form-item label="流程进度" />
  721. <el-steps :active="active" align-center finish-status="success">
  722. <el-step
  723. v-for="(item,index) in activeList"
  724. :key="index"
  725. :title="item.title"
  726. :status="item.status"
  727. >
  728. <template slot="description">
  729. <div class="step-row">
  730. <div>{{ item.name }}&nbsp;&nbsp;{{ item.date }}</div>
  731. <div>{{ item.reason }}</div>
  732. </div>
  733. </template>
  734. </el-step>
  735. </el-steps>
  736. </el-col>
  737. </el-row>
  738. <el-row>
  739. <el-col>
  740. <el-form-item label="操作:">
  741. <el-button v-if="isBasicExamine && seeTemp.SHStatus == 0" type="success" style="display:inline-block" @click="handleExamine()">审核</el-button>
  742. <el-button v-else type="success" style="display:none" @click="handleExamine()">审核</el-button>
  743. </el-form-item>
  744. </el-col>
  745. </el-row>
  746. </div>
  747. </el-form>
  748. </el-tab-pane>
  749. <el-tab-pane v-if="isDisplayRecord" label="点检记录" name="second">
  750. <el-date-picker ref="inputDatetimeCheck1" v-model="getAssetBigSpotCheckListParm.parammaps.inputDatetimeSpotCheck1" class="inputDatetime" type="datetimerange" style="width: 250px;margin-bottom:10px" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  751. <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="form_searchSportCheck">搜索</el-button>
  752. <el-table
  753. :key="tableKey"
  754. v-loading="listLoadingSpotCheck1"
  755. element-loading-text="给我一点时间"
  756. :data="listSpotCheck1"
  757. border
  758. fit
  759. highlight-current-row
  760. style="width: 100%;"
  761. :row-style="rowStyle"
  762. :cell-style="cellStyle"
  763. class="elTable"
  764. >
  765. <el-table-column label="序号" align="center" type="index" width="50px">
  766. <template slot-scope="scope">
  767. <span>{{ scope.$index + (pageNumSpotCheck1-1) * pageSizeSpotCheck1 + 1 }}</span>
  768. </template>
  769. </el-table-column>
  770. <el-table-column label="点检结果" sortable prop="inspectionResults" min-width="110px" align="center" />
  771. <el-table-column label="点检日期" sortable prop="date" min-width="110px" align="center" />
  772. <el-table-column label="点检人" sortable prop="empname" min-width="110px" align="center" />
  773. </el-table>
  774. <pagination v-show="total>=0" :total="totalSpotCheck1" :page.sync="getAssetBigSpotCheckListParm.offset" :limit.sync="getAssetBigSpotCheckListParm.pagecount" @pagination="getAssetBigSpotCheckList" />
  775. </el-tab-pane>
  776. <el-tab-pane v-if="isDisplayRecord" label="保养记录" name="third">
  777. <el-input v-model="getBigupkeepbyeqParm.parammaps.upkeepCode" placeholder="保养单号" style="width: 140px;" class="filter-item" />
  778. <el-select v-model="getBigupkeepbyeqParm.parammaps.upkeepType" clearable placeholder="保养类型" class="filter-item" style="width: 120px;">
  779. <el-option v-for="item in maintainTypes" :key="item.id" :label="item.name" :value="item.name" />
  780. </el-select>
  781. <el-date-picker ref="inputDatetimeUpkeepbyeq" v-model="getBigupkeepbyeqParm.parammaps.inputDatetimeUpkeepbyeq" class="inputDatetime" type="datetimerange" style="width: 250px;margin-bottom:10px" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  782. <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="form_searchUpkeepbyeq">搜索</el-button>
  783. <el-table
  784. :key="tableKey"
  785. v-loading="listLoadingUpkeepbyeq"
  786. element-loading-text="给我一点时间"
  787. :data="listUpkeepbyeq"
  788. border
  789. fit
  790. highlight-current-row
  791. style="width: 100%;"
  792. :row-style="rowStyle"
  793. :cell-style="cellStyle"
  794. class="elTable"
  795. @sort-change="tableSort"
  796. >
  797. <el-table-column label="序号" align="center" type="index" width="50px">
  798. <template slot-scope="scope">
  799. <span>{{ scope.$index + (pageNumUpkeepbyeq-1) * pageSizeUpkeepbyeq + 1 }}</span>
  800. </template>
  801. </el-table-column>
  802. <el-table-column label="保养单号" prop="upkeepCode" min-width="110px" align="center" />
  803. <el-table-column label="保养日期" sortable prop="plantime" min-width="110px" align="center" />
  804. <el-table-column label="保养名称" prop="upkeepName" min-width="110px" align="center" />
  805. <el-table-column label="保养类型" prop="upkeepType" min-width="110px" align="center" />
  806. <el-table-column label="保养级别" prop="upkeepLevel" min-width="110px" align="center" />
  807. <el-table-column label="保养人" prop="upkeepPerson" min-width="110px" align="center" />
  808. <el-table-column label="保养费用" prop="upkeepCost" min-width="110px" align="center" />
  809. </el-table>
  810. <pagination v-show="total>=0" :total="totalUpkeepbyeq" :page.sync="getBigupkeepbyeqParm.offset" :limit.sync="getBigupkeepbyeqParm.pagecount" @pagination="getBigupkeepbyeqList" />
  811. </el-tab-pane>
  812. <el-tab-pane v-if="isDisplayRecord" label="维修记录" name="fouth">
  813. <el-input v-model="getAssetMaintainParm.parammaps.repairCode" placeholder="维修单号" style="width: 140px;" class="filter-item" />
  814. <el-date-picker ref="inputDatetimeAssetMaintain" v-model="getAssetMaintainParm.parammaps.inputDatetimeAssetMaintain" class="inputDatetime" type="datetimerange" style="width: 250px;margin-bottom:10px" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  815. <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="form_searchAssetMaintain">搜索</el-button>
  816. <el-table
  817. :key="tableKey"
  818. v-loading="listLoadingAssetMaintain"
  819. element-loading-text="给我一点时间"
  820. :data="listAssetMaintain"
  821. border
  822. fit
  823. highlight-current-row
  824. style="width: 100%;"
  825. :row-style="rowStyle"
  826. :cell-style="cellStyle"
  827. class="elTable"
  828. @sort-change="tableSort"
  829. >
  830. <el-table-column label="序号" align="center" type="index" width="50px">
  831. <template slot-scope="scope">
  832. <span>{{ scope.$index + (pageNumAssetMaintain-1) * pageSizeAssetMaintain + 1 }}</span>
  833. </template>
  834. </el-table-column>
  835. <el-table-column label="维修单号" prop="repairCode" min-width="110px" align="center" />
  836. <el-table-column label="报修人" prop="requestName" min-width="110px" align="center" />
  837. <el-table-column label="报修时间" sortable prop="requestTime" min-width="110px" align="center" />
  838. <el-table-column label="维修人" prop="empname" min-width="110px" align="center" />
  839. <el-table-column label="维修时间" sortable prop="stopTime" min-width="110px" align="center" />
  840. <el-table-column label="诊断故障" prop="details" min-width="110px" align="center" />
  841. <el-table-column label="维修费用" sortable prop="maintenanceCost" min-width="110px" align="center" />
  842. </el-table>
  843. <pagination v-show="total>=0" :total="totalAssetMaintain" :page.sync="getAssetMaintainParm.offset" :limit.sync="getAssetMaintainParm.pagecount" @pagination="getAssetMaintainList" />
  844. </el-tab-pane>
  845. <el-tab-pane v-if="isDisplayRecord" label="启停记录" name="fifth">
  846. <div class="filter-container">
  847. <el-date-picker v-model="getAssetSTTParm.parammaps.startTime" type="date" placeholder="开启日期" style="width:170px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" />
  848. <el-date-picker v-model="getAssetSTTParm.parammaps.stopTime" type="date" placeholder="关闭日期" style="width:170px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" />
  849. <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="form_searchAssetSTT">搜索</el-button>
  850. </div>
  851. <el-table
  852. :key="tableKey"
  853. v-loading="listLoadingAssetSTT"
  854. element-loading-text="给我一点时间"
  855. :data="listAssetSTT"
  856. border
  857. fit
  858. highlight-current-row
  859. style="width: 100%;"
  860. :row-style="rowStyle"
  861. :cell-style="cellStyle"
  862. class="elTable"
  863. >
  864. <el-table-column label="序号" align="center" type="index" width="50">
  865. <template slot-scope="scope">
  866. <span>{{ scope.$index + (pageNumAssetSTT-1) * pageSizeAssetSTT + 1 }}</span>
  867. </template>
  868. </el-table-column>
  869. <el-table-column label="开启时间" sortable prop="enabledTime" min-width="110px" align="center" />
  870. <el-table-column label="关闭时间" sortable prop="blockTime" min-width="110px" align="center" />
  871. <el-table-column label="运行时间(分钟)" sortable prop="runTime" min-width="110px" align="center" />
  872. <el-table-column label="关闭人" prop="blockName" min-width="110px" align="center" />
  873. </el-table>
  874. <pagination v-show="total>=0" :total="totalAssetSTT" :page.sync="getAssetSTTParm.offset" :limit.sync="getAssetSTTParm.pagecount" @pagination="getAssetSTTList" />
  875. </el-tab-pane>
  876. <el-tab-pane v-if="isDisplayRecord" label="变更记录" name="sixth">
  877. <div class="filter-container">
  878. <el-select v-model="getAssetChangeParm.parammaps.changeStatue" clearable placeholder="变更状态" class="filter-item" style="width: 120px;">
  879. <el-option v-for="item in changeStates" :key="item.id" :label="item.name" :value="item.id" />
  880. </el-select>
  881. <el-date-picker ref="inputDatetimeAssetChange" v-model="getAssetChangeParm.parammaps.inputDatetimeAssetChange" class="inputDatetime" type="datetimerange" style="width: 250px;margin-bottom:10px" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  882. <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="form_searchAssetChange">搜索</el-button>
  883. </div>
  884. <el-table
  885. :key="tableKey"
  886. v-loading="listLoadingAssetChange"
  887. element-loading-text="给我一点时间"
  888. :data="listAssetChange"
  889. border
  890. fit
  891. highlight-current-row
  892. style="width: 100%;"
  893. :row-style="rowStyle"
  894. :cell-style="cellStyle"
  895. class="elTable"
  896. >
  897. <el-table-column label="序号" align="center" type="index" width="50px">
  898. <template slot-scope="scope">
  899. <span>{{ scope.$index + (pageNumAssetChange-1) * pageSizeAssetChange + 1 }}</span>
  900. </template>
  901. </el-table-column>
  902. <el-table-column label="变更时间" sortable prop="changeTime" min-width="110px" align="center" />
  903. <el-table-column label="变更状态" :formatter="changeStatue" prop="blockTime" min-width="110px" align="center" />
  904. <el-table-column label="变更人" prop="changeName" min-width="110px" align="center" />
  905. </el-table>
  906. <pagination v-show="total>=0" :total="totalAssetChange" :page.sync="getAssetChangeParm.offset" :limit.sync="getAssetChangeParm.pagecount" @pagination="getAssetChangeList" />
  907. </el-tab-pane>
  908. <el-tab-pane v-if="isDisplayRecord" label="备件领用记录" name="seventh">
  909. <el-input v-model="getAssetPartApplyParm.parammaps.useCode" placeholder="出库单号" style="width: 140px;" class="filter-item" />
  910. <el-input v-model="getAssetPartApplyParm.parammaps.partCode" placeholder="备件编号" style="width: 140px;" class="filter-item" />
  911. <el-input v-model="getAssetPartApplyParm.parammaps.partName" placeholder="备件名称" style="width: 140px;" class="filter-item" />
  912. <el-date-picker ref="inputDatetimeAssetPartApply" v-model="getAssetPartApplyParm.parammaps.inputDatetimeAssetPartApply" class="inputDatetime" type="datetimerange" style="width: 250px;margin-bottom:10px" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  913. <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="form_searchAssetPartApply">搜索</el-button>
  914. <el-table
  915. :key="tableKey"
  916. v-loading="listLoadingAssetPartApply"
  917. element-loading-text="给我一点时间"
  918. :data="listAssetPartApply"
  919. border
  920. fit
  921. highlight-current-row
  922. style="width: 100%;"
  923. :row-style="rowStyle"
  924. :cell-style="cellStyle"
  925. class="elTable"
  926. @sort-change="tableSort"
  927. >
  928. <el-table-column label="序号" align="center" type="index" width="50px">
  929. <template slot-scope="scope">
  930. <span>{{ scope.$index + (pageNumAssetPartApply-1) * pageSizeAssetPartApply + 1 }}</span>
  931. </template>
  932. </el-table-column>
  933. <el-table-column label="出库单号" prop="useForm" min-width="110px" align="center" />
  934. <el-table-column label="备件编号" sortable prop="partCode" min-width="110px" align="center" />
  935. <el-table-column label="备件名称" prop="partName" min-width="110px" align="center" />
  936. <el-table-column label="备件规格" prop="specification" min-width="110px" align="center" />
  937. <el-table-column label="备件品牌" prop="brandName" min-width="110px" align="center" />
  938. <el-table-column label="计量单位" prop="unit" min-width="110px" align="center" />
  939. <el-table-column label="领用数量" sortable prop="useNumber" min-width="110px" align="center" />
  940. <el-table-column label="实际出库数量" sortable prop="checkoutNumber" min-width="110px" align="center" />
  941. <el-table-column label="单价" sortable prop="price" min-width="110px" align="center" />
  942. <el-table-column label="总价" sortable prop="sumPrice" min-width="110px" align="center" />
  943. <el-table-column label="领用部门" prop="departmentName" min-width="110px" align="center" />
  944. <el-table-column label="领用时间" sortable prop="receiveTime" min-width="110px" align="center" />
  945. <el-table-column label="距离上次时间(天)" sortable prop="dif" min-width="110px" align="center" />
  946. </el-table>
  947. <pagination v-show="total>=0" :total="totalAssetPartApply" :page.sync="getAssetPartApplyParm.offset" :limit.sync="getAssetPartApplyParm.pagecount" @pagination="getAssetPartApplyList" />
  948. </el-tab-pane>
  949. <el-tab-pane v-if="isDisplayRecord" label="费用统计" name="eighth">
  950. <el-row>
  951. <el-col :span="12">
  952. <div v-if="activeName==='eighth'" id="barChart1" style="width: 100%;height:400px;" />
  953. </el-col>
  954. <el-col :span="12">
  955. <div v-if="activeName==='eighth'" id="barChart2" style="width: 100%;height:400px;" />
  956. </el-col>
  957. </el-row>
  958. <el-dialog :title="textMap[dialogStatus]" append-to-body :visible.sync="dialogFormVisible_ChartSee" :close-on-click-modal="false" width="80%">
  959. <div class="app-contentSee">
  960. <div class="filter-container">
  961. <el-select v-model="getChartSeeParm.parammaps.useTypeV" placeholder="类型" clearable class="filter-item" style="width: 120px;">
  962. <el-option v-for="item in useTypes" :key="item.id" :label="item.name" :value="item.name" />
  963. </el-select>
  964. <el-date-picker ref="inputDatetime2" v-model="getChartSeeParm.parammaps.inputDatetime2" class="inputDatetime" type="datetimerange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  965. <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="form_searchChartSee">搜索</el-button>
  966. <el-button class="filter-item" style="margin-left: 10px;" type="success" icon="el-icon-edit" @click="handleDownloadChartSee">导出</el-button>
  967. </div>
  968. <el-table
  969. :key="tableKey"
  970. v-loading="listLoadingChartSee"
  971. element-loading-text="给我一点时间"
  972. :data="listChartSee"
  973. border
  974. fit
  975. highlight-current-row
  976. style="width: 100%;"
  977. :row-style="rowStyle"
  978. :cell-style="cellStyle"
  979. class="elTable"
  980. >
  981. <el-table-column label="序号" align="center" type="index" width="50px">
  982. <template slot-scope="scope">
  983. <span>{{ scope.$index + (pageNumChartSee-1) * pageSizeChartSee + 1 }}</span>
  984. </template>
  985. </el-table-column>
  986. <el-table-column :key="1" label="类型" align="center">
  987. <template slot-scope="scope">
  988. <span>{{ scope.row.useTypeV }}</span>
  989. </template>
  990. </el-table-column>
  991. <el-table-column :key="2" label="单号" width="140px" align="center">
  992. <template slot-scope="scope">
  993. <span>{{ scope.row.RUcode }}</span>
  994. </template>
  995. </el-table-column>
  996. <el-table-column :key="3" label="领用日期" min-width="80px" align="center">
  997. <template slot-scope="scope">
  998. <span>{{ scope.row.creatTime }}</span>
  999. </template>
  1000. </el-table-column>
  1001. <el-table-column :key="4" label="领用部门" min-width="100px" align="center">
  1002. <template slot-scope="scope">
  1003. <span>{{ scope.row.departmentName }}</span>
  1004. </template>
  1005. </el-table-column>
  1006. <el-table-column :key="5" label="备件编号" min-width="80px" align="center">
  1007. <template slot-scope="scope">
  1008. <span>{{ scope.row.partCode }}</span>
  1009. </template>
  1010. </el-table-column>
  1011. <el-table-column :key="6" label="备件名称" min-width="80px" align="center">
  1012. <template slot-scope="scope">
  1013. <span>{{ scope.row.partName }}</span>
  1014. </template>
  1015. </el-table-column>
  1016. <el-table-column :key="7" label="备件规格" min-width="80px" align="center">
  1017. <template slot-scope="scope">
  1018. <span>{{ scope.row.specification }}</span>
  1019. </template>
  1020. </el-table-column>
  1021. <el-table-column :key="8" label="备件品牌" min-width="100px" align="center">
  1022. <template slot-scope="scope">
  1023. <span>{{ scope.row.brandName }}</span>
  1024. </template>
  1025. </el-table-column>
  1026. <el-table-column :key="9" label="计量单位" min-width="80px" align="center">
  1027. <template slot-scope="scope">
  1028. <span>{{ scope.row.unit }}</span>
  1029. </template>
  1030. </el-table-column>
  1031. <el-table-column :key="10" label="出库数量" min-width="110px" align="center">
  1032. <template slot-scope="scope">
  1033. <span>{{ scope.row.checkoutNumber }}</span>
  1034. </template>
  1035. </el-table-column>
  1036. <el-table-column :key="11" label="退库数量" min-width="100px" align="center">
  1037. <template slot-scope="scope">
  1038. <span>{{ scope.row.quitNumber }}</span>
  1039. </template>
  1040. </el-table-column>
  1041. <el-table-column :key="12" label="单价" min-width="110px" align="center">
  1042. <template slot-scope="scope">
  1043. <span>{{ scope.row.price }}</span>
  1044. </template>
  1045. </el-table-column>
  1046. <el-table-column :key="13" label="总价" min-width="110px" align="center">
  1047. <template slot-scope="scope">
  1048. <span>{{ scope.row.sumPrice }}</span>
  1049. </template>
  1050. </el-table-column>
  1051. </el-table>
  1052. <pagination v-show="totalChartSee>=0" :total="totalChartSee" :page.sync="getChartSeeParm.offset" :limit.sync="getChartSeeParm.pagecount" @pagination="getChartSeeList" />
  1053. </div>
  1054. </el-dialog>
  1055. </el-tab-pane>
  1056. </el-tabs>
  1057. </div>
  1058. <div slot="footer" class="dialog-footer" style="right:30px;position:absolute;bottom:10px">
  1059. <el-button @click="dialogFormVisible_See = false">关闭</el-button>
  1060. </div>
  1061. </div>
  1062. </el-dialog>
  1063. <!-- 审核 -->
  1064. <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible_Examine" :close-on-click-modal="false" width="30%">
  1065. <div class="app-examine">
  1066. <h3 style="width: 100%;margin:0 0 0 5%;line-height:50px;">请确认审核结果:</h3>
  1067. <el-form ref="examineTemp" :rules="rules" :model="examineTemp" label-position="right" style="width: 50%;margin:0 auto;">
  1068. <el-row style="width:88%;height:150px;margin:0 auto;">
  1069. <el-col :span="20">
  1070. <el-form-item>
  1071. <el-radio-group v-model="examineTemp.SHstatue" @change="changeSHStatue">
  1072. <el-radio :label="1" checked>通过</el-radio>
  1073. <el-radio :label="2">不通过</el-radio>
  1074. </el-radio-group>
  1075. </el-form-item>
  1076. </el-col>
  1077. <el-col v-if="statueReason" :span="22">
  1078. <el-input v-model="examineTemp.workflowNote" type="textarea" :autosize="{ minRows: 2, maxRows: 3}" placeholder="请输入不通过原因" />
  1079. </el-col>
  1080. </el-row>
  1081. </el-form>
  1082. </div>
  1083. <div slot="footer" class="dialog-footer">
  1084. <el-button type="primary" :disabled="isokDisable" @click="dialogStatus==='examine'?createExamineData():createExamineData()">确认</el-button>
  1085. <el-button @click="dialogFormVisible_Examine = false;">关闭</el-button>
  1086. </div>
  1087. </el-dialog>
  1088. <!-- 变更 -->
  1089. <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible_change" :close-on-click-modal="false" width="30%">
  1090. <div class="app-change">
  1091. <el-form ref="batchChangeTemp" :rules="rules" :model="batchChange.temp" label-position="right" label-width="115px" style="width: 90%;margin:0 auto 30px" @click.native.prevent @submit.native.prevent>
  1092. <el-row>
  1093. <el-col :span="24">
  1094. <el-form-item label="变更部门:" prop="departmentId">
  1095. <el-select v-model="batchChange.temp.departmentId" placeholder="变更部门" class="filter-item" style="width: 100%;" @change="changeBatchDept">
  1096. <el-option v-for="item in batchChange.deptList" :key="item.deptid" :label="item.departmentName" :value="item.deptid" />
  1097. </el-select>
  1098. </el-form-item>
  1099. </el-col>
  1100. </el-row>
  1101. <el-row>
  1102. <el-col :span="24">
  1103. <el-form-item label="变更责任人:" prop="employeeId">
  1104. <el-select v-model="batchChange.temp.employeeId" placeholder="变更责任人" class="filter-item" style="width: 100%;" @change="changeBatchPerson">
  1105. <el-option v-for="item in batchChange.personList" :key="item.id" :label="item.empname" :value="item.id" />
  1106. </el-select>
  1107. </el-form-item>
  1108. </el-col>
  1109. </el-row>
  1110. </el-form>
  1111. <div slot="footer" class="dialog-footer" style="right:30px;position:absolute;bottom:10px">
  1112. <el-button type="primary" :disabled="isokDisable" @click="changeData()">保存并关闭</el-button>
  1113. <el-button @click="dialogFormVisible_change = false;">取消并关闭</el-button>
  1114. </div>
  1115. </div>
  1116. </el-dialog>
  1117. </div>
  1118. </template>
  1119. <script>
  1120. import echarts from 'echarts'
  1121. require('echarts/theme/macarons')
  1122. // 引入
  1123. import { GetDataByName, GetDataByNames, PostDataByName, PostDataByNames, getRecuData, checkButtons, ExecDataByConfig, failproccess, GetAccount, GetReportform } from '@/api/common'
  1124. import waves from '@/directive/waves'
  1125. import { parseTime, sortChange, json2excel } from '@/utils/index.js'
  1126. import Pagination from '@/components/Pagination'
  1127. import { MessageBox } from 'element-ui'
  1128. import TreeSelect from '@/components/TreeSelect'
  1129. import Cookies from 'js-cookie'
  1130. import { getToken } from '@/utils/auth'
  1131. export default {
  1132. inject: ['reload'],
  1133. name: 'Basics',
  1134. components: { Pagination, TreeSelect },
  1135. directives: { waves },
  1136. data() {
  1137. return {
  1138. isBasicsAdd: [], isBasicsCard: [], isBasicsUpdate: [], isBasicsDel: [], isBasicsDel2: [], isBasic: [], isBasicSH: [], isBasicExamine: [],
  1139. rules: {
  1140. // assetCode: [{ required: true, message: '必填', trigger: 'blur' }],
  1141. //eqName: [{ required: true, message: '必填', trigger: 'blur' }],
  1142. eqCode: [{ required: true, message: '必填', trigger: 'blur' }],
  1143. financeCode: [{ required: true, message: '必填', trigger: 'blur' }],
  1144. departmentId: [{ required: true, message: '必填', trigger: 'blur' }],
  1145. employeeId: [{ required: true, message: '必填', trigger: 'blur' }],
  1146. depreciation: [{ type: 'number', required: true, validator: (rule, value, callback) => {
  1147. if (!value) {
  1148. callback(new Error('不能为空'))
  1149. }
  1150. setTimeout(() => {
  1151. const re = /^[0-9]*[1-9][0-9]*$/ // /^[0-9]*[1-9][0-9]*$/
  1152. const rsCheck = re.test(value)
  1153. if (!rsCheck) {
  1154. callback(new Error('请输入正整数'))
  1155. } else {
  1156. callback()
  1157. }
  1158. }, 0)
  1159. }, trigger: 'blur' }]
  1160. },
  1161. rulesCreate: {
  1162. // assetCode: [{ required: true, message: '必填', trigger: 'blur' }],
  1163. //eqName: [{ required: true, message: '必填', trigger: 'blur' }],
  1164. eqCode: [{ required: true, message: '必填', trigger: 'blur' }],
  1165. financeCode: [{ required: true, message: '必填', trigger: 'blur' }],
  1166. departmentId: [{ required: true, message: '必填', trigger: 'blur' }],
  1167. employeeId: [{ required: true, message: '必填', trigger: 'blur' }],
  1168. deptId: [{ required: true, message: '必填', trigger: 'blur' }],
  1169. employeName: [{ required: true, message: '必填', trigger: 'blur' }],
  1170. pastureId: [{ required: true, message: '必填', trigger: 'blur' }],
  1171. maintenance: [{ required: true, message: '必填', trigger: 'blur' }],
  1172. leveloneTime: [{ required: true, message: '必填', trigger: 'blur' }],
  1173. leveltwoTime: [{ required: true, message: '必填', trigger: 'blur' }],
  1174. levelthreeTime: [{ required: true, message: '必填', trigger: 'blur' }],
  1175. levelone: [{ required: true, message: '必填', trigger: 'blur' }],
  1176. leveltwo: [{ required: true, message: '必填', trigger: 'blur' }],
  1177. levelthree: [{ required: true, message: '必填', trigger: 'blur' }],
  1178. depreciation: [{ type: 'number', required: true, validator: (rule, value, callback) => {
  1179. if (!value) {
  1180. callback(new Error('不能为空'))
  1181. }
  1182. setTimeout(() => {
  1183. const re = /^[0-9]*[1-9][0-9]*$/ // /^[0-9]*[1-9][0-9]*$/
  1184. const rsCheck = re.test(value)
  1185. if (!rsCheck) {
  1186. callback(new Error('请输入正整数'))
  1187. } else {
  1188. callback()
  1189. }
  1190. }, 0)
  1191. }, trigger: 'blur' }]
  1192. },
  1193. placeholder:"请选择设备类别",
  1194. findAllBrand: [], findAllProvider: [],
  1195. findAllAssetType: [], findAllPasture: [], findAllDepart: [], findAllEmploye: [],
  1196. getDictByName: [], upkeepgrades: [], createDepartList: [],
  1197. statues: [{ id: '0', name: '审核中' }, { id: '1', name: '已通过' }, { id: '2', name: '未通过' }],
  1198. pushNameList: [{ id: '60', name: '60' }, { id: '120', name: '120' }, { id: '180', name: '180' }],
  1199. pushNameList2: [{ id: '1', name: '1' }, { id: '2', name: '2' }, { id: '3', name: '3' }, { id: '5', name: '5' }, { id: '8', name: '8' }, { id: '12', name: '12' }, { id: '18', name: '18' }],
  1200. depreciationAlertList: [{ id: '0', name: '正常' }, { id: '1', name: '到期预警' }, { id: '2', name: '超期使用' }],
  1201. requestParams: [
  1202. { name: 'findAllBrand', offset: 0, pagecount: 0, params: [] },
  1203. { name: 'findAllProvider', offset: 0, pagecount: 0, params: [] },
  1204. { name: 'findAlllAssetProvider', offset: 0, pagecount: 0, params: [] },
  1205. { name: 'findAllAssetType', offset: 0, pagecount: 0, params: [] },
  1206. { name: 'findAllPasture', offset: 0, pagecount: 0, returntype: 'Map', parammaps: { 'id': "18" }},
  1207. // { name: 'findAllPasture', offset: 0, pagecount: 0, returntype: 'Map', parammaps: { 'id': Cookies.get('pastureid') }},
  1208. { name: 'findAllEmploye', offset: 0, pagecount: 0, parammaps: { 'pastureId': Cookies.get('pastureid') }},
  1209. { name: 'getDictByName', offset: 0, pagecount: 0, params: ['资产状态'] },
  1210. { name: 'getdictbyname', offset: 0, pagecount: 0, params: ['保养级别'] }
  1211. ],
  1212. getDepartParam: { name: 'findAllDepart1', offset: 0, pagecount: 0, parammaps: { 'pastureId': Cookies.get('pastureid'), 'eId': Cookies.get('employeid') }},
  1213. disabled: false,
  1214. nodeKey: 'id',
  1215. defaultCheckedKeys: [],
  1216. parentClass: [],
  1217. defaultProps: { children: 'children', label: 'typeName' },
  1218. getRecuListParm: { name: 'getAssetTypeList', idname: 'id', params: [-1] },
  1219. tableKey: 0,
  1220. list: [],
  1221. total: 0,
  1222. listLoading: true,
  1223. getdataListParm: {
  1224. name: 'getAssetList', page: 1, offset: 1, pagecount: 10, returntype: 'Map',
  1225. parammaps: {proId:'',brandId:'', assetCode:'',eqCode: '', eqName: '', departmentId: '', pastureId: Cookies.get('pastureid'), pastureName: Cookies.get('pasturename'), status: '', inputDatetime1: '', startTime: '', stopTime: '', inputDatetime2: '', startTime2: '', stopTime2: '', inputDatetime3: '', startTime3: '', stopTime3: '', warning: '', eqClassId: '' }
  1226. },
  1227. listSH: [], totalSH: 0, listLoadingSH: true, tabName: '',
  1228. getdataListParmSH: {
  1229. name: 'getAssetListSH', page: 1, offset: 1, pagecount: 10, returntype: 'Map',
  1230. parammaps: { eqCode: '', eqName: '', pastureName: Cookies.get('pasturename'), status: '', inputDatetime1: '', startTime: '', stopTime: '', SHStatus: '' }
  1231. },
  1232. textMap: { update: '编辑', create: '新增', card: '查看设备信息', examine: '审核', change: '批量变更' },
  1233. dialogFormVisible: false,
  1234. dialogStatus: '',
  1235. pickerOptions1: {
  1236. disabledDate(time) {
  1237. return time.getTime() > Date.now()// 当天之前的时间可选
  1238. }
  1239. },
  1240. dialogImageUrl: '', dialogVisible: false,
  1241. fileList: [], showUpload: false,
  1242. headers: { optname: 'insertcustompic', id: 1, token: getToken() },
  1243. uploadImageUrl: process.env.VUE_APP_BASE_API + 'authdata/uploaderimage',
  1244. width: '',
  1245. createTemp: { license:'',duration:'',inputDatetime: parseTime(new Date(), '{y}-{m}-{d}'), employeId: this.$store.state.user.employeid, inputUser: this.$store.state.user.employeid, deptId: this.$store.state.user.departmentid, departmentName: Cookies.get('departmentname'), pastureId: this.$store.state.user.pastureid, assetCode: '', eqClassName: '', eqClassId: '', eqCode: '', eqName: '', specification: '', providerName: '', brandName: '', financeCode: '', status: '正常', purpose: '', purchaseDate: parseTime(new Date(), '{y}-{m}-{d}'), entranceDate: parseTime(new Date(), '{y}-{m}-{d}'), yearUpkeepCost: '', yearMaintainDost: '', yuanzhi: '', baseHours: '', upkeepgrade: '', salvage: '', subtractvalue: '', yearMaintainCost: '', brandId: '', providerId: '', inputUserName: '', employeName: this.$store.state.user.employename, depreciation: '5', maintenance: '', levelone: '', leveltwo: '', levelthree: '', pushTime: '', leveloneTime: '', leveltwoTime: '', levelthreeTime: '' },
  1246. requestParam: { name: 'insertAsset', offset: 0, pagecount: 0, parammaps: {}},
  1247. seeTemp: {},
  1248. dialogFormVisible_Examine: false,
  1249. dialogFormVisible_See: false,
  1250. activeName: 'first',
  1251. maintainTypes: [{ id: '0', name: '周保养' }, { id: '1', name: '月保养' }, { id: '2', name: '间隔保养' }],
  1252. changeStates: [{ id: '17', name: '正常' }, { id: '18', name: '闲置' }, { id: '19', name: '报废' }, { id: '20', name: '封存' }],
  1253. getdataEQNumber: { name: 'cerateEQNumber', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: {}},
  1254. dialoFormVisible_Examine: false,
  1255. examineTemp: { SHstatue: 1 },
  1256. statueReason: false,
  1257. activeList: [],
  1258. active: 3,
  1259. isFlowChart: false,
  1260. isDisplayRecord: false,
  1261. buttons: [],
  1262. // 查看-点检记录
  1263. getAssetBigSpotCheckListParm: { name: 'getAssetBigSpotCheck1', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { inputDatetimeSpotCheck1: '', startTime: '', stopTime: '' }},
  1264. listLoadingSpotCheck1: false,
  1265. listSpotCheck1: [],
  1266. totalSpotCheck1: 0,
  1267. // 查看-保养记录
  1268. getBigupkeepbyeqParm: { name: 'getBigupkeepbyeq', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { inputDatetimeUpkeepbyeq: '', startTime: '', stopTime: '', upkeepType: '', upkeepCode: '' }},
  1269. listLoadingUpkeepbyeq: false,
  1270. listUpkeepbyeq: [],
  1271. totalUpkeepbyeq: 0,
  1272. // 查看-维修记录
  1273. getAssetMaintainParm: { name: 'getAssetMaintain1', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { inputDatetimeAssetMaintain: '', startTime: '', stopTime: '', repairCode: '' }},
  1274. listLoadingAssetMaintain: false,
  1275. listAssetMaintain: [],
  1276. totalAssetMaintain: 0,
  1277. // 查看-启停记录
  1278. getAssetSTTParm: { name: 'getAssetSTT1', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { startTime: '', stopTime: '' }},
  1279. listLoadingAssetSTT: false,
  1280. listAssetSTT: [],
  1281. totalAssetSTT: 0,
  1282. // 查看-变更记录
  1283. getAssetChangeParm: { name: 'getAssetChange1', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { startTime: '', stopTime: '', changeStatue: '', inputDatetimeAssetChange: '' }},
  1284. listLoadingAssetChange: false,
  1285. listAssetChange: [],
  1286. totalAssetChange: 0,
  1287. // 查看-备件领用记录
  1288. getAssetPartApplyParm: { name: 'getAssetPartApply', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { startTime: '', stopTime: '', inputDatetimeAssetPartApply: '' }},
  1289. listLoadingAssetPartApply: false,
  1290. listAssetPartApply: [],
  1291. totalAssetPartApply: 0,
  1292. downLoadParm: {},
  1293. downLoadList: [],
  1294. requestBrand: {
  1295. name: 'getBrandByPartCode',
  1296. page: 0,
  1297. offset: 0,
  1298. pagecount: 10,
  1299. returntype: 'Map',
  1300. parammaps: {}
  1301. },
  1302. BrandList: [],
  1303. requestEmploye: {
  1304. name: 'findAllEmployeV2',
  1305. page: 0,
  1306. offset: 0,
  1307. pagecount: 10,
  1308. returntype: 'Map',
  1309. parammaps: {
  1310. pastureId: Cookies.get('pastureid')
  1311. }
  1312. },
  1313. employeList: [],
  1314. totaltitle: 0,
  1315. getBarChart1Parm: {
  1316. name: 'getReportEqCostYear',
  1317. parammaps: {}
  1318. },
  1319. barChart1: null,
  1320. chart_data1: {},
  1321. getBarChart2Parm: {
  1322. name: 'getReportEqCostMonth',
  1323. parammaps: {
  1324. receiveTime: new Date().getFullYear()
  1325. }
  1326. },
  1327. barChart2: null,
  1328. chart_data2: {},
  1329. dialogFormVisible_ChartSee: false,
  1330. getChartSeeParm: {
  1331. name: 'getEqPartuseDetailList',
  1332. page: 0,
  1333. offset: 0,
  1334. pagecount: 10,
  1335. returntype: 'Map',
  1336. parammaps: {
  1337. receiveTime: '',
  1338. eqId: '',
  1339. useTypeV: '',
  1340. inputDatetime2: '',
  1341. stopTime: '',
  1342. startTime: ''
  1343. }
  1344. },
  1345. listLoadingChartSee: false,
  1346. totalChartSee: 0,
  1347. listChartSee: [],
  1348. pageNum: 0,
  1349. pageSize: 0,
  1350. pageNumSH: 0,
  1351. pageSizeSH: 0,
  1352. useTypes: [{ id: 0, name: '维修' }, { id: 1, name: '保养' }],
  1353. downLoadParm2: {},
  1354. downLoadList2: [],
  1355. isPercentage: false,
  1356. percentage: 1,
  1357. isokDisable: false,
  1358. edit: 0,
  1359. selectionList: [],
  1360. dialogFormVisible_change: false,
  1361. batchChange: {
  1362. temp: { departmentId: '', employeeId: '' },
  1363. getdataListParmDept: { name: 'getAssetAndEmpList', offset: 0, pagecount: 0, parammaps: {}},
  1364. deptList: [],
  1365. getdataListParmPerson: { name: 'getAllEmp', offset: 0, pagecount: 0, parammaps: {}},
  1366. personList: []
  1367. },
  1368. rowStyle: { maxHeight: 50 + 'px', height: 45 + 'px' },
  1369. cellStyle: { padding: 0 + 'px' },
  1370. myHeight:document.documentElement.clientHeight - 85- 250
  1371. }
  1372. },
  1373. computed: {
  1374. // 设置请求头
  1375. // headers() {
  1376. // return {
  1377. // // 设置token
  1378. // // eslint-disable-next-line no-undef
  1379. // token: getToken()
  1380. // }
  1381. // },
  1382. uploadData() {
  1383. return {
  1384. name: 'importStockUse',
  1385. pastureId: Cookies.get('pastureid'),
  1386. importParams: '牧场,设备类别,资产编号,设备名称,设备内部编号,设备规格,品牌,供应商,用途,状态,购置日期,入场日期,折旧年限,财务编号,原值,残值,月核减值,保养级别,保养费用,维修费用,维修费用,基数(小时),部门,责任人,录入人,录入时间,使用时长(年),使用率(%),物联网编码,标准工作时长,SignColumn',
  1387. sheetname: 'SheetJS'
  1388. }
  1389. },
  1390. // 设置上传地址
  1391. uploadExcelUrl() {
  1392. // process.env.VUE_APP_BASE_API是服务器的路径,也是axios的基本路径
  1393. return process.env.VUE_APP_BASE_API + 'authdata/equipment'
  1394. }
  1395. },
  1396. created() {
  1397. const gshebquanx = Cookies.get('gshebquanx')
  1398. console.log("gshebquanx===================",gshebquanx)
  1399. //不是设备处长,没有所有权限
  1400. if(gshebquanx == '0'){
  1401. this.requestParams[4].parammaps.id = Cookies.get('pastureid')
  1402. } else {
  1403. this.requestParams[4].parammaps.id = "18"
  1404. }
  1405. const that = this
  1406. GetDataByName({ 'name': 'getUserPCButtons', 'parammaps': { 'jwt_username': Cookies.get('name') }}).then(response => {
  1407. that.buttons = response.data.list
  1408. that.get_auto_buttons()
  1409. })
  1410. this.get_table_dataSH()
  1411. this.getDownClassList()
  1412. if (this.$route.query.tabName == undefined) {
  1413. this.tabName = 'first'
  1414. } else {
  1415. this.tabName = this.$route.query.tabName
  1416. }
  1417. if (this.isBasic === false) {
  1418. this.tabName = 'second'
  1419. }
  1420. if (this.tabName == 'first') {
  1421. this.isDisplayRecord = true
  1422. this.isFlowChart = false
  1423. } else {
  1424. this.isDisplayRecord = false
  1425. this.isFlowChart = true
  1426. }
  1427. if (this.$route.query.myPath !== undefined && this.$route.query.myPath == 'AssetStandardManagement') {
  1428. setTimeout(() => {
  1429. if (this.$route.query.pastureName !== undefined && this.$route.query.pastureId !== undefined && this.$route.query.departmentId !== undefined) {
  1430. this.getdataListParm.parammaps.pastureName = this.$route.query.pastureName
  1431. this.getdataListParm.parammaps.pastureId = this.$route.query.pastureId
  1432. // console.log(isNaN(this.$route.query.departmentId), '9999')
  1433. this.getdataListParm.parammaps.eqClassId = this.$route.query.eqClassId
  1434. this.getdataListParm.parammaps.eqClassName = this.$route.query.eqClassName
  1435. this.defaultCheckedKeys = [this.getdataListParm.parammaps.eqClassId]
  1436. this.getDepartParam.parammaps.pastureId = this.$route.query.pastureId
  1437. if (isNaN(this.$route.query.departmentId)) {
  1438. this.getdataListParm.parammaps.departmentId = ''
  1439. } else {
  1440. this.getdataListParm.parammaps.departmentId = parseInt(this.$route.query.departmentId)
  1441. }
  1442. this.getDepartDownList()
  1443. this.$forceUpdate()
  1444. } else {
  1445. this.getdataListParm.parammaps.pastureName = Cookies.get('pasturename')
  1446. this.getdataListParm.parammaps.pastureId = Cookies.get('pastureid')
  1447. this.getdataListParm.parammaps.departmentId = ''
  1448. }
  1449. this.get_table_data()
  1450. }, 5000)
  1451. } else {
  1452. if (this.$route.query.pastureName !== undefined && this.$route.query.pastureId !== undefined && this.$route.query.departmentId !== undefined) {
  1453. this.getdataListParm.parammaps.pastureName = this.$route.query.pastureName
  1454. this.getdataListParm.parammaps.pastureId = this.$route.query.pastureId
  1455. this.getdataListParm.parammaps.departmentId = parseInt(this.$route.query.departmentId)
  1456. } else {
  1457. this.getdataListParm.parammaps.pastureName = Cookies.get('pasturename')
  1458. this.getdataListParm.parammaps.pastureId = Cookies.get('pastureid')
  1459. this.getdataListParm.parammaps.departmentId = ''
  1460. }
  1461. this.get_table_data()
  1462. }
  1463. if (this.$route.query.myPath !== undefined && this.$route.query.myPath == 'equipmentOverview') {
  1464. this.getDepartParam.parammaps.pastureId = this.$route.query.pastureId
  1465. }
  1466. if (this.$route.query.myPath !== undefined && this.$route.query.myPath == 'equipmentOverview2') {
  1467. setTimeout(() => {
  1468. if (this.$route.query.pastureName !== undefined && this.$route.query.pastureId !== undefined && this.$route.query.eqClassId !== undefined) {
  1469. this.getdataListParm.parammaps.pastureName = this.$route.query.pastureName
  1470. this.getdataListParm.parammaps.pastureId = this.$route.query.pastureId
  1471. this.getdataListParm.parammaps.eqClassId = this.$route.query.eqClassId
  1472. this.getdataListParm.parammaps.eqClassName = this.$route.query.eqClassName
  1473. this.defaultCheckedKeys = [this.getdataListParm.parammaps.eqClassId]
  1474. this.getDepartParam.parammaps.pastureId = this.$route.query.pastureId
  1475. this.getDepartDownList()
  1476. this.$forceUpdate()
  1477. } else {
  1478. this.getdataListParm.parammaps.pastureName = Cookies.get('pasturename')
  1479. this.getdataListParm.parammaps.pastureId = Cookies.get('pastureid')
  1480. this.getdataListParm.parammaps.eqClassId = ''
  1481. }
  1482. this.get_table_data()
  1483. }, 5000)
  1484. } else {
  1485. if (this.$route.query.pastureName !== undefined && this.$route.query.pastureId !== undefined && this.$route.query.departmentId !== undefined) {
  1486. this.getdataListParm.parammaps.pastureName = this.$route.query.pastureName
  1487. this.getdataListParm.parammaps.pastureId = this.$route.query.pastureId
  1488. this.getdataListParm.parammaps.departmentId = parseInt(this.$route.query.departmentId)
  1489. } else {
  1490. this.getdataListParm.parammaps.pastureName = Cookies.get('pasturename')
  1491. this.getdataListParm.parammaps.pastureId = Cookies.get('pastureid')
  1492. this.getdataListParm.parammaps.departmentId = ''
  1493. }
  1494. this.get_table_data()
  1495. }
  1496. // 设备购置报废统计
  1497. if (this.$route.query.myPath !== undefined && this.$route.query.myPath == 'PurchaseScrap') {
  1498. if (this.$route.query.project == '新购设备数') {
  1499. this.getdataListParm.parammaps.pastureName = this.$route.query.pastureName
  1500. this.getdataListParm.parammaps.inputDatetime2 = [parseTime(new Date(), '{y}') + '-01-01', parseTime(new Date(), '{y}') + '-12-31']
  1501. this.getDepartParam.parammaps.pastureId = this.$route.query.pastureId
  1502. this.getDepartDownList()
  1503. } else {
  1504. this.getdataListParm.parammaps.pastureName = this.$route.query.pastureName
  1505. this.getdataListParm.parammaps.inputDatetime3 = [parseTime(new Date(), '{y}') + '-01-01', parseTime(new Date(), '{y}') + '-12-31']
  1506. this.getDepartParam.parammaps.pastureId = this.$route.query.pastureId
  1507. this.getDepartDownList()
  1508. }
  1509. }
  1510. this.get_table_data()
  1511. // Window.addEventListener('keyup', )
  1512. this.keyupSubmit()
  1513. },
  1514. methods: {
  1515. roleSet1(row){
  1516. var result = true
  1517. if(row.pastureId == "18" || row.pastureId == Cookies.get('pastureid') || row.pastureId == "0"){
  1518. result = true
  1519. } else {
  1520. result = false
  1521. }
  1522. return result
  1523. },
  1524. roleSet2(row){
  1525. var result = true
  1526. if( (row.pastureId == "18" || row.pastureId == "0" ) && this.isBasicsDel2 ){
  1527. result = true
  1528. } else if( (row.pastureId == Cookies.get('pastureid') || row.pastureId == "0" ) && this.isBasicsDel2 ){
  1529. result = true
  1530. } else {
  1531. result = false
  1532. }
  1533. return result
  1534. },
  1535. // 导入
  1536. beforeImportExcel(file) {
  1537. const isLt2M = file.size / 1024 / 1024 < 10
  1538. if (!isLt2M) {
  1539. this.$message.error('上传文件大小不能超过 10MB!')
  1540. }
  1541. return isLt2M
  1542. },
  1543. handleImportExcelSuccess(res, file) {
  1544. if (res.msg === 'ok') {
  1545. this.$message({
  1546. title: '成功',
  1547. message: '导入成功:' + res.data.success + '条!',
  1548. type: 'success',
  1549. duration: 2000
  1550. })
  1551. if (res.data.err_count > 0) {
  1552. this.$notify({
  1553. title: '失败',
  1554. message: '导入失败:' + res.data.err_count + '条!',
  1555. type: 'danger',
  1556. duration: 2000
  1557. })
  1558. }
  1559. } else {
  1560. this.$notify({
  1561. title: '失败',
  1562. message: '上传失败',
  1563. type: 'danger',
  1564. duration: 2000
  1565. })
  1566. }
  1567. },
  1568. formatJsonTemp(filterVal, jsonData) {
  1569. return jsonData.map(v =>
  1570. filterVal.map(j => {
  1571. if (j === 'timestamp') {
  1572. return parseTime(v[j])
  1573. } else {
  1574. return v[j]
  1575. }
  1576. })
  1577. )
  1578. },
  1579. tableSort2(column) {
  1580. sortChange(column, this.list)
  1581. },
  1582. tableSort(column) {
  1583. if (this.activeName == 'third') {
  1584. sortChange(column, this.listUpkeepbyeq)
  1585. } else if (this.activeName == 'fouth') {
  1586. sortChange(column, this.listAssetMaintain)
  1587. } else if (this.activeName == 'seventh') {
  1588. sortChange(column, this.listAssetPartApply)
  1589. }
  1590. },
  1591. get_auto_buttons() {
  1592. // 新增
  1593. const BasicsAdd = 'asset:basics:add'
  1594. const isBasicsAdd = checkButtons(this.$store.state.user.buttons, BasicsAdd)
  1595. this.isBasicsAdd = isBasicsAdd
  1596. // 卡片
  1597. const BasicsCard = 'asset:basics:kapian'
  1598. const isBasicsCard = checkButtons(this.$store.state.user.buttons, BasicsCard)
  1599. this.isBasicsCard = isBasicsCard
  1600. // 编辑
  1601. const BasicsUpdate = 'asset:basics:update'
  1602. const isBasicsUpdate = checkButtons(this.$store.state.user.buttons, BasicsUpdate)
  1603. this.isBasicsUpdate = isBasicsUpdate
  1604. // 删除
  1605. const BasicsDel = 'asset:basics:del'
  1606. const isBasicsDel = checkButtons(this.$store.state.user.buttons, BasicsDel)
  1607. this.isBasicsDel = isBasicsDel
  1608. // 设备基础信息-删除
  1609. const BasicsDel2 = 'asset:basics:del2'
  1610. const isBasicsDel2 = checkButtons(this.$store.state.user.buttons, BasicsDel2)
  1611. this.isBasicsDel2 = isBasicsDel2
  1612. // 设备基础信息
  1613. const Basic = 'asset:basic:basic'
  1614. const isBasic = checkButtons(this.$store.state.user.buttons, Basic)
  1615. this.isBasic = isBasic
  1616. // 设备审核
  1617. const BasicSH = 'asset:basic:shjm'
  1618. const isBasicSH = checkButtons(this.$store.state.user.buttons, BasicSH)
  1619. this.isBasicSH = isBasicSH
  1620. // 审核
  1621. const BasicExamine = 'asset:basic:shenhe'
  1622. const isBasicExamine = checkButtons(this.$store.state.user.buttons, BasicExamine)
  1623. this.isBasicExamine = isBasicExamine
  1624. },
  1625. // 2-2:下拉框
  1626. get_select_list() {
  1627. GetDataByNames(this.requestParams).then(response => {
  1628. if (response.data.list !== null) {
  1629. this.findAllBrand = response.data.findAllBrand.list
  1630. this.findAllProvider = response.data.findAllProvider.list
  1631. this.findAllAssetType = response.data.findAllAssetType.list
  1632. this.findAllPasture = response.data.findAllPasture.list
  1633. this.findAllEmploye = response.data.findAllEmploye.list
  1634. this.getDictByName = response.data.getDictByName.list
  1635. this.upkeepgrades = response.data.getdictbyname.list
  1636. this.getDepartDownList()
  1637. }
  1638. })
  1639. },
  1640. getDepartDownList() {
  1641. GetDataByName(this.getDepartParam).then(response => {
  1642. this.findAllDepart = response.data.list
  1643. })
  1644. },
  1645. changePastureName(item) {
  1646. this.getDepartParam.parammaps.pastureId = this.findAllPasture.find(obj => obj.name == item).id
  1647. this.getdataListParm.parammaps.departmentId = ''
  1648. this.getDepartDownList()
  1649. },
  1650. getCreateDepartDownList() {
  1651. GetDataByName(this.getDepartParam).then(response => {
  1652. this.createDepartList = response.data.list
  1653. if (this.edit == 1) {
  1654. if (this.createDepartList.find(obj => obj.id == Cookies.get('departmentid'))) {
  1655. this.createTemp.departmentId = parseInt(Cookies.get('departmentid'))
  1656. this.createTemp.departmentName = this.createDepartList.find(obj => obj.id == Cookies.get('departmentid')).name
  1657. this.createTemp.deptId = parseInt(Cookies.get('departmentid'))
  1658. } else {
  1659. this.createTemp.departmentId = response.data.list[0].id
  1660. this.createTemp.departmentId = response.data.list[0].id
  1661. this.createTemp.deptId = response.data.list[0].name
  1662. }
  1663. }
  1664. })
  1665. },
  1666. changePasture(item) {
  1667. this.getDepartParam.parammaps.pastureId = item
  1668. this.edit = 1
  1669. this.getCreateDepartDownList()
  1670. },
  1671. changeDepart(item) {
  1672. this.createTemp.departmentName = this.createDepartList.find(obj => obj.id == item).name
  1673. },
  1674. get_table_data() {
  1675. this.listLoading = true
  1676. if (this.getdataListParm.parammaps.inputDatetime1 == null) {
  1677. this.getdataListParm.parammaps.inputDatetime1 = ''
  1678. this.getdataListParm.parammaps.startTime = ''
  1679. this.getdataListParm.parammaps.stopTime = ''
  1680. } else {
  1681. this.getdataListParm.parammaps.startTime = this.getdataListParm.parammaps.inputDatetime1[0]
  1682. this.getdataListParm.parammaps.stopTime = this.getdataListParm.parammaps.inputDatetime1[1]
  1683. }
  1684. if (this.getdataListParm.parammaps.inputDatetime2 == null || this.getdataListParm.parammaps.inputDatetime2 == '') {
  1685. this.getdataListParm.parammaps.inputDatetime2 = ''
  1686. this.getdataListParm.parammaps.startTime2 = ''
  1687. this.getdataListParm.parammaps.stopTime2 = ''
  1688. } else {
  1689. this.getdataListParm.parammaps.startTime2 = this.getdataListParm.parammaps.inputDatetime2[0]
  1690. this.getdataListParm.parammaps.stopTime2 = this.getdataListParm.parammaps.inputDatetime2[1]
  1691. }
  1692. if (this.getdataListParm.parammaps.inputDatetime3 == null || this.getdataListParm.parammaps.inputDatetime3 == '') {
  1693. this.getdataListParm.parammaps.inputDatetime3 = ''
  1694. this.getdataListParm.parammaps.startTime3 = ''
  1695. this.getdataListParm.parammaps.stopTime3 = ''
  1696. } else {
  1697. this.getdataListParm.parammaps.startTime3 = this.getdataListParm.parammaps.inputDatetime3[0]
  1698. this.getdataListParm.parammaps.stopTime3 = this.getdataListParm.parammaps.inputDatetime3[1]
  1699. }
  1700. GetDataByName(this.getdataListParm).then(response => {
  1701. console.log('table数据', response.data.list)
  1702. if (response.data.list !== null) {
  1703. this.list = response.data.list
  1704. for (let i = 0; i < response.data.list.length; i++) {
  1705. if (response.data.list[i].srcpath !== null && response.data.list[i].picpath !== null && response.data.list[i].srcpath !== undefined && response.data.list[i].picpath !== undefined) {
  1706. this.list[i].srcpath = process.env.VUE_APP_BASE_API + response.data.list[i].srcpath
  1707. this.list[i].picpath = process.env.VUE_APP_BASE_API + response.data.list[i].picpath
  1708. } else {
  1709. this.list[i].srcpath = ''
  1710. this.list[i].picpath = ''
  1711. }
  1712. }
  1713. this.pageNum = response.data.pageNum
  1714. this.pageSize = response.data.pageSize
  1715. } else {
  1716. this.list = []
  1717. }
  1718. this.total = response.data.total
  1719. setTimeout(() => {
  1720. this.listLoading = false
  1721. }, 100)
  1722. this.get_select_list()
  1723. })
  1724. },
  1725. get_table_dataSH() {
  1726. this.listLoadingSH = true
  1727. console.log(this.$refs)
  1728. console.log(this.$refs['inputDatetime1'])
  1729. if (this.getdataListParmSH.parammaps.inputDatetime1 == null) {
  1730. this.getdataListParmSH.parammaps.inputDatetime1 = ''
  1731. } else {
  1732. this.getdataListParmSH.parammaps.startTime = this.getdataListParmSH.parammaps.inputDatetime1[0]
  1733. this.getdataListParmSH.parammaps.stopTime = this.getdataListParmSH.parammaps.inputDatetime1[1]
  1734. }
  1735. GetDataByName(this.getdataListParmSH).then(response => {
  1736. console.log('table数据', response.data.list)
  1737. if (response.data.list !== null) {
  1738. this.listSH = response.data.list
  1739. for (let i = 0; i < response.data.list.length; i++) {
  1740. if (response.data.list[i].srcpath !== null && response.data.list[i].picpath) {
  1741. this.listSH[i].srcpath = process.env.VUE_APP_BASE_API + response.data.list[i].srcpath
  1742. this.listSH[i].picpath = process.env.VUE_APP_BASE_API + response.data.list[i].picpath
  1743. } else {
  1744. this.listSH[i].srcpath = ''
  1745. this.listSH[i].picpath = ''
  1746. }
  1747. }
  1748. this.pageNumSH = response.data.pageNum
  1749. this.pageSizeSH = response.data.pageSize
  1750. } else {
  1751. this.listSH = []
  1752. }
  1753. this.totalSH = response.data.total
  1754. setTimeout(() => {
  1755. this.listLoadingSH = false
  1756. }, 100)
  1757. })
  1758. },
  1759. SHStatus: function(cellValue) {
  1760. if (cellValue.SHStatus == 0) {
  1761. return '审核中'
  1762. } else if (cellValue.SHStatus == 1) {
  1763. return '已通过'
  1764. } else if (cellValue.SHStatus == 2) {
  1765. return '未通过'
  1766. } else if (cellValue.SHStatus == 3) {
  1767. return '历史数据'
  1768. }
  1769. },
  1770. form_search() {
  1771. this.listLoading = true
  1772. this.getdataListParm.parammaps.pastureId = ''
  1773. if (this.getdataListParm.parammaps.warning !== '') {
  1774. this.getdataListParm.parammaps.d1 = 1
  1775. } else {
  1776. this.getdataListParm.parammaps.d1 = ''
  1777. }
  1778. if (this.getdataListParm.parammaps.inputDatetime1 == null) {
  1779. this.getdataListParm.parammaps.inputDatetime1 = ''
  1780. this.getdataListParm.parammaps.startTime = ''
  1781. this.getdataListParm.parammaps.stopTime = ''
  1782. } else {
  1783. this.getdataListParm.parammaps.startTime = this.getdataListParm.parammaps.inputDatetime1[0]
  1784. this.getdataListParm.parammaps.stopTime = this.getdataListParm.parammaps.inputDatetime1[1]
  1785. }
  1786. console.log(this.getdataListParm.parammaps.inputDatetime2)
  1787. if (this.getdataListParm.parammaps.inputDatetime2 == null) {
  1788. this.getdataListParm.parammaps.inputDatetime2 = ''
  1789. this.getdataListParm.parammaps.startTime2 = ''
  1790. this.getdataListParm.parammaps.stopTime2 = ''
  1791. } else {
  1792. this.getdataListParm.parammaps.startTime2 = this.getdataListParm.parammaps.inputDatetime2[0]
  1793. this.getdataListParm.parammaps.stopTime2 = this.getdataListParm.parammaps.inputDatetime2[1]
  1794. }
  1795. if (this.getdataListParm.parammaps.inputDatetime3 == null) {
  1796. this.getdataListParm.parammaps.inputDatetime3 = ''
  1797. this.getdataListParm.parammaps.startTime3 = ''
  1798. this.getdataListParm.parammaps.stopTime3 = ''
  1799. } else {
  1800. this.getdataListParm.parammaps.startTime3 = this.getdataListParm.parammaps.inputDatetime3[0]
  1801. this.getdataListParm.parammaps.stopTime3 = this.getdataListParm.parammaps.inputDatetime3[1]
  1802. }
  1803. this.getdataListParm.offset = 1
  1804. this.get_table_data()
  1805. },
  1806. form_searchSH() {
  1807. this.listLoadingSH = true
  1808. if (this.getdataListParmSH.parammaps.inputDatetime1 == null) {
  1809. this.getdataListParmSH.parammaps.inputDatetime1 = ''
  1810. } else {
  1811. this.getdataListParmSH.parammaps.startTime = this.getdataListParmSH.parammaps.inputDatetime1[0]
  1812. this.getdataListParmSH.parammaps.stopTime = this.getdataListParmSH.parammaps.inputDatetime1[1]
  1813. }
  1814. this.getdataListParmSH.offset = 1
  1815. this.get_table_dataSH()
  1816. },
  1817. handlePicChange(file, fileList) {
  1818. if (fileList.length > 0) {
  1819. this.$nextTick(() => {
  1820. this.showUpload = true
  1821. })
  1822. } else {
  1823. this.$nextTick(() => {
  1824. this.showUpload = false
  1825. })
  1826. }
  1827. console.log(this.createTemp)
  1828. },
  1829. handlePicSuccess(response, file, fileList) {
  1830. if (fileList.length > 0) {
  1831. this.$nextTick(() => {
  1832. this.showUpload = true
  1833. })
  1834. } else {
  1835. this.$nextTick(() => {
  1836. this.showUpload = false
  1837. })
  1838. }
  1839. if (this.createTemp.picpath === undefined || this.createTemp.picpath === '' || this.createTemp.picpath == -1) {
  1840. this.$set(this.createTemp, 'picpath', response.execresult.LastInsertId)
  1841. }
  1842. },
  1843. handlePicRemove(file, fileList) {
  1844. if (this.dialogStatus === 'create') {
  1845. if (fileList.length < 1) {
  1846. this.showUpload = false
  1847. }
  1848. for (const key in this.createTemp) {
  1849. if (this.createTemp[key] === file.response.execresult.LastInsertId) {
  1850. this.$delete(this.createTemp, key)
  1851. }
  1852. }
  1853. } else {
  1854. if (fileList.length < 1) {
  1855. this.$nextTick(() => {
  1856. this.showUpload = false
  1857. })
  1858. }
  1859. const url = file.url
  1860. console.log(url, 'url')
  1861. for (const key in this.createTemp) {
  1862. console.log(this.createTemp[key], 'createTemp[key]')
  1863. if (this.createTemp[key] === url) {
  1864. console.log(key)
  1865. if (key === 'picpath') {
  1866. this.$delete(this.createTemp, 'picpath')
  1867. this.$delete(this.createTemp, 'picId')
  1868. }
  1869. }
  1870. }
  1871. }
  1872. console.log(this.createTemp, '文件列表移除文件时的钩子row')
  1873. },
  1874. handlePicPreview(file) {
  1875. this.dialogImageUrl = file.url
  1876. this.dialogVisible = true
  1877. },
  1878. onLoad(e) {
  1879. const img = e.target
  1880. let width = 0
  1881. if (img.fileSize > 0 || (img.width > 1 && img.height > 1)) {
  1882. width = img.width + 40
  1883. }
  1884. this.width = width + 'px'
  1885. },
  1886. add_dialog_saveAdd() {
  1887. console.log('点击了保存',this.createTemp.maintenance)
  1888. this.isokDisable = true
  1889. setTimeout(() => {
  1890. this.isokDisable = false
  1891. }, 1000)
  1892. this.$refs['createTemp'].validate(valid => {
  1893. if (valid) {
  1894. for (var i = 0; i < this.listAdd.length; i++) {
  1895. if (this.listAdd[i].score == null) {
  1896. this.$message({ type: 'warning', message: '请检查检查结果是否为空', duration: 2000 })
  1897. return false
  1898. }
  1899. if (this.listAdd[i].pic1 == undefined) {
  1900. this.listAdd[i].pic1 = -1
  1901. }
  1902. if (this.listAdd[i].pic2 == undefined) {
  1903. this.listAdd[i].pic2 = -1
  1904. }
  1905. if (this.listAdd[i].pic3 == undefined) {
  1906. this.listAdd[i].pic3 = -1
  1907. }
  1908. }
  1909. this.postDataPramas.common = { 'returnmap': '0' }
  1910. this.postDataPramas.data = []
  1911. this.postDataPramas.data[0] = { 'name': 'insertBigjudge', 'type': 'e', 'parammaps': {
  1912. pastureId: this.createTemp.pastureId,
  1913. batime: this.createTemp.batime,
  1914. empId: this.createTemp.empId
  1915. }}
  1916. this.postDataPramas.data[1] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.listAdd }}
  1917. this.postDataPramas.data[1].children = []
  1918. this.postDataPramas.data[1].children[0] = { 'name': 'insertjudge', 'type': 'e', 'parammaps': {
  1919. bigId: '@insertBigjudge.LastInsertId',
  1920. statue: '@insertSpotList.statue',
  1921. score: '@insertSpotList.score',
  1922. note: '@insertSpotList.note',
  1923. pic1: '@insertSpotList.pic1',
  1924. pic2: '@insertSpotList.pic2',
  1925. pic3: '@insertSpotList.pic3'
  1926. }}
  1927. ExecDataByConfig(this.postDataPramas).then(response => {
  1928. console.log('新增保存发送参数', this.postDataPramas)
  1929. if (response.msg === 'fail') {
  1930. this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
  1931. } else {
  1932. this.getdataListParm.parammaps.inputDatetime = ''
  1933. this.get_table_data()
  1934. this.dialogFormVisibleAdd = false
  1935. this.createTemp.providerName = ''
  1936. this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
  1937. }
  1938. })
  1939. }
  1940. })
  1941. },
  1942. beforeRemove(file, fileList) {
  1943. console.log(file.response, '删除文件之前的钩子,参数为上传的文件和文件列表')
  1944. return this.$confirm('删除当前图片, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' })
  1945. },
  1946. resetCreateTemp() {
  1947. this.defaultCheckedKeys = []
  1948. this.createTemp.defaultCheckedKeys = []
  1949. this.createTemp.brandId = ''
  1950. this.createTemp.providerId = ''
  1951. this.createTemp.inputDatetime = parseTime(new Date(), '{y}-{m}-{d}')
  1952. this.createTemp.eqClassName = ''
  1953. this.createTemp.eqClassId = ''
  1954. this.createTemp.employeName = Cookies.get('employename')
  1955. this.createTemp.employeId = Cookies.get('employeid')
  1956. this.createTemp.inputUser = Cookies.get('employeid')
  1957. this.createTemp.deptId = parseInt(Cookies.get('departmentid'))
  1958. this.createTemp.departmentName = Cookies.get('departmentname')
  1959. this.createTemp.pastureId = parseInt(Cookies.get('pastureid'))
  1960. this.createTemp.eqCode = ''
  1961. this.createTemp.eqName = ''
  1962. this.createTemp.specification = ''
  1963. this.createTemp.providerName = ''
  1964. this.createTemp.financeCode = ''
  1965. this.createTemp.status = '正常'
  1966. this.createTemp.providerName = ''
  1967. this.createTemp.brandName = ''
  1968. this.createTemp.purpose = ''
  1969. this.createTemp.purchaseDate = parseTime(new Date(), '{y}-{m}-{d}')
  1970. this.createTemp.entranceDate = parseTime(new Date(), '{y}-{m}-{d}')
  1971. this.createTemp.assetCode = ''
  1972. this.createTemp.yearUpkeepCost = ''
  1973. this.createTemp.yearMaintainDost = ''
  1974. this.createTemp.yuanzhi = ''
  1975. this.createTemp.baseHours = ''
  1976. this.createTemp.upkeepgrade = 113
  1977. this.createTemp.salvage = ''
  1978. this.createTemp.subtractvalue = ''
  1979. this.createTemp.yearMaintainCost = ''
  1980. this.createTemp.inputUserName = ''
  1981. this.createTemp.picpath = ''
  1982. this.fileList = []
  1983. this.showUpload = false
  1984. this.createTemp.fileList = []
  1985. this.createTemp.depreciation = '5'
  1986. this.createTemp.license = ''
  1987. this.createTemp.duration = ''
  1988. },
  1989. form_add() {
  1990. this.resetCreateTemp()
  1991. this.edit = 1
  1992. this.getDepartParam.parammaps.pastureId = this.createTemp.pastureId
  1993. this.getCreateDepartDownList()
  1994. this.dialogStatus = 'create'
  1995. this.dialogFormVisible = true
  1996. this.$nextTick(() => {
  1997. this.$refs['createTemp'].clearValidate()
  1998. })
  1999. },
  2000. changeBrand(item) {
  2001. this.createTemp.brandName = this.findAllBrand.find(obj => obj.id === item).name
  2002. },
  2003. changeUpkeepgrade(item) {
  2004. console.log(item)
  2005. },
  2006. upkeepgradeChange(e) {
  2007. if (!e) {
  2008. this.$refs['upkeepgrade'].blur()
  2009. }
  2010. },
  2011. popoverHide(checkedIds, checkedData) {
  2012. console.log(checkedIds, checkedData)
  2013. if (checkedIds !== null) {
  2014. this.getdataEQNumber.parammaps.eqCode = checkedData.typeCode
  2015. // if (checkedData.children === undefined) {
  2016. // this.createTemp.eqClassId = checkedData.eqClassId
  2017. // this.createTemp.eqName = checkedData.NewName
  2018. // this.getdataListParm.parammaps.eqClassId = checkedData.eqClassId
  2019. // this.getEQNumber()
  2020. // } else {
  2021. // this.defaultCheckedKeys = []
  2022. // this.createTemp.eqClassId = ''
  2023. // this.getdataListParm.parammaps.eqClassId = ''
  2024. // this.$message({ type: 'warning', message: '请选择具体设备类型' })
  2025. // }
  2026. this.createTemp.eqClassId = checkedData.eqClassId
  2027. this.createTemp.eqName = checkedData.NewName
  2028. this.getdataListParm.parammaps.eqClassId = checkedData.eqClassId
  2029. this.getEQNumber()
  2030. } else {
  2031. this.defaultCheckedKeys = []
  2032. this.createTemp.eqClassId = ''
  2033. this.getdataListParm.parammaps.eqClassId = ''
  2034. }
  2035. },
  2036. add_dialog_save() {
  2037. this.isokDisable = true
  2038. setTimeout(() => {
  2039. this.isokDisable = false
  2040. }, 1000)
  2041. this.$refs['createTemp'].validate(valid => {
  2042. if (valid) {
  2043. console.log(this.createTemp)
  2044. this.requestParam.name = 'insertAsset'
  2045. if (this.createTemp.status == '正常') { this.createTemp.status = 17 }
  2046. if (this.createTemp.providerId == '') { this.createTemp.providerId = 0 }
  2047. if (this.createTemp.brandId == '') { this.createTemp.brandId = 0 }
  2048. if (this.createTemp.yuanzhi == '') { this.createTemp.yuanzhi = 0 }
  2049. if (this.createTemp.salvage == '') { this.createTemp.salvage = 0 }
  2050. if (this.createTemp.subtractvalue == '') { this.createTemp.subtractvalue = 0 }
  2051. if (this.createTemp.yearUpkeepCost == '') { this.createTemp.yearUpkeepCost = 0 }
  2052. if (this.createTemp.yearMaintainCost == '') { this.createTemp.yearMaintainCost = 0 }
  2053. if (this.createTemp.baseHours == '') { this.createTemp.baseHours = 0 }
  2054. // 原值yuanzhi残值salvage月核减值subtractvalue保养费用yearUpkeepCost维修费用yearMaintainCost
  2055. var rulesValue = /^\d+(\.\d{1,3})?$/
  2056. this.requestParam.parammaps = this.createTemp
  2057. this.requestParam.parammaps.picpath = this.createTemp.picpath
  2058. if (this.createTemp.yuanzhi !== '' || this.createTemp.salvage !== '' || this.createTemp.subtractvalue !== '' || this.createTemp.yearUpkeepCost !== '' || this.createTemp.yearMaintainCost !== '') {
  2059. this.requestParam.parammaps.yuanzhi = parseFloat(this.createTemp.yuanzhi)
  2060. if (!rulesValue.test(parseFloat(this.createTemp.yuanzhi))) {
  2061. this.$message({ type: 'error', message: '原值请输入自然数,最多保留三位小数点', duration: 2000 })
  2062. return false
  2063. }
  2064. if (!rulesValue.test(parseFloat(this.createTemp.salvage))) {
  2065. this.$message({ type: 'error', message: '残值请输入自然数,最多保留三位小数点', duration: 2000 })
  2066. return false
  2067. }
  2068. if (!rulesValue.test(parseFloat(this.createTemp.subtractvalue))) {
  2069. this.$message({ type: 'error', message: '月核减值请输入自然数,最多保留三位小数点', duration: 2000 })
  2070. return false
  2071. }
  2072. if (!rulesValue.test(parseFloat(this.createTemp.yearUpkeepCost))) {
  2073. this.$message({ type: 'error', message: '保养费用输入自然数,最多保留三位小数点', duration: 2000 })
  2074. return false
  2075. }
  2076. if (!rulesValue.test(parseFloat(this.createTemp.yearMaintainCost))) {
  2077. this.$message({ type: 'error', message: '维修费用请输入自然数,最多保留三位小数点', duration: 2000 })
  2078. return false
  2079. }
  2080. }
  2081. if(this.requestParam.parammaps.maintenance.length != 0 && this.requestParam.parammaps.maintenance){
  2082.   if(this.requestParam.parammaps.maintenance.length > 4){
  2083.               this.$notify({ title: '提示', message: '指定维修人最多4个人!', type: 'success', duration: 2000 })
  2084.               return false
  2085.             }
  2086. this.requestParam.parammaps.maintenance = this.requestParam.parammaps.maintenance.toString()
  2087. }
  2088. PostDataByName(this.requestParam).then(response => {
  2089. console.log('新增保存发送参数', this.requestParam)
  2090. if (response.msg !== 'fail') {
  2091. if (this.getdataListParm.parammaps.inputDatetime1 === null) {
  2092. this.getdataListParm.parammaps.inputDatetime1 = ''
  2093. }
  2094. this.dialogFormVisible = false
  2095. this.get_table_data()
  2096. this.$notify({ title: '成功', message: '新增成功', type: 'success', duration: 2000 })
  2097. // this.reload()
  2098. } else {
  2099. failproccess(response, this.$notify)
  2100. }
  2101. })
  2102. }
  2103. })
  2104. },
  2105. // 继续新增
  2106. add_dialog_save_again() {
  2107. this.isokDisable = true
  2108. setTimeout(() => {
  2109. this.isokDisable = false
  2110. }, 1000)
  2111. this.$refs['createTemp'].validate(valid => {
  2112. if (valid) {
  2113. this.requestParam.name = 'insertAsset'
  2114. if (this.createTemp.status == '正常') { this.createTemp.status = 17 }
  2115. if (this.createTemp.providerId == '') { this.createTemp.providerId = 0 }
  2116. if (this.createTemp.brandId == '') { this.createTemp.brandId = 0 }
  2117. if (this.createTemp.yuanzhi == '') { this.createTemp.yuanzhi = 0 }
  2118. if (this.createTemp.salvage == '') { this.createTemp.salvage = 0 }
  2119. if (this.createTemp.subtractvalue == '') { this.createTemp.subtractvalue = 0 }
  2120. if (this.createTemp.yearUpkeepCost == '') { this.createTemp.yearUpkeepCost = 0 }
  2121. if (this.createTemp.yearMaintainCost == '') { this.createTemp.yearMaintainCost = 0 }
  2122. if (this.createTemp.baseHours == '') { this.createTemp.baseHours = 0 }
  2123. // 原值yuanzhi残值salvage月核减值subtractvalue保养费用yearUpkeepCost维修费用yearMaintainCost
  2124. var rulesValue = /^\d+(\.\d{1,3})?$/
  2125. this.requestParam.parammaps = this.createTemp
  2126. this.requestParam.parammaps.picpath = this.createTemp.picpath
  2127. if (this.createTemp.yuanzhi !== '' || this.createTemp.salvage !== '' || this.createTemp.subtractvalue !== '' || this.createTemp.yearUpkeepCost !== '' || this.createTemp.yearMaintainCost !== '') {
  2128. this.requestParam.parammaps.yuanzhi = parseFloat(this.createTemp.yuanzhi)
  2129. // if (!rulesValue.test(parseFloat(this.createTemp.yuanzhi)) || !rulesValue.test(parseFloat(this.createTemp.salvage)) || !rulesValue.test(parseFloat(this.createTemp.subtractvalue)) || !rulesValue.test(parseFloat(this.createTemp.yearUpkeepCost)) || !rulesValue.test(parseFloat(this.createTemp.yearMaintainCost))) {
  2130. if (!rulesValue.test(parseFloat(this.createTemp.yuanzhi))) {
  2131. this.$message({ type: 'error', message: '原值请输入自然数,最多保留三位小数点', duration: 2000 })
  2132. return false
  2133. }
  2134. if (!rulesValue.test(parseFloat(this.createTemp.salvage))) {
  2135. this.$message({ type: 'error', message: '残值请输入自然数,最多保留三位小数点', duration: 2000 })
  2136. return false
  2137. }
  2138. if (!rulesValue.test(parseFloat(this.createTemp.subtractvalue))) {
  2139. this.$message({ type: 'error', message: '月核减值请输入自然数,最多保留三位小数点', duration: 2000 })
  2140. return false
  2141. }
  2142. if (!rulesValue.test(parseFloat(this.createTemp.yearUpkeepCost))) {
  2143. this.$message({ type: 'error', message: '保养费用输入自然数,最多保留三位小数点', duration: 2000 })
  2144. return false
  2145. }
  2146. if (!rulesValue.test(parseFloat(this.createTemp.yearMaintainCost))) {
  2147. this.$message({ type: 'error', message: '维修费用请输入自然数,最多保留三位小数点', duration: 2000 })
  2148. return false
  2149. }
  2150. }
  2151. if(this.requestParam.parammaps.maintenance.length != 0 && this.requestParam.parammaps.maintenance){
  2152.   if(this.requestParam.parammaps.maintenance.length > 4){
  2153.               this.$notify({ title: '提示', message: '指定维修人最多4个人!', type: 'success', duration: 2000 })
  2154.               return false
  2155.             }
  2156. this.requestParam.parammaps.maintenance = this.requestParam.parammaps.maintenance.toString()
  2157. }
  2158. PostDataByName(this.requestParam).then(response => {
  2159. console.log('新增保存发送参数', this.requestParam)
  2160. if (response.msg !== 'fail') {
  2161. if (this.getdataListParm.parammaps.inputDatetime === null) {
  2162. this.getdataListParm.parammaps.inputDatetime = ''
  2163. }
  2164. this.resetCreateTemp()
  2165. this.$notify({ title: '成功', message: '新增成功', type: 'success', duration: 2000 })
  2166. } else {
  2167. failproccess(response, this.$notify)
  2168. }
  2169. })
  2170. }
  2171. })
  2172. },
  2173. form_edit(row) {
  2174. if (this.dialogFormVisible) {
  2175. return
  2176. }
  2177. this.edit = 0
  2178. this.getDepartParam.parammaps.pastureId = row.pastureId
  2179. this.getCreateDepartDownList()
  2180. this.createTemp = Object.assign({}, row) // copy obj
  2181. if (row.inputUser !== undefined) {
  2182. this.createTemp.inputUser = parseInt(row.inputUser)
  2183. }
  2184. if (row.levelone !== undefined) {
  2185. this.createTemp.levelone = parseInt(row.levelone)
  2186. }
  2187. if (row.leveltwo !== undefined) {
  2188. this.createTemp.leveltwo = parseInt(row.leveltwo)
  2189. }
  2190. if (row.levelthree !== undefined) {
  2191. this.createTemp.levelthree = parseInt(row.levelthree)
  2192. }
  2193. if (row.leveloneTime !== undefined) {
  2194. this.createTemp.leveloneTime = parseInt(row.leveloneTime)
  2195. }
  2196. if (row.leveltwoTime !== undefined) {
  2197. this.createTemp.leveltwoTime = parseInt(row.leveltwoTime)
  2198. }
  2199. if (row.levelthreeTime !== undefined) {
  2200. this.createTemp.levelthreeTime = parseInt(row.levelthreeTime)
  2201. }
  2202. if (row.maintenance !== undefined) {
  2203. var newArr = row.maintenance.split(",")
  2204. var arr2 = []
  2205. newArr.forEach(function(item){
  2206. arr2.push(parseInt(item))
  2207. })
  2208. console.log('arr2',arr2)
  2209. this.createTemp.maintenance = arr2
  2210. }
  2211. if (this.createTemp.eqClassId !== undefined) {
  2212. this.defaultCheckedKeys = [this.createTemp.eqClassId]
  2213. } else {
  2214. this.createTemp.eqClassId = ''
  2215. this.defaultCheckedKeys = []
  2216. }
  2217. this.dialogStatus = 'update'
  2218. this.dialogFormVisible = true
  2219. this.$nextTick(() => {
  2220. this.$refs['createTemp'].clearValidate()
  2221. })
  2222. const urlArray = []
  2223. const fileList = []
  2224. if (row.picpath == undefined) {
  2225. urlArray.push()
  2226. } else if (row.picpath == '') {
  2227. urlArray.push()
  2228. } else {
  2229. urlArray.push(row.picpath)
  2230. }
  2231. for (let i = 0; i < urlArray.length; i++) {
  2232. const urlObj = {}
  2233. this.$set(urlObj, 'url', urlArray[i])
  2234. fileList.push(urlObj)
  2235. }
  2236. this.$set(this.createTemp, 'fileList', fileList)
  2237. console.log(this.createTemp)
  2238. if (this.createTemp.fileList.length >= 1) {
  2239. this.showUpload = true
  2240. } else {
  2241. this.showUpload = false
  2242. }
  2243. },
  2244. edit_dialog_save() {
  2245. console.log(this.createTemp.maintenance)
  2246. this.$refs['createTemp'].validate(valid => {
  2247. if (valid) {
  2248. console.log('-----------', this.createTemp)
  2249. console.log(this.createTemp.providerId)
  2250. if (this.createTemp.eqClassId == '' || this.createTemp.eqClassId == undefined || this.createTemp.eqClassId == null) {
  2251. this.$message({ type: 'warning', message: '请选择设备类别' })
  2252. } else {
  2253. this.requestParam.name = 'updateAsset'
  2254. this.requestParam.parammaps = this.createTemp
  2255. if (this.createTemp.status === '正常') { this.createTemp.status = 17 }
  2256. if (this.createTemp.status === '闲置') { this.createTemp.status = 18 }
  2257. if (this.createTemp.status === '报废') { this.createTemp.status = 19 }
  2258. if (this.createTemp.status === '封存') { this.createTemp.status = 20 }
  2259. if (this.createTemp.providerId === '' || this.createTemp.providerId === undefined) { this.createTemp.providerId = 0 }
  2260. if (this.createTemp.brandId === '' || this.createTemp.brandId == undefined) { this.createTemp.brandId = 0 }
  2261. if (this.createTemp.yuanzhi === '') { this.createTemp.yuanzhi = 0 }
  2262. if (this.createTemp.salvage === '') { this.createTemp.salvage = 0 }
  2263. if (this.createTemp.subtractvalue === '') { this.createTemp.subtractvalue = 0 }
  2264. if (this.createTemp.yearUpkeepCost === '') { this.createTemp.yearUpkeepCost = 0 }
  2265. if (this.createTemp.yearMaintainCost === '') { this.createTemp.yearMaintainCost = 0 }
  2266. if (this.createTemp.baseHours === '') { this.createTemp.baseHours = 0 }
  2267. if (this.createTemp.upkeepgrade === 'A' || this.createTemp.upkeepgrade === 'B' || this.createTemp.upkeepgrade === 'C') {
  2268. this.createTemp.upkeepgrade = this.createTemp.upkeepgradeId
  2269. this.createTemp.upkeepgradeId = ''
  2270. }
  2271. this.createTemp.deptId = this.createTemp.deptId
  2272. this.createTemp.departmentName = this.createTemp.departmentName
  2273. this.createTemp.employeeId = this.createTemp.employeId
  2274. // var rulesValue = /^\d+(\.\d{1,3})?$/
  2275. this.requestParam.parammaps = this.createTemp
  2276. if (this.tabName === 'first') {
  2277. this.requestParam.parammaps.SHStatus = this.createTemp.SHStatus
  2278. } else if (this.tabName === 'second') {
  2279. this.requestParam.parammaps.SHStatus = 0
  2280. }
  2281. const picpath = parseInt(this.createTemp.picpath)
  2282. if (isNaN(picpath) == false) {
  2283. this.requestParam.parammaps.picpath = this.createTemp.picpath
  2284. } else {
  2285. this.requestParam.parammaps.picpath = this.createTemp.picId
  2286. }
  2287. if(this.requestParam.parammaps.maintenance.length != 0 && this.requestParam.parammaps.maintenance){
  2288. if(this.requestParam.parammaps.maintenance.length > 4){
  2289. this.$notify({ title: '提示', message: '指定维修人最多4个人!', type: 'success', duration: 2000 })
  2290. return false
  2291. }
  2292. this.requestParam.parammaps.maintenance = this.requestParam.parammaps.maintenance.toString()
  2293. }
  2294. PostDataByName(this.requestParam).then(response => {
  2295. console.log(response)
  2296. if (response.msg !== 'fail') {
  2297. if (this.getdataListParm.parammaps.inputDatetime1 === null) {
  2298. this.getdataListParm.parammaps.inputDatetime1 = ''
  2299. }
  2300. this.get_table_data()
  2301. this.get_table_dataSH()
  2302. this.dialogFormVisible = false
  2303. this.$notify({ title: '成功', message: '保存成功-', type: 'success', duration: 2000 })
  2304. // this.reload()
  2305. } else {
  2306. failproccess(response, this.$notify)
  2307. }
  2308. })
  2309. }
  2310. }
  2311. })
  2312. },
  2313. brandSearch(queryString, cb) {
  2314. console.log('品牌模糊查询输入值', queryString)
  2315. this.requestBrand.parammaps['brandName'] = queryString
  2316. GetDataByName(this.requestBrand).then(response => {
  2317. console.log('品牌模糊查询搜索data', response.data.list)
  2318. this.BrandList = response.data.list
  2319. cb(this.BrandList)
  2320. })
  2321. },
  2322. handleSelectBrand(item) {
  2323. console.log('品牌模糊查询选中值', item)
  2324. this.$set(this.createTemp, 'brandName', item.brandName)
  2325. this.$set(this.createTemp, 'brandId', item.brandId)
  2326. this.$forceUpdate()
  2327. },
  2328. employeSearch(queryString, cb) {
  2329. console.log('责任人模糊查询输入值', queryString)
  2330. this.requestEmploye.parammaps['empname'] = queryString
  2331. GetDataByName(this.requestEmploye).then(response => {
  2332. console.log('责任人模糊查询搜索data', response.data.list)
  2333. this.employeList = response.data.list
  2334. cb(this.employeList)
  2335. })
  2336. },
  2337. handleSelectEmploye(item) {
  2338. console.log('责任人模糊查询选中值', item)
  2339. this.$set(this.createTemp, 'employeId', item.id)
  2340. this.$set(this.createTemp, 'employeName', item.name)
  2341. this.$forceUpdate()
  2342. },
  2343. form_see(row) {
  2344. console.log(row)
  2345. this.seeTemp = Object.assign({}, row) // copy obj
  2346. this.activeName = 'first'
  2347. this.dialogStatus = 'card'
  2348. this.dialogFormVisible_See = true
  2349. // 流程图
  2350. var reason = '未通过原因:' + this.seeTemp.workflowNote
  2351. if (this.seeTemp.SHStatus === 0) {
  2352. this.activeList = [{ title: '提交信息', date: this.seeTemp.inputDatetime, name: this.seeTemp.inputUserName }, { title: '设备中心审核' }]
  2353. this.active = 1
  2354. } else if (this.seeTemp.SHStatus === 1) {
  2355. this.activeList = [{ title: '提交信息', date: this.seeTemp.inputDatetime, name: this.seeTemp.inputUserName }, { title: '设备中心审核', date: this.seeTemp.chargeDate, name: this.seeTemp.chargePerson }]
  2356. this.active = 2
  2357. } else if (this.seeTemp.SHStatus === 2) {
  2358. this.activeList = [{ title: '提交信息', date: this.seeTemp.inputDatetime, name: this.seeTemp.inputUserName }, { title: '设备中心审核', date: this.seeTemp.chargeDate, name: this.seeTemp.chargePerson, status: 'error', reason: reason }]
  2359. this.active = 2
  2360. }
  2361. // 查看-点检记录
  2362. },
  2363. form_seeTabClick(val) {
  2364. console.log(val)
  2365. if (val.name == 'second') {
  2366. this.getAssetBigSpotCheckList()
  2367. } else if (val.name == 'third') {
  2368. this.getBigupkeepbyeqList()
  2369. } else if (val.name == 'fouth') {
  2370. this.getAssetMaintainList()
  2371. } else if (val.name == 'fifth') {
  2372. this.getAssetSTTList()
  2373. } else if (val.name == 'sixth') {
  2374. this.getAssetChangeList()
  2375. } else if (val.name == 'seventh') {
  2376. this.getAssetPartApplyList()
  2377. } else if (val.name == 'eighth') {
  2378. this.getBarChart1Parm.parammaps.eqId = this.seeTemp.id
  2379. this.getBarChart2Parm.parammaps.eqId = this.seeTemp.id
  2380. this.getChartSeeParm.parammaps.eqId = this.seeTemp.id
  2381. this.getBarChart1()
  2382. this.getBarChart2()
  2383. }
  2384. },
  2385. // 点检记录
  2386. getAssetBigSpotCheckList() {
  2387. this.listLoadingSpotCheck1 = true
  2388. if (this.$refs['inputDatetimeCheck1'] !== undefined && this.$refs['inputDatetimeCheck1'].value !== null) {
  2389. this.getAssetBigSpotCheckListParm.parammaps.startTime = this.$refs['inputDatetimeCheck1'].value[0]
  2390. this.getAssetBigSpotCheckListParm.parammaps.stopTime = this.$refs['inputDatetimeCheck1'].value[1]
  2391. } else {
  2392. this.getAssetBigSpotCheckListParm.parammaps.startTime = ''
  2393. this.getAssetBigSpotCheckListParm.parammaps.stopTime = ''
  2394. }
  2395. this.getAssetBigSpotCheckListParm.parammaps.assetId = this.seeTemp.assetId
  2396. this.getAssetBigSpotCheckListParm.parammaps.pastureId = this.seeTemp.pastureId
  2397. GetDataByName(this.getAssetBigSpotCheckListParm).then(response => {
  2398. console.log('点检记录-table数据', response.data.list)
  2399. if (response.data.list !== null) {
  2400. this.listSpotCheck1 = response.data.list
  2401. this.pageNumSpotCheck1 = response.data.pageNum
  2402. this.pageSizeSpotCheck1 = response.data.pageSize
  2403. } else {
  2404. this.listSpotCheck1 = []
  2405. }
  2406. this.totalSpotCheck1 = response.data.total
  2407. setTimeout(() => {
  2408. this.listLoadingSpotCheck1 = false
  2409. }, 100)
  2410. })
  2411. },
  2412. form_searchSportCheck() {
  2413. if (this.getAssetBigSpotCheckListParm.parammaps.inputDatetimeCheck1 == null) {
  2414. this.getAssetBigSpotCheckListParm.parammaps.inputDatetimeCheck1 = ''
  2415. }
  2416. this.getAssetBigSpotCheckListParm.offset = 1
  2417. this.getAssetBigSpotCheckList()
  2418. },
  2419. // 保养记录
  2420. getBigupkeepbyeqList() {
  2421. this.listLoadingSpotCheck1 = true
  2422. if (this.$refs['inputDatetimeUpkeepbyeq'] !== undefined && this.$refs['inputDatetimeUpkeepbyeq'].value !== null) {
  2423. this.getBigupkeepbyeqParm.parammaps.startTime = this.$refs['inputDatetimeUpkeepbyeq'].value[0]
  2424. this.getBigupkeepbyeqParm.parammaps.stopTime = this.$refs['inputDatetimeUpkeepbyeq'].value[1]
  2425. } else {
  2426. this.getBigupkeepbyeqParm.parammaps.startTime = ''
  2427. this.getBigupkeepbyeqParm.parammaps.stopTime = ''
  2428. }
  2429. this.getBigupkeepbyeqParm.parammaps.assetId = this.seeTemp.assetId
  2430. this.getBigupkeepbyeqParm.parammaps.pastureId = this.seeTemp.pastureId
  2431. GetDataByName(this.getBigupkeepbyeqParm).then(response => {
  2432. console.log('保养记录-table数据', response.data.list)
  2433. if (response.data.list !== null) {
  2434. this.listUpkeepbyeq = response.data.list
  2435. this.pageNumUpkeepbyeq = response.data.pageNum
  2436. this.pageSizeUpkeepbyeq = response.data.pageSize
  2437. } else {
  2438. this.listUpkeepbyeq = []
  2439. }
  2440. this.totalUpkeepbyeq = response.data.total
  2441. setTimeout(() => {
  2442. this.listLoadingSpotCheck1 = false
  2443. }, 100)
  2444. })
  2445. },
  2446. form_searchUpkeepbyeq() {
  2447. if (this.getBigupkeepbyeqParm.parammaps.inputDatetimeUpkeepbyeq === null) {
  2448. this.getBigupkeepbyeqParm.parammaps.inputDatetimeUpkeepbyeq = ''
  2449. }
  2450. this.getBigupkeepbyeqParm.offset = 1
  2451. this.getBigupkeepbyeqList()
  2452. },
  2453. // 维修记录
  2454. getAssetMaintainList() {
  2455. this.listLoadingAssetMaintain = true
  2456. if (this.$refs['inputDatetimeAssetMaintain'] !== undefined && this.$refs['inputDatetimeAssetMaintain'].value !== null) {
  2457. this.getAssetMaintainParm.parammaps.startTime = this.$refs['inputDatetimeAssetMaintain'].value[0]
  2458. this.getAssetMaintainParm.parammaps.stopTime = this.$refs['inputDatetimeAssetMaintain'].value[1]
  2459. } else {
  2460. this.getAssetMaintainParm.parammaps.startTime = ''
  2461. this.getAssetMaintainParm.parammaps.stopTime = ''
  2462. }
  2463. this.getAssetMaintainParm.parammaps.assetId = this.seeTemp.assetId
  2464. this.getAssetMaintainParm.parammaps.pastureId = this.seeTemp.pastureId
  2465. GetDataByName(this.getAssetMaintainParm).then(response => {
  2466. console.log('维修记录-tabile数据', response.data.list)
  2467. if (response.data.list !== null) {
  2468. this.listAssetMaintain = response.data.list
  2469. this.pageNumAssetMaintain = response.data.pageNum
  2470. this.pageSizeAssetMaintain = response.data.pageSize
  2471. } else {
  2472. this.listAssetMaintain = []
  2473. }
  2474. this.totalAssetMaintain = response.data.total
  2475. setTimeout(() => {
  2476. this.listLoadingAssetMaintain = false
  2477. }, 100)
  2478. })
  2479. },
  2480. form_searchAssetMaintain() {
  2481. if (this.getBigupkeepbyeqParm.parammaps.inputDatetimeAssetMaintan === null) {
  2482. this.getBigupkeepbyeqParm.parammaps.inputDatetimeAssetMaintan = ''
  2483. }
  2484. this.getBigupkeepbyeqParm.offset = 1
  2485. this.getAssetMaintainList()
  2486. },
  2487. // 启停记录
  2488. getAssetSTTList() {
  2489. this.listLoadingAssetSTT = true
  2490. this.getAssetSTTParm.parammaps.assetId = this.seeTemp.assetId
  2491. this.getAssetSTTParm.parammaps.pastureId = this.seeTemp.pastureId
  2492. GetDataByName(this.getAssetSTTParm).then(response => {
  2493. console.log('启停记录-tabile数据', response.data.list)
  2494. if (response.data.list !== null) {
  2495. this.listAssetSTT = response.data.list
  2496. this.pageNumAssetSTT = response.data.pageNum
  2497. this.pageSizeAssetSTT = response.data.pageSize
  2498. } else {
  2499. this.listAssetSTT = []
  2500. }
  2501. this.totalAssetSTT = response.data.total
  2502. setTimeout(() => {
  2503. this.listLoadingAssetSTT = false
  2504. }, 100)
  2505. })
  2506. },
  2507. form_searchAssetSTT() {
  2508. if (this.getAssetSTTParm.parammaps.startTime == null) {
  2509. this.getAssetSTTParm.parammaps.startTime = ''
  2510. }
  2511. if (this.getAssetSTTParm.parammaps.stopTime == null) {
  2512. this.getAssetSTTParm.parammaps.stopTime = ''
  2513. }
  2514. this.getAssetSTTParm.offset = 1
  2515. this.getAssetSTTList()
  2516. },
  2517. // 变更记录
  2518. getAssetChangeList() {
  2519. this.listLoadingAssetChange = true
  2520. console.log(this.$refs['inputDatetimeAssetChange'])
  2521. if (this.$refs['inputDatetimeAssetChange'] !== undefined && this.$refs['inputDatetimeAssetChange'].value !== null) {
  2522. this.getAssetChangeParm.parammaps.startTime = this.$refs['inputDatetimeAssetChange'].value[0]
  2523. this.getAssetChangeParm.parammaps.stopTime = this.$refs['inputDatetimeAssetChange'].value[1]
  2524. } else {
  2525. this.getAssetChangeParm.parammaps.startTime = ''
  2526. this.getAssetChangeParm.parammaps.stopTime = ''
  2527. }
  2528. this.getAssetChangeParm.parammaps.assetId = this.seeTemp.assetId
  2529. this.getAssetChangeParm.parammaps.pastureId = this.seeTemp.pastureId
  2530. GetDataByName(this.getAssetChangeParm).then(response => {
  2531. console.log('变更记录-tabile数据', response.data.list)
  2532. if (response.data.list !== null) {
  2533. this.listAssetChange = response.data.list
  2534. this.pageNumAssetChange = response.data.pageNum
  2535. this.pageSizeAssetChange = response.data.pageSize
  2536. } else {
  2537. this.listAssetChange = []
  2538. }
  2539. this.totalAssetChange = response.data.total
  2540. setTimeout(() => {
  2541. this.listLoadingAssetChange = false
  2542. }, 100)
  2543. })
  2544. },
  2545. form_searchAssetChange() {
  2546. if (this.getAssetChangeParm.parammaps.inputDatetimeAssetChange === null) {
  2547. this.getAssetChangeParm.parammaps.inputDatetimeAssetChange = ''
  2548. }
  2549. this.getAssetChangeParm.offset = 1
  2550. this.getAssetChangeList()
  2551. },
  2552. changeStatue: function(cellValue) {
  2553. if (cellValue.changeStatue == 17) {
  2554. return '正常'
  2555. } else if (cellValue.changeStatue == 18) {
  2556. return '闲置'
  2557. } else if (cellValue.changeStatue == 19) {
  2558. return '报废'
  2559. } else if (cellValue.changeStatue == 20) {
  2560. return '封存'
  2561. }
  2562. },
  2563. // 备件领用记录
  2564. getAssetPartApplyList() {
  2565. this.listLoadingAssetChange = true
  2566. console.log(this.$refs['inputDatetimeAssetPartApply'].value)
  2567. if (this.$refs['inputDatetimeAssetPartApply'] !== undefined && this.$refs['inputDatetimeAssetPartApply'].value !== null && this.$refs['inputDatetimeAssetPartApply'].value !== '') {
  2568. this.getAssetPartApplyParm.parammaps.startTime = this.$refs['inputDatetimeAssetPartApply'].value[0]
  2569. this.getAssetPartApplyParm.parammaps.stopTime = this.$refs['inputDatetimeAssetPartApply'].value[1]
  2570. } else {
  2571. this.getAssetPartApplyParm.parammaps.startTime = ''
  2572. this.getAssetPartApplyParm.parammaps.stopTime = ''
  2573. }
  2574. this.getAssetPartApplyParm.parammaps.assetId = this.seeTemp.assetId
  2575. this.getAssetPartApplyParm.parammaps.pastureId = this.seeTemp.pastureId
  2576. GetDataByName(this.getAssetPartApplyParm).then(response => {
  2577. console.log('备件领用记录-tabile数据', response.data.list)
  2578. if (response.data.list !== null) {
  2579. this.listAssetPartApply = response.data.list
  2580. this.pageNumAssetPartApply = response.data.pageNum
  2581. this.pageSizeAssetPartApply = response.data.pageSize
  2582. } else {
  2583. this.listAssetPartApply = []
  2584. }
  2585. this.totalAssetPartApply = response.data.total
  2586. setTimeout(() => {
  2587. this.listLoadingAssetPartApply = false
  2588. }, 100)
  2589. })
  2590. },
  2591. form_searchAssetPartApply() {
  2592. this.listLoadingAssetChange = true
  2593. if (this.getAssetPartApplyParm.parammaps.inputDatetimeAssetChange == null) {
  2594. this.getAssetPartApplyParm.parammaps.inputDatetimeAssetChange = ''
  2595. }
  2596. this.getAssetPartApplyParm.offset = 1
  2597. this.getAssetPartApplyList()
  2598. },
  2599. getBarChart1() {
  2600. GetReportform(this.getBarChart1Parm).then(response => {
  2601. console.log('图1', response)
  2602. this.chart_data1 = response.data.chart_data
  2603. var repireCost = response.data.chart_data.repireCost
  2604. var upkeepCost = response.data.chart_data.upkeepCost
  2605. var totaltitle1 = 0
  2606. if (repireCost !== null || repireCost !== undefined) {
  2607. repireCost.forEach(function(item, index) {
  2608. console.log(parseFloat(item))
  2609. totaltitle1 = totaltitle1 + parseFloat(item)
  2610. })
  2611. }
  2612. var totaltitle2 = 0
  2613. if (upkeepCost !== null || upkeepCost !== undefined) {
  2614. upkeepCost.forEach(function(item, index) {
  2615. console.log(parseFloat(item))
  2616. totaltitle2 = totaltitle2 + parseFloat(item)
  2617. })
  2618. }
  2619. this.totaltitle = totaltitle1 + totaltitle2
  2620. this.roadBarChart1(this.chart_data1, this.totaltitle.toFixed(2))
  2621. })
  2622. },
  2623. roadBarChart1(chart_data1, totaltitle) {
  2624. console.log(chart_data1, totaltitle)
  2625. if (this.barChart1 != null) {
  2626. this.barChart1.dispose()
  2627. }
  2628. this.barChart1 = echarts.init(document.getElementById('barChart1'))
  2629. var option = {
  2630. title: { text: '年度费用统计(总费用:' + totaltitle + '元)', textStyle: { color: '#769cfc' }},
  2631. tooltip: {
  2632. trigger: 'axis',
  2633. axisPointer: { // 坐标轴指示器,坐标轴触发有效
  2634. type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  2635. },
  2636. formatter: function(data) {
  2637. console.log(data.length)
  2638. var value = 0
  2639. let val = ''
  2640. if (data.length == 1) {
  2641. val += data[0].seriesName + ':' + data[0].data + '元<br/>'
  2642. } else {
  2643. value = (parseFloat(data[0].value) + parseFloat(data[1].value)).toFixed(2)
  2644. // eslint-disable-next-line no-unused-vars
  2645. val = data[0].name + '年设备总费用:' + value + '元' + '<br/>'
  2646. val += '维修费用:' + data[0].data + '元<br/>'
  2647. val += '保养费用:' + data[1].data + '元<br/>'
  2648. }
  2649. return val
  2650. }
  2651. },
  2652. legend: {
  2653. data: ['维修费用', '保养费用'],
  2654. x: 'right'
  2655. },
  2656. color: ['#769cfc', '#42b983'],
  2657. grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },
  2658. xAxis: [
  2659. { type: 'category', data: this.chart_data1.year }
  2660. ],
  2661. yAxis: [
  2662. { type: 'value', name: '费用(元)' }
  2663. ],
  2664. series: [
  2665. { name: '维修费用', type: 'bar', barWidth: 60, stack: '广告', data: this.chart_data1.repireCost },
  2666. { name: '保养费用', type: 'bar', barWidth: 60, stack: '广告', data: this.chart_data1.upkeepCost }
  2667. ]
  2668. }
  2669. this.barChart1.setOption(option)
  2670. var that = this
  2671. window.onresize = function() {
  2672. that.barChart1.resize()
  2673. }
  2674. this.barChart1.on('click', function(param, i) {
  2675. console.log(param)
  2676. that.getBarChart2Parm.parammaps.receiveTime = param.name
  2677. that.getBarChart2()
  2678. that.getBarChart1()
  2679. })
  2680. },
  2681. getBarChart2() {
  2682. GetReportform(this.getBarChart2Parm).then(response => {
  2683. console.log('图2', response)
  2684. this.chart_data2 = response.data.chart_data
  2685. this.roadBarChart2(this.chart_data2)
  2686. })
  2687. },
  2688. roadBarChart2(chart_data1) {
  2689. if (this.barChart2 != null) {
  2690. this.barChart2.dispose()
  2691. }
  2692. this.barChart2 = echarts.init(document.getElementById('barChart2'))
  2693. var option = {
  2694. title: { text: this.getBarChart2Parm.parammaps.receiveTime + '年月度费用统计', textStyle: { color: '#769cfc' }},
  2695. tooltip: {
  2696. trigger: 'axis',
  2697. axisPointer: { // 坐标轴指示器,坐标轴触发有效
  2698. type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  2699. },
  2700. formatter: function(data) {
  2701. console.log(data)
  2702. var value = 0
  2703. var val = ''
  2704. if (data.length == 1) {
  2705. val += data[0].seriesName + ':' + data[0].data + '元<br/>'
  2706. } else {
  2707. value = (parseFloat(data[0].value) + parseFloat(data[1].value)).toFixed(2)
  2708. val = data[0].name + '月设备总费用:' + value + '元' + '<br/>'
  2709. val += '维修费用:' + data[0].data + '元<br/>'
  2710. val += '保养费用:' + data[1].data + '元<br/>'
  2711. }
  2712. return val
  2713. }
  2714. },
  2715. legend: {
  2716. data: ['维修费用', '保养费用'],
  2717. x: 'right'
  2718. },
  2719. color: ['#769cfc', '#42b983'],
  2720. grid: {
  2721. left: '3%',
  2722. right: '4%',
  2723. bottom: '3%',
  2724. containLabel: true
  2725. },
  2726. xAxis: [
  2727. { type: 'category', data: this.chart_data2.months }
  2728. ],
  2729. yAxis: [
  2730. { type: 'value', name: '费用(元)' }
  2731. ],
  2732. series: [
  2733. { name: '维修费用', type: 'bar', stack: '广告', data: this.chart_data2.repireCost },
  2734. { name: '保养费用', type: 'bar', stack: '广告', data: this.chart_data2.upkeepCost }
  2735. ]
  2736. }
  2737. this.barChart2.setOption(option)
  2738. var that = this
  2739. window.onresize = function() {
  2740. that.barChart2.resize()
  2741. }
  2742. this.barChart2.on('click', function(param, i) {
  2743. console.log(param)
  2744. that.dialogFormVisible_ChartSee = true
  2745. that.dialogStatus = 'card'
  2746. that.getChartSeeParm.parammaps.receiveTime = param.name
  2747. that.getChartSeeList()
  2748. that.getBarChart1()
  2749. that.getBarChart2()
  2750. })
  2751. },
  2752. getChartSeeList() {
  2753. this.listLoadingChartSee = true
  2754. if (this.$refs['inputDatetime2'] !== undefined && this.$refs['inputDatetime2'].value !== null) {
  2755. this.getChartSeeParm.parammaps.startTime = this.$refs['inputDatetime2'].value[0]
  2756. this.getChartSeeParm.parammaps.stopTime = this.$refs['inputDatetime2'].value[1]
  2757. } else {
  2758. this.getChartSeeParm.parammaps.startTime = ''
  2759. this.getChartSeeParm.parammaps.stopTime = ''
  2760. }
  2761. GetDataByName(this.getChartSeeParm).then(response => {
  2762. console.log('table数据', response.data.list)
  2763. if (response.data.list !== null) {
  2764. this.listChartSee = response.data.list
  2765. this.pageNumChartSee = response.data.pageNum
  2766. this.pageSizeChartSee = response.data.pageSize
  2767. if (response.data.total) {
  2768. this.totalChartSee = response.data.total
  2769. }
  2770. } else {
  2771. this.listChartSee = []
  2772. }
  2773. setTimeout(() => {
  2774. this.listLoadingChartSee = false
  2775. }, 100)
  2776. })
  2777. },
  2778. form_searchChartSee() {
  2779. this.listLoadingChartSee = true
  2780. if (this.getChartSeeParm.parammaps.inputDatetime2 === null) {
  2781. this.getChartSeeParm.parammaps.inputDatetime2 = ''
  2782. }
  2783. this.getChartSeeParm.offset = 1
  2784. this.getChartSeeList()
  2785. },
  2786. handleDownloadChartSee() {
  2787. this.$alert('正在导出中,请勿刷新或离开本页面,若导出时间过长,建议缩小导出数据范围重新导出', {})
  2788. this.isPercentage = true
  2789. this.percentage = 1
  2790. var timer = setInterval(() => {
  2791. this.percentage += 5
  2792. if (this.percentage > 95) {
  2793. this.percentage = 99
  2794. clearInterval(timer)
  2795. }
  2796. this.percentage = this.percentage
  2797. }, 1000)
  2798. this.downLoadParm2.name = 'getEqPartuseDetailList'
  2799. this.downLoadParm2.returntype = 'Map'
  2800. this.downLoadParm2.parammaps = this.getChartSeeParm.parammaps
  2801. GetAccount(this.downLoadParm2).then(response => {
  2802. this.$nextTick(() => {
  2803. this.downLoadList2 = response.data.list
  2804. if (response.data.list !== '') {
  2805. this.percentage = 99
  2806. setTimeout(() => {
  2807. this.isPercentage = false
  2808. }, 2000)
  2809. }
  2810. console.log(this.downLoadList2)
  2811. const ExcelDatas = [
  2812. {
  2813. tHeader: ['类型', '单号', '领用日期', '领用部门', '备件编号', '备件名称', '备件规格', '备件品牌', '计量单位', '出库数量', '退库数量', '单价', '总价'],
  2814. filterVal: ['useTypeV', 'RUcode', 'creatTime', 'departmentName', 'partCode', 'partName', 'specification', 'brandName', 'unit', 'checkoutNumber', 'quitNumber', 'price', 'sumPrice'],
  2815. tableDatas: this.downLoadList2,
  2816. sheetName: '费用统计'
  2817. }
  2818. ]
  2819. json2excel(ExcelDatas, '费用统计', true, 'xlsx')
  2820. })
  2821. })
  2822. },
  2823. form_delete(row) {
  2824. MessageBox.confirm('确认删除此信息?', {
  2825. confirmButtonText: '确认',
  2826. cancelButtonText: '取消',
  2827. type: 'warning'
  2828. }).then(() => {
  2829. this.requestParam.name = 'deleteAsset'
  2830. this.requestParam.parammaps = {}
  2831. this.requestParam.parammaps['id'] = row.id
  2832. PostDataByName(this.requestParam).then(() => {
  2833. if (this.getdataListParm.parammaps.inputDatetime1 === null) {
  2834. this.getdataListParm.parammaps.inputDatetime1 = ''
  2835. }
  2836. this.get_table_data()
  2837. this.get_table_dataSH()
  2838. this.dialogFormVisible = false
  2839. this.$notify({ title: '成功', message: '删除成功', type: 'success', duration: 2000 })
  2840. })
  2841. }).catch(() => {
  2842. this.$message({ type: 'info', message: '已取消删除' })
  2843. })
  2844. },
  2845. getDownClassList() {
  2846. getRecuData(this.getRecuListParm).then(response => {
  2847. this.parentClass = response.data
  2848. })
  2849. },
  2850. getEQNumber() {
  2851. this.getdataEQNumber.parammaps.pastureId = Cookies.get('pastureid')
  2852. GetDataByName(this.getdataEQNumber).then(response => {
  2853. this.createTemp.assetCode = response.data.list[0].createNumber
  2854. console.log(response.data.list[0].createNumber)
  2855. console.log(this.createTemp.assetCode)
  2856. this.$forceUpdate()
  2857. })
  2858. },
  2859. handleTabClick(val) {
  2860. console.log('点击了基础信息/审核设备tab', val)
  2861. if (val.name == 'first') {
  2862. this.isFlowChart = false
  2863. this.isDisplayRecord = true
  2864. } else {
  2865. this.isFlowChart = true
  2866. this.isDisplayRecord = false
  2867. }
  2868. this.get_table_data()
  2869. this.get_table_dataSH()
  2870. },
  2871. handleExamine(row) {
  2872. if (row == undefined) {
  2873. this.examineTemp = this.seeTemp
  2874. this.$set(this.seeTemp, 'SHstatue', 1)
  2875. this.$set(this.seeTemp, 'workflowNote', '')
  2876. } else {
  2877. this.examineTemp = Object.assign({}, row)
  2878. this.$set(this.examineTemp, 'SHstatue', 1)
  2879. this.$set(this.examineTemp, 'workflowNote', '')
  2880. }
  2881. this.dialogStatus = 'examine'
  2882. this.dialogFormVisible_Examine = true
  2883. this.statueReason = false
  2884. this.keyupSubmit()
  2885. },
  2886. changeSHStatue(val) {
  2887. if (val == 2) {
  2888. this.statueReason = true
  2889. } else {
  2890. this.statueReason = false
  2891. }
  2892. },
  2893. keyupSubmit() {
  2894. document.onkeydown = e => {
  2895. const _key = window.event.keyCode
  2896. if (_key === 13) {
  2897. this.createExamineData()
  2898. }
  2899. }
  2900. },
  2901. createExamineData() {
  2902. if (this.dialogStatus !== 'update' && this.dialogStatus !== 'create') {
  2903. this.isokDisable = true
  2904. setTimeout(() => {
  2905. this.isokDisable = false
  2906. }, 1000)
  2907. this.$refs['examineTemp'].validate(valid => {
  2908. if (valid) {
  2909. this.requestParam.name = 'eqCharge'
  2910. this.requestParam.parammaps = {}
  2911. this.requestParam.parammaps.id = this.examineTemp.id
  2912. if (this.examineTemp.SHstatue == 1) {
  2913. this.requestParam.parammaps.statue = 1
  2914. } else {
  2915. this.requestParam.parammaps.statue = 2
  2916. }
  2917. this.requestParam.parammaps.empId = Cookies.get('employeid')
  2918. this.requestParam.parammaps.workflowNote = this.examineTemp.workflowNote
  2919. PostDataByName(this.requestParam).then(response => {
  2920. console.log('审核确认发送参数', this.requestParam)
  2921. if (response.msg !== 'fail') {
  2922. this.dialogFormVisible_Examine = false
  2923. this.dialogFormVisible_See = false
  2924. this.statueReason = false
  2925. this.$notify({ title: '成功', message: '审核成功', type: 'success', duration: 2000 })
  2926. this.get_table_dataSH()
  2927. this.get_table_data()
  2928. this.activeName == 'second'
  2929. } else {
  2930. failproccess(response, this.$notify)
  2931. }
  2932. })
  2933. }
  2934. })
  2935. }
  2936. },
  2937. handleDownload() {
  2938. this.$alert('设备基础信息正在导出中,请勿刷新或离开本页面,若导出时间过长,建议缩小导出数据范围重新导出', {})
  2939. this.isPercentage = true
  2940. this.percentage = 1
  2941. var timer = setInterval(() => {
  2942. this.percentage += 5
  2943. if (this.percentage > 95) {
  2944. this.percentage = 99
  2945. clearInterval(timer)
  2946. }
  2947. this.percentage = this.percentage
  2948. }, 1000)
  2949. this.downLoadParm.name = 'getAssetList'
  2950. this.downLoadParm.parammaps = this.getdataListParm.parammaps
  2951. GetAccount(this.downLoadParm).then(response => {
  2952. this.downLoadList = response.data.list
  2953. if (response.data.list !== '') {
  2954. this.percentage = 99
  2955. setTimeout(() => {
  2956. this.isPercentage = false
  2957. }, 2000)
  2958. }
  2959. console.log(this.downLoadList)
  2960. const elecExcelDatas = [
  2961. {
  2962. tHeader: ['牧场','设备类别', '资产编号', '设备名称', '设备内部编号', '设备规格', '品牌', '供应商', '用途', '状态', '购置日期', '入场日期', '折旧年限', '财务编号', '原值', '残值', '月核减值', '保养级别', '保养费用', '维修费用', '基数(小时)', '部门', '责任人', '录入人', '录入时间', '使用时长(年)', '使用率(%)', '指定维修人', '一级督办', '一级间隔时间', '二级督办', '二级间隔时间', '三级督办', '三级间隔时间','物联网编码','标准工作时长'],
  2963. filterVal: ['pastureName','eqClassName', 'assetCode', 'eqName', 'eqCode', 'specification', 'brandName', 'providerName', 'purpose', 'status', 'purchaseDate', 'entranceDate', 'depreciation', 'financeCode', 'yuanzhi', 'salvage', 'subtractvalue', 'upkeepgrade', 'yearUpkeepCost', 'yearMaintainCost', 'baseHours', 'deptName', 'employeName', 'inputUserName', 'inputDatetime', 'serviceDuration', 'utilizationRate', 'maintenanceName', 'leveloneName', 'leveloneTime','leveltwoName', 'leveltwoTime','levelthreeName','levelthreeTime','license','duration' ],
  2964. tableDatas: this.downLoadList,
  2965. sheetName: '设备基础信息'
  2966. }
  2967. ]
  2968. json2excel(elecExcelDatas, '设备基础信息', true, 'xlsx')
  2969. })
  2970. },
  2971. handleDownloadSH() {
  2972. this.$alert('设备基础信息正在导出中,请勿刷新或离开本页面,若导出时间过长,建议缩小导出数据范围重新导出', {})
  2973. this.isPercentage = true
  2974. this.percentage = 1
  2975. var timer = setInterval(() => {
  2976. this.percentage += 5
  2977. if (this.percentage > 95) {
  2978. this.percentage = 99
  2979. clearInterval(timer)
  2980. }
  2981. this.percentage = this.percentage
  2982. }, 1000)
  2983. this.downLoadParm.name = 'getAssetListSH'
  2984. this.downLoadParm.parammaps = this.getdataListParmSH.parammaps
  2985. GetAccount(this.downLoadParm).then(response => {
  2986. this.downLoadList = response.data.list
  2987. if (response.data.list !== '') {
  2988. this.percentage = 99
  2989. setTimeout(() => {
  2990. this.isPercentage = false
  2991. }, 2000)
  2992. }
  2993. console.log(this.downLoadList)
  2994. const elecExcelDatas = [
  2995. {
  2996. tHeader: ['设备类别', '资产编号', '设备名称', '设备内部编号', '设备规格', '品牌', '供应商', '用途', '状态', '购置日期', '入场日期', '折旧年限', '财务编号', '原值', '残值', '月核减值', '保养级别', '保养费用', '维修费用', '基数(小时)', '牧场', '部门', '责任人', '录入人', '录入时间'],
  2997. filterVal: ['eqClassName', 'assetCode', 'eqName', 'eqCode', 'specification', 'brandName', 'providerName', 'purpose', 'status', 'purchaseDate', 'entranceDate', 'depreciation', 'financeCode', 'yuanzhi', 'salvage', 'subtractvalue', 'upkeepgrade', 'yearUpkeepCost', 'yearMaintainCost', 'baseHours', 'pastureName', 'deptName', 'employeName', 'inputUserName', 'inputDatetime'],
  2998. tableDatas: this.downLoadList,
  2999. sheetName: '设备基础信息'
  3000. }
  3001. ]
  3002. json2excel(elecExcelDatas, '设备基础信息', true, 'xlsx')
  3003. })
  3004. },
  3005. handleSelectionChange(item) {
  3006. this.selectionList = item
  3007. },
  3008. handleBatchChange() {
  3009. if (this.selectionList.length > 0) {
  3010. for (let i = 0; i < this.selectionList.length; i++) {
  3011. if (this.selectionList[i].pastureId !== this.selectionList[0].pastureId) {
  3012. this.$message({ type: 'error', message: '请检测变更牧场是否一致!', duration: 2000 })
  3013. return false
  3014. }
  3015. }
  3016. console.log('批量变更')
  3017. this.batchChange.temp.departmentId = ''
  3018. this.batchChange.temp.employeeId = ''
  3019. this.batchChange.deptList = []
  3020. this.batchChange.personList = []
  3021. this.dialogFormVisible_change = true
  3022. this.dialogStatus = 'change'
  3023. this.batchChange.getdataListParmDept.parammaps.pastureId = this.selectionList[0].pastureId
  3024. this.getBatchChangeDeptDownList()
  3025. } else {
  3026. this.$message({ type: 'error', message: '请选择变更牧场', duration: 2000 })
  3027. }
  3028. },
  3029. getBatchChangeDeptDownList() {
  3030. GetDataByName(this.batchChange.getdataListParmDept).then(response => {
  3031. if (response.data.list !== null) {
  3032. this.batchChange.deptList = response.data.list
  3033. } else {
  3034. this.batchChange.deptList = []
  3035. }
  3036. })
  3037. },
  3038. changeBatchDept(item) {
  3039. console.log(item)
  3040. this.batchChange.getdataListParmPerson.parammaps.deptId = item
  3041. this.batchChange.temp.employeeId = ''
  3042. this.batchChange.getdataListParmPerson.parammaps.pastureId = this.batchChange.deptList.find(obj => obj.deptid == item).pastureId
  3043. this.getBatchChangePersonDownList()
  3044. },
  3045. getBatchChangePersonDownList() {
  3046. GetDataByName(this.batchChange.getdataListParmPerson).then(response => {
  3047. if (response.data.list !== null) {
  3048. this.batchChange.personList = response.data.list
  3049. } else {
  3050. this.batchChange.personList = []
  3051. }
  3052. })
  3053. },
  3054. changeBatchPerson(item) {
  3055. console.log(item)
  3056. this.batchChange.temp.employeeId = item
  3057. this.batchChange.temp.employeName = this.batchChange.personList.find(obj => obj.id == item).empname
  3058. this.$forceUpdate()
  3059. },
  3060. changeData() {
  3061. this.isokDisable = true
  3062. setTimeout(() => {
  3063. this.isokDisable = false
  3064. }, 1000)
  3065. this.$refs['batchChangeTemp'].validate(valid => {
  3066. if (valid) {
  3067. this.requestParam = {}
  3068. var array = []
  3069. for (let i = 0; i < this.selectionList.length; i++) {
  3070. var obj = {}
  3071. var parammaps = {}
  3072. obj.name = 'updateEquipmentALL'
  3073. obj.offset = 0
  3074. obj.pagecount = 0
  3075. parammaps.departmentId = this.batchChange.temp.departmentId
  3076. parammaps.employeeId = this.batchChange.temp.employeeId
  3077. parammaps.employeName = this.batchChange.temp.employeName
  3078. parammaps.id = this.selectionList[i].id
  3079. obj.parammaps = parammaps
  3080. array.push(obj)
  3081. }
  3082. this.requestParam.array = array
  3083. PostDataByNames(this.requestParam).then(response => {
  3084. if (response.msg !== 'fail') {
  3085. this.dialogFormVisible_change = false
  3086. this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
  3087. this.get_table_data()
  3088. } else {
  3089. failproccess(response, this.$notify)
  3090. }
  3091. })
  3092. }
  3093. })
  3094. }
  3095. }
  3096. }
  3097. </script>
  3098. <style lang="scss" scoped>
  3099. .el-autocomplete-suggestion li{
  3100. padding:0 3px!important;
  3101. }
  3102. .el-table .warning-row {
  3103. background: oldlace;
  3104. }
  3105. .el-table .success-row {
  3106. background: #f0f9eb;
  3107. }
  3108. </style>
  3109. <style lang="scss">
  3110. .upkeepgrade .el-form-item__label{
  3111. line-height: 20px;
  3112. }
  3113. .inputDatetime .el-range-separator{
  3114. padding: 0;
  3115. margin: 0 10px;
  3116. }
  3117. .el-radio__label{
  3118. padding-left: 2px !important;
  3119. }
  3120. </style>
  3121. <style>
  3122. .el-table .goBeyond { background: #F47C7C ; }
  3123. .el-table .warning { background: #989DF0; }
  3124. .el-table .scrap { background: #D7D7D7; }
  3125. </style>