index.vue 243 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476
  1. <template>
  2. <div class="app-container">
  3. <el-form
  4. :model="queryParams"
  5. ref="queryForm"
  6. :inline="true"
  7. v-show="showSearch"
  8. label-width="88px"
  9. >
  10. <el-form-item label="业务编号" prop="fBillno">
  11. <el-input
  12. v-model="queryParams.fBillno"
  13. placeholder="请输入业务编号"
  14. style="width: 200px"
  15. clearable
  16. size="small"
  17. @keyup.enter.native="handleQuery"
  18. />
  19. </el-form-item>
  20. <el-form-item label="制单人" prop="createBy">
  21. <el-select
  22. v-model="queryParams.createBy"
  23. filterable
  24. remote
  25. clearable
  26. style="width: 200px"
  27. :remote-method="userRemoteMethod"
  28. placeholder="请选择制单人"
  29. >
  30. <el-option
  31. v-for="(dict, index) in userOptions"
  32. :key="index.userName"
  33. :label="dict.nickName"
  34. :value="dict.userName"
  35. ></el-option>
  36. </el-select>
  37. </el-form-item>
  38. <el-form-item label="贸易方式" prop="fTrademodeid">
  39. <el-select
  40. v-model="queryParams.fTrademodeid"
  41. placeholder="请选择贸易方式"
  42. clearable
  43. style="width: 200px"
  44. @keyup.enter.native="handleQuery"
  45. >
  46. <el-option
  47. v-for="(dict, index) in fTrademodeidOptions"
  48. :key="index.dictValue"
  49. :label="dict.dictLabel"
  50. :value="dict.dictValue"
  51. />
  52. </el-select>
  53. </el-form-item>
  54. <el-form-item label="货权方" prop="fCorpid">
  55. <el-select
  56. v-model="queryParams.fCorpid"
  57. filterable
  58. remote
  59. clearable
  60. style="width: 200px"
  61. @keyup.enter.native="handleQuery"
  62. :remote-method="corpsRemoteMethod"
  63. placeholder="请选择货权方"
  64. >
  65. <el-option
  66. v-for="(dict, index) in fMblnoOptions"
  67. :key="index.fId"
  68. :label="dict.fName"
  69. :value="dict.fId"
  70. ></el-option>
  71. </el-select>
  72. </el-form-item>
  73. <el-form-item label="提单号" prop="fMblno">
  74. <el-input
  75. v-model="queryParams.fMblno"
  76. placeholder="请输入提单号"
  77. clearable
  78. style="width: 200px"
  79. size="small"
  80. @keyup.enter.native="handleQuery"
  81. />
  82. </el-form-item>
  83. <el-form-item label="经营单位" prop="fSbu">
  84. <el-select
  85. v-model="queryParams.fSbu"
  86. filterable
  87. remote
  88. clearable
  89. :remote-method="fSbuRemoteMethod"
  90. @keyup.enter.native="handleQuery"
  91. style="width: 200px"
  92. placeholder="请选择经营单位"
  93. >
  94. <el-option
  95. v-for="(dict, index) in fSbuOptions"
  96. :key="index.fId"
  97. :label="dict.fName"
  98. :value="dict.fId"
  99. ></el-option>
  100. </el-select>
  101. </el-form-item>
  102. <el-form-item label="货物名称" prop="fGoodsid">
  103. <el-select
  104. v-model="queryParams.fGoodsid"
  105. filterable
  106. remote
  107. clearable
  108. style="width: 200px"
  109. :remote-method="goodsRemoteMethod"
  110. @keyup.enter.native="handleQuery"
  111. placeholder="请选择货物名称"
  112. >
  113. <el-option
  114. v-for="(dict, index) in goodsOptions"
  115. :key="index.fId"
  116. :label="dict.fName"
  117. :value="dict.fId"
  118. ></el-option>
  119. </el-select>
  120. </el-form-item>
  121. <el-form-item label="仓库" prop="fWarehouseid">
  122. <el-select
  123. v-model="queryParams.fWarehouseid"
  124. filterable
  125. remote
  126. @select="treeseLect"
  127. :disabled="browseStatus || formBrowseStatus"
  128. style="width: 200px"
  129. @keyup.enter.native="handleQuery"
  130. placeholder="请选择"
  131. >
  132. <el-option
  133. v-for="(dict, index) in warehouseOptions"
  134. :key="index.fId"
  135. :label="dict.fName"
  136. :value="dict.fId"
  137. ></el-option>
  138. </el-select>
  139. </el-form-item>
  140. <el-form-item label="品牌" prop="fMarks">
  141. <el-input
  142. v-model="queryParams.fMarks"
  143. placeholder="请输入品牌"
  144. clearable
  145. size="small"
  146. style="width: 200px"
  147. @keyup.enter.native="handleQuery"
  148. />
  149. </el-form-item>
  150. <el-form-item label="费用状态" prop="fBillstatus">
  151. <el-select
  152. style="width: 200px"
  153. v-model="queryParams.fBillstatus"
  154. placeholder="请输入费用状态"
  155. >
  156. <el-option label="录入" value="1"></el-option>
  157. <el-option label="暂存" value="2"></el-option>
  158. <el-option label="驳回" value="3"></el-option>
  159. <el-option label="请核" value="4"></el-option>
  160. <el-option label="审核中" value="5"></el-option>
  161. <el-option label="全部入账" value="6"></el-option>
  162. </el-select>
  163. </el-form-item>
  164. <el-form-item label="出库状态" prop="fItemsStatus">
  165. <el-select
  166. style="width: 200px"
  167. v-model="queryParams.fItemsStatus"
  168. placeholder="请输出库状态"
  169. >
  170. <el-option label="计划" value="1" />
  171. <el-option label="卸货中" value="2" />
  172. <el-option label="已装货" value="3" />
  173. <el-option label="已出库" value="4" />
  174. </el-select>
  175. </el-form-item>
  176. <el-form-item label="出库日期" prop="timeInterval">
  177. <el-date-picker
  178. v-model="queryParams.timeInterval"
  179. type="daterange"
  180. value-format="yyyy-MM-dd"
  181. clearable
  182. style="width: 240px"
  183. range-separator="至"
  184. start-placeholder="开始日期"
  185. end-placeholder="结束日期"
  186. @keyup.enter.native="handleQuery"
  187. >
  188. </el-date-picker>
  189. </el-form-item>
  190. <el-form-item>
  191. <el-button
  192. type="cyan"
  193. icon="el-icon-search"
  194. size="mini"
  195. @click="handleQuery"
  196. >搜索
  197. </el-button>
  198. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
  199. >重置
  200. </el-button>
  201. </el-form-item>
  202. </el-form>
  203. <el-row :gutter="10" class="mb8">
  204. <el-col :span="1.5">
  205. <el-button
  206. type="primary"
  207. icon="el-icon-plus"
  208. size="mini"
  209. @click="handleAdd(false)"
  210. v-hasPermi="['warehouseBusiness:outStock:add']"
  211. >新增
  212. </el-button>
  213. </el-col>
  214. <el-col :span="1.5">
  215. <el-button
  216. type="success"
  217. icon="el-icon-edit"
  218. size="mini"
  219. :disabled="single"
  220. @click="handleUpdate"
  221. v-hasPermi="['warehouseBusiness:outStock:edit']"
  222. >修改
  223. </el-button>
  224. </el-col>
  225. <el-col :span="1.5">
  226. <el-button
  227. type="warning"
  228. icon="el-icon-download"
  229. size="mini"
  230. @click="handleExport"
  231. v-hasPermi="['warehouseBusiness:outStock:export']"
  232. >导出
  233. </el-button>
  234. </el-col>
  235. <el-col :span="1.5">
  236. <el-button
  237. type="warning"
  238. icon="el-icon-download"
  239. size="mini"
  240. @click="handleExport"
  241. :disabled="multiple"
  242. v-hasPermi="['warehouseBusiness:outStock:export']"
  243. >导入
  244. </el-button>
  245. </el-col>
  246. <el-col :span="1.5">
  247. <el-button
  248. type="info"
  249. icon="el-icon-download"
  250. size="mini"
  251. :disabled="single"
  252. @click="handleUpdate(null, 2)"
  253. v-hasPermi="['agreement:agreementStorage:export']"
  254. >复制新增
  255. </el-button>
  256. </el-col>
  257. <div class="tabSetting">
  258. <right-toolbar
  259. :showSearch.sync="showSearch"
  260. @queryTable="getList"
  261. ></right-toolbar>
  262. <div style="margin: 0 12px">
  263. <el-button
  264. icon="el-icon-setting"
  265. size="mini"
  266. circle
  267. @click="showSetting = !showSetting"
  268. ></el-button>
  269. </div>
  270. </div>
  271. </el-row>
  272. <el-dialog
  273. title="自定义列显示"
  274. :visible.sync="showSetting"
  275. width="700px"
  276. v-dialogDrag
  277. >
  278. <template slot="title">
  279. <div class="avue-crud__dialog__header">
  280. <span class="el-dialog__title">
  281. <span
  282. style="
  283. display: inline-block;
  284. width: 3px;
  285. height: 20px;
  286. margin-right: 5px;
  287. float: left;
  288. margin-top: 2px;
  289. "
  290. ></span>
  291. </span>
  292. </div>
  293. </template>
  294. <div>配置排序列数据(拖动调整顺序)</div>
  295. <div style="margin-left: 17px">
  296. <el-checkbox
  297. v-model="allCheck"
  298. label="全选"
  299. @change="allChecked"
  300. ></el-checkbox>
  301. </div>
  302. <div style="padding: 4px; display: flex; justify-content: center">
  303. <draggable
  304. v-model="setRowList"
  305. group="site"
  306. animation="300"
  307. @start="onStart"
  308. @end="onEnd"
  309. handle=".indraggable"
  310. >
  311. <transition-group>
  312. <div
  313. v-for="item in setRowList"
  314. :key="item.surface"
  315. class="listStyle"
  316. >
  317. <div style="width: 500px" class="indraggable">
  318. <div class="progress" :style="{ width: item.width + 'px' }">
  319. <el-checkbox
  320. :label="item.name"
  321. v-model="item.checked"
  322. :true-label="0"
  323. :false-label="1"
  324. >{{ item.name }}
  325. </el-checkbox>
  326. </div>
  327. </div>
  328. <el-input-number
  329. v-model.number="item.width"
  330. controls-position="right"
  331. :min="1"
  332. :max="500"
  333. size="mini"
  334. ></el-input-number>
  335. </div>
  336. </transition-group>
  337. </draggable>
  338. </div>
  339. <span slot="footer" class="dialog-footer">
  340. <el-button @click="showSetting = false">取 消</el-button>
  341. <el-button @click="delRow" type="danger">重 置</el-button>
  342. <el-button type="primary" @click="save()">确 定</el-button>
  343. </span>
  344. </el-dialog>
  345. <el-table
  346. v-loading="loading"
  347. :data="warehousebillsList"
  348. @selection-change="handleSelectionChange"
  349. show-summary
  350. :summary-method="getSum"
  351. >
  352. <el-table-column type="selection" width="60" fixed align="center" />
  353. <el-table-column type="index" label="行号" fixed align="center" />
  354. <el-table-column
  355. label="提单号"
  356. width="220"
  357. align="center"
  358. :show-overflow-tooltip="true"
  359. sortable
  360. fixed="left"
  361. prop="fMblno"
  362. >
  363. <template slot-scope="scope">
  364. <el-link :underline="false" type="primary"
  365. ><div @click="handleUpdate(scope.row)">
  366. {{ scope.row.fMblno }}
  367. </div></el-link
  368. >
  369. </template>
  370. </el-table-column>
  371. <el-table-column
  372. v-for="(item, index) in getRowList"
  373. :key="index"
  374. :label="item.name"
  375. :width="item.width"
  376. :prop="item.label"
  377. align="center"
  378. :fixed="item.fixed"
  379. :show-overflow-tooltip="true"
  380. sortable
  381. />
  382. <!-- <el-table-column label="制单人" align="center" prop="createBy" fixed/>-->
  383. <!-- <el-table-column label="仓管员" width="100" align="center" sortable prop="fStorekeeper" fixed/>-->
  384. <!-- <el-table-column width="100" label="出库状态" fixed sortable align="center" prop="fItemsStatus">-->
  385. <!-- <template slot-scope="scope">-->
  386. <!-- <span v-if="scope.row.fItemsStatus === 1">计划</span>-->
  387. <!-- <span v-if="scope.row.fItemsStatus === 2">卸货中</span>-->
  388. <!-- <span v-if="scope.row.fItemsStatus === 3">已装货</span>-->
  389. <!-- <span v-if="scope.row.fItemsStatus === 4">已出库</span>-->
  390. <!-- </template>-->
  391. <!-- </el-table-column>-->
  392. <!-- <el-table-column width="220" label="货权方" fixed sortable align="center" prop="fCorpid"/>-->
  393. <!-- <el-table-column label="提单号" sortable width="216" align="center" prop="fMblno" fixed show-overflow-tooltip/>-->
  394. <!-- <el-table-column label="品名" :show-overflow-tooltip="true" fixed align="ceter" prop="fProductName" />-->
  395. <!-- <el-table-column label="品牌" align="center" fixed prop="fMarks" />-->
  396. <!-- <el-table-column label="出库日期" align="center" fixed sortable prop="createTime" style="width: 60%" width="100" show-overflow-tooltip>-->
  397. <!-- <template slot-scope="scope">-->
  398. <!-- <span>{{ parseTime(scope.row.fBsdate, "{y}-{m}-{d}") }}</span>-->
  399. <!-- </template>-->
  400. <!-- </el-table-column>-->
  401. <!-- <el-table-column label="仓库" sortable fixed align="center" prop="fWarehouseid" />-->
  402. <!-- <el-table-column label="计划件数" align="center" prop="fPlanqty" />-->
  403. <!-- <el-table-column label="出库件数" align="center" prop="fQty" />-->
  404. <!-- <el-table-column label="出库毛重(kg)" align="center" prop="fGrossweight" width="100"/>-->
  405. <!-- <el-table-column label="出库净重(kg)" align="center" prop="fNetweight" width="100"/>-->
  406. <!-- <el-table-column label="车号" align="center" prop="fTruckno" width="100"/>-->
  407. <!-- <el-table-column label="司机" align="center" prop="fDriverName" />-->
  408. <!-- <el-table-column label="司机电话" align="center" prop="fDriverTel" width="120" show-overflow-tooltip/>-->
  409. <!-- <el-table-column label="司机身份证" align="center" prop="fDriverIdCar" width="180" show-overflow-tooltip/>-->
  410. <!-- <el-table-column label="业务类别" align="center" prop="fBusinessType" :formatter="fBusinessTypeFormat"/>-->
  411. <!-- <el-table-column width="100" label="费用状态" align="center" prop="fBillstatus">-->
  412. <!-- <template slot-scope="scope">-->
  413. <!-- <span v-if="scope.row.fBillstatus === 1">录入</span>-->
  414. <!-- <span v-if="scope.row.fBillstatus === 2">录入</span>-->
  415. <!-- <span v-if="scope.row.fBillstatus === 3">驳回</span>-->
  416. <!-- <span v-if="scope.row.fBillstatus === 4">请核</span>-->
  417. <!-- <span v-if="scope.row.fBillstatus === 5">审核中</span>-->
  418. <!-- <span v-if="scope.row.fBillstatus === 6">全部入账</span>-->
  419. <!-- </template>-->
  420. <!-- </el-table-column>-->
  421. <el-table-column
  422. label="操作"
  423. align="center"
  424. class-name="small-padding fixed-width"
  425. min-width="180"
  426. >
  427. <template slot-scope="scope">
  428. <el-button
  429. size="mini"
  430. type="text"
  431. icon="el-icon-edit"
  432. @click="handleUpdate(scope.row, true)"
  433. v-hasPermi="['warehouseBusiness:outStock:edit']"
  434. >查看
  435. </el-button>
  436. <el-button
  437. size="mini"
  438. type="text"
  439. icon="el-icon-edit"
  440. v-if="
  441. scope.row.fBillstatus == '录入' ||
  442. scope.row.fBillstatus == '暂存' ||
  443. scope.row.fBillstatus == '驳回'
  444. "
  445. @click="handleUpdate(scope.row, false)"
  446. v-hasPermi="['warehouseBusiness:outStock:edit']"
  447. >修改
  448. </el-button>
  449. <el-button
  450. size="mini"
  451. type="text"
  452. icon="el-icon-delete"
  453. v-if="scope.row.fItemsStatus == '计划'"
  454. @click="handleDelete(scope.row)"
  455. v-hasPermi="['warehouseBusiness:outStock:remove']"
  456. >删除
  457. </el-button>
  458. <el-button
  459. size="mini"
  460. type="text"
  461. icon="el-icon-delete"
  462. v-if="
  463. scope.row.fBillstatus == '请核' ||
  464. scope.row.fBillstatus == '审核中'
  465. "
  466. @click="handleUpdate(scope.row, true)"
  467. >审核进度
  468. </el-button>
  469. </template>
  470. </el-table-column>
  471. </el-table>
  472. <add-or-update
  473. v-if="addOrUpdateVisible"
  474. ref="addOrUpdate"
  475. @refreshDataList="getDataList"
  476. ></add-or-update>
  477. <approval-comments
  478. v-if="addOrUpdateVisib"
  479. ref="ApprovalComments"
  480. @refreshDataList="returnData"
  481. ></approval-comments>
  482. <pagination
  483. v-show="total > 0"
  484. :total="total"
  485. :page.sync="queryParams.pageNum"
  486. :limit.sync="queryParams.pageSize"
  487. @pagination="getList"
  488. />
  489. <!-- 新增或修改仓库主(出入库)对话框 -->
  490. <el-dialog
  491. v-dialogDrag
  492. :visible.sync="open"
  493. :close-on-click-modal="false"
  494. @close="addCloseDialog"
  495. :show-close="closeButton"
  496. :fullscreen="dialogFull"
  497. width="80%"
  498. append-to-body
  499. >
  500. <template slot="title">
  501. <div class="avue-crud__dialog__header">
  502. <span class="el-dialog__title">
  503. <span
  504. style="
  505. display: inline-block;
  506. width: 3px;
  507. height: 20px;
  508. margin-right: 5px;
  509. float: left;
  510. margin-top: 2px;
  511. "
  512. ></span>
  513. </span>
  514. <div class="avue-crud__dialog__menu enlarge" @click="full">
  515. <i
  516. style="
  517. cursor: pointer;
  518. display: block;
  519. width: 12px;
  520. height: 12px;
  521. border: 1px solid #909399;
  522. border-top: 3px solid #909399;
  523. margin-top: -3px;
  524. "
  525. ></i>
  526. </div>
  527. </div>
  528. </template>
  529. <el-form ref="form" :model="form" :rules="rules" label-width="120px">
  530. <el-row>
  531. <el-col :span="8">
  532. <el-form-item label="货权方" prop="fCorpid">
  533. <el-select
  534. v-model="form.fCorpid"
  535. filterable
  536. remote
  537. :disabled="browseStatus || formBrowseStatus"
  538. @change="changefCorpid(form)"
  539. style="width: 80%"
  540. :remote-method="corpsRemoteMethod"
  541. placeholder="请输入模糊查找"
  542. >
  543. <el-option
  544. v-for="(dict, index) in fMblnoOptions"
  545. :key="index.fId"
  546. :label="dict.fName"
  547. :value="dict.fId"
  548. ></el-option>
  549. </el-select>
  550. </el-form-item>
  551. </el-col>
  552. <el-col :span="8">
  553. <el-form-item label="结算方式" prop="fstltypeid">
  554. <el-select
  555. v-model="form.fStltypeid"
  556. placeholder="请选择结算方式"
  557. :disabled="browseStatus || formBrowseStatus"
  558. clearable
  559. style="width: 80%"
  560. >
  561. <el-option
  562. v-for="(dict, index) in fStltypeOptions"
  563. :key="index.dictValue"
  564. :label="dict.dictLabel"
  565. :value="dict.dictValue"
  566. />
  567. </el-select>
  568. </el-form-item>
  569. </el-col>
  570. <el-col :span="8">
  571. <el-form-item label="提单号" prop="fMblno">
  572. <el-input
  573. v-model="form.fMblno"
  574. style="width: 80%"
  575. disabled
  576. placeholder=""
  577. />
  578. </el-form-item>
  579. </el-col>
  580. </el-row>
  581. <el-row>
  582. <el-col :span="8">
  583. <el-form-item label="业务日期" prop="fBsdate">
  584. <el-date-picker
  585. v-model="form.fBsdate"
  586. style="width: 80%"
  587. type="date"
  588. :disabled="browseStatus || formBrowseStatus"
  589. @change="changefBsdate"
  590. value-format="timestamp"
  591. placeholder="业务日期"
  592. >
  593. </el-date-picker>
  594. </el-form-item>
  595. </el-col>
  596. <el-col :span="8">
  597. <el-form-item label="业务时间" prop="fBstime">
  598. <el-time-picker
  599. style="width: 80%"
  600. :disabled="browseStatus || formBrowseStatus"
  601. v-model="form.fBstime"
  602. :picker-options="{
  603. selectableRange: '00:00:01 - 23:59:59',
  604. }"
  605. placeholder="任意时间点"
  606. >
  607. </el-time-picker>
  608. </el-form-item>
  609. </el-col>
  610. <el-col :span="8">
  611. <el-form-item label="车辆类型" prop="fCartype">
  612. <el-select
  613. style="width: 80%"
  614. v-model="form.fCartype"
  615. :disabled="contrOl"
  616. >
  617. <el-option
  618. v-for="(dict, index) in fCartypeOptions"
  619. :key="index.dictValue"
  620. :label="dict.dictLabel"
  621. :value="dict.dictValue"
  622. ></el-option>
  623. </el-select>
  624. </el-form-item>
  625. </el-col>
  626. </el-row>
  627. <el-row>
  628. <el-col :span="8">
  629. <el-form-item label="仓管员" prop="fStorekeeper">
  630. <el-select
  631. v-model="form.fStorekeeper"
  632. filterable
  633. remote
  634. :disabled="browseStatus || formBrowseStatus"
  635. style="width: 80%"
  636. :remote-method="userRemoteMethod"
  637. placeholder="请输入模糊查找"
  638. >
  639. <el-option
  640. v-for="(dict, index) in userOptions"
  641. :key="index.userName"
  642. :label="dict.nickName"
  643. :value="dict.userName"
  644. ></el-option>
  645. </el-select>
  646. </el-form-item>
  647. </el-col>
  648. <el-col :span="8">
  649. <el-form-item label="仓库" prop="fWarehouseid">
  650. <el-select
  651. v-model="form.fWarehouseid"
  652. filterable
  653. remote
  654. @change="warwhouseTel"
  655. :disabled="browseStatus || formBrowseStatus"
  656. style="width: 80%"
  657. @keyup.enter.native="handleQuery"
  658. placeholder="请选择"
  659. >
  660. <el-option
  661. v-for="(dict, index) in warehouseOptions"
  662. :key="index.fId"
  663. :label="dict.fName"
  664. :value="dict.fId"
  665. ></el-option>
  666. </el-select>
  667. </el-form-item>
  668. </el-col>
  669. <el-col :span="8">
  670. <el-form-item label="计费单位" prop="fFeetunit">
  671. <el-select
  672. v-model="form.fFeetunit"
  673. placeholder="请选择计费单位"
  674. :disabled="browseStatus || formBrowseStatus"
  675. clearable
  676. style="width: 80%"
  677. >
  678. <el-option
  679. v-for="(dict, index) in jFeetunitOptions"
  680. :key="index.dictValue"
  681. :label="dict.dictLabel"
  682. :value="dict.dictValue"
  683. />
  684. </el-select>
  685. </el-form-item>
  686. </el-col>
  687. </el-row>
  688. <el-row>
  689. <el-col :span="8">
  690. <el-form-item label="计划件数">
  691. <el-input
  692. v-model="form.fPlanqty"
  693. style="width: 80%"
  694. laceholder="计划件数"
  695. maxlength="9"
  696. oninput='this.value=this.value.replace(/\D/g,"")'
  697. :disabled="browseStatus || current !== before"
  698. />
  699. </el-form-item>
  700. </el-col>
  701. <el-col :span="8">
  702. <el-form-item label="计划净重(kg)" prop="fPlannetweight">
  703. <el-input
  704. v-model="form.fPlannetweight"
  705. style="width: 80%"
  706. maxlength="9"
  707. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  708. laceholder="计划净重"
  709. :disabled="browseStatus || current !== before"
  710. />
  711. </el-form-item>
  712. </el-col>
  713. <el-col :span="8">
  714. <el-form-item label="计划毛重(kg)" prop="fPlangrossweight">
  715. <el-input
  716. v-model="form.fPlangrossweight"
  717. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  718. style="width: 80%"
  719. maxlength="9"
  720. laceholder="计划毛重"
  721. :disabled="browseStatus || current !== before"
  722. />
  723. </el-form-item>
  724. </el-col>
  725. </el-row>
  726. <el-row>
  727. <el-col :span="8">
  728. <el-form-item label="作业类型" prop="fBusinessType">
  729. <el-select
  730. style="width: 80%"
  731. v-model="form.fBusinessType"
  732. filterable
  733. :disabled="contrOl"
  734. @change="educationChange"
  735. >
  736. <el-option
  737. v-for="(dict, index) in businessTypeOption"
  738. :key="index.dictValue"
  739. :label="dict.dictLabel"
  740. :value="dict.dictValue"
  741. ></el-option>
  742. </el-select>
  743. </el-form-item>
  744. </el-col>
  745. <el-col :span="8">
  746. <el-form-item
  747. label="劳务公司"
  748. prop="fLabour"
  749. :rules="{
  750. required: isrequired_l === 1 ? true : false,
  751. message: '请选择',
  752. trigger: ['blur', 'change'],
  753. }"
  754. >
  755. <el-select
  756. style="width: 80%"
  757. v-model="form.fLabour"
  758. @keyup.enter.native="handleQuery"
  759. :remote-method="flabourRemoteMethod"
  760. remote
  761. filterable
  762. :disabled="contrOl"
  763. placeholder="请输入劳务公司"
  764. >
  765. <el-option
  766. v-for="(dict, index) in fCompanyOptIons"
  767. :key="index.fId"
  768. :label="dict.fName"
  769. :value="dict.fId"
  770. ></el-option>
  771. </el-select>
  772. </el-form-item>
  773. </el-col>
  774. <el-col :span="8">
  775. <el-form-item
  776. label="车队"
  777. prop="fFleet"
  778. :rules="{
  779. required: isrequired === 1 ? true : false,
  780. message: '请选择',
  781. trigger: ['blur', 'change'],
  782. }"
  783. >
  784. <el-select
  785. style="width: 80%"
  786. v-model="form.fFleet"
  787. @keyup.enter.native="handleQuery"
  788. :remote-method="fleetRemoteMethod"
  789. filterable
  790. remote
  791. :disabled="contrOl"
  792. placeholder="请输入车队"
  793. >
  794. <el-option
  795. v-for="(dict, index) in fleetOptions"
  796. :key="index.fId"
  797. :label="dict.fName"
  798. :value="dict.fId"
  799. ></el-option>
  800. </el-select>
  801. </el-form-item>
  802. </el-col>
  803. </el-row>
  804. <el-row>
  805. <el-col :span="8">
  806. <el-form-item
  807. label="车号"
  808. prop="fTruckno"
  809. :rules="{
  810. required: isrequired_s === 1 ? true : false,
  811. message: '请选择',
  812. trigger: ['blur', 'change'],
  813. }"
  814. >
  815. <el-input
  816. v-model="form.fTruckno"
  817. :disabled="browseStatus || formBrowseStatus"
  818. style="width: 80%"
  819. placeholder="请输货车车号"
  820. @change="changeInformation(whgenlegList)"
  821. />
  822. </el-form-item>
  823. </el-col>
  824. <el-col :span="8">
  825. <el-form-item
  826. label="司机"
  827. prop="fDriverName"
  828. :rules="{
  829. required: isrequired_s === 1 ? true : false,
  830. message: '请选择',
  831. trigger: ['blur', 'change'],
  832. }"
  833. >
  834. <el-input
  835. v-model="form.fDriverName"
  836. :disabled="browseStatus || formBrowseStatus"
  837. style="width: 80%"
  838. placeholder="请输司机姓名"
  839. />
  840. </el-form-item>
  841. </el-col>
  842. <el-col :span="8">
  843. <el-form-item
  844. label="司机电话"
  845. prop="fDriverTel"
  846. :rules="{
  847. required: isrequired_s === 1 ? true : false,
  848. message: '请选择',
  849. trigger: ['blur', 'change'],
  850. }"
  851. >
  852. <el-input
  853. oninput='this.value=this.value.replace(/[^\-?\d]/g,"")'
  854. v-model="form.fDriverTel"
  855. :disabled="browseStatus || formBrowseStatus"
  856. style="width: 80%"
  857. placeholder="请输司机电话"
  858. />
  859. </el-form-item>
  860. </el-col>
  861. </el-row>
  862. <el-row>
  863. <el-col :span="16">
  864. <el-row>
  865. <el-col :span="12">
  866. <el-form-item
  867. label="司机身份证"
  868. prop="fDriverIdCar"
  869. :rules="{
  870. required: isrequired_s === 1 ? true : false,
  871. message: '请选择',
  872. trigger: ['blur', 'change'],
  873. }"
  874. >
  875. <el-input
  876. v-model="form.fDriverIdCar"
  877. :disabled="browseStatus || formBrowseStatus"
  878. style="width: 80%"
  879. placeholder="请输司机身份证"
  880. />
  881. </el-form-item>
  882. </el-col>
  883. </el-row>
  884. <el-row>
  885. <el-col :span="24">
  886. <el-form-item label="备注" prop="remark">
  887. <el-input
  888. style="width: 92%"
  889. v-model="form.remark"
  890. type="textarea"
  891. :disabled="browseStatus"
  892. placeholder="请输入内容"
  893. />
  894. </el-form-item>
  895. </el-col>
  896. </el-row>
  897. <el-row>
  898. <el-col :offset="16" :span="2">
  899. <el-form-item>
  900. <el-button
  901. @click="
  902. detailsHidden
  903. ? (detailsHidden = false)
  904. : (detailsHidden = true)
  905. "
  906. >{{ detailsHidden ? "隐藏" : "展开" }}</el-button
  907. >
  908. </el-form-item>
  909. </el-col>
  910. </el-row>
  911. </el-col>
  912. <el-col :span="8">
  913. <el-form-item>
  914. <el-table
  915. :data="CntrTable"
  916. style="width: 80%"
  917. :header-cell-style="{ lineHeight: '16px' }"
  918. height="139"
  919. >
  920. <el-table-column
  921. prop="fCntrid "
  922. label="箱型"
  923. header-align="center"
  924. align="center"
  925. >
  926. <template slot-scope="scope">
  927. <el-select
  928. placeholder="请选择箱型"
  929. v-model="scope.row.fCntrid"
  930. size="mini"
  931. >
  932. <el-option
  933. v-for="(item,index) in fCntridlist"
  934. :key="index.value"
  935. :label="item.label"
  936. :value="item.value"
  937. >
  938. </el-option>
  939. </el-select>
  940. </template>
  941. </el-table-column>
  942. <el-table-column
  943. prop="fCntrcount"
  944. label="箱量"
  945. header-align="center"
  946. align="center"
  947. >
  948. <template slot-scope="scope">
  949. <el-input
  950. placeholder="请输入箱量"
  951. v-model="scope.row.fCntrcount"
  952. size="mini"
  953. >
  954. </el-input>
  955. </template>
  956. </el-table-column>
  957. <el-table-column
  958. prop="fCntrcount"
  959. label="操作"
  960. header-align="center"
  961. align="center"
  962. width="50"
  963. >
  964. <template slot-scope="scope">
  965. <el-button
  966. size="mini"
  967. type="text"
  968. @click.native.prevent="deleteRow(scope.$index, CntrTable)"
  969. icon="el-icon-delete"
  970. ></el-button>
  971. </template>
  972. </el-table-column>
  973. </el-table>
  974. <div style="display: flex; justify-content: center; width: 80%">
  975. <el-tag class="tag-hover" @click="addRow"
  976. ><i class="el-icon-plus"></i
  977. ></el-tag>
  978. </div>
  979. </el-form-item>
  980. </el-col>
  981. </el-row>
  982. <div v-if="detailsHidden">
  983. <el-row style="margin-top: 30px">
  984. <el-col :span="8">
  985. <el-form-item label="仓库联系人" prop="fContacts">
  986. <el-input
  987. v-model="form.fContacts"
  988. :disabled="browseStatus || formBrowseStatus"
  989. style="width: 80%"
  990. placeholder="仓库联系人"
  991. />
  992. </el-form-item>
  993. </el-col>
  994. <el-col :span="8">
  995. <el-form-item label="仓库电话" prop="fTel">
  996. <el-input
  997. v-model="form.fTel"
  998. :disabled="browseStatus || formBrowseStatus"
  999. style="width: 80%"
  1000. placeholder="请输仓库入电话"
  1001. />
  1002. </el-form-item>
  1003. </el-col>
  1004. <el-col :span="8">
  1005. <el-form-item label="贸易方式" prop="fTrademodeid">
  1006. <el-select
  1007. v-model="form.fTrademodeid"
  1008. placeholder="请选择贸易方式"
  1009. :disabled="browseStatus || formBrowseStatus"
  1010. clearable
  1011. style="width: 80%"
  1012. >
  1013. <el-option
  1014. v-for="(dict, index) in fTrademodeidOptions"
  1015. :key="index.dictValue"
  1016. :label="dict.dictLabel"
  1017. :value="dict.dictValue"
  1018. />
  1019. </el-select>
  1020. </el-form-item>
  1021. </el-col>
  1022. </el-row>
  1023. <el-row>
  1024. <el-col :span="8">
  1025. <el-form-item label="单据编号" prop="fBillno">
  1026. <el-input
  1027. v-model="form.fBillno"
  1028. style="width: 80%"
  1029. disabled
  1030. placeholder="单据编号"
  1031. />
  1032. </el-form-item>
  1033. </el-col>
  1034. <el-col :span="8">
  1035. <el-form-item label="破损" prop="fifdamage">
  1036. <el-select
  1037. v-model="form.fIfdamage"
  1038. placeholder="请选择是否破损"
  1039. :disabled="browseStatus || formBrowseStatus"
  1040. clearable
  1041. style="width: 80%"
  1042. >
  1043. <el-option
  1044. v-for="(dict, index) in fIfdamageOptions"
  1045. :key="index.dictValue"
  1046. :label="dict.dictLabel"
  1047. :value="dict.dictValue"
  1048. />
  1049. </el-select>
  1050. </el-form-item>
  1051. </el-col>
  1052. <el-col :span="8">
  1053. <el-form-item label="过磅" prop="fifweigh">
  1054. <el-select
  1055. v-model="form.fIfweigh"
  1056. placeholder="请选择是否过磅"
  1057. :disabled="browseStatus || formBrowseStatus"
  1058. clearable
  1059. style="width: 80%"
  1060. >
  1061. <el-option
  1062. v-for="(dict, index) in fIfweighOptions"
  1063. :key="index.dictValue"
  1064. :label="dict.dictLabel"
  1065. :value="dict.dictValue"
  1066. />
  1067. </el-select>
  1068. </el-form-item>
  1069. </el-col>
  1070. </el-row>
  1071. <el-row>
  1072. <el-col :span="8">
  1073. <el-form-item label="制单人" prop="createBy">
  1074. <el-input
  1075. disabled
  1076. v-model="form.createBy"
  1077. style="width: 80%"
  1078. placeholder="制单人"
  1079. />
  1080. </el-form-item>
  1081. </el-col>
  1082. <el-col :span="8">
  1083. <el-form-item label="制单部门" prop="fDeptid">
  1084. <el-select
  1085. v-model="form.fDeptid"
  1086. filterable
  1087. disabled
  1088. style="width: 80%"
  1089. remote
  1090. >
  1091. <el-option
  1092. v-for="(dict, index) in deptOptions"
  1093. :key="index.deptId"
  1094. :label="dict.deptName"
  1095. :value="dict.deptId"
  1096. ></el-option>
  1097. </el-select>
  1098. </el-form-item>
  1099. </el-col>
  1100. <el-col :span="8">
  1101. <el-form-item disabled label="制单日期" prop="fbilldate">
  1102. <el-date-picker
  1103. v-model="form.createTime"
  1104. size="large"
  1105. type="date"
  1106. disabled
  1107. value-format="timestamp"
  1108. placeholder="制单日期"
  1109. >
  1110. </el-date-picker>
  1111. </el-form-item>
  1112. </el-col>
  1113. <el-col :span="8">
  1114. <el-form-item label="品牌" prop="fMarks">
  1115. <el-input
  1116. v-model="form.fMarks"
  1117. style="width: 80%"
  1118. disabled
  1119. placeholder="品牌"
  1120. />
  1121. </el-form-item>
  1122. </el-col>
  1123. <el-col :span="8">
  1124. <el-form-item label="品名" prop="fProductName">
  1125. <el-input
  1126. v-model="form.fProductName"
  1127. style="width: 80%"
  1128. disabled
  1129. placeholder="品名"
  1130. />
  1131. </el-form-item>
  1132. </el-col>
  1133. </el-row>
  1134. </div>
  1135. </el-form>
  1136. <el-collapse v-model="activeNames">
  1137. <el-collapse-item name="1">
  1138. <template slot="title">
  1139. <i class="el-icon-s-home"></i>出库明细
  1140. </template>
  1141. <div
  1142. style="
  1143. display: flex;
  1144. justify-content: space-between;
  1145. align-items: center;
  1146. margin: 10px 0;
  1147. "
  1148. >
  1149. <div>
  1150. <el-button
  1151. type="primary"
  1152. :disabled="browseStatus"
  1153. @click.prevent="addRelevant(10)"
  1154. >新行
  1155. </el-button>
  1156. <!-- <el-button :disabled="browseStatus" @click.prevent="deleteRow(warehouseDrList)"
  1157. >删除
  1158. </el-button> -->
  1159. <el-button
  1160. type="primary"
  1161. :disabled="browseStatus"
  1162. @click="saveForm"
  1163. >保 存</el-button
  1164. >
  1165. </div>
  1166. <div style="display: flex">
  1167. <el-button
  1168. type="info"
  1169. :disabled="printinglist.length <= 0 || browseStatus"
  1170. prop="打印"
  1171. @click="printJobSheet"
  1172. >作业单</el-button
  1173. >
  1174. <el-button
  1175. :disabled="printinglist.length <= 0 || browseStatus"
  1176. @click="discharge"
  1177. >叫车进场</el-button
  1178. >
  1179. <el-button
  1180. :disabled="dataListSelection.length <= 0 || browseStatus"
  1181. @click.prevent="creditClick"
  1182. >出库确认
  1183. </el-button>
  1184. <el-button
  1185. :disabled="dataWithdrawList.length <= 0 || browseStatus"
  1186. @click.prevent="withdrawClick"
  1187. >撤回出库</el-button
  1188. >
  1189. <!-- <el-button
  1190. type="warning"
  1191. prop="打印"
  1192. :disabled="printinglist.length <= 0 || browseStatus"
  1193. @click="showEditDialog_s"
  1194. >出库单
  1195. </el-button> -->
  1196. <el-dropdown @command="handleCommand">
  1197. <el-button
  1198. type="warning"
  1199. :disabled="printinglist.length <= 0 || browseStatus"
  1200. >
  1201. 打印单据<i class="el-icon-arrow-down el-icon--right"></i>
  1202. </el-button>
  1203. <el-dropdown-menu slot="dropdown">
  1204. <el-dropdown-item command="a">出库单</el-dropdown-item>
  1205. <el-dropdown-item command="b">理货单</el-dropdown-item>
  1206. <el-dropdown-item command="c">出库确认</el-dropdown-item>
  1207. <el-dropdown-item command="d">劳务确认</el-dropdown-item>
  1208. </el-dropdown-menu>
  1209. </el-dropdown>
  1210. <!-- <el-button type="primary" :disabled="browseStatus" @click="saveForm">保 存</el-button> -->
  1211. <el-button
  1212. style="background-color: #008000; color: #fff"
  1213. @click="submitForm"
  1214. :disabled="browseStatus"
  1215. >请核</el-button
  1216. >
  1217. </div>
  1218. <!--点击展开-->
  1219. </div>
  1220. <el-table
  1221. :data="dataList"
  1222. ref="tableList"
  1223. tooltip-effect="dark"
  1224. border
  1225. stripe
  1226. :summary-method="getSummaries"
  1227. @selection-change="selectinventory"
  1228. show-summary
  1229. >
  1230. <el-table-column type="selection" width="55" fixed align="center" />
  1231. <el-table-column label="序号" type="index" fixed width="80">
  1232. </el-table-column>
  1233. <el-table-column
  1234. prop="fBillstatus"
  1235. header-align="center"
  1236. width="150px"
  1237. fixed
  1238. align="center"
  1239. label="状态"
  1240. >
  1241. <template slot-scope="scope">
  1242. <span v-if="form.fBusinessType === '5'">
  1243. <span v-if="scope.row.fBillstatus === 40">已装箱</span>
  1244. <span v-if="scope.row.fBillstatus === 20">待装箱</span>
  1245. <span v-if="scope.row.fBillstatus === 30">装箱中</span>
  1246. <span v-if="scope.row.fBillstatus === 10">计划</span>
  1247. </span>
  1248. <span v-if="form.fBusinessType !== '5'">
  1249. <span v-if="scope.row.fBillstatus === 40">已出库</span>
  1250. <span v-if="scope.row.fBillstatus === 20">待出库</span>
  1251. <span v-if="scope.row.fBillstatus === 30">出库中</span>
  1252. <span v-if="scope.row.fBillstatus === 10">计划</span>
  1253. </span>
  1254. </template>
  1255. </el-table-column>
  1256. <el-table-column
  1257. prop="fBsdate"
  1258. header-align="center"
  1259. align="center"
  1260. fixed
  1261. width="150px"
  1262. label="出库日期"
  1263. >
  1264. <template slot-scope="scope">
  1265. <el-date-picker
  1266. v-model="scope.row.fBsdate"
  1267. style="width: 138px"
  1268. :disabled="
  1269. browseStatus ||
  1270. scope.row.fBillstatus === 20 ||
  1271. scope.row.fBillstatus === 30 ||
  1272. scope.row.fBillstatus === 40
  1273. "
  1274. type="date"
  1275. value-format="timestamp"
  1276. placeholder="业务日期"
  1277. >
  1278. </el-date-picker>
  1279. </template>
  1280. </el-table-column>
  1281. <el-table-column
  1282. prop="fMblno"
  1283. header-align="center"
  1284. align="center"
  1285. width="140px"
  1286. label="提单号"
  1287. >
  1288. </el-table-column>
  1289. <el-table-column
  1290. prop="fGoodsids"
  1291. header-align="center"
  1292. align="center"
  1293. width="140px"
  1294. label="*品名"
  1295. >
  1296. </el-table-column>
  1297. <el-table-column
  1298. prop="fBusinessType"
  1299. header-align="center"
  1300. width="140px"
  1301. align="center"
  1302. label="*货物属性"
  1303. >
  1304. <template slot-scope="scope">
  1305. <el-select
  1306. v-model="scope.row.fBusinessType"
  1307. filterable
  1308. disabled
  1309. :remote-method="kqhouseRemoteMethod"
  1310. placeholder="请选择商品属性"
  1311. >
  1312. <el-option
  1313. v-for="(dict, index) in fStorageTypeOptions"
  1314. :key="index.dictValue"
  1315. :label="dict.dictLabel"
  1316. :value="dict.dictValue"
  1317. />
  1318. </el-select>
  1319. </template>
  1320. </el-table-column>
  1321. <el-table-column
  1322. prop="fMarks"
  1323. header-align="center"
  1324. align="center"
  1325. width="140px"
  1326. label="*属性详情"
  1327. >
  1328. </el-table-column>
  1329. <el-table-column
  1330. prop="fWarehouseInformation"
  1331. header-align="center"
  1332. width="240px"
  1333. align="center"
  1334. label="*库区"
  1335. >
  1336. <template slot-scope="scope">
  1337. <el-input
  1338. placeholder="请选择"
  1339. disabled
  1340. v-model="scope.row.fWarehouseInformation"
  1341. @focus="getTreeselect(scope)"
  1342. >
  1343. </el-input>
  1344. </template>
  1345. </el-table-column>
  1346. <el-table-column
  1347. prop="fPlanqty"
  1348. header-align="center"
  1349. align="center"
  1350. width="180px"
  1351. label="*结余库存"
  1352. >
  1353. </el-table-column>
  1354. <el-table-column
  1355. prop="fPlangrossweight"
  1356. header-align="center"
  1357. align="center"
  1358. width="180px"
  1359. label="*结余毛重(kg)"
  1360. >
  1361. </el-table-column>
  1362. <el-table-column
  1363. prop="fPlannetweight"
  1364. header-align="center"
  1365. align="center"
  1366. width="180px"
  1367. label="*结余净重(kg)"
  1368. >
  1369. </el-table-column>
  1370. <el-table-column
  1371. prop="fQty"
  1372. header-align="center"
  1373. width="180px"
  1374. align="center"
  1375. label="*出库件数"
  1376. >
  1377. <template slot-scope="scope">
  1378. <el-input
  1379. oninput='this.value=this.value.replace(/[^\-?\d]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "")'
  1380. @change="qtyChange(scope.row)"
  1381. v-model="scope.row.fQty"
  1382. :disabled="browseStatus || scope.row.fBillstatus === 40"
  1383. placeholder="出库件数"
  1384. show-word-limit
  1385. />
  1386. </template>
  1387. </el-table-column>
  1388. <el-table-column
  1389. prop="fGrossweight"
  1390. header-align="center"
  1391. width="180px"
  1392. align="center"
  1393. label="*出库毛重(kg)"
  1394. >
  1395. <template slot-scope="scope">
  1396. <el-input
  1397. :disabled="browseStatus || scope.row.fBillstatus === 40"
  1398. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  1399. v-model="scope.row.fGrossweight"
  1400. @change="changeOutStock(scope.row)"
  1401. placeholder="出库毛重"
  1402. show-word-limit
  1403. />
  1404. </template>
  1405. </el-table-column>
  1406. <el-table-column
  1407. prop="fNetweight"
  1408. header-align="center"
  1409. width="180px"
  1410. align="center"
  1411. label="*出库净重(kg)"
  1412. >
  1413. <template slot-scope="scope">
  1414. <el-input
  1415. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  1416. v-model="scope.row.fNetweight"
  1417. :disabled="browseStatus || scope.row.fBillstatus === 40"
  1418. @change="changeOutStock(scope.row)"
  1419. placeholder="出库净重"
  1420. show-word-limit
  1421. />
  1422. </template>
  1423. </el-table-column>
  1424. <el-table-column
  1425. prop="fPackagespecs"
  1426. header-align="center"
  1427. width="180px"
  1428. align="center"
  1429. label="*包装规格"
  1430. >
  1431. <template slot-scope="scope">
  1432. <el-input
  1433. v-model="scope.row.fPackagespecs"
  1434. :disabled="
  1435. browseStatus ||
  1436. scope.row.fBillstatus === 20 ||
  1437. scope.row.fBillstatus === 30 ||
  1438. scope.row.fBillstatus === 40
  1439. "
  1440. placeholder="包装规格"
  1441. show-word-limit
  1442. />
  1443. </template>
  1444. </el-table-column>
  1445. <el-table-column
  1446. prop="fCntrtype"
  1447. header-align="center"
  1448. align="center"
  1449. width="140px"
  1450. label="箱型"
  1451. >
  1452. <template slot-scope="scope">
  1453. <el-input
  1454. v-model="scope.row.fCntrtype"
  1455. :disabled="
  1456. browseStatus ||
  1457. scope.row.fBillstatus === 20 ||
  1458. scope.row.fBillstatus === 30 ||
  1459. scope.row.fBillstatus === 40
  1460. "
  1461. placeholder="箱型"
  1462. show-word-limit
  1463. />
  1464. </template>
  1465. </el-table-column>
  1466. <el-table-column
  1467. prop="fCntqty"
  1468. header-align="center"
  1469. align="center"
  1470. width="140px"
  1471. label="箱量"
  1472. >
  1473. <template slot-scope="scope">
  1474. <el-input
  1475. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  1476. v-model="scope.row.fCntqty"
  1477. placeholder="箱量"
  1478. :disabled="
  1479. browseStatus ||
  1480. scope.row.fBillstatus === 20 ||
  1481. scope.row.fBillstatus === 30 ||
  1482. scope.row.fBillstatus === 40
  1483. "
  1484. show-word-limit
  1485. />
  1486. </template>
  1487. </el-table-column>
  1488. <el-table-column
  1489. prop="fCntrno"
  1490. header-align="center"
  1491. width="150px"
  1492. align="center"
  1493. label="箱号"
  1494. >
  1495. <template slot-scope="scope">
  1496. <el-input
  1497. v-model="scope.row.fCntrno"
  1498. placeholder="箱号"
  1499. :disabled="
  1500. browseStatus ||
  1501. scope.row.fBillstatus === 20 ||
  1502. scope.row.fBillstatus === 30 ||
  1503. scope.row.fBillstatus === 40
  1504. "
  1505. show-word-limit
  1506. />
  1507. </template>
  1508. </el-table-column>
  1509. <el-table-column
  1510. prop="fGoodsval"
  1511. header-align="center"
  1512. width="150px"
  1513. align="center"
  1514. label="货值"
  1515. >
  1516. <template slot-scope="scope">
  1517. <el-input
  1518. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, "$1$2.$3")'
  1519. v-model="scope.row.fGoodsval"
  1520. placeholder="货值"
  1521. :disabled="
  1522. browseStatus ||
  1523. scope.row.fBillstatus === 20 ||
  1524. scope.row.fBillstatus === 30 ||
  1525. scope.row.fBillstatus === 40
  1526. "
  1527. show-word-limit
  1528. />
  1529. </template>
  1530. </el-table-column>
  1531. <el-table-column
  1532. prop="ftruckno"
  1533. header-align="center"
  1534. width="150px"
  1535. align="center"
  1536. label="*车号"
  1537. >
  1538. <template slot-scope="scope">
  1539. <el-input
  1540. v-model="scope.row.fTruckno"
  1541. placeholder="车号"
  1542. :disabled="
  1543. browseStatus ||
  1544. scope.row.fBillstatus === 20 ||
  1545. scope.row.fBillstatus === 30 ||
  1546. scope.row.fBillstatus === 40
  1547. "
  1548. show-word-limit
  1549. />
  1550. </template>
  1551. </el-table-column>
  1552. <el-table-column
  1553. prop="fDriverName"
  1554. header-align="center"
  1555. width="130px"
  1556. align="center"
  1557. label="司机名"
  1558. >
  1559. <template slot-scope="scope">
  1560. <el-input
  1561. v-model="scope.row.fDriverName"
  1562. placeholder="司机名"
  1563. :disabled="
  1564. browseStatus ||
  1565. scope.row.fBillstatus === 20 ||
  1566. scope.row.fBillstatus === 30 ||
  1567. scope.row.fBillstatus === 40
  1568. "
  1569. show-word-limit
  1570. />
  1571. </template>
  1572. </el-table-column>
  1573. <el-table-column
  1574. prop="fDriverTel"
  1575. header-align="center"
  1576. width="130px"
  1577. align="center"
  1578. label="司机电话"
  1579. >
  1580. <template slot-scope="scope">
  1581. <el-input
  1582. oninput='this.value=this.value.replace(/[^\-?\d]/g,"")'
  1583. v-model="scope.row.fDriverTel"
  1584. placeholder="司机电话"
  1585. :disabled="
  1586. browseStatus ||
  1587. scope.row.fBillstatus === 20 ||
  1588. scope.row.fBillstatus === 30 ||
  1589. scope.row.fBillstatus === 40
  1590. "
  1591. show-word-limit
  1592. />
  1593. </template>
  1594. </el-table-column>
  1595. <el-table-column
  1596. prop="fDriverIdCar"
  1597. header-align="center"
  1598. width="200px"
  1599. align="center"
  1600. label="司机身份证"
  1601. >
  1602. <template slot-scope="scope">
  1603. <el-input
  1604. v-model="scope.row.fDriverIdCar"
  1605. placeholder="司机身份证"
  1606. :disabled="
  1607. browseStatus ||
  1608. scope.row.fBillstatus === 20 ||
  1609. scope.row.fBillstatus === 30 ||
  1610. scope.row.fBillstatus === 40
  1611. "
  1612. show-word-limit
  1613. />
  1614. </template>
  1615. </el-table-column>
  1616. <el-table-column
  1617. prop="fIsPass"
  1618. header-align="center"
  1619. width="130px"
  1620. align="center"
  1621. label="是否放行"
  1622. >
  1623. <template slot-scope="scope">
  1624. <el-select
  1625. v-model="scope.row.fIsPass"
  1626. placeholder="是否放行"
  1627. :disabled="browseStatus || scope.row.fBillstatus === 40"
  1628. style="width: 80%"
  1629. >
  1630. <el-option
  1631. v-for="(dict, index) in releaseList"
  1632. :key="index.dictValue"
  1633. :label="dict.dictLabel"
  1634. :value="dict.dictValue"
  1635. />
  1636. </el-select>
  1637. </template>
  1638. </el-table-column>
  1639. <el-table-column
  1640. prop="fSerialNumber"
  1641. header-align="center"
  1642. width="160px"
  1643. align="center"
  1644. label="流水号"
  1645. >
  1646. </el-table-column>
  1647. <el-table-column
  1648. prop="remark"
  1649. header-align="center"
  1650. width="150px"
  1651. align="center"
  1652. label="备注"
  1653. >
  1654. <template slot-scope="scope">
  1655. <el-input
  1656. v-model="scope.row.remark"
  1657. placeholder="备注"
  1658. :disabled="browseStatus"
  1659. show-word-limit
  1660. />
  1661. </template>
  1662. </el-table-column>
  1663. <el-table-column
  1664. header-align="center"
  1665. align="center"
  1666. label="操作"
  1667. width="130PX"
  1668. >
  1669. <template slot-scope="scope">
  1670. <el-button
  1671. @click.native.prevent="deleteRow(scope.$index, dataList)"
  1672. size="small"
  1673. :disabled="
  1674. browseStatus ||
  1675. scope.row.fBillstatus === 20 ||
  1676. scope.row.fBillstatus === 30 ||
  1677. scope.row.fBillstatus === 40
  1678. "
  1679. >移除
  1680. </el-button>
  1681. </template>
  1682. </el-table-column>
  1683. </el-table>
  1684. </el-collapse-item>
  1685. <el-collapse-item>
  1686. <template slot="title">
  1687. <i class="el-icon-s-order"></i>附件明细
  1688. </template>
  1689. <div
  1690. class="dialogTableTitle flex a-center jlr"
  1691. style="
  1692. display: flex;
  1693. justify-content: space-between;
  1694. align-items: center;
  1695. margin: 10px 0;
  1696. "
  1697. >
  1698. <div>
  1699. <el-button :disabled="browseStatus" @click.prevent="addRelevt()"
  1700. >新行
  1701. </el-button>
  1702. </div>
  1703. </div>
  1704. <el-table
  1705. :data="relevantAttachments"
  1706. ref="table"
  1707. tooltip-effect="dark"
  1708. border
  1709. stripe
  1710. style="width: 100%"
  1711. height="150"
  1712. >
  1713. <el-table-column label="序号" type="index" width="80">
  1714. </el-table-column>
  1715. <el-table-column
  1716. prop="fName"
  1717. header-align="center"
  1718. align="center"
  1719. width="250px"
  1720. label="附件名称"
  1721. >
  1722. <template slot-scope="scope">
  1723. <el-input
  1724. v-model="scope.row.fName"
  1725. :disabled="browseStatus"
  1726. placeholder="附件名称"
  1727. show-word-limit
  1728. />
  1729. </template>
  1730. </el-table-column>
  1731. <el-table-column
  1732. prop="createBy"
  1733. header-align="center"
  1734. align="center"
  1735. width="250px"
  1736. label="上传人"
  1737. >
  1738. <template slot-scope="scope">
  1739. <el-input
  1740. v-model="scope.row.createBy"
  1741. disabled
  1742. placeholder="上传人"
  1743. show-word-limit
  1744. />
  1745. </template>
  1746. </el-table-column>
  1747. <el-table-column
  1748. prop="createTime"
  1749. header-align="center"
  1750. align="center"
  1751. label="上传时间"
  1752. >
  1753. <template slot-scope="scope">
  1754. <el-date-picker
  1755. v-model="scope.row.createTime"
  1756. type="date"
  1757. disabled
  1758. placeholder="上传时间"
  1759. format="yyyy-MM-dd HH:mm"
  1760. value-format="timestamp"
  1761. ></el-date-picker>
  1762. </template>
  1763. </el-table-column>
  1764. <el-table-column
  1765. prop="fUrl"
  1766. header-align="center"
  1767. align="center"
  1768. width="300px"
  1769. label="上传附件"
  1770. >
  1771. <template slot-scope="scope">
  1772. <el-upload
  1773. class="upload-demo"
  1774. :action="uploadImgUrl"
  1775. :on-success="
  1776. (res, file) => {
  1777. handleSucces(scope, res, file);
  1778. }
  1779. "
  1780. :headers="headers"
  1781. style="width: 25%; float: left"
  1782. :disabled="browseStatus"
  1783. :show-file-list="false"
  1784. :limit="1"
  1785. >
  1786. <el-button
  1787. size="small"
  1788. type="primary"
  1789. :disabled="browseStatus"
  1790. >点击上传</el-button
  1791. >
  1792. </el-upload>
  1793. <el-button size="small" type="primary" @click="checkFile(scope)"
  1794. >查看</el-button
  1795. >
  1796. <el-button
  1797. size="small"
  1798. type="primary"
  1799. :disabled="browseStatus"
  1800. @click="deleteFile(scope)"
  1801. >删除</el-button
  1802. >
  1803. </template>
  1804. </el-table-column>
  1805. <el-table-column header-align="center" align="center" label="操作">
  1806. <template slot-scope="scope">
  1807. <el-button
  1808. @click.native.prevent="
  1809. deleteRow(scope.$index, relevantAttachments)
  1810. "
  1811. :disabled="browseStatus"
  1812. size="small"
  1813. >移除
  1814. </el-button>
  1815. </template>
  1816. </el-table-column>
  1817. </el-table>
  1818. </el-collapse-item>
  1819. <el-collapse-item>
  1820. <template slot="title">
  1821. <i class="el-icon-circle-plus"></i>收款信息
  1822. </template>
  1823. <div
  1824. class="dialogTableTitle flex a-center jlr"
  1825. style="
  1826. display: flex;
  1827. justify-content: space-between;
  1828. align-items: center;
  1829. margin: 10px 0;
  1830. "
  1831. >
  1832. <div>
  1833. <el-button
  1834. :disabled="browseStatus"
  1835. @click.prevent="addCollection()"
  1836. >新行
  1837. </el-button>
  1838. <el-button
  1839. type="primary"
  1840. :disabled="browseStatus"
  1841. @click="saveForm"
  1842. >保 存</el-button
  1843. >
  1844. <!--暂时隐藏-->
  1845. <!-- <el-button type="warning" @click.prevent="addStorages('Dr')">仓储费协议</el-button >-->
  1846. <el-button
  1847. type="danger"
  1848. :disabled="browseStatus"
  1849. @click.prevent="addAgreement('Dr', 3)"
  1850. >作业费协议</el-button
  1851. >
  1852. </div>
  1853. </div>
  1854. <el-table
  1855. :data="warehouseDrList"
  1856. ref="tableDr"
  1857. tooltip-effect="dark"
  1858. border
  1859. stripe
  1860. show-summary
  1861. @selection-change="collectionoptions"
  1862. :summary-method="warehouseDrSummaries"
  1863. >
  1864. <el-table-column type="selection" width="55" align="center" />
  1865. <el-table-column label="序号" type="index" width="80">
  1866. </el-table-column>
  1867. <el-table-column
  1868. prop="fCorpid"
  1869. header-align="center"
  1870. align="center"
  1871. width="180px"
  1872. label="客户名称"
  1873. >
  1874. <template slot-scope="scope">
  1875. <el-select
  1876. v-model="scope.row.fCorpid"
  1877. filterable
  1878. remote
  1879. :disabled="browseStatus"
  1880. :remote-method="corpsRemoteMethod"
  1881. placeholder="客户名称"
  1882. >
  1883. <el-option
  1884. v-for="(dict, index) in KHblnoOptions"
  1885. :key="index.fId"
  1886. :label="dict.fName"
  1887. :value="dict.fId"
  1888. ></el-option>
  1889. </el-select>
  1890. </template>
  1891. </el-table-column>
  1892. <el-table-column
  1893. prop="fFeeid"
  1894. header-align="center"
  1895. align="center"
  1896. width="180px"
  1897. label="费用名称"
  1898. >
  1899. <template slot-scope="scope">
  1900. <el-select
  1901. v-model="scope.row.fFeeid"
  1902. filterable
  1903. remote
  1904. :disabled="browseStatus"
  1905. :remote-method="fWRemoteMethod"
  1906. @change="changeFeeId(scope.row)"
  1907. placeholder="费用名称"
  1908. >
  1909. <el-option
  1910. v-for="(dict, index) in fDNameOptions"
  1911. :key="index.fId"
  1912. :label="dict.fName"
  1913. :value="dict.fId"
  1914. ></el-option>
  1915. </el-select>
  1916. </template>
  1917. </el-table-column>
  1918. <el-table-column
  1919. prop="fBusinessType"
  1920. header-align="center"
  1921. align="center"
  1922. width="180px"
  1923. label="作业类型"
  1924. >
  1925. <template slot-scope="scope">
  1926. <el-select
  1927. style="width: 80%"
  1928. v-model="scope.row.fBusinessType"
  1929. filterable
  1930. disabled
  1931. >
  1932. <el-option
  1933. v-for="(dict, index) in businessTypeOption"
  1934. :key="index.dictValue"
  1935. :label="dict.dictLabel"
  1936. :value="dict.dictValue"
  1937. ></el-option>
  1938. </el-select>
  1939. </template>
  1940. </el-table-column>
  1941. <el-table-column
  1942. prop="fFeeunitid"
  1943. header-align="center"
  1944. align="center"
  1945. width="180px"
  1946. label="计价单位"
  1947. >
  1948. <template slot-scope="scope">
  1949. <el-select
  1950. v-model="scope.row.fFeeunitid"
  1951. placeholder="请选择计费单位"
  1952. @change="changeFeeUnit(scope.row)"
  1953. :disabled="browseStatus"
  1954. clearable
  1955. >
  1956. <el-option
  1957. v-for="(dict, index) in jFeetunitOptions"
  1958. :key="index.dictValue"
  1959. :label="dict.dictLabel"
  1960. :value="dict.dictValue"
  1961. />
  1962. </el-select>
  1963. </template>
  1964. </el-table-column>
  1965. <el-table-column
  1966. prop="fQty"
  1967. header-align="center"
  1968. align="center"
  1969. width="150px"
  1970. label="数量"
  1971. >
  1972. <template slot-scope="scope">
  1973. <el-input
  1974. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  1975. v-model="scope.row.fQty"
  1976. placeholder="数量"
  1977. :disabled="browseStatus"
  1978. @change="changeContractAmt(scope.row)"
  1979. show-word-limit
  1980. />
  1981. </template>
  1982. </el-table-column>
  1983. <el-table-column
  1984. prop="funitprice"
  1985. header-align="center"
  1986. align="center"
  1987. width="150px"
  1988. label="单价"
  1989. >
  1990. <template slot-scope="scope">
  1991. <el-input
  1992. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  1993. v-model="scope.row.fUnitprice"
  1994. placeholder="单价"
  1995. :disabled="browseStatus || scope.row.fSrcTypeId !== 0"
  1996. @change="changeContractAmt(scope.row)"
  1997. show-word-limit
  1998. />
  1999. </template>
  2000. </el-table-column>
  2001. <el-table-column
  2002. prop="fAmount"
  2003. header-align="center"
  2004. align="center"
  2005. width="150px"
  2006. label="金额"
  2007. >
  2008. <template slot-scope="scope">
  2009. <el-input
  2010. disabled
  2011. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  2012. v-model="scope.row.fAmount"
  2013. placeholder="金额"
  2014. show-word-limit
  2015. />
  2016. </template>
  2017. </el-table-column>
  2018. <el-table-column
  2019. prop="fStltypeid"
  2020. header-align="center"
  2021. align="center"
  2022. width="130px"
  2023. label="结算方式"
  2024. >
  2025. <template slot-scope="scope">
  2026. <el-select
  2027. v-model="scope.row.fStltypeid"
  2028. placeholder="请选择结算表票结、月结"
  2029. :disabled="browseStatus"
  2030. >
  2031. <el-option
  2032. v-for="dict in fStltypeOptions"
  2033. :key="dict.dictValue"
  2034. :label="dict.dictLabel"
  2035. :value="parseInt(dict.dictValue)"
  2036. ></el-option>
  2037. </el-select>
  2038. </template>
  2039. </el-table-column>
  2040. <el-table-column
  2041. prop="fCurrency"
  2042. header-align="center"
  2043. align="center"
  2044. width="150px"
  2045. label="币别"
  2046. >
  2047. <template slot-scope="scope">
  2048. <el-input
  2049. v-model="scope.row.fCurrency"
  2050. :disabled="browseStatus"
  2051. placeholder="币别"
  2052. show-word-limit
  2053. />
  2054. </template>
  2055. </el-table-column>
  2056. <el-table-column
  2057. prop="fExrate"
  2058. header-align="center"
  2059. align="center"
  2060. width="150px"
  2061. label="汇率"
  2062. >
  2063. <template slot-scope="scope">
  2064. <el-input
  2065. v-model="scope.row.fExrate"
  2066. :disabled="browseStatus"
  2067. placeholder="汇率"
  2068. show-word-limit
  2069. />
  2070. </template>
  2071. </el-table-column>
  2072. <el-table-column
  2073. prop="fTaxrate"
  2074. header-align="center"
  2075. align="center"
  2076. width="150px"
  2077. label="税率"
  2078. >
  2079. <template slot-scope="scope">
  2080. <el-input
  2081. v-model="scope.row.fTaxrate"
  2082. :disabled="browseStatus"
  2083. placeholder="税率"
  2084. show-word-limit
  2085. />
  2086. </template>
  2087. </el-table-column>
  2088. <el-table-column
  2089. prop="fMblno"
  2090. header-align="center"
  2091. align="center"
  2092. width="130px"
  2093. label="提单号"
  2094. >
  2095. <template slot-scope="scope">
  2096. <el-input
  2097. v-model="scope.row.fMblno"
  2098. :disabled="browseStatus"
  2099. placeholder="提单号"
  2100. show-word-limit
  2101. />
  2102. </template>
  2103. </el-table-column>
  2104. <el-table-column
  2105. prop="fProductName"
  2106. header-align="center"
  2107. align="center"
  2108. width="140px"
  2109. label="品名"
  2110. >
  2111. <template slot-scope="scope">
  2112. <el-input
  2113. v-model="scope.row.fProductName"
  2114. :disabled="browseStatus"
  2115. placeholder="品名"
  2116. show-word-limit
  2117. />
  2118. </template>
  2119. </el-table-column>
  2120. <el-table-column
  2121. prop="fMarks"
  2122. header-align="center"
  2123. align="center"
  2124. width="130px"
  2125. label="品牌"
  2126. >
  2127. <template slot-scope="scope">
  2128. <el-input
  2129. v-model="scope.row.fMarks"
  2130. :disabled="browseStatus"
  2131. placeholder="品牌"
  2132. show-word-limit
  2133. />
  2134. </template>
  2135. </el-table-column>
  2136. <el-table-column
  2137. prop="fSrcTypeId"
  2138. header-align="center"
  2139. align="center"
  2140. width="130px"
  2141. label="来源"
  2142. >
  2143. <template slot-scope="scope">
  2144. <span v-if="scope.row.fSrcTypeId === 0">录入</span>
  2145. <span v-if="scope.row.fSrcTypeId !== 0">协议</span>
  2146. </template>
  2147. </el-table-column>
  2148. <el-table-column
  2149. prop="remarks"
  2150. header-align="center"
  2151. align="center"
  2152. width="150px"
  2153. label="备注"
  2154. >
  2155. <template slot-scope="scope">
  2156. <el-input
  2157. v-model="scope.row.remarks"
  2158. :disabled="browseStatus"
  2159. placeholder="备注"
  2160. show-word-limit
  2161. />
  2162. </template>
  2163. </el-table-column>
  2164. <el-table-column
  2165. header-align="center"
  2166. align="center"
  2167. label="操作"
  2168. width="200px"
  2169. >
  2170. <template slot-scope="scope">
  2171. <el-button
  2172. @click.native.prevent="
  2173. deleteRow(scope.$index, warehouseDrList)
  2174. "
  2175. size="small"
  2176. :disabled="browseStatus"
  2177. >移除</el-button
  2178. >
  2179. </template>
  2180. </el-table-column>
  2181. </el-table>
  2182. </el-collapse-item>
  2183. <el-collapse-item>
  2184. <template slot="title">
  2185. <i class="el-icon-remove"></i>付款信息
  2186. </template>
  2187. <div
  2188. class="dialogTableTitle flex a-center jlr"
  2189. style="
  2190. display: flex;
  2191. justify-content: space-between;
  2192. align-items: center;
  2193. margin: 10px 0;
  2194. "
  2195. >
  2196. <div>
  2197. <el-button :disabled="browseStatus" @click.prevent="addpayment()"
  2198. >新行
  2199. </el-button>
  2200. <!-- <el-button :disabled="browseStatus" @click.prevent="deleteRow(warehouseDrList)"
  2201. >删除
  2202. </el-button> -->
  2203. <el-button
  2204. type="primary"
  2205. :disabled="browseStatus"
  2206. @click="saveForm"
  2207. >保 存</el-button
  2208. >
  2209. <!--暂时隐藏-->
  2210. <!-- <el-button type="warning" @click.prevent="addStorages('Cr')">仓储费协议</el-button>-->
  2211. <el-button
  2212. type="danger"
  2213. :disabled="browseStatus"
  2214. @click.prevent="addAgreement(1, 'Cr')"
  2215. >作业费协议</el-button
  2216. >
  2217. </div>
  2218. </div>
  2219. <el-table
  2220. :data="warehouseCrList"
  2221. ref="table"
  2222. tooltip-effect="dark"
  2223. border
  2224. stripe
  2225. show-summary
  2226. @selection-change="collectionoptions"
  2227. :summary-method="warehouseDrSummaries"
  2228. >
  2229. <el-table-column type="selection" width="55" align="center" />
  2230. <el-table-column label="序号" type="index" width="80">
  2231. </el-table-column>
  2232. <el-table-column
  2233. prop="fCorpid"
  2234. header-align="center"
  2235. align="center"
  2236. width="180px"
  2237. label="客户名称"
  2238. >
  2239. <template slot-scope="scope">
  2240. <el-select
  2241. v-model="scope.row.fCorpid"
  2242. filterable
  2243. remote
  2244. :disabled="browseStatus"
  2245. :remote-method="corpsRemoteMethod"
  2246. placeholder="客户名称"
  2247. >
  2248. <el-option
  2249. v-for="(dict, index) in KHblnoOptions"
  2250. :key="index.fId"
  2251. :label="dict.fName"
  2252. :value="dict.fId"
  2253. ></el-option>
  2254. </el-select>
  2255. </template>
  2256. </el-table-column>
  2257. <el-table-column
  2258. prop="fFeeid"
  2259. header-align="center"
  2260. align="center"
  2261. width="180px"
  2262. label="费用名称"
  2263. >
  2264. <template slot-scope="scope">
  2265. <el-select
  2266. v-model="scope.row.fFeeid"
  2267. filterable
  2268. remote
  2269. :disabled="browseStatus"
  2270. :remote-method="fWRemoteMethod"
  2271. @change="changeFeeId(scope.row)"
  2272. placeholder="费用名称"
  2273. >
  2274. <el-option
  2275. v-for="(dict, index) in fCNameOptions"
  2276. :key="index.fId"
  2277. :label="dict.fName"
  2278. :value="dict.fId"
  2279. ></el-option>
  2280. </el-select>
  2281. </template>
  2282. </el-table-column>
  2283. <el-table-column
  2284. prop="fBusinessType"
  2285. header-align="center"
  2286. align="center"
  2287. width="180px"
  2288. label="作业类型"
  2289. >
  2290. <template slot-scope="scope">
  2291. <el-select
  2292. style="width: 80%"
  2293. v-model="scope.row.fBusinessType"
  2294. filterable
  2295. disabled
  2296. >
  2297. <el-option
  2298. v-for="(dict, index) in businessTypeOption"
  2299. :key="index.dictValue"
  2300. :label="dict.dictLabel"
  2301. :value="dict.dictValue"
  2302. ></el-option>
  2303. </el-select>
  2304. </template>
  2305. </el-table-column>
  2306. <el-table-column
  2307. prop="fFeeunitid"
  2308. header-align="center"
  2309. align="center"
  2310. width="180px"
  2311. label="计价单位"
  2312. >
  2313. <template slot-scope="scope">
  2314. <el-select
  2315. v-model="scope.row.fFeeunitid"
  2316. placeholder="请选择计费单位"
  2317. @change="changeFeeUnit(scope.row)"
  2318. :disabled="browseStatus"
  2319. clearable
  2320. >
  2321. <el-option
  2322. v-for="(dict, index) in jFeetunitOptions"
  2323. :key="index.dictValue"
  2324. :label="dict.dictLabel"
  2325. :value="dict.dictValue"
  2326. ></el-option>
  2327. </el-select>
  2328. </template>
  2329. </el-table-column>
  2330. <el-table-column
  2331. prop="fQty"
  2332. header-align="center"
  2333. align="center"
  2334. width="150px"
  2335. label="数量"
  2336. >
  2337. <template slot-scope="scope">
  2338. <el-input
  2339. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  2340. v-model="scope.row.fQty"
  2341. @change="changeContractAmt(scope.row)"
  2342. :disabled="browseStatus"
  2343. placeholder="数量"
  2344. show-word-limit
  2345. />
  2346. </template>
  2347. </el-table-column>
  2348. <el-table-column
  2349. prop="funitprice"
  2350. header-align="center"
  2351. align="center"
  2352. width="150px"
  2353. label="单价"
  2354. >
  2355. <template slot-scope="scope">
  2356. <el-input
  2357. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  2358. v-model="scope.row.fUnitprice"
  2359. @change="changeContractAmt(scope.row)"
  2360. :disabled="browseStatus || scope.row.fSrcTypeId !== 0"
  2361. placeholder="单价"
  2362. show-word-limit
  2363. />
  2364. </template>
  2365. </el-table-column>
  2366. <el-table-column
  2367. prop="fAmount"
  2368. header-align="center"
  2369. align="center"
  2370. width="150px"
  2371. label="金额"
  2372. >
  2373. <template slot-scope="scope">
  2374. <el-input
  2375. disabled
  2376. oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
  2377. v-model="scope.row.fAmount"
  2378. placeholder="金额"
  2379. show-word-limit
  2380. />
  2381. </template>
  2382. </el-table-column>
  2383. <el-table-column
  2384. prop="fStltypeid"
  2385. header-align="center"
  2386. align="center"
  2387. width="130px"
  2388. label="结算方式"
  2389. >
  2390. <template slot-scope="scope">
  2391. <el-select
  2392. v-model="scope.row.fStltypeid"
  2393. placeholder="请选择结算表票结、月结"
  2394. :disabled="browseStatus"
  2395. >
  2396. <el-option
  2397. v-for="dict in fStltypeOptions"
  2398. :key="dict.dictValue"
  2399. :label="dict.dictLabel"
  2400. :value="parseInt(dict.dictValue)"
  2401. ></el-option>
  2402. </el-select>
  2403. </template>
  2404. </el-table-column>
  2405. <el-table-column
  2406. prop="fCurrency"
  2407. header-align="center"
  2408. align="center"
  2409. width="150px"
  2410. label="币别"
  2411. >
  2412. <template slot-scope="scope">
  2413. <el-input
  2414. v-model="scope.row.fCurrency"
  2415. :disabled="browseStatus"
  2416. placeholder="币别"
  2417. show-word-limit
  2418. />
  2419. </template>
  2420. </el-table-column>
  2421. <el-table-column
  2422. prop="fExrate"
  2423. header-align="center"
  2424. align="center"
  2425. width="150px"
  2426. label="汇率"
  2427. >
  2428. <template slot-scope="scope">
  2429. <el-input
  2430. v-model="scope.row.fExrate"
  2431. :disabled="browseStatus"
  2432. placeholder="汇率"
  2433. show-word-limit
  2434. />
  2435. </template>
  2436. </el-table-column>
  2437. <el-table-column
  2438. prop="fTaxrate"
  2439. header-align="center"
  2440. align="center"
  2441. width="150px"
  2442. label="税率"
  2443. >
  2444. <template slot-scope="scope">
  2445. <el-input
  2446. v-model="scope.row.fTaxrate"
  2447. :disabled="browseStatus"
  2448. placeholder="税率"
  2449. show-word-limit
  2450. />
  2451. </template>
  2452. </el-table-column>
  2453. <el-table-column
  2454. prop="fMblno"
  2455. header-align="center"
  2456. align="center"
  2457. width="130px"
  2458. label="提单号"
  2459. >
  2460. <template slot-scope="scope">
  2461. <el-input
  2462. v-model="scope.row.fMblno"
  2463. :disabled="browseStatus"
  2464. placeholder="提单号"
  2465. show-word-limit
  2466. />
  2467. </template>
  2468. </el-table-column>
  2469. <el-table-column
  2470. prop="fProductName"
  2471. header-align="center"
  2472. align="center"
  2473. width="140px"
  2474. label="品名"
  2475. >
  2476. <template slot-scope="scope">
  2477. <el-input
  2478. v-model="scope.row.fProductName"
  2479. :disabled="browseStatus"
  2480. placeholder="品名"
  2481. show-word-limit
  2482. />
  2483. </template>
  2484. </el-table-column>
  2485. <el-table-column
  2486. prop="fMarks"
  2487. header-align="center"
  2488. align="center"
  2489. width="130px"
  2490. label="品牌"
  2491. >
  2492. <template slot-scope="scope">
  2493. <el-input
  2494. v-model="scope.row.fMarks"
  2495. :disabled="browseStatus"
  2496. placeholder="品牌"
  2497. show-word-limit
  2498. />
  2499. </template>
  2500. </el-table-column>
  2501. <el-table-column
  2502. prop="fSrcTypeId"
  2503. header-align="center"
  2504. align="center"
  2505. width="130px"
  2506. label="来源"
  2507. >
  2508. <template slot-scope="scope">
  2509. <span v-if="scope.row.fSrcTypeId === 0">录入</span>
  2510. <span v-if="scope.row.fSrcTypeId !== 0">协议</span>
  2511. </template>
  2512. </el-table-column>
  2513. <el-table-column
  2514. prop="remarks"
  2515. header-align="center"
  2516. align="center"
  2517. width="150px"
  2518. label="备注"
  2519. >
  2520. <template slot-scope="scope">
  2521. <el-input
  2522. v-model="scope.row.remarks"
  2523. :disabled="browseStatus"
  2524. placeholder="备注"
  2525. show-word-limit
  2526. />
  2527. </template>
  2528. </el-table-column>
  2529. <el-table-column
  2530. header-align="center"
  2531. align="center"
  2532. width="200px"
  2533. label="操作"
  2534. >
  2535. <template slot-scope="scope">
  2536. <el-button
  2537. @click.native.prevent="
  2538. deleteRow(scope.$index, warehouseCrList)
  2539. "
  2540. size="small"
  2541. :disabled="browseStatus"
  2542. >移除</el-button
  2543. >
  2544. </template>
  2545. </el-table-column>
  2546. </el-table>
  2547. </el-collapse-item>
  2548. </el-collapse>
  2549. <div slot="footer" class="dialog-footer">
  2550. <!-- <el-button type="success" prop="打印" @click="showEditDialog_ss"
  2551. >收货单
  2552. </el-button> -->
  2553. <el-button
  2554. type="primary"
  2555. :disabled="approvalStatus"
  2556. @click="addOrUpdateHandle(form)"
  2557. v-if="form.fBillstatus > 3"
  2558. >查看审批</el-button
  2559. >
  2560. <el-button
  2561. type="primary"
  2562. v-if="approVal === true"
  2563. @click="addOrUpdateHand(form)"
  2564. >审批</el-button
  2565. >
  2566. <el-button
  2567. type="warning"
  2568. prop="打印"
  2569. :disabled="printinglist.length <= 0 || browseStatus"
  2570. @click="showEditDialog_s"
  2571. >出库单
  2572. </el-button>
  2573. <el-button
  2574. :disabled="printinglist.length <= 0 || browseStatus"
  2575. @click="discharge"
  2576. >装货</el-button
  2577. >
  2578. <el-button
  2579. type="info"
  2580. prop="打印"
  2581. :disabled="printinglist.length <= 0 || browseStatus"
  2582. @click="printJobSheet"
  2583. >作业单
  2584. </el-button>
  2585. <el-button type="primary" :disabled="browseStatus" @click="saveForm"
  2586. >保 存</el-button
  2587. >
  2588. <el-button
  2589. style="background-color: #008000; color: #fff"
  2590. @click="submitForm"
  2591. :disabled="browseStatus"
  2592. >请核</el-button
  2593. >
  2594. <el-button type="danger" v-if="form.fBillstatus === 6" @click="revoke"
  2595. >撤销请核</el-button
  2596. >
  2597. <el-button
  2598. type="danger"
  2599. v-if="form.fBillstatus === 4 && current === before"
  2600. :disabled="doNot"
  2601. @click="revokeTwo"
  2602. >撤销审批</el-button
  2603. >
  2604. <el-button @click="cancelTwo" v-if="approVal === true">取 消</el-button>
  2605. <el-button @click="cancel" v-else>取 消</el-button>
  2606. </div>
  2607. <!-- 选择库存总账数据 -->
  2608. <el-dialog
  2609. title="库存总账"
  2610. :modal="false"
  2611. style="box-shadow: 0 1px 3px rgba(0, 0, 0, 0) !important"
  2612. :visible.sync="whgenlegVisible"
  2613. width="70%"
  2614. >
  2615. <el-table
  2616. :data="whgenlegList"
  2617. ref="table"
  2618. tooltip-effect="dark"
  2619. width="100%"
  2620. border
  2621. stripe
  2622. @selection-change="whgenlegSelectionChange"
  2623. >
  2624. <el-table-column type="selection" width="55"> </el-table-column>
  2625. <el-table-column
  2626. prop="fMblno"
  2627. header-align="center"
  2628. align="center"
  2629. label="提单号"
  2630. >
  2631. </el-table-column>
  2632. <el-table-column
  2633. prop="fOriginalbilldate"
  2634. header-align="center"
  2635. align="center"
  2636. width="180px"
  2637. label="入库日期"
  2638. >
  2639. </el-table-column>
  2640. <el-table-column
  2641. prop="fGoodsids"
  2642. header-align="center"
  2643. align="center"
  2644. label="品名"
  2645. >
  2646. </el-table-column>
  2647. <el-table-column
  2648. prop="fCntrno"
  2649. header-align="center"
  2650. align="center"
  2651. label="箱号"
  2652. />
  2653. <el-table-column
  2654. prop="fGrossweightblc"
  2655. header-align="center"
  2656. align="center"
  2657. label="毛重"
  2658. />
  2659. <el-table-column
  2660. prop="fNetweightblc"
  2661. header-align="center"
  2662. align="center"
  2663. label="净重"
  2664. />
  2665. <el-table-column
  2666. prop="fQtyblc"
  2667. header-align="center"
  2668. align="center"
  2669. label="结余数量"
  2670. >
  2671. </el-table-column>
  2672. <!-- <el-table-column-->
  2673. <!-- prop="fWarehouseid"-->
  2674. <!-- header-align="center"-->
  2675. <!-- align="center"-->
  2676. <!-- label="仓库"-->
  2677. <!-- >-->
  2678. <!-- </el-table-column>-->
  2679. <el-table-column
  2680. prop="fWarehouseids"
  2681. header-align="center"
  2682. align="center"
  2683. label="库位"
  2684. >
  2685. </el-table-column>
  2686. <el-table-column
  2687. prop="fMarks"
  2688. header-align="center"
  2689. align="center"
  2690. label="品牌"
  2691. >
  2692. </el-table-column>
  2693. </el-table>
  2694. <pagination
  2695. v-show="whgenlegTotal > 0"
  2696. :total="whgenlegTotal"
  2697. :page.sync="whgenlegParams.pageNum"
  2698. :limit.sync="whgenlegParams.pageSize"
  2699. @pagination="getWhgenlegList"
  2700. />
  2701. <div slot="footer" class="dialog-footer">
  2702. <el-button type="primary" @click="whgenlegData"
  2703. >导入库存总账</el-button
  2704. >
  2705. <el-button @click="whgenlegVisible = false">取 消</el-button>
  2706. </div>
  2707. </el-dialog>
  2708. <!-- 选择作业费协议数据 -->
  2709. <el-dialog
  2710. v-dialogDrag
  2711. title="作业费协议"
  2712. :modal="false"
  2713. style="box-shadow: 0 1px 3px rgba(0, 0, 0, 0) !important"
  2714. :visible.sync="warehousingagreements"
  2715. width="70%"
  2716. >
  2717. <template slot="作业费协议">
  2718. <div class="avue-crud__dialog__header">
  2719. <span class="el-dialog__title">
  2720. <span
  2721. style="
  2722. display: inline-block;
  2723. width: 3px;
  2724. height: 20px;
  2725. margin-right: 5px;
  2726. float: left;
  2727. margin-top: 2px;
  2728. "
  2729. ></span>
  2730. </span>
  2731. </div>
  2732. </template>
  2733. <el-menu
  2734. :default-active="activeIndex"
  2735. v-if="Navigation === true"
  2736. class="el-menu-demo"
  2737. mode="horizontal"
  2738. @select="handleSelect"
  2739. >
  2740. <el-menu-item index="1">车队作业费</el-menu-item>
  2741. <el-menu-item index="2">劳务作业费</el-menu-item>
  2742. </el-menu>
  2743. <el-table
  2744. :data="tasklegList"
  2745. ref="table"
  2746. tooltip-effect="dark"
  2747. width="100%"
  2748. border
  2749. stripe
  2750. @selection-change="whgenlegSelectionChange"
  2751. >
  2752. <el-table-column type="selection" width="55"> </el-table-column>
  2753. <el-table-column label="行号" type="index" width="80">
  2754. </el-table-column>
  2755. <el-table-column
  2756. prop="fCorpname"
  2757. header-align="center"
  2758. align="center"
  2759. label="客户名称"
  2760. >
  2761. </el-table-column>
  2762. <el-table-column
  2763. prop="fName"
  2764. header-align="center"
  2765. align="center"
  2766. width="180px"
  2767. label="费用名称"
  2768. >
  2769. </el-table-column>
  2770. <el-table-column
  2771. prop="fFeeUnitid"
  2772. header-align="center"
  2773. align="center"
  2774. label="计价单位"
  2775. >
  2776. <template slot-scope="scope">
  2777. <span v-if="scope.row.fFeeUnitid === 1">件数</span>
  2778. <span v-if="scope.row.fFeeUnitid === 2">毛重</span>
  2779. <span v-if="scope.row.fFeeUnitid === 3">净重</span>
  2780. <span v-if="scope.row.fFeeUnitid === 4">尺码</span>
  2781. <span v-if="scope.row.fFeeUnitid === 5">固定</span>
  2782. <span v-if="scope.row.fFeeUnitid === 5">其他</span>
  2783. <span v-if="scope.row.fFeeUnitid === 7">箱量</span>
  2784. </template>
  2785. </el-table-column>
  2786. <el-table-column
  2787. prop="fPrice"
  2788. header-align="center"
  2789. align="center"
  2790. label="单价"
  2791. >
  2792. </el-table-column>
  2793. </el-table>
  2794. <pagination
  2795. v-show="whgenlegTotal > 0"
  2796. :total="whgenlegTotal"
  2797. :page.sync="queryParams.pageNum"
  2798. :limit.sync="queryParams.pageSize"
  2799. @pagination="getWhgenlegList"
  2800. />
  2801. <div slot="footer" class="dialog-footer">
  2802. <el-button type="primary" @click="zhgenlegData">导入作业费</el-button>
  2803. <el-button
  2804. @click="
  2805. warehousingagreements = false;
  2806. Navigation = false;
  2807. "
  2808. >取 消</el-button
  2809. >
  2810. </div>
  2811. </el-dialog>
  2812. <!-- 选择仓储费协议数据 -->
  2813. <el-dialog
  2814. title="仓储费协议"
  2815. :modal="false"
  2816. style="box-shadow: 0 1px 3px rgba(0, 0, 0, 0) !important"
  2817. :visible.sync="storageAgreements"
  2818. width="70%"
  2819. >
  2820. <el-table
  2821. :data="tasklegList"
  2822. ref="table"
  2823. tooltip-effect="dark"
  2824. width="100%"
  2825. border
  2826. stripe
  2827. @selection-change="whgenlegSelectionChange"
  2828. >
  2829. <el-table-column type="selection" width="55"> </el-table-column>
  2830. <el-table-column
  2831. label="行号"
  2832. type="index"
  2833. width="80"
  2834. ></el-table-column>
  2835. <el-table-column
  2836. prop="fContractno"
  2837. header-align="center"
  2838. align="center"
  2839. label="提单号"
  2840. >
  2841. </el-table-column>
  2842. <el-table-column
  2843. prop="fCorpid"
  2844. header-align="center"
  2845. align="center"
  2846. label="客户名称"
  2847. >
  2848. </el-table-column>
  2849. <el-table-column
  2850. prop="fGoodsids"
  2851. header-align="center"
  2852. align="center"
  2853. label="品名"
  2854. >
  2855. </el-table-column>
  2856. <el-table-column
  2857. prop="fBegindate"
  2858. header-align="center"
  2859. align="center"
  2860. width="180px"
  2861. label="入库日期"
  2862. >
  2863. </el-table-column>
  2864. </el-table>
  2865. <pagination
  2866. v-show="whgenlegTotal > 0"
  2867. :total="whgenlegTotal"
  2868. :page.sync="whgenlegParams.pageNum"
  2869. :limit.sync="whgenlegParams.pageSize"
  2870. @pagination="getWhgenlegList"
  2871. />
  2872. <div slot="footer" class="dialog-footer">
  2873. <el-button type="primary" @click="storageFeeExport"
  2874. >导入仓储费</el-button
  2875. >
  2876. <el-button @click="storageAgreements = false">取 消</el-button>
  2877. </div>
  2878. </el-dialog>
  2879. <el-dialog
  2880. title="出库页面"
  2881. :modal="false"
  2882. style="box-shadow: 0 1px 3px rgba(0, 0, 0, 0) !important"
  2883. :visible.sync="editDialogVisible_s"
  2884. :close-on-click-modal="false"
  2885. width="70%"
  2886. >
  2887. <table
  2888. id="print_area"
  2889. class="biaoge zzss"
  2890. border="1"
  2891. style="border-collapse: collapse; border: none"
  2892. >
  2893. <tr>
  2894. <td
  2895. width="100"
  2896. colspan="7"
  2897. class="zzss"
  2898. style="font-size: 28px; font-weight: bold; border: none"
  2899. >
  2900. {{ company }}进仓单
  2901. </td>
  2902. </tr>
  2903. <tr>
  2904. <td
  2905. width="100"
  2906. colspan="7"
  2907. class="zzss"
  2908. style="font-size: 28px; font-weight: bold; border: none"
  2909. >
  2910. &nbsp;
  2911. </td>
  2912. </tr>
  2913. <tr>
  2914. <td width="450" colspan="2" class="zzss">
  2915. 货权方:{{ form.fCorpName }}
  2916. </td>
  2917. <td width="450" colspan="2" class="zzss">
  2918. 仓库:{{ form.fWarehouseids }}
  2919. </td>
  2920. <td width="450" colspan="3" class="zzss">地址:{{ fAddr }}</td>
  2921. </tr>
  2922. <tr>
  2923. <td width="200" colspan="2" class="zzss">
  2924. 保管方:{{ company }}有限公司
  2925. </td>
  2926. <td width="200" colspan="2" class="zzss">
  2927. 联系人:{{ form.fContacts }}
  2928. </td>
  2929. <td width="200" colspan="3" class="zzss">电话:{{ form.fTel }}</td>
  2930. </tr>
  2931. <tr>
  2932. <td width="100" border="1">提单号</td>
  2933. <td width="100">品名</td>
  2934. <td width="100">箱型</td>
  2935. <td width="100">品牌</td>
  2936. <td width="100">件数</td>
  2937. <td width="100">重量</td>
  2938. <td width="100">包装规格</td>
  2939. </tr>
  2940. <tr>
  2941. <td width="100">{{ form.fMblno }}</td>
  2942. <td width="100">{{ form.fProductName }}</td>
  2943. <td width="100">{{ dataList.fCntrtype }}</td>
  2944. <td width="100">{{ form.fMarks }}</td>
  2945. <td width="100">包</td>
  2946. <td width="100">吨</td>
  2947. <td width="100" v-if="dataList.length !== 0">
  2948. {{ dataList[0].fPackagespecs }}
  2949. </td>
  2950. <td width="100" v-else></td>
  2951. </tr>
  2952. <tr>
  2953. <td width="100">序号</td>
  2954. <td width="100">入货日期</td>
  2955. <td width="100">箱量(20GP)</td>
  2956. <td width="100">重量</td>
  2957. <td width="100">件数</td>
  2958. <td width="100">入库重量</td>
  2959. <td width="100">入库件数</td>
  2960. </tr>
  2961. <tr v-for="(item, index) in printinglist" :key="index">
  2962. <td width="100">{{ index + 1 }}</td>
  2963. <td width="100">{{ item.fChargedate }}</td>
  2964. <td width="100">{{ item.fCntqty }}</td>
  2965. <td width="100">{{ item.fGrossweight }}</td>
  2966. <td width="100">{{ item.fPlanqty }}</td>
  2967. <td width="100">{{ item.fNetweight }}</td>
  2968. <td width="100">{{ item.fQty }}</td>
  2969. </tr>
  2970. <tr>
  2971. <td width="100" colspan="2">合计:</td>
  2972. <td width="100">{{ fCntqty }}</td>
  2973. <td width="100">{{ fGrossweight }}</td>
  2974. <td width="100">{{ fPlanqty }}</td>
  2975. <td width="100">{{ fNetweight }}</td>
  2976. <td width="100">{{ fQty }}</td>
  2977. </tr>
  2978. <tr>
  2979. <td width="100">备注:</td>
  2980. <td width="100" colspan="6"></td>
  2981. </tr>
  2982. <tr>
  2983. <td width="100" colspan="7" class="zzss">
  2984. 本进仓单经仓管员签字并经保管方盖章后即专项作为货物所有人的货权证明,本单据不得转让。
  2985. </td>
  2986. </tr>
  2987. <tr style="border: none">
  2988. <td width="100" colspan="2" class="zzss" style="border: none">
  2989. 开单员:
  2990. </td>
  2991. <td width="100" colspan="3" class="zzss" style="border: none">
  2992. {{ form.createBy }}
  2993. </td>
  2994. <td width="100" colspan="2" class="zzss" style="border: none">
  2995. 仓管员:{{ form.fStorekeeper }}
  2996. </td>
  2997. </tr>
  2998. <tr style="border: none">
  2999. <td width="100" colspan="2" class="zzss" style="border: none">
  3000. 开单时间:
  3001. </td>
  3002. <td width="100" colspan="3" class="zzss" style="border: none">
  3003. {{ fBsdate }}
  3004. </td>
  3005. <td width="100" colspan="2" class="zzss" style="border: none">
  3006. (盖章)
  3007. </td>
  3008. </tr>
  3009. </table>
  3010. <button @click="printSomething">打印</button>
  3011. </el-dialog>
  3012. <el-dialog
  3013. title="收货单打印"
  3014. style="box-shadow: 0 1px 3px rgba(0, 0, 0, 0) !important"
  3015. :visible.sync="editDialogVisible_ss"
  3016. :close-on-click-modal="false"
  3017. width="70%"
  3018. :modal="false"
  3019. >
  3020. <table
  3021. id="print_area"
  3022. class="biaoge zzss"
  3023. border="1"
  3024. style="border-collapse: collapse; border: none; margin-top: 100px"
  3025. >
  3026. <tr>
  3027. <td
  3028. width="1400"
  3029. colspan="6"
  3030. class="zzss"
  3031. style="font-size: 26px; font-weight: bold; border: none"
  3032. >
  3033. {{ company }}有限公司收货单
  3034. </td>
  3035. </tr>
  3036. <!-- <div v-for="{{}}" :key="index"> -->
  3037. <tr>
  3038. <td width="400">车号:</td>
  3039. <td width="400">{{ fTruckno }}</td>
  3040. <td
  3041. width="500"
  3042. colspan="2"
  3043. style="padding-bottom: 0px; font-weight: bold; border: none"
  3044. class="zzss"
  3045. >
  3046. 日期:
  3047. </td>
  3048. <td
  3049. width="500"
  3050. colspan="2"
  3051. style="padding-bottom: 0px; font-weight: bold; border: none"
  3052. class="zzss"
  3053. >
  3054. {{ fBsdate }}
  3055. </td>
  3056. </tr>
  3057. <tr v-for="(item, index) in printinglist" :key="index">
  3058. <td width="250">货物品名:</td>
  3059. <td width="250">{{ item.fGoodsids }}</td>
  3060. <td width="250">白色聚吕</td>
  3061. <!-- <td width="200" colspan="2">件数: 161件</td> -->
  3062. <!-- <td width="200"></td> -->
  3063. <td width="200" colspan="4" class="zzss">
  3064. 件数: {{ item.fQty }}件
  3065. </td>
  3066. </tr>
  3067. <!-- <tr>
  3068. <td width="1400" colspan="6">&nbsp;</td>
  3069. </tr> -->
  3070. <tr v-for="(item, index) in printinglist" :key="index">
  3071. <td>备注:</td>
  3072. <td colspan="5">{{ item.remark }}</td>
  3073. </tr>
  3074. <tr>
  3075. <td>司机签字:</td>
  3076. <td></td>
  3077. <td colspan="2">司机电话:</td>
  3078. <td colspan="2">{{ form.fTel }}</td>
  3079. </tr>
  3080. <tr>
  3081. <td>制单人:</td>
  3082. <td>{{ form.createBy }}</td>
  3083. <td colspan="2">收货人:</td>
  3084. <td colspan="2">{{ form.fContacts }}</td>
  3085. </tr>
  3086. <!-- <tr>
  3087. <td colspan="6" class="zzss">&nbsp;</td>
  3088. </tr> -->
  3089. <tr>
  3090. <td width="280" class="zzss"></td>
  3091. <td width="280" class="zzss"></td>
  3092. <td width="280" class="zzss"></td>
  3093. <td width="280" class="zzss"></td>
  3094. <td width="290" class="zzss">地址:{{ fAddr }}</td>
  3095. <td width="290" class="zzss">电话:{{ form.fTel }}</td>
  3096. </tr>
  3097. <!-- </div> -->
  3098. </table>
  3099. <button @click="printSomething">打印</button>
  3100. </el-dialog>
  3101. <el-dialog
  3102. title="出库作业单打印"
  3103. style="box-shadow: 0 1px 3px rgba(0, 0, 0, 0) !important"
  3104. :visible.sync="openPrintJobSheet"
  3105. :close-on-click-modal="false"
  3106. width="70%"
  3107. :modal="false"
  3108. >
  3109. <table
  3110. id="print_area"
  3111. class="biaoge zzss"
  3112. border="1"
  3113. style="border-collapse: collapse; border: none"
  3114. >
  3115. <tr>
  3116. <td
  3117. width="1400"
  3118. colspan="6"
  3119. class="zzss"
  3120. style="font-size: 20px; font-weight: bold; border: none"
  3121. >
  3122. {{ company }}有限公司作业单
  3123. </td>
  3124. </tr>
  3125. <tr>
  3126. <td
  3127. colspan="5"
  3128. style="font-size: 20px; font-weight: bold; border: none"
  3129. ></td>
  3130. <td
  3131. v-if="!fSerialNumber"
  3132. style="font-size: 20px; font-weight: bold; border: none"
  3133. >
  3134. 流水号:
  3135. </td>
  3136. <td v-else style="font-size: 20px; font-weight: bold; border: none">
  3137. 流水号:{{ fSerialNumber.slice(8, 11) }}
  3138. </td>
  3139. </tr>
  3140. <tr>
  3141. <td
  3142. width="900"
  3143. colspan="2"
  3144. class="zzss"
  3145. style="padding: 6px; font-weight: bold"
  3146. >
  3147. 车辆类型:{{ fCartype }}
  3148. </td>
  3149. <td
  3150. colspan="2"
  3151. class="zzss"
  3152. style="padding: 6px; font-weight: bold"
  3153. >
  3154. 作业类型:{{ businessType }}
  3155. </td>
  3156. <td
  3157. width="500"
  3158. v-if="!fBsdate || !fBstime"
  3159. colspan="2"
  3160. style="padding-bottom: 0; font-weight: bold"
  3161. >
  3162. 入库时间:
  3163. </td>
  3164. <td
  3165. v-else
  3166. width="500"
  3167. colspan="2"
  3168. style="padding: 6px; font-weight: bold"
  3169. class="zzss"
  3170. >
  3171. 出库日期:{{ fBsdate }} {{ fBstime.slice(11, 19) }}
  3172. </td>
  3173. </tr>
  3174. <!-- <tr v-for="(item, index) in printinglist" :key="index">-->
  3175. <!-- <td width="200">车号</td>-->
  3176. <!-- <td width="200">{{ item.fTruckno }}</td>-->
  3177. <!-- <td width="200">货物品名</td>-->
  3178. <!-- <td width="200">{{ item.fGoodsids }}</td>-->
  3179. <!-- <td width="200">{{item.fBusinessTypes}}</td>-->
  3180. <!-- <td width="200">{{item.fMarks}}</td>-->
  3181. <!-- </tr>-->
  3182. <tr>
  3183. <td width="200">车号</td>
  3184. <td width="200">货物品名</td>
  3185. <td width="200">提单号</td>
  3186. <td width="200">品牌/规格/产地</td>
  3187. <td width="200">净重(kg)</td>
  3188. <td width="200">件数/规格</td>
  3189. </tr>
  3190. <tr v-for="(item, index) in printinglist" :key="index">
  3191. <td width="200">{{ item.fTruckno }}</td>
  3192. <td width="200">{{ item.fGoodsids }}</td>
  3193. <td width="200">{{ item.fMblno }}</td>
  3194. <td width="200">{{ item.fBusinessTypes }}/{{ item.fMarks }}</td>
  3195. <td width="200">{{ item.fNetweight }}</td>
  3196. <td width="200">{{ item.fQty }}/{{ item.fPackagespecs }}</td>
  3197. </tr>
  3198. <tr>
  3199. <td width="1400" colspan="6">&nbsp;</td>
  3200. </tr>
  3201. <tr>
  3202. <td>备注:</td>
  3203. <td colspan="5">{{ form.remark }}</td>
  3204. </tr>
  3205. <tr v-for="(item, index) in feelDrSelection" :key="'info2-' + index">
  3206. <td width="200">收费</td>
  3207. <td width="200">{{ item.fFeeName }}</td>
  3208. <td width="200">货物品名</td>
  3209. <td width="200">元</td>
  3210. <td width="200">{{ item.fAmount }}</td>
  3211. </tr>
  3212. <tr>
  3213. <td>司机签字:</td>
  3214. <td></td>
  3215. <td>电话</td>
  3216. <td colspan="1" v-if="dataList.length !== 0">
  3217. {{ dataList[0].fDriverTel }}
  3218. </td>
  3219. <td colspan="1" v-else>1</td>
  3220. <td colspan="2" rowspan="2">
  3221. 确认货物数量无误,包装于货物完好!<br />出库盖好篷布,如有违背责任自负<br />装卸工是否收小费
  3222. </td>
  3223. </tr>
  3224. <tr>
  3225. <td>制表:</td>
  3226. <td>{{ form.createBy }}</td>
  3227. <td>机械/人工:</td>
  3228. <td>{{ form.fContacts }}</td>
  3229. </tr>
  3230. <!-- <tr>-->
  3231. <!-- <td colspan="6" class="zzss">&nbsp;</td>-->
  3232. <!-- </tr>-->
  3233. <tr>
  3234. <td width="290" class="zzss" colspan="2">地址:{{ fAddr }}</td>
  3235. <td width="290" class="zzss" colspan="2">电话:{{ form.fTel }}</td>
  3236. <td width="280" class="zzss"></td>
  3237. <td width="280" class="zzss"></td>
  3238. </tr>
  3239. </table>
  3240. <div>
  3241. <el-button type="primary" @click="addList">打印</el-button>
  3242. <el-button @click="closeWindow">取消</el-button>
  3243. </div>
  3244. </el-dialog>
  3245. <el-dialog
  3246. :visible.sync="print_lhd"
  3247. width="70%"
  3248. :close-on-click-modal="false"
  3249. :modal="false"
  3250. >
  3251. <div id="print_area1" class="print-div">
  3252. <div
  3253. class="print-title"
  3254. style="
  3255. display: flex;
  3256. justify-content: center;
  3257. font-size: 24px;
  3258. margin-bottom: 5px;
  3259. "
  3260. >
  3261. {{ company }}有限公司
  3262. </div>
  3263. <div
  3264. style="
  3265. display: flex;
  3266. justify-content: center;
  3267. font-size: 18px;
  3268. margin-bottom: 5px;
  3269. "
  3270. >
  3271. <div>出&nbsp;库&nbsp;计&nbsp;划&nbsp;单</div>
  3272. </div>
  3273. <div
  3274. style="
  3275. display: flex;
  3276. justify-content: space-between;
  3277. margin-bottom: 5px;
  3278. "
  3279. class="print_form"
  3280. >
  3281. <div>
  3282. <div>客户名称:{{ form.fCorpidName }}</div>
  3283. </div>
  3284. <div>
  3285. <div>存放仓库:{{ stockName }}</div>
  3286. </div>
  3287. </div>
  3288. <div class="print_table" style="display: flex">
  3289. <table
  3290. border="0"
  3291. cellspacing="0"
  3292. cellpadding="0"
  3293. style="width: 100%"
  3294. >
  3295. <tr>
  3296. <td>品名</td>
  3297. <td colspan="3">{{ form.fProductName }}</td>
  3298. <td colspan="2">清单号</td>
  3299. <td colspan="3">{{ form.fCustomno }}</td>
  3300. </tr>
  3301. <tr>
  3302. <td>提单号</td>
  3303. <td colspan="3">{{ form.fMblno }}</td>
  3304. <td colspan="2">预计出库日期</td>
  3305. <td colspan="3">{{ form.fChargedate }}</td>
  3306. </tr>
  3307. <tr>
  3308. <td>原入库箱号</td>
  3309. <td>出库车号</td>
  3310. <td>垛位</td>
  3311. <td>件数</td>
  3312. <td>净重</td>
  3313. <td>提货人签字手印</td>
  3314. <td>提货人电话</td>
  3315. <td>所收费用</td>
  3316. <td>备注</td>
  3317. </tr>
  3318. <tr v-for="(item, index) in printinglist" :key="index">
  3319. <td>{{ item.fCntrno }}</td>
  3320. <td>{{ item.fTruckno }}</td>
  3321. <td>{{ item.fWarehouseInformation }}</td>
  3322. <td>{{ item.fQty }}</td>
  3323. <td>{{ item.fNetweight }}</td>
  3324. <td></td>
  3325. <td></td>
  3326. <td></td>
  3327. <td></td>
  3328. </tr>
  3329. <tr>
  3330. <td colspan="3">合计</td>
  3331. <td>{{ allFqty }}</td>
  3332. <td>{{ allfNetweight }}</td>
  3333. <td></td>
  3334. <td></td>
  3335. <td></td>
  3336. <td></td>
  3337. </tr>
  3338. </table>
  3339. </div>
  3340. <div
  3341. style="
  3342. display: flex;
  3343. justify-content: space-between;
  3344. font-size: 12px;
  3345. "
  3346. >
  3347. <div>库管:{{ form.fContacts }}</div>
  3348. <div>制单人:{{ form.createBy }}</div>
  3349. <div style="width: 150px">叉车:</div>
  3350. </div>
  3351. <div
  3352. style="
  3353. display: flex;
  3354. justify-content: space-between;
  3355. font-size: 12px;
  3356. "
  3357. >
  3358. <div>初始审核人:</div>
  3359. <div style="width: 150px">复式审核人:</div>
  3360. </div>
  3361. </div>
  3362. <span slot="footer" class="dialog-footer">
  3363. <el-button type="primary" :disabled="browseStatus" @click="addprint"
  3364. >打印
  3365. </el-button>
  3366. <el-button @click="print_lhd = false">取消 </el-button>
  3367. </span>
  3368. </el-dialog>
  3369. <el-dialog
  3370. :visible.sync="print_hwqr"
  3371. width="70%"
  3372. :close-on-click-modal="false"
  3373. :modal="false"
  3374. >
  3375. <div id="print_area1" class="print-div">
  3376. <div
  3377. class="print-title"
  3378. style="
  3379. display: flex;
  3380. justify-content: center;
  3381. font-size: 24px;
  3382. margin-bottom: 5px;
  3383. "
  3384. >
  3385. {{ company }}有限公司
  3386. </div>
  3387. <div
  3388. style="
  3389. display: flex;
  3390. justify-content: center;
  3391. font-size: 18px;
  3392. margin-bottom: 5px;
  3393. "
  3394. >
  3395. <div>出&nbsp;库&nbsp;单</div>
  3396. </div>
  3397. <div style="margin-bottom: 5px" class="print_form">
  3398. <div style="width: 150px">存货地点:</div>
  3399. </div>
  3400. <div class="print_table" style="display: flex">
  3401. <table
  3402. border="0"
  3403. cellspacing="0"
  3404. cellpadding="0"
  3405. style="width: 100%"
  3406. >
  3407. <tr>
  3408. <td>品名</td>
  3409. <td colspan="2">{{ form.fProductName }}</td>
  3410. <td colspan="1">清单号</td>
  3411. <td colspan="3">{{ form.fCustomno }}</td>
  3412. </tr>
  3413. <tr>
  3414. <td>提单号</td>
  3415. <td colspan="2">{{ form.fMblno }}</td>
  3416. <td colspan="1">预计出库日期</td>
  3417. <td colspan="3">{{ form.fChargedate }}</td>
  3418. </tr>
  3419. <tr>
  3420. <td>原入库箱号</td>
  3421. <td>出库车号</td>
  3422. <td>铅封号</td>
  3423. <td>垛位</td>
  3424. <td>件数</td>
  3425. <td>净重</td>
  3426. <td>备注</td>
  3427. </tr>
  3428. <tr v-for="(item, index) in printinglist" :key="index">
  3429. <td></td>
  3430. <td>{{ item.fTruckno }}</td>
  3431. <td></td>
  3432. <td>{{ item.fWarehouseInformation }}</td>
  3433. <td>{{ item.fQty }}</td>
  3434. <td>{{ item.fNetweight }}</td>
  3435. <td>{{ item.remark }}</td>
  3436. </tr>
  3437. <tr>
  3438. <td colspan="3">合计:</td>
  3439. <td></td>
  3440. <td>{{ allFqty }}</td>
  3441. <td>{{ allfNetweight }}</td>
  3442. <td></td>
  3443. </tr>
  3444. </table>
  3445. </div>
  3446. <div
  3447. style="
  3448. display: flex;
  3449. justify-content: space-between;
  3450. font-size: 12px;
  3451. "
  3452. >
  3453. <div>制单人:{{ form.createBy }}</div>
  3454. <div style="width: 100px">审核人:</div>
  3455. </div>
  3456. </div>
  3457. <span slot="footer" class="dialog-footer">
  3458. <el-button type="primary" :disabled="browseStatus" @click="addprint"
  3459. >打印
  3460. </el-button>
  3461. <el-button @click="print_hwqr = false">取消 </el-button>
  3462. </span>
  3463. </el-dialog>
  3464. <el-dialog
  3465. :visible.sync="print_lwqr"
  3466. width="70%"
  3467. :close-on-click-modal="false"
  3468. :modal="false"
  3469. >
  3470. <div id="print_area1" class="print-div">
  3471. <div
  3472. class="print-title"
  3473. style="
  3474. display: flex;
  3475. justify-content: center;
  3476. font-size: 24px;
  3477. margin-bottom: 5px;
  3478. "
  3479. >
  3480. {{ company }}有限公司
  3481. </div>
  3482. <div
  3483. style="
  3484. display: flex;
  3485. justify-content: center;
  3486. font-size: 18px;
  3487. margin-bottom: 5px;
  3488. "
  3489. >
  3490. <div>出&nbsp;库&nbsp;单</div>
  3491. </div>
  3492. <div
  3493. style="display: flex; justify-content: flex-end; margin-bottom: 5px"
  3494. >
  3495. <div>
  3496. <div style="width: 150px">存货地点:</div>
  3497. </div>
  3498. </div>
  3499. <div class="print_table" style="display: flex">
  3500. <table
  3501. border="0"
  3502. cellspacing="0"
  3503. cellpadding="0"
  3504. style="width: 100%"
  3505. >
  3506. <tr>
  3507. <td>品名</td>
  3508. <td colspan="2">{{ form.fProductName }}</td>
  3509. <td colspan="1">清单号</td>
  3510. <td colspan="3">{{ form.fCustomno }}</td>
  3511. </tr>
  3512. <tr>
  3513. <td>提单号</td>
  3514. <td colspan="2">{{ form.fMblno }}</td>
  3515. <td colspan="1">预计出库日期</td>
  3516. <td colspan="3">{{ form.fChargedate }}</td>
  3517. </tr>
  3518. <tr>
  3519. <td>原入库箱号</td>
  3520. <td>出库车号</td>
  3521. <td>铅封号</td>
  3522. <td>垛位</td>
  3523. <td>件数</td>
  3524. <td>净重</td>
  3525. <td>备注</td>
  3526. </tr>
  3527. <tr v-for="(item, index) in printinglist" :key="index">
  3528. <td></td>
  3529. <td>{{ item.fTruckno }}</td>
  3530. <td></td>
  3531. <td>{{ item.fWarehouseInformation }}</td>
  3532. <td>{{ item.fQty }}</td>
  3533. <td>{{ item.fNetweight }}</td>
  3534. <td>{{ item.remark }}</td>
  3535. </tr>
  3536. <tr>
  3537. <td colspan="3">合计:</td>
  3538. <td></td>
  3539. <td>{{ allFqty }}</td>
  3540. <td>{{ allfNetweight }}</td>
  3541. <td></td>
  3542. </tr>
  3543. </table>
  3544. </div>
  3545. <div
  3546. style="
  3547. display: flex;
  3548. justify-content: space-between;
  3549. font-size: 12px;
  3550. "
  3551. >
  3552. <div>库管:{{ form.fContacts }}</div>
  3553. <div>制单人:{{ form.createBy }}</div>
  3554. <div style="width: 150px">叉车:</div>
  3555. </div>
  3556. <div
  3557. style="
  3558. display: flex;
  3559. justify-content: space-between;
  3560. font-size: 12px;
  3561. "
  3562. >
  3563. <div>初始审核人:</div>
  3564. <div style="width: 150px">复式审核人:</div>
  3565. </div>
  3566. </div>
  3567. <span slot="footer" class="dialog-footer">
  3568. <el-button type="primary" :disabled="browseStatus" @click="addprint"
  3569. >打印
  3570. </el-button>
  3571. <el-button @click="print_lwqr = false">取消 </el-button>
  3572. </span>
  3573. </el-dialog>
  3574. </el-dialog>
  3575. <el-dialog
  3576. title="选择库位"
  3577. :data="treeselectList"
  3578. :visible.sync="choiceWarehouse"
  3579. width="30%"
  3580. :before-close="hanDleclose"
  3581. >
  3582. <treeselect
  3583. v-model="treeselectList.fWarehouselocid"
  3584. @select="getAlltree"
  3585. :options="fWarehouseidOptions"
  3586. :show-count="true"
  3587. :disable-branch-nodes="true"
  3588. placeholder="请选择归属库区"
  3589. />
  3590. <div>{{ Warehouse }}</div>
  3591. <span slot="footer" class="dialog-footer">
  3592. <el-button @click="choiceWarehouse = false">取 消</el-button>
  3593. <el-button type="primary" @click="confirm">确 定</el-button>
  3594. </span>
  3595. </el-dialog>
  3596. </div>
  3597. </template>
  3598. <script>
  3599. import print from "print-js";
  3600. import {
  3601. addWhgenleg,
  3602. listWarehousebills,
  3603. getWarehousebills,
  3604. delWarehousebills,
  3605. addWarehousebills,
  3606. updateCredit,
  3607. addJoblist,
  3608. disChargelist,
  3609. warehouseSubmission,
  3610. updateWarehousebills,
  3611. exportWarehousebills,
  3612. revokeTwo,
  3613. revoke,
  3614. delOutStock_s,
  3615. serialNumber,
  3616. } from "@/api/warehouseBusiness/warehouseOutStock";
  3617. import { listAgreement, operationAgreement } from "@/api/agreement/agreement";
  3618. import { listAgreements } from "@/api/warehouseBusiness/agreement";
  3619. import { listCorps } from "@/api/basicdata/corps";
  3620. import { listFees, getFees } from "@/api/basicdata/fees";
  3621. import {
  3622. listWarehouse,
  3623. listWarehousesss,
  3624. treeselect,
  3625. } from "@/api/basicdata/warehouse";
  3626. import { listArea } from "@/api/basicdata/area";
  3627. import { listGoods } from "@/api/basicdata/goods";
  3628. import { listUser, queryUserVal } from "@/api/system/user";
  3629. import { listWhgenleg } from "@/api/reportManagement/whgenleg";
  3630. import Global from "@/layout/components/global";
  3631. import ApprovalComments from "@/views/startApproval";
  3632. import AddOrUpdate from "@/views/viewApproval";
  3633. import Treeselect from "@riophae/vue-treeselect";
  3634. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  3635. import { getToken } from "@/utils/auth";
  3636. import Cookies from "js-cookie";
  3637. import { addSet, select, resetModule } from "@/api/system/set";
  3638. import draggable from "vuedraggable";
  3639. import Vue from "vue";
  3640. Vue.directive("dialogDrag", {
  3641. bind(el, binding, vnode, oldVnode) {
  3642. const dialogHeaderEl = el.querySelector(".el-dialog__header");
  3643. const dragDom = el.querySelector(".el-dialog");
  3644. const enlarge = el.querySelector(".enlarge");
  3645. dialogHeaderEl.style.cursor = "move";
  3646. // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
  3647. const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null);
  3648. if (enlarge) {
  3649. enlarge.onclick = (e) => {
  3650. dragDom.style.top = "0px";
  3651. dragDom.style.left = "0px";
  3652. };
  3653. }
  3654. dialogHeaderEl.onmousedown = (e) => {
  3655. // 鼠标按下,计算当前元素距离可视区的距离
  3656. const disX = e.clientX - dialogHeaderEl.offsetLeft;
  3657. const disY = e.clientY - dialogHeaderEl.offsetTop;
  3658. // 获取到的值带px 正则匹配替换
  3659. let styL, styT;
  3660. // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
  3661. if (sty.left.includes("%")) {
  3662. styL =
  3663. +document.body.clientWidth * (+sty.left.replace(/\%/g, "") / 100);
  3664. styT =
  3665. +document.body.clientHeight * (+sty.top.replace(/\%/g, "") / 100);
  3666. } else {
  3667. styL = +sty.left.replace(/\px/g, "");
  3668. styT = +sty.top.replace(/\px/g, "");
  3669. }
  3670. document.onmousemove = function (e) {
  3671. // 通过事件委托,计算移动的距离
  3672. const l = e.clientX - disX;
  3673. const t = e.clientY - disY;
  3674. // 移动当前元素
  3675. if (t + styT >= 0) {
  3676. dragDom.style.top = `${t + styT}px`;
  3677. }
  3678. dragDom.style.left = `${l + styL}px`;
  3679. // 将此时的位置传出去
  3680. // binding.value({x:e.pageX,y:e.pageY})
  3681. };
  3682. document.onmouseup = function (e) {
  3683. document.onmousemove = null;
  3684. document.onmouseup = null;
  3685. };
  3686. };
  3687. },
  3688. });
  3689. export default {
  3690. name: "Warehousebills",
  3691. components: {
  3692. AddOrUpdate,
  3693. draggable,
  3694. ApprovalComments,
  3695. Treeselect,
  3696. },
  3697. data() {
  3698. return {
  3699. fCntridlist:[],
  3700. idCopy: "",
  3701. //全屏放大
  3702. dialogFull: false,
  3703. drag: false,
  3704. allFqty: 0,
  3705. allfGrossweight: 0,
  3706. allfNetweight: 0,
  3707. print_lhd: false,
  3708. print_hwqr: false,
  3709. print_lwqr: false,
  3710. print_dpxx: false,
  3711. stockName: "",
  3712. makeDate: "",
  3713. tableDate:[
  3714. {
  3715. surface: "1",
  3716. label: "createBy",
  3717. name: "制单人",
  3718. checked: 0,
  3719. width: 100,
  3720. },
  3721. {
  3722. surface: "2",
  3723. label: "fStorekeeper",
  3724. name: "仓管员",
  3725. checked: 0,
  3726. width: 100,
  3727. },
  3728. {
  3729. surface: "3",
  3730. label: "fItemsStatus",
  3731. name: "出库状态",
  3732. checked: 0,
  3733. width: 100,
  3734. },
  3735. {
  3736. surface: "4",
  3737. label: "fCorpid",
  3738. name: "货权方",
  3739. checked: 0,
  3740. width: 100,
  3741. },
  3742. {
  3743. surface: "6",
  3744. label: "fProductName",
  3745. name: "品名",
  3746. checked: 0,
  3747. width: 100,
  3748. },
  3749. {
  3750. surface: "7",
  3751. label: "fMarks",
  3752. name: "品牌",
  3753. checked: 0,
  3754. width: 100,
  3755. },
  3756. {
  3757. surface: "8",
  3758. label: "fBsdate",
  3759. name: "出库日期",
  3760. checked: 0,
  3761. width: 100,
  3762. },
  3763. {
  3764. surface: "9",
  3765. label: "fWarehouseid",
  3766. name: "仓库",
  3767. checked: 0,
  3768. width: 100,
  3769. },
  3770. {
  3771. surface: "10",
  3772. label: "fPlanqty",
  3773. name: "计划件数",
  3774. checked: 0,
  3775. width: 100,
  3776. },
  3777. {
  3778. surface: "11",
  3779. label: "fQty",
  3780. name: "出库件数",
  3781. checked: 0,
  3782. width: 100,
  3783. },
  3784. {
  3785. surface: "12",
  3786. label: "fGrossweight",
  3787. name: "出库毛重",
  3788. checked: 0,
  3789. width: 100,
  3790. },
  3791. {
  3792. surface: "13",
  3793. label: "fNetweight",
  3794. name: "出库净重",
  3795. checked: 0,
  3796. width: 100,
  3797. },
  3798. {
  3799. surface: "14",
  3800. label: "fTruckno",
  3801. name: "车号",
  3802. checked: 0,
  3803. width: 100,
  3804. },
  3805. {
  3806. surface: "15",
  3807. label: "fDriverName",
  3808. name: "司机名称",
  3809. checked: 0,
  3810. width: 100,
  3811. },
  3812. {
  3813. surface: "16",
  3814. label: "fDriverTel",
  3815. name: "司机电话",
  3816. checked: 0,
  3817. width: 100,
  3818. },
  3819. {
  3820. surface: "17",
  3821. label: "fDriverIdCar",
  3822. name: "司机身份证",
  3823. checked: 0,
  3824. width: 100,
  3825. },
  3826. {
  3827. surface: "18",
  3828. label: "fBusinessType",
  3829. name: "业务类别",
  3830. checked: 0,
  3831. width: 100,
  3832. },
  3833. {
  3834. surface: "19",
  3835. label: "fBillstatus",
  3836. name: "费用状态",
  3837. checked: 0,
  3838. width: 100,
  3839. },
  3840. ],
  3841. setRowList: [
  3842. {
  3843. surface: "1",
  3844. label: "createBy",
  3845. name: "制单人",
  3846. checked: 0,
  3847. width: 100,
  3848. },
  3849. {
  3850. surface: "2",
  3851. label: "fStorekeeper",
  3852. name: "仓管员",
  3853. checked: 0,
  3854. width: 100,
  3855. },
  3856. {
  3857. surface: "3",
  3858. label: "fItemsStatus",
  3859. name: "出库状态",
  3860. checked: 0,
  3861. width: 100,
  3862. },
  3863. {
  3864. surface: "4",
  3865. label: "fCorpid",
  3866. name: "货权方",
  3867. checked: 0,
  3868. width: 100,
  3869. },
  3870. {
  3871. surface: "6",
  3872. label: "fProductName",
  3873. name: "品名",
  3874. checked: 0,
  3875. width: 100,
  3876. },
  3877. {
  3878. surface: "7",
  3879. label: "fMarks",
  3880. name: "品牌",
  3881. checked: 0,
  3882. width: 100,
  3883. },
  3884. {
  3885. surface: "8",
  3886. label: "fBsdate",
  3887. name: "出库日期",
  3888. checked: 0,
  3889. width: 100,
  3890. },
  3891. {
  3892. surface: "9",
  3893. label: "fWarehouseid",
  3894. name: "仓库",
  3895. checked: 0,
  3896. width: 100,
  3897. },
  3898. {
  3899. surface: "10",
  3900. label: "fPlanqty",
  3901. name: "计划件数",
  3902. checked: 0,
  3903. width: 100,
  3904. },
  3905. {
  3906. surface: "11",
  3907. label: "fQty",
  3908. name: "出库件数",
  3909. checked: 0,
  3910. width: 100,
  3911. },
  3912. {
  3913. surface: "12",
  3914. label: "fGrossweight",
  3915. name: "出库毛重",
  3916. checked: 0,
  3917. width: 100,
  3918. },
  3919. {
  3920. surface: "13",
  3921. label: "fNetweight",
  3922. name: "出库净重",
  3923. checked: 0,
  3924. width: 100,
  3925. },
  3926. {
  3927. surface: "14",
  3928. label: "fTruckno",
  3929. name: "车号",
  3930. checked: 0,
  3931. width: 100,
  3932. },
  3933. {
  3934. surface: "15",
  3935. label: "fDriverName",
  3936. name: "司机名称",
  3937. checked: 0,
  3938. width: 100,
  3939. },
  3940. {
  3941. surface: "16",
  3942. label: "fDriverTel",
  3943. name: "司机电话",
  3944. checked: 0,
  3945. width: 100,
  3946. },
  3947. {
  3948. surface: "17",
  3949. label: "fDriverIdCar",
  3950. name: "司机身份证",
  3951. checked: 0,
  3952. width: 100,
  3953. },
  3954. {
  3955. surface: "18",
  3956. label: "fBusinessType",
  3957. name: "业务类别",
  3958. checked: 0,
  3959. width: 100,
  3960. },
  3961. {
  3962. surface: "19",
  3963. label: "fBillstatus",
  3964. name: "费用状态",
  3965. checked: 0,
  3966. width: 100,
  3967. },
  3968. ],
  3969. getRowList: [],
  3970. allCheck: false,
  3971. showSetting: false,
  3972. headers: {
  3973. Authorization: "Bearer " + getToken(),
  3974. },
  3975. uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
  3976. company: "",
  3977. fSerialNumber: "",
  3978. fDNameOptions: [],
  3979. fCNameOptions: [],
  3980. closeButton: true,
  3981. businessType: "",
  3982. fCartype: "",
  3983. fBstime: "",
  3984. browseStatu: false,
  3985. key_s: "",
  3986. // 劳务公司
  3987. fCompanyOptIons: [],
  3988. Navigation: false,
  3989. fleetOptions: [],
  3990. activeIndex: "1",
  3991. activeIndex2: "1",
  3992. //控制选择库位弹出
  3993. choiceWarehouse: false,
  3994. information: "",
  3995. informationId: "",
  3996. inDex: "",
  3997. Warehouse: "",
  3998. treeselectList: {
  3999. fWarehouselocid: null,
  4000. },
  4001. // 部门树选项
  4002. fWarehouseidOptions: [],
  4003. fWarehouseidOption: [],
  4004. //控制作业类型校验
  4005. isrequired: 2,
  4006. isrequired_s: 2,
  4007. isrequired_l: 2,
  4008. activeNames: ["1"],
  4009. doNot: false,
  4010. WarehouseInformation: [],
  4011. addOrUpdateVisible: false,
  4012. addOrUpdateVisib: false,
  4013. fFeeUnitid: null,
  4014. fFeeUnitids: null,
  4015. formBrowseStatus: false,
  4016. detailsHidden: false,
  4017. warehousingagreements: false,
  4018. fTruckno: null,
  4019. fBsdate: null,
  4020. fCntrtype: null,
  4021. fGoodsids: null,
  4022. fPlanqty: null,
  4023. fPlannetweight: null,
  4024. fPlanvolumn: null,
  4025. fGrossweight: 0,
  4026. fCntqty: 0,
  4027. fNetweight: 0,
  4028. fVolumn: 0,
  4029. fid: 0,
  4030. fQty: 0,
  4031. fSbu: 0,
  4032. before: "",
  4033. // 遮罩层
  4034. loading: true,
  4035. // 打印地址
  4036. fAddr: "",
  4037. // 税率
  4038. fTaxrate: null,
  4039. // 选中数组
  4040. ids: [],
  4041. userVal: {
  4042. userName: null,
  4043. nickName: null,
  4044. deptId: null,
  4045. },
  4046. queryForm: {},
  4047. // 费用状态
  4048. costStatus: "Dr",
  4049. // 库存总账表
  4050. whgenlegList: [],
  4051. whgenlegTotal: 0,
  4052. // 弹窗库存总账数据
  4053. dialogWhgenlegList: [],
  4054. // 库存总账对话框
  4055. whgenlegVisible: false,
  4056. // 收费多选框
  4057. feelDrSelection: [],
  4058. approvalStatus: false,
  4059. // 新增用户对话框
  4060. editDialogVisible_s: false,
  4061. editDialogVisible_ss: false,
  4062. openPrintJobSheet: false,
  4063. editDialogClosed_ss: false,
  4064. storageAgreements: false,
  4065. dataList: [],
  4066. warehouseCrList: [],
  4067. current: "",
  4068. warehouseDrList: [],
  4069. printinglist: [],
  4070. browseStatus: false,
  4071. contrOl: false,
  4072. relevantAttachments: [],
  4073. // 非单个禁用
  4074. single: true,
  4075. // 非多个禁用
  4076. multiple: true,
  4077. // 显示搜索条件
  4078. showSearch: true,
  4079. // 总条数
  4080. total: 0,
  4081. // 仓库主(出入库)表格数据
  4082. warehousebillsList: [],
  4083. // 弹出层标题
  4084. title: "",
  4085. // 是否显示弹出层
  4086. open: false,
  4087. // 货权方(客户数据)
  4088. fMblnoOptions: [],
  4089. // 货权方(客户数据)
  4090. // 客户名称
  4091. KHblnoOptions: [],
  4092. // 作业费协议
  4093. tasklegList: [],
  4094. fSbuOptions: [],
  4095. // 操作员
  4096. userOptions: [],
  4097. // 操作员
  4098. goodsOptions: [],
  4099. // 制单部门
  4100. deptOptions: [],
  4101. // 主表状态
  4102. businessTypeOption: [],
  4103. typeVal: {
  4104. dictLabel: null,
  4105. },
  4106. //车辆类型字典表
  4107. fCartypeOptions: [],
  4108. // 仓库(仓库数据)
  4109. warehouseOptions: [],
  4110. // 库存明细入账数组
  4111. dataListSelection: [],
  4112. // 库存明细撤回入账数组
  4113. dataWithdrawList: [],
  4114. kqhouseOptions: [],
  4115. // 仓储类型 入库时选择 产地 规格 品牌 所用,对应storage_type 字典
  4116. fStorageTypeOptions: [],
  4117. // 贸易方式(数据字典),对应t_trademodels 字典
  4118. fTrademodeidOptions: [],
  4119. //结算方式对应字典表
  4120. fStltypeidOptions: [],
  4121. // 是否放行
  4122. releaseList: [
  4123. { dictLabel: "已放行", dictValue: "T" },
  4124. { dictLabel: "未放行", dictValue: "F" },
  4125. ],
  4126. // 结算方式(数据字典),下拉选择字典
  4127. fStltypeOptions: [],
  4128. // 是否过磅(数据字典)默认 F ,过磅T 否者F 下拉选择字典
  4129. fIfweighOptions: [],
  4130. // 是否破损(数据字典),默认F否则T字典
  4131. fIfdamageOptions: [],
  4132. // 单据类型(数据字典)SJRK字典
  4133. fBilltypeOptions: [],
  4134. // 状态(数据字典),N 入字典
  4135. fBillstatusOptions: [],
  4136. // 费用名称
  4137. fWbuOptions: [],
  4138. CntrTable: [{}],
  4139. approVal: false,
  4140. // 计价单位
  4141. jFeetunitOptions: [],
  4142. mblnoStatus: "",
  4143. // 查询参数
  4144. queryParams: {
  4145. fWarehouselocid: null,
  4146. pageNum: 1,
  4147. pageSize: 10,
  4148. fBillno: null,
  4149. createBy: null,
  4150. createTime: null,
  4151. fCustomsdeclartion: null,
  4152. fOriginalbillno: null,
  4153. fDeptid: null,
  4154. fBsdeptid: null,
  4155. fContacts: null,
  4156. fTel: null,
  4157. fCorpid: null,
  4158. fTocorpid: null,
  4159. fStltypeid: null,
  4160. fBscorpno: null,
  4161. fWarehouseid: null,
  4162. fStorekeeper: null,
  4163. fBsdate: null,
  4164. fPlanqty: null,
  4165. fPlangrossweight: null,
  4166. fPlannetweight: null,
  4167. fPlanvolumn: null,
  4168. fQty: null,
  4169. fGrossweight: null,
  4170. fNetweight: null,
  4171. fVolumn: null,
  4172. fTrademodeid: null,
  4173. fSbu: null,
  4174. fFeetunit: null,
  4175. fMblno: null,
  4176. fVslvoy: null,
  4177. fEta: null,
  4178. fCustomno: null,
  4179. fIfweigh: null,
  4180. fIfpledge: null,
  4181. fIfdamage: null,
  4182. fBankcorpid: null,
  4183. fBilltype: null,
  4184. fBillstatus: null,
  4185. fCreateby: null,
  4186. fCreatetime: null,
  4187. fGoodsid: null,
  4188. fCntrtype: null,
  4189. fCntqty: null,
  4190. },
  4191. // 库存总账参数
  4192. whgenlegParams: {
  4193. pageNum: 1,
  4194. pageSize: 10,
  4195. fMblno: null,
  4196. fCorpid: null,
  4197. fWarehouseid: null,
  4198. fTruckno: null,
  4199. },
  4200. // 表单参数
  4201. form: {
  4202. fMblno: null,
  4203. fCorpid: null,
  4204. fTrademodeid: null,
  4205. fWarehouseid: null,
  4206. fBusinessType: null,
  4207. fCartype: 0,
  4208. fBstime: "",
  4209. },
  4210. // 表单校验
  4211. rules: {
  4212. fDeptid: [{ required: true, message: " ", trigger: "blur" }],
  4213. fBsdeptid: [{ required: true, message: " ", trigger: "blur" }],
  4214. fCorpid: [{ required: true, message: " ", trigger: "blur" }],
  4215. fFeeUnitid: [{ required: true, message: " ", trigger: "blur" }],
  4216. fChargedate: [{ required: true, message: " ", trigger: "blur" }],
  4217. fBillingway: [{ required: true, message: " ", trigger: "blur" }],
  4218. fBsdate: [{ required: true, message: " ", trigger: "blur" }],
  4219. fTrademodeid: [{ required: true, message: " ", trigger: "blur" }],
  4220. fSbu: [{ required: true, message: " ", trigger: "blur" }],
  4221. fStorekeeper: {
  4222. required: true,
  4223. message: " ",
  4224. trigger: "blur",
  4225. },
  4226. fBusinessType: [{ required: true, message: " ", trigger: "blur" }],
  4227. fWarehouseid: [{ required: true, message: " ", trigger: "blur" }],
  4228. // fBscorpno: [
  4229. // { required: true, message: "请输入存货编号", trigger: "blur" },
  4230. // ],
  4231. fbillingway: [
  4232. {
  4233. required: true,
  4234. message: " ",
  4235. trigger: "blur",
  4236. },
  4237. ],
  4238. fTocorpid: [
  4239. {
  4240. required: true,
  4241. message: " ",
  4242. trigger: "blur",
  4243. },
  4244. ],
  4245. },
  4246. };
  4247. },
  4248. created() {
  4249. this.setRowList = this.tableDate;
  4250. this.getRowList = this.tableDate;
  4251. this.getList();
  4252. this.getDicts("storage_type").then((response) => {
  4253. this.fStorageTypeOptions = response.data;
  4254. });
  4255. this.getDicts("data_trademodes").then((response) => {
  4256. this.fTrademodeidOptions = response.data;
  4257. });
  4258. this.getDicts("data_stltype_type").then((response) => {
  4259. this.fStltypeOptions = response.data;
  4260. });
  4261. this.getDicts("tax_rate").then((response) => {
  4262. this.fTaxrate = response.data[0].dictValue;
  4263. });
  4264. this.getDicts("data_ifweigh_status").then((response) => {
  4265. this.fIfweighOptions = response.data;
  4266. });
  4267. this.getDicts("data_ifdamage_status").then((response) => {
  4268. this.fIfdamageOptions = response.data;
  4269. });
  4270. this.getDicts("data_billtype_type").then((response) => {
  4271. this.fBilltypeOptions = response.data;
  4272. });
  4273. this.getDicts("sys_common_status").then((response) => {
  4274. this.fBillstatusOptions = response.data;
  4275. });
  4276. this.getDicts("data_unitfees").then((response) => {
  4277. this.jFeetunitOptions = response.data;
  4278. });
  4279. this.getDicts("st_out_type").then((response) => {
  4280. this.businessTypeOption = response.data;
  4281. });
  4282. this.getDicts("sys_car_type").then((response) => {
  4283. console.log(response);
  4284. this.fCartypeOptions = response.data;
  4285. });
  4286. treeselect().then((response) => {
  4287. this.warehouseOptions = response.data;
  4288. });
  4289. this.warehousesssMethod();
  4290. this.company = localStorage.getItem("companyName");
  4291. this.getRow();
  4292. },
  4293. activated() {
  4294. this.adoPt();
  4295. if (this.$route.query.id) {
  4296. this.adoPt2();
  4297. }
  4298. },
  4299. methods: {
  4300. addRow() {
  4301. var obj = {};
  4302. this.CntrTable.push(obj);
  4303. },
  4304. handleCommand(command) {
  4305. console.log(command);
  4306. for (let corp in this.fMblnoOptions) {
  4307. if (this.form.fCorpid === this.fMblnoOptions[corp].fId) {
  4308. this.$set(this.form, "fCorpidName", this.fMblnoOptions[corp].fName);
  4309. }
  4310. }
  4311. this.stockName = this.warehouseOptions[0].fName;
  4312. this.makeDate = this.warehouseOptions[0].createTime;
  4313. if (this.printinglist.length > 0) {
  4314. this.$refs["form"].validate((valid) => {
  4315. if (valid) {
  4316. if (command == "a") {
  4317. this.showEditDialog_s();
  4318. } else if (command == "b") {
  4319. this.print_lhd = true;
  4320. } else if (command == "c") {
  4321. this.print_hwqr = true;
  4322. } else if (command == "d") {
  4323. this.print_lwqr = true;
  4324. }
  4325. }
  4326. });
  4327. } else {
  4328. this.$message.error("请选择需要打印的明细!");
  4329. }
  4330. },
  4331. //打印
  4332. addprint() {
  4333. const style =
  4334. "@page { } " +
  4335. "@media print { .print-div{ padding:8px;background-color:#cccccc;} .print-title{display:flex;justify-content: center;font-size:24px} .print_form{font-size:12px} .print_table table {border-right: 1px solid #000;border-bottom: 1px solid #000;font-size:12px} .print_table table td {border-left: 1px solid #000;border-top: 1px solid #000;padding:2px;vertical-align:middle;text-align: center;}";
  4336. print({
  4337. printable: "print_area1",
  4338. type: "html",
  4339. style: style, // 亦可使用引入的外部css;
  4340. scanStyles: false,
  4341. });
  4342. },
  4343. full() {
  4344. this.dialogFull = !this.dialogFull;
  4345. },
  4346. //列设置全选
  4347. allChecked() {
  4348. if (this.allCheck == true) {
  4349. this.setRowList.map((e) => {
  4350. return (e.checked = 0);
  4351. });
  4352. } else {
  4353. this.setRowList.map((e) => {
  4354. return (e.checked = 1);
  4355. });
  4356. }
  4357. },
  4358. //查询列数据
  4359. getRow() {
  4360. let that = this;
  4361. this.data = {
  4362. tableName: "出库",
  4363. userId: Cookies.get("userName"),
  4364. };
  4365. select(this.data).then((res) => {
  4366. if (res.data.length != 0) {
  4367. this.getRowList = res.data.filter((e) => e.checked == 0);
  4368. this.setRowList = res.data;
  4369. this.setRowList = this.setRowList.reduce((res, item) => {
  4370. res.push({
  4371. surface: item.surface,
  4372. label: item.label,
  4373. name: item.name,
  4374. checked: item.checked,
  4375. width: item.width,
  4376. fixed: item.fixed,
  4377. });
  4378. return res;
  4379. }, []);
  4380. }
  4381. });
  4382. },
  4383. //重置列表
  4384. delRow() {
  4385. this.data = {
  4386. tableName: "出库",
  4387. userId: Cookies.get("userName"),
  4388. };
  4389. resetModule(this.data).then((res) => {
  4390. if (res.code == 200) {
  4391. this.showSetting = false;
  4392. this.setRowList = this.tableDate;
  4393. this.getRowList = this.tableDate;
  4394. }
  4395. });
  4396. },
  4397. //保存列设置
  4398. save() {
  4399. this.showSetting = false;
  4400. this.data = {
  4401. tableName: "出库",
  4402. userId: Cookies.get("userName"),
  4403. sysTableSetList: this.setRowList,
  4404. };
  4405. addSet(this.data).then((res) => {
  4406. if (res.code == 200) {
  4407. this.showSetting = false;
  4408. this.getRowList = this.setRowList.filter((e) => e.checked == 0);
  4409. }
  4410. });
  4411. },
  4412. //开始拖拽事件
  4413. onStart() {
  4414. this.drag = true;
  4415. },
  4416. //拖拽结束事件
  4417. onEnd() {
  4418. this.drag = false;
  4419. },
  4420. //附件删除
  4421. deleteFile(scope) {
  4422. this.relevantAttachments[scope.$index].fName = "";
  4423. this.relevantAttachments[scope.$index].fUrl = "";
  4424. if (this.relevantAttachments[scope.$index].fUrl === "") {
  4425. this.$message.success("删除成功");
  4426. } else {
  4427. this.$message.error("未知错误,删除失败");
  4428. }
  4429. },
  4430. //附件查看
  4431. checkFile(scope) {
  4432. if (this.relevantAttachments[scope.$index].fUrl) {
  4433. window.open(this.relevantAttachments[scope.$index].fUrl);
  4434. } else {
  4435. this.$message.error("请上传附件");
  4436. }
  4437. },
  4438. //附件上传
  4439. handleSucces(scope, res, file) {
  4440. this.relevantAttachments[scope.$index].fName = res.fileName;
  4441. this.relevantAttachments[scope.$index].fUrl = res.url;
  4442. if (this.relevantAttachments[scope.$index].fUrl === "") {
  4443. this.$message.error("上传失败");
  4444. } else {
  4445. this.$message.success("上传成功");
  4446. }
  4447. },
  4448. //合计
  4449. getSum(param) {
  4450. const { columns, data } = param;
  4451. const sums = [];
  4452. columns.forEach((column, index) => {
  4453. if (index === 0) {
  4454. sums[index] = "总计";
  4455. } else if (
  4456. index === 14 ||
  4457. index === 13 ||
  4458. index === 10 ||
  4459. index === 11 ||
  4460. index === 12
  4461. ) {
  4462. const values = data.map((item) => Number(item[column.property]));
  4463. if (!values.every((value) => isNaN(value))) {
  4464. sums[index] = values.reduce((prev, curr) => {
  4465. const value = Number(curr);
  4466. if (!isNaN(value)) {
  4467. return prev + curr;
  4468. } else {
  4469. return prev;
  4470. }
  4471. }, 0);
  4472. if (index === 13 || index === 14) {
  4473. sums[index] = (sums[index] / 1000).toFixed(2) + "(吨)";
  4474. }
  4475. if (index === 12) {
  4476. sums[index] = sums[index];
  4477. }
  4478. }
  4479. }
  4480. });
  4481. return sums;
  4482. },
  4483. handleSelect(key, keyPath) {
  4484. this.addAgreement(key);
  4485. this.addAgreements(key);
  4486. },
  4487. // 新增付款作业费协议
  4488. addAgreements(kye) {
  4489. if (!this.form.fCorpid) {
  4490. this.$message({
  4491. message: "请维护货权方",
  4492. type: "warning",
  4493. });
  4494. } else if (this.form.fProductName == undefined) {
  4495. this.$message({
  4496. message: "请维护入库明细品名",
  4497. type: "warning",
  4498. });
  4499. } else {
  4500. this.whgenlegList = [];
  4501. this.dialogWhgenlegList = [];
  4502. this.whgenlegTotal = 0;
  4503. this.warehousingagreements = true;
  4504. this.getWhgenlegList(kye);
  4505. }
  4506. },
  4507. hanDleclose(done) {
  4508. this.$confirm("确认关闭?")
  4509. .then((_) => {
  4510. done();
  4511. })
  4512. .catch((_) => {});
  4513. },
  4514. /** 查询部门下拉树结构 */
  4515. treeseLect(tree) {
  4516. this.queryParams.fWarehouselocid = tree.id;
  4517. },
  4518. getTreeselect(row) {
  4519. this.treeselectList.fWarehouselocid = null;
  4520. this.inDex = row.$index;
  4521. this.choiceWarehouse = true;
  4522. treeselect(this.form.fWarehouseid).then((response) => {
  4523. this.fWarehouseidOptions = response.data;
  4524. this.fWarehouseidOption = response.data;
  4525. });
  4526. this.Warehouse = this.dataList[this.inDex].fWarehouseInformation;
  4527. },
  4528. getAlltree(tree) {
  4529. this.information = tree.fWarehouseInformation;
  4530. this.informationId = tree.id;
  4531. },
  4532. confirm() {
  4533. this.$set(
  4534. this.dataList[this.inDex],
  4535. "fWarehouseInformation",
  4536. this.information
  4537. );
  4538. this.$set(
  4539. this.dataList[this.inDex],
  4540. "fWarehouselocid",
  4541. this.informationId
  4542. );
  4543. this.choiceWarehouse = false;
  4544. },
  4545. //审批页面跳转
  4546. adoPt() {
  4547. this.approval = this.$route.query.data;
  4548. if (this.approval && this.approval !== "{}") {
  4549. let queryParams = { pageNum: 1, fDc: "C" };
  4550. listFees(queryParams).then((response) => {
  4551. this.fCNameOptions = response.rows;
  4552. });
  4553. let query = { pageNum: 1, fDc: "D" };
  4554. listFees(query).then((response) => {
  4555. this.fDNameOptions = response.rows;
  4556. });
  4557. this.reset();
  4558. this.doNot = true;
  4559. this.closeButton = false;
  4560. this.approval = JSON.parse(this.approval);
  4561. this.approVal = true;
  4562. this.browseStatus = status;
  4563. this.contrOl = true;
  4564. this.detailsHidden = false;
  4565. this.formBrowseStatus = false;
  4566. this.dataList = [];
  4567. getWarehousebills(this.approval.billId).then((response) => {
  4568. if (response.data.warehousebills) {
  4569. this.form = response.data.warehousebills;
  4570. if (this.form.fBillstatus > 2) {
  4571. this.approvalStatus = false;
  4572. } else {
  4573. this.approvalStatus = true;
  4574. }
  4575. }
  4576. if (response.data.warehouseBillsItem) {
  4577. this.dataList = response.data.warehouseBillsItem;
  4578. for (let list in this.dataList) {
  4579. if (this.dataList[list].fBillstatus > 10) {
  4580. this.formBrowseStatus = true;
  4581. }
  4582. }
  4583. }
  4584. if (response.data.corps) {
  4585. this.fMblnoOptions = response.data.corps;
  4586. this.KHblnoOptions = response.data.corps;
  4587. this.fCompanyOptIons = response.data.corps;
  4588. }
  4589. if (response.data.feesList) {
  4590. this.fWbuOptions = response.data.feesList;
  4591. }
  4592. if (response.data.warehouse) {
  4593. this.warehouseOptions = response.data.warehouse;
  4594. }
  4595. if (response.data.warehouseBillsItem) {
  4596. this.dataList = response.data.warehouseBillsItem;
  4597. }
  4598. if (response.data.enclosures) {
  4599. this.relevantAttachments = response.data.enclosures;
  4600. }
  4601. this.$set(
  4602. this.form,
  4603. "fCartype",
  4604. response.data.warehousebills.fCartype + ""
  4605. );
  4606. this.$set(this.form, "fStltypeid", this.form.fStltypeid + "");
  4607. this.$set(this.form, "fEta", Date.parse(this.form.fEta));
  4608. this.$set(this.form, "fBsdate", Date.parse(this.form.fBsdate));
  4609. this.$set(this.form, "createTime", Date.parse(this.form.createTime));
  4610. this.$set(this.form, "fTrademodeid", this.form.fTrademodeid + "");
  4611. this.$set(this.form, "fPlannetweight", this.form.fPlannetweight);
  4612. this.$set(this.form, "fPlangrossweight", this.form.fPlangrossweight);
  4613. for (let list in this.dataList) {
  4614. this.$set(
  4615. this.dataList[list],
  4616. "fBsdate",
  4617. Date.parse(this.dataList[list].fBsdate)
  4618. );
  4619. this.$set(
  4620. this.dataList[list],
  4621. "fBusinessType",
  4622. this.dataList[list].fBusinessType + ""
  4623. );
  4624. }
  4625. this.goodsOptions = response.data.goodsList;
  4626. this.kqhouseOptions = response.data.warehouseAreas;
  4627. this.warehouseDrList = response.data.warehousebillsfeesDr;
  4628. for (let dr in this.warehouseDrList) {
  4629. this.$set(
  4630. this.warehouseDrList[dr],
  4631. "fFeeunitid",
  4632. this.warehouseDrList[dr].fFeeunitid + ""
  4633. );
  4634. this.$set(
  4635. this.warehouseDrList[dr],
  4636. "fQty",
  4637. this.warehouseDrList[dr].fQty.toFixed(2)
  4638. );
  4639. this.$set(
  4640. this.warehouseDrList[dr],
  4641. "fAmount",
  4642. this.warehouseDrList[dr].fAmount.toFixed(2)
  4643. );
  4644. }
  4645. this.warehouseCrList = response.data.warehousebillsfeesCr;
  4646. for (let cr in this.warehouseCrList) {
  4647. this.$set(
  4648. this.warehouseCrList[cr],
  4649. "fFeeunitid",
  4650. this.warehouseCrList[cr].fFeeunitid + ""
  4651. );
  4652. }
  4653. this.userOptions = response.data.sysUser;
  4654. this.open = true;
  4655. this.title = "修改仓入库";
  4656. });
  4657. }
  4658. },
  4659. //审批页面跳转
  4660. adoPt2() {
  4661. let queryParams = { pageNum: 1, fDc: "C" };
  4662. listFees(queryParams).then((response) => {
  4663. this.fCNameOptions = response.rows;
  4664. });
  4665. let query = { pageNum: 1, fDc: "D" };
  4666. listFees(query).then((response) => {
  4667. this.fDNameOptions = response.rows;
  4668. });
  4669. this.dataList = [];
  4670. this.reset();
  4671. this.browseStatus = status;
  4672. this.contrOl = status;
  4673. this.detailsHidden = false;
  4674. this.formBrowseStatus = false;
  4675. this.goodsRemoteMethod();
  4676. getWarehousebills(this.$route.query.id).then((response) => {
  4677. if (response.data.warehousebills) {
  4678. this.form = response.data.warehousebills;
  4679. this.before = this.form.createBy;
  4680. this.$set(
  4681. this.form,
  4682. "fCartype",
  4683. response.data.warehousebills.fCartype + ""
  4684. );
  4685. this.$set(this.form, "fEta", Date.parse(this.form.fEta));
  4686. this.$set(this.form, "fStltypeid", this.form.fStltypeid + "");
  4687. this.$set(this.form, "fBsdate", Date.parse(this.form.fBsdate));
  4688. this.$set(this.form, "createTime", Date.parse(this.form.createTime));
  4689. this.$set(this.form, "fTrademodeid", this.form.fTrademodeid + "");
  4690. if (this.form.fBillstatus > 2) {
  4691. this.approvalStatus = false;
  4692. } else {
  4693. this.approvalStatus = true;
  4694. }
  4695. }
  4696. if (response.data.warehouseBillsItem) {
  4697. this.dataList = response.data.warehouseBillsItem;
  4698. for (let list in this.dataList) {
  4699. this.$set(
  4700. this.dataList[list],
  4701. "fBusinessType",
  4702. this.dataList[list].fBusinessType + ""
  4703. );
  4704. if (this.dataList[list].fBillstatus > 10) {
  4705. this.formBrowseStatus = true;
  4706. this.$set(
  4707. this.dataList[list],
  4708. "fBusinessType",
  4709. this.dataList[list].fBusinessType + ""
  4710. );
  4711. }
  4712. if (this.dataList[list].fBillstatus === 40) {
  4713. this.contrOl = true;
  4714. }
  4715. }
  4716. }
  4717. if (response.data.corps) {
  4718. this.fMblnoOptions = response.data.corps;
  4719. this.KHblnoOptions = response.data.corps;
  4720. }
  4721. if (response.data.feesList) {
  4722. this.fWbuOptions = response.data.feesList;
  4723. }
  4724. if (response.data.warehouse) {
  4725. this.warehouseOptions = response.data.warehouse;
  4726. }
  4727. if (response.data.warehouseBillsItem) {
  4728. this.dataList = response.data.warehouseBillsItem;
  4729. for (let list in this.dataList) {
  4730. this.$set(
  4731. this.dataList[list],
  4732. "fBsdate",
  4733. Date.parse(this.dataList[list].fBsdate)
  4734. );
  4735. }
  4736. }
  4737. if (response.data.enclosures) {
  4738. this.relevantAttachments = response.data.enclosures;
  4739. }
  4740. this.goodsOptions = response.data.goodsList;
  4741. this.kqhouseOptions = response.data.warehouseAreas;
  4742. this.warehouseDrList = response.data.warehousebillsfeesDr;
  4743. for (let dr in this.warehouseDrList) {
  4744. if (this.warehouseDrList[dr].fFeeunitid !== null) {
  4745. this.$set(
  4746. this.warehouseDrList[dr],
  4747. "fFeeunitid",
  4748. this.warehouseDrList[dr].fFeeunitid + ""
  4749. );
  4750. }
  4751. this.$set(
  4752. this.warehouseDrList[dr],
  4753. "fQty",
  4754. this.warehouseDrList[dr].fQty.toFixed(2)
  4755. );
  4756. this.$set(
  4757. this.warehouseDrList[dr],
  4758. "fAmount",
  4759. this.warehouseDrList[dr].fAmount.toFixed(2)
  4760. );
  4761. }
  4762. this.warehouseCrList = response.data.warehousebillsfeesCr;
  4763. for (let cr in this.warehouseCrList) {
  4764. if (this.warehouseCrList[cr].fFeeunitid !== null) {
  4765. this.$set(
  4766. this.warehouseCrList[cr],
  4767. "fFeeunitid",
  4768. this.warehouseCrList[cr].fFeeunitid + ""
  4769. );
  4770. }
  4771. // this.$set(this.warehouseCrList[cr], "fBusinessType", response.data.warehousebillsfeesCr);
  4772. }
  4773. this.userOptions = response.data.sysUser;
  4774. this.open = true;
  4775. this.title = "修改仓入库";
  4776. this.warehousesssMethod();
  4777. this.fWbuOptions = [];
  4778. let queryParams = { pageNum: 1 };
  4779. listFees(queryParams).then((response) => {
  4780. this.fWbuOptions = response.rows;
  4781. });
  4782. });
  4783. queryUserVal().then((response) => {
  4784. this.current = response.user.userName;
  4785. });
  4786. },
  4787. getDataList() {
  4788. this.addOrUpdateVisible = false;
  4789. },
  4790. returnData() {
  4791. this.addOrUpdateVisib = false;
  4792. this.cancelTwo();
  4793. },
  4794. addOrUpdateHandle(form) {
  4795. this.addOrUpdateVisible = true;
  4796. this.$nextTick(() => {
  4797. this.$refs.addOrUpdate.init(form.fId, 120);
  4798. });
  4799. },
  4800. addOrUpdateHand(form) {
  4801. this.addOrUpdateVisib = true;
  4802. this.$nextTick(() => {
  4803. this.$refs.ApprovalComments.init(form.fId, 120);
  4804. });
  4805. },
  4806. cancelTwo() {
  4807. this.mblnoStatus = "";
  4808. this.open = false;
  4809. let view = {
  4810. fullPath: "/business/outStock",
  4811. hash: "",
  4812. matched: Array(2),
  4813. meta: Object,
  4814. name: "OutStock",
  4815. params: Object,
  4816. path: "/business/outStock",
  4817. query: Object,
  4818. title: "出库",
  4819. };
  4820. this.$router.push({ path: "/index" });
  4821. this.$store
  4822. .dispatch("tagsView/delView", view)
  4823. .then(({ visitedViews }) => {
  4824. if (this.isActive(view)) {
  4825. this.toLastView(visitedViews, view);
  4826. }
  4827. });
  4828. Global.$emit("removeCache", "closeSelectedTag", view);
  4829. },
  4830. //关闭弹框的事件
  4831. addCloseDialog() {
  4832. this.mblnoStatus = "";
  4833. this.getList();
  4834. },
  4835. // 上传成功返回数据
  4836. showFile(row) {
  4837. for (let list in this.relevantAttachments) {
  4838. this.$set(this.relevantAttachments[list], "fUrl", row.url);
  4839. this.$set(this.relevantAttachments[list], "fName", row.fileName);
  4840. }
  4841. },
  4842. revoke() {
  4843. revoke(this.form.fId).then((data) => {
  4844. if (data.code == 200) {
  4845. this.open = false;
  4846. this.getList();
  4847. }
  4848. });
  4849. },
  4850. printSomething() {
  4851. // 此处的style即为打印时的样式
  4852. const style =
  4853. "@media print { .print-div{ border:1px solid #000;padding:8px;background-color:#cccccc;line-height:12px } .red{ color:#f00} .green{color:green} td{text-align: center;border:1px solid #000}}";
  4854. print({
  4855. printable: "print_area",
  4856. type: "html",
  4857. style: style, // 亦可使用引入的外部css;
  4858. scanStyles: false,
  4859. });
  4860. this.openPrintJobSheet = false;
  4861. },
  4862. // 关闭二级弹窗
  4863. closeWindow() {
  4864. this.openPrintJobSheet = false;
  4865. },
  4866. // 新增附件上传
  4867. addRelevt() {
  4868. this.relevantAttachments.push({
  4869. fUrl: null,
  4870. fName: null,
  4871. createBy: this.form.createBy,
  4872. createTime: Date.parse(new Date()),
  4873. });
  4874. },
  4875. // 新增作业费协议
  4876. addAgreement(kye, status) {
  4877. this.costStatus = status;
  4878. if (!this.form.fCorpid) {
  4879. this.$message({ message: "请维护货权方", type: "warning" });
  4880. }
  4881. // else if(this.form.fProductName == undefined) {
  4882. // this.$message({
  4883. // message: "请维护入库明细品名",
  4884. // type: "warning",
  4885. // });
  4886. // }
  4887. else {
  4888. this.whgenlegList = [];
  4889. this.dialogWhgenlegList = [];
  4890. this.whgenlegTotal = 0;
  4891. this.warehousingagreements = true;
  4892. this.getWhgenlegListt(kye);
  4893. }
  4894. },
  4895. // 新增仓储费协议
  4896. addStorages() {
  4897. if (!this.form.fCorpid) {
  4898. this.$message({ message: "请维护货权方", type: "warning" });
  4899. return false;
  4900. }
  4901. this.whgenlegList = [];
  4902. this.dialogWhgenlegList = [];
  4903. this.whgenlegTotal = 0;
  4904. this.storageAgreements = true;
  4905. this.getAgreement();
  4906. },
  4907. // 查询仓储费协议
  4908. getAgreement() {
  4909. this.queryParams.fCorpid = this.form.fCorpid;
  4910. listAgreements(this.queryParams).then((response) => {
  4911. this.tasklegList = response.rows;
  4912. this.whgenlegTotal = response.total;
  4913. });
  4914. },
  4915. // 查询作业费信息
  4916. getWhgenlegListt(kye) {
  4917. let data = {};
  4918. let fTaskType = kye;
  4919. if (kye == 2) {
  4920. this.Navigation = true;
  4921. data = {
  4922. pageNum: 1,
  4923. pageSize: 10,
  4924. fTaskType: Number(fTaskType),
  4925. fLabour: this.form.fLabour,
  4926. };
  4927. this.key_s = kye;
  4928. } else if (kye == 1) {
  4929. this.Navigation = true;
  4930. data = {
  4931. pageNum: 1,
  4932. pageSize: 10,
  4933. fTaskType: Number(fTaskType),
  4934. fFleet: this.form.fFleet,
  4935. fBilltype: "SJCK",
  4936. };
  4937. this.key_s = kye;
  4938. } else {
  4939. this.Navigation = false;
  4940. data = {
  4941. pageNum: 1,
  4942. pageSize: 10,
  4943. fCorpid: this.form.fCorpid,
  4944. };
  4945. this.key_s = kye;
  4946. }
  4947. operationAgreement(data).then((response) => {
  4948. this.tasklegList = response.rows;
  4949. this.whgenlegTotal = response.total;
  4950. });
  4951. },
  4952. revokeTwo() {
  4953. let data = {
  4954. actId: 120,
  4955. billId: this.form.fId,
  4956. id: this.form.fId,
  4957. };
  4958. revokeTwo(data).then((data) => {
  4959. if (data.code === 200) {
  4960. this.msgSuccess("撤销成功");
  4961. this.open = false;
  4962. this.getList();
  4963. this.reset();
  4964. }
  4965. });
  4966. },
  4967. // 导入付款信息
  4968. whgenlegDatas() {
  4969. if (this.dialogWhgenlegList.length === 0) {
  4970. this.$message({
  4971. message: "请选择需要导入的数据",
  4972. type: "warning",
  4973. });
  4974. } else {
  4975. for (let whgen in this.dialogWhgenlegList) {
  4976. let feeId = this.dialogWhgenlegList[whgen].feeFId;
  4977. getFees(feeId).then((response) => {
  4978. this.fWbuOptions.push(response.data);
  4979. });
  4980. this.warehouseDrList.push({
  4981. fCorpid: this.dialogWhgenlegList[whgen].fCorpid,
  4982. fFeeid: feeId,
  4983. fFeeUnitid: this.dialogWhgenlegList[whgen].fFeeUnitid + "",
  4984. fUnitprice: this.dialogWhgenlegList[whgen].fPrice,
  4985. fCurrency: "RMB",
  4986. fExrate: 1,
  4987. fTaxrate: this.fTaxrate,
  4988. });
  4989. }
  4990. this.warehousingagreements = false;
  4991. }
  4992. },
  4993. // 导出作业费
  4994. zhgenlegData() {
  4995. if (this.dialogWhgenlegList.length === 0) {
  4996. this.$message({ message: "请选择需要导入的数据", type: "warning" });
  4997. return false;
  4998. }
  4999. for (let zhgen in this.dialogWhgenlegList) {
  5000. let haveGoods = false;
  5001. let feeId = this.dialogWhgenlegList[zhgen].feeFId;
  5002. if (this.fWbuOptions.length !== 0) {
  5003. for (let wbu in this.fWbuOptions) {
  5004. if (this.fWbuOptions[wbu].fId === feeId) {
  5005. haveGoods = true;
  5006. break;
  5007. }
  5008. }
  5009. }
  5010. getFees(feeId).then((response) => {
  5011. this.fWbuOptions = [];
  5012. let queryParams = { pageNum: 1 };
  5013. listFees(queryParams).then((response) => {
  5014. this.fWbuOptions = response.rows;
  5015. });
  5016. });
  5017. let qty = 1;
  5018. if (this.dialogWhgenlegList[zhgen].fFeeUnitid === 1) {
  5019. qty = this.fQty;
  5020. } else if (this.dialogWhgenlegList[zhgen].fFeeUnitid === 2) {
  5021. qty = (this.fGrossweight / 1000).toFixed(2);
  5022. } else if (this.dialogWhgenlegList[zhgen].fFeeUnitid === 3) {
  5023. qty = (this.fNetweight / 1000).toFixed(2);
  5024. } else if (this.dialogWhgenlegList[zhgen].fFeeUnitid === 4) {
  5025. qty = this.fVolumn;
  5026. }
  5027. // qty=(qty/1000).toFixed(2);
  5028. let fAmount = parseFloat(
  5029. Number(this.dialogWhgenlegList[zhgen].fPrice) * Number(qty)
  5030. ).toFixed(2);
  5031. if (this.costStatus == "3") {
  5032. let queryParams = { pageNum: 1, fDc: "D" };
  5033. listFees(queryParams).then((response) => {
  5034. this.fDNameOptions = response.rows;
  5035. });
  5036. this.warehouseDrList.push({
  5037. fQty: qty,
  5038. fCorpid: this.dialogWhgenlegList[zhgen].fCorpid,
  5039. fFeeid: feeId,
  5040. fFeeunitid: this.dialogWhgenlegList[zhgen].fFeeUnitid + "",
  5041. fUnitprice: this.dialogWhgenlegList[zhgen].fPrice,
  5042. fCurrency: "RMB",
  5043. fExrate: 1,
  5044. fAmount: fAmount,
  5045. fTaxrate: this.fTaxrate,
  5046. fMblno: this.form.fMblno,
  5047. fProductName: this.form.fProductName,
  5048. fMarks: this.form.fMarks,
  5049. fBusinessType: this.$set(
  5050. this.warehouseDrList,
  5051. "fBusinessType",
  5052. this.form.fBusinessType
  5053. ),
  5054. fSrcTypeId: this.dialogWhgenlegList[zhgen].fId,
  5055. });
  5056. } else {
  5057. let queryParams = { pageNum: 1, fDc: "C" };
  5058. listFees(queryParams).then((response) => {
  5059. this.fCNameOptions = response.rows;
  5060. });
  5061. this.warehouseCrList.push({
  5062. fQty: qty,
  5063. fCorpid: this.dialogWhgenlegList[zhgen].fCorpid,
  5064. fFeeid: feeId,
  5065. fFeeunitid: this.dialogWhgenlegList[zhgen].fFeeUnitid + "",
  5066. fUnitprice: this.dialogWhgenlegList[zhgen].fPrice,
  5067. fCurrency: "RMB",
  5068. fExrate: 1,
  5069. fAmount: fAmount,
  5070. fTaxrate: this.fTaxrate,
  5071. fMblno: this.form.fMblno,
  5072. fProductName: this.form.fProductName,
  5073. fMarks: this.form.fMarks,
  5074. fBusinessType: this.$set(
  5075. this.warehouseCrList,
  5076. "fBusinessType",
  5077. this.form.fBusinessType
  5078. ),
  5079. fSrcTypeId: this.dialogWhgenlegList[zhgen].fId,
  5080. });
  5081. console.log(this.dialogWhgenlegList[zhgen]);
  5082. }
  5083. // if (this.costStatus === 'Cr' ) {
  5084. // this.warehouseCrList.push({
  5085. // fQty: qty,
  5086. // fCorpid: this.dialogWhgenlegList[zhgen].fCorpid,
  5087. // fFeeid: feeId,
  5088. // fFeeunitid: this.dialogWhgenlegList[zhgen].fFeeUnitid + '',
  5089. // fUnitprice: this.dialogWhgenlegList[zhgen].fPrice,
  5090. // fCurrency: 'RMB',
  5091. // fExrate: 1,
  5092. // fAmount: fAmount,
  5093. // fTaxrate: this.fTaxrate,
  5094. // fMblno:this.form.fMblno,
  5095. // fProductName:this.form.fProductName,
  5096. // fMarks:this.form.fMarks,
  5097. // fBusinessType:this.$set(this.warehouseCrList,'fBusinessType',this.form.fBusinessType)
  5098. // })
  5099. // } else {
  5100. // this.warehouseDrList.push({
  5101. // fQty: qty,
  5102. // fCorpid: this.dialogWhgenlegList[zhgen].fCorpid,
  5103. // fFeeid: feeId,
  5104. // fFeeunitid: this.dialogWhgenlegList[zhgen].fFeeUnitid + '',
  5105. // fUnitprice: this.dialogWhgenlegList[zhgen].fPrice,
  5106. // fCurrency: 'RMB',
  5107. // fExrate: 1,
  5108. // fAmount: fAmount,
  5109. // fTaxrate: this.fTaxrate,
  5110. // fMblno:this.form.fMblno,
  5111. // fProductName:this.form.fProductName,
  5112. // fMarks:this.form.fMarks,
  5113. // fBusinessType:this.$set(this.warehouseDrList,'fBusinessType',this.form.fBusinessType)
  5114. // })
  5115. // }
  5116. }
  5117. this.warehousingagreements = false;
  5118. },
  5119. // 导出仓储费
  5120. storageFeeExport() {
  5121. if (this.dialogWhgenlegList.length === 0) {
  5122. this.$message({ message: "请选择需要导入的数据", type: "warning" });
  5123. return false;
  5124. }
  5125. for (let zhgen in this.dialogWhgenlegList) {
  5126. let haveGoods = false;
  5127. if (this.fWbuOptions.length !== 0) {
  5128. for (let wbu in this.fWbuOptions) {
  5129. if (
  5130. this.fWbuOptions[wbu].fId ===
  5131. this.dialogWhgenlegList[zhgen].fGoodsid
  5132. ) {
  5133. haveGoods = true;
  5134. break;
  5135. }
  5136. }
  5137. }
  5138. if (!haveGoods) {
  5139. let feeId = this.dialogWhgenlegList[zhgen].feeFId;
  5140. getFees(feeId).then((response) => {
  5141. this.fWbuOptions.push(response.data);
  5142. });
  5143. }
  5144. if (this.costStatus === "Cr") {
  5145. this.warehouseCrList.push({
  5146. fQty: 0,
  5147. fCorpid: this.dialogWhgenlegList[zhgen].fCorpid,
  5148. fFeeid: null,
  5149. fFeeunitid: this.dialogWhgenlegList[zhgen].fFeeUnitid,
  5150. fUnitprice: this.dialogWhgenlegList[zhgen].fPrice,
  5151. fCurrency: "RMB",
  5152. fExrate: 1,
  5153. fAmount: 0,
  5154. fTaxrate: this.fTaxrate,
  5155. });
  5156. } else {
  5157. this.warehouseDrList.push({
  5158. fQty: 0,
  5159. fCorpid: this.dialogWhgenlegList[zhgen].fCorpid,
  5160. fFeeid: null,
  5161. fFeeunitid: this.dialogWhgenlegList[zhgen].fFeeUnitid,
  5162. fUnitprice: this.dialogWhgenlegList[zhgen].fPrice,
  5163. fCurrency: "RMB",
  5164. fExrate: 1,
  5165. fAmount: 0,
  5166. fTaxrate: this.fTaxrate,
  5167. });
  5168. }
  5169. }
  5170. this.storageAgreements = false;
  5171. },
  5172. // 新增list
  5173. addRelevant() {
  5174. this.$refs["form"].validate((valid) => {
  5175. if (valid) {
  5176. this.whgenlegList = [];
  5177. this.dialogWhgenlegList = [];
  5178. this.whgenlegTotal = 0;
  5179. this.whgenlegVisible = true;
  5180. this.getWhgenlegList();
  5181. // this.changeInformation()
  5182. }
  5183. });
  5184. },
  5185. // 库存总账导出数据
  5186. whgenlegData() {
  5187. if (this.dialogWhgenlegList.length === 0) {
  5188. this.$message({ message: "未勾选信息", type: "warning" });
  5189. return false;
  5190. }
  5191. for (let whgen in this.dialogWhgenlegList) {
  5192. if (!this.form.fMblno || this.form.fMblno === "") {
  5193. this.$set(this.form, "fMblno", this.dialogWhgenlegList[whgen].fMblno);
  5194. }
  5195. this.changeInformation();
  5196. // for (let list in this.fStorageTypeOptions) {
  5197. // if (this.dialogWhgenlegList[whgen].fBusinessType === this.fStorageTypeOptions[list].dictValue) {
  5198. // this.$set(this.dialogWhgenlegList[whgen], 'fBusinessType', this.fStorageTypeOptions[list].dictLabel)
  5199. // break
  5200. // }
  5201. // }
  5202. this.dataList.push({
  5203. fBsdate: this.form.fBsdate,
  5204. fId: null,
  5205. fMblno: this.dialogWhgenlegList[whgen].fMblno,
  5206. fGoodsid: this.dialogWhgenlegList[whgen].fGoodsid,
  5207. fCntrtype: null,
  5208. fPlanqty: this.dialogWhgenlegList[whgen].fQtyblc,
  5209. fPlannetweight: this.dialogWhgenlegList[whgen].fNetweightblc,
  5210. fPlangrossweight: this.dialogWhgenlegList[whgen].fGrossweightblc,
  5211. fWarehouseLocationids: this.dialogWhgenlegList[whgen]
  5212. .fWarehouseLocationids,
  5213. fGoodsids: this.dialogWhgenlegList[whgen].fGoodsids,
  5214. fBillingway: this.dialogWhgenlegList[whgen].fBillingway,
  5215. fChargedate: this.dialogWhgenlegList[whgen].fChargedate,
  5216. fMarks: this.dialogWhgenlegList[whgen].fMarks,
  5217. fOriginalbilldate: this.dialogWhgenlegList[whgen].fOriginalbilldate,
  5218. fOriginalbillno: this.dialogWhgenlegList[whgen].fOriginalbillno,
  5219. fPackagespecs: this.dialogWhgenlegList[whgen].fPackagespecs,
  5220. fVolumn: this.dialogWhgenlegList[whgen].fVolumnblc,
  5221. fGrossweight: 0,
  5222. fNetweight: 0,
  5223. fQty: 0,
  5224. fCntqty: 1,
  5225. fBillstatus: 10,
  5226. fWarehouselocid: this.dialogWhgenlegList[whgen].fWarehouseLocationid,
  5227. fWarehouselocids: this.dialogWhgenlegList[whgen]
  5228. .fWarehouseLocationids,
  5229. fCntrno: this.dialogWhgenlegList[whgen].fCntrno,
  5230. fGoodsval: null,
  5231. fTruckno: this.whgenlegList.fTruckno,
  5232. remark: null,
  5233. fIsPass: "F",
  5234. fDriverName: this.whgenlegList.fDriverName,
  5235. fDriverTel: this.whgenlegList.fDriverTel,
  5236. fDriverIdCar: this.whgenlegList.fDriverIdCar,
  5237. fBusinessType: this.dialogWhgenlegList[whgen].fBusinessType + "",
  5238. fWarehouseInformation: this.dialogWhgenlegList[whgen].fWarehouseids,
  5239. });
  5240. }
  5241. this.whgenlegVisible = false;
  5242. // this.contrOl = true
  5243. },
  5244. // 收货单打印界面
  5245. showEditDialog_s() {
  5246. if (this.printinglist.length <= 0) {
  5247. this.$message.error("请选择需要打印的明细!");
  5248. return false;
  5249. }
  5250. for (let aorp in this.printinglist) {
  5251. var date = new Date(this.printinglist[aorp].fBsdate);
  5252. var Y = date.getFullYear() + "-";
  5253. var M =
  5254. (date.getMonth() + 1 < 10
  5255. ? "0" + (date.getMonth() + 1)
  5256. : date.getMonth() + 1) + "-";
  5257. var D =
  5258. (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  5259. this.$set(this.printinglist[aorp], "fBsdates", Y + M + D);
  5260. }
  5261. this.editDialogVisible_s = true;
  5262. for (let corp in this.fMblnoOptions) {
  5263. if (this.form.fCorpid === this.fMblnoOptions[corp].fId) {
  5264. this.$set(this.form, "fCorpName", this.fMblnoOptions[corp].fName);
  5265. }
  5266. }
  5267. for (let sorp in this.warehouseOptions) {
  5268. if (this.form.fWarehouseid === this.warehouseOptions[sorp].fId) {
  5269. this.$set(
  5270. this.form,
  5271. "fWarehouseids",
  5272. this.warehouseOptions[sorp].fName
  5273. );
  5274. }
  5275. }
  5276. },
  5277. // 作业单打印
  5278. printJobSheet() {
  5279. for (let item in this.fCartypeOptions) {
  5280. if (this.form.fCartype == this.fCartypeOptions[item].dictValue) {
  5281. this.fCartype = this.fCartypeOptions[item].dictLabel;
  5282. }
  5283. }
  5284. if (this.printinglist.length <= 0) {
  5285. this.$message.error("请维护出库明细!");
  5286. return false;
  5287. }
  5288. let fTruckno = this.printinglist[0].fTruckno;
  5289. let fDriverName = this.printinglist[0].fDriverName;
  5290. for (let li in this.printinglist) {
  5291. for (let list in this.fStorageTypeOptions) {
  5292. if (
  5293. this.printinglist[li].fBusinessType ===
  5294. this.fStorageTypeOptions[list].dictValue
  5295. ) {
  5296. this.$set(
  5297. this.printinglist[li],
  5298. "fBusinessTypes",
  5299. this.fStorageTypeOptions[list].dictLabel
  5300. );
  5301. break;
  5302. }
  5303. }
  5304. if (!this.printinglist[li].fId) {
  5305. this.$message.error("请先保存!");
  5306. return false;
  5307. }
  5308. if (this.form.fFeetunit > 3) {
  5309. this.$message.error("请维护主表计费单位为件数、毛重(kg)或净重(kg)");
  5310. return false;
  5311. }
  5312. if (
  5313. !this.printinglist[li].fTruckno ||
  5314. this.printinglist[li].fTruckno !== fTruckno
  5315. ) {
  5316. this.$message.error("请填写车号或选择车相同车号");
  5317. return false;
  5318. // } else if (!this.printinglist[li].fDriverName || this.printinglist[li].fDriverName !== fDriverName) {
  5319. // this.$message.error('请填写司机姓名选择相同司机姓名')
  5320. // return false
  5321. // } else if (!this.printinglist[li].fDriverTel) {
  5322. // this.$message.error('请选填写司机电话')
  5323. // return false
  5324. // } else if (!this.printinglist[li].fDriverIdCar) {
  5325. // this.$message.error('请选填写司机身份证')
  5326. // return false
  5327. // } else if (!this.printinglist[li].fDriverName) {
  5328. // this.$message.error('请输入司机姓名')
  5329. // return false
  5330. // } else if (!this.printinglist[li].fDriverTel) {
  5331. // this.$message.error('请输入司机电话')
  5332. // return false
  5333. }
  5334. }
  5335. if (
  5336. this.dataWithdrawList.length > 0 ||
  5337. this.dataListSelection.length > 0
  5338. ) {
  5339. for (let item in this.warehouseOptions) {
  5340. if (this.form.fWarehouseid == this.warehouseOptions[item].fId) {
  5341. this.fAddr = this.warehouseOptions[item].fAddr;
  5342. }
  5343. }
  5344. }
  5345. // 获取业务日期
  5346. var date = new Date(this.form.fBsdate);
  5347. var Y = date.getFullYear() + "-";
  5348. var M =
  5349. (date.getMonth() + 1 < 10
  5350. ? "0" + (date.getMonth() + 1)
  5351. : date.getMonth() + 1) + "-";
  5352. var D =
  5353. (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  5354. this.fBsdate = Y + M + D;
  5355. for (let dr in this.feelDrSelection) {
  5356. for (let opt in this.fWbuOptions) {
  5357. if (this.fWbuOptions[opt].fId === this.feelDrSelection[dr].fFeeid) {
  5358. this.$set(
  5359. this.feelDrSelection[dr],
  5360. "fFeeName",
  5361. this.fWbuOptions[opt].fName
  5362. );
  5363. break;
  5364. }
  5365. }
  5366. }
  5367. setTimeout(() => {
  5368. console.log("111");
  5369. this.openPrintJobSheet = true;
  5370. this.fBstime = this.form.fBstime;
  5371. }, 200);
  5372. // if(!this.dataListSelection[0].fSerialNumber){
  5373. // serialNumber().then(response =>{
  5374. // this.fSerialNumber = response.data.fSerialNumber
  5375. // })
  5376. // }else{
  5377. // this.fSerialNumber = this.dataListSelection[0].fSerialNumber
  5378. // }
  5379. for (let item in this.businessTypeOption) {
  5380. if (
  5381. this.form.fBusinessType == this.businessTypeOption[item].dictValue
  5382. ) {
  5383. this.businessType = this.businessTypeOption[item].dictLabel;
  5384. }
  5385. }
  5386. this.fSerialNumber = this.printinglist[0].fSerialNumber;
  5387. },
  5388. showEditDialog_ss() {
  5389. if (this.printinglist.length > 0) {
  5390. for (let warehouseCr in this.printinglist) {
  5391. if (
  5392. this.printinglist[warehouseCr].fTruckno !==
  5393. this.printinglist[0].fTruckno
  5394. ) {
  5395. this.$message.error("请选择车相同车号");
  5396. return false;
  5397. }
  5398. if (!this.printinglist[warehouseCr].fGoodsid) {
  5399. this.$message.error("请选择品名");
  5400. return false;
  5401. }
  5402. if (!this.printinglist[warehouseCr].fWarehouselocids) {
  5403. this.$message.error("请选择库区");
  5404. return false;
  5405. }
  5406. if (!this.printinglist[warehouseCr].fGrossweight) {
  5407. this.$message.error("请选择入库毛重(kg)");
  5408. return false;
  5409. }
  5410. if (!this.printinglist[warehouseCr].fNetweight) {
  5411. this.$message.error("请选择入库净重(kg)");
  5412. return false;
  5413. }
  5414. if (this.printinglist[warehouseCr].fQty) {
  5415. this.$message.error("请选择入库件数");
  5416. return false;
  5417. }
  5418. // if (!this.printinglist[warehouseCr].fDriverName) {
  5419. // this.$message.error("请输入司机姓名");
  5420. // return false;
  5421. // }
  5422. // if (!this.printinglist[warehouseCr].fDriverTel) {
  5423. // this.$message.error("请输入司机电话");
  5424. // return false;
  5425. // }
  5426. }
  5427. this.openPrintJobSheet = true;
  5428. } else {
  5429. this.$message.error("请选择需要打印的明细!");
  5430. }
  5431. },
  5432. // 收款信息
  5433. addCollection() {
  5434. this.$refs["form"].validate((valid) => {
  5435. if (valid) {
  5436. if (this.form.fBusinessType == null) {
  5437. this.$message.error("请维护作业类型");
  5438. return false;
  5439. } else {
  5440. this.warehouseDrList.push({
  5441. fcorpid: this.form.fCorpid,
  5442. ffeeid: null,
  5443. fFeeunitid: "",
  5444. fQty: "",
  5445. funitprice: "",
  5446. fAmount: 0,
  5447. fCurrency: "RMB",
  5448. fExrate: 1,
  5449. fTaxrate: this.fTaxrate,
  5450. remarks: null,
  5451. fMblno: this.form.fMblno,
  5452. fProductName: this.form.fProductName,
  5453. fMarks: this.form.fMarks,
  5454. fBusinessType: this.form.fBusinessType,
  5455. fSrcTypeId: 0,
  5456. });
  5457. this.fWbuOptions = [];
  5458. let queryParams = { pageNum: 1, fDc: "D" };
  5459. listFees(queryParams).then((response) => {
  5460. this.fDNameOptions = response.rows;
  5461. });
  5462. }
  5463. }
  5464. });
  5465. },
  5466. //仓库电话、仓库联系人带入
  5467. warwhouseTel() {
  5468. for (let item in this.warehouseOptions) {
  5469. if (this.form.fWarehouseid == this.warehouseOptions[item].fId) {
  5470. this.form.fTel = this.warehouseOptions[item].fTel;
  5471. this.form.fContacts = this.warehouseOptions[item].fContacts;
  5472. }
  5473. }
  5474. },
  5475. addpayment() {
  5476. this.$refs["form"].validate((valid) => {
  5477. if (valid) {
  5478. if (this.form.fBusinessType == null) {
  5479. this.$message.error("请维护作业类型");
  5480. return false;
  5481. } else {
  5482. this.warehouseCrList.push({
  5483. fcorpid: this.form.fCorpid,
  5484. ffeeid: null,
  5485. fFeeunitid: "",
  5486. fQty: 0,
  5487. funitprice: 0,
  5488. fAmount: 0,
  5489. fCurrency: "RMB",
  5490. fExrate: 1,
  5491. fTaxrate: this.fTaxrate,
  5492. remarks: null,
  5493. fMblno: this.form.fMblno,
  5494. fProductName: this.form.fProductName,
  5495. fMarks: this.form.fMarks,
  5496. fBusinessType: this.form.fBusinessType,
  5497. fSrcTypeId: 0,
  5498. });
  5499. this.fWbuOptions = [];
  5500. let queryParams = { pageNum: 1, fDc: "C" };
  5501. listFees(queryParams).then((response) => {
  5502. this.fCNameOptions = response.rows;
  5503. });
  5504. }
  5505. }
  5506. });
  5507. },
  5508. queryUser() {
  5509. queryUserVal().then((response) => {
  5510. if (response.user !== null) {
  5511. this.userVal = response.user;
  5512. this.$set(this.form, "fDeptid", this.userVal.deptId);
  5513. this.$set(this.form, "createBy", this.userVal.userName);
  5514. this.$set(this.form, "fStorekeeper", this.userVal.nickName);
  5515. this.$set(this.form, "fIfdamage", "1");
  5516. this.$set(this.form, "fIfweigh", "1");
  5517. this.$set(this.form, "fTrademodeid", "1");
  5518. this.$set(this.form, "createTime", Date.parse(new Date()));
  5519. }
  5520. if (response.dept !== null) {
  5521. this.deptOptions = [];
  5522. this.deptOptions.push(response.dept);
  5523. }
  5524. });
  5525. },
  5526. /** 查询仓库主(出入库)列表 */
  5527. getList() {
  5528. let queryParams = { pageNum: 1, fTypeid: 6 };
  5529. listCorps(queryParams).then((response) => {
  5530. this.fCompanyOptIons = response.rows;
  5531. });
  5532. let params = { pageNum: 1, fTypeid: 2 };
  5533. listCorps(params).then((response) => {
  5534. this.fleetOptions = response.rows;
  5535. });
  5536. this.loading = true;
  5537. listWarehousebills(this.queryParams).then((response) => {
  5538. this.warehousebillsList = response.rows;
  5539. this.total = response.total;
  5540. this.loading = false;
  5541. });
  5542. // for(let li in this.warehousebillsList){
  5543. // }
  5544. },
  5545. // 查询库存总账信息
  5546. getWhgenlegList() {
  5547. // this.whgenlegParams.fMblno = this.form.fMblno;
  5548. this.whgenlegParams.fCorpid = this.form.fCorpid;
  5549. this.whgenlegParams.fWarehouseid = this.form.fWarehouseid;
  5550. this.whgenlegParams.fTrademodeid = this.form.fTrademodeid;
  5551. listWhgenleg(this.whgenlegParams).then((response) => {
  5552. this.whgenlegList = response.rows;
  5553. this.whgenlegTotal = response.total;
  5554. });
  5555. },
  5556. // 作业类型(数据字典),对应st_out_type 字典翻译
  5557. fBusinessTypeFormat(row, column) {
  5558. return this.selectDictLabel(this.businessTypeOption, row.fBusinessType);
  5559. },
  5560. // 贸易方式(数据字典),对应t_trademodels 字典翻译
  5561. fTrademodeidFormat(row, column) {
  5562. return this.selectDictLabel(this.fTrademodeidOptions, row.fTrademodeid);
  5563. },
  5564. // 是否过磅(数据字典)默认 F ,过磅T 否者F 下拉选择字典翻译
  5565. fIfweighFormat(row, column) {
  5566. return this.selectDictLabel(this.fIfweighOptions, row.fIfweigh);
  5567. },
  5568. // 是否破损(数据字典),默认F否则T字典翻译
  5569. fIfdamageFormat(row, column) {
  5570. return this.selectDictLabel(this.fIfdamageOptions, row.fIfdamage);
  5571. },
  5572. // 单据类型(数据字典)SJRK字典翻译
  5573. fBilltypeFormat(row, column) {
  5574. return this.selectDictLabel(this.fBilltypeOptions, row.fBilltype);
  5575. },
  5576. // 状态(数据字典),N 入字典翻译
  5577. fBillstatusFormat(row, column) {
  5578. return this.selectDictLabel(this.fBillstatusOptions, row.fBillstatus);
  5579. },
  5580. // 取消按钮
  5581. cancel() {
  5582. this.mblnoStatus = "";
  5583. this.idCopy = null;
  5584. this.open = false;
  5585. this.fGrossweight = 0;
  5586. this.fNetweight = 0;
  5587. this.fQty = 0;
  5588. this.reset();
  5589. this.getList();
  5590. },
  5591. // 表单重置
  5592. reset() {
  5593. this.form = {
  5594. fId: null,
  5595. fBillno: null,
  5596. fCustomsdeclartion: null,
  5597. fOriginalbillno: null,
  5598. fDeptid: null,
  5599. fBsdeptid: null,
  5600. fContacts: null,
  5601. fTel: null,
  5602. fCorpid: null,
  5603. fTocorpid: null,
  5604. fStltypeid: null,
  5605. fBscorpno: null,
  5606. fWarehouseid: null,
  5607. fStorekeeper: null,
  5608. fBsdate: null,
  5609. fPlanqty: null,
  5610. fPlangrossweight: null,
  5611. fPlannetweight: null,
  5612. fPlanvolumn: null,
  5613. fQty: null,
  5614. fGrossweight: null,
  5615. fNetweight: null,
  5616. fVolumn: null,
  5617. fTrademodeid: null,
  5618. fSbu: null,
  5619. fFeetunit: null,
  5620. fMblno: null,
  5621. fVslvoy: null,
  5622. fEta: null,
  5623. fCustomno: null,
  5624. fIfweigh: null,
  5625. fIfpledge: null,
  5626. fIfdamage: null,
  5627. fBankcorpid: null,
  5628. fBilltype: null,
  5629. fBillstatus: null,
  5630. delFlag: null,
  5631. createBy: null,
  5632. createTime: null,
  5633. updateBy: null,
  5634. updateTime: null,
  5635. remark: null,
  5636. fCreateby: null,
  5637. fCreatetime: null,
  5638. fGoodsid: null,
  5639. fCntrtype: null,
  5640. fCntqty: null,
  5641. fBusinessType: null,
  5642. };
  5643. this.mblnoStatus = "";
  5644. this.deptOptions = [];
  5645. this.userOptions = [];
  5646. this.fSbuOptions = [];
  5647. this.fWbuOptions = [];
  5648. this.goodsOptions = [];
  5649. this.KHblnoOptions = [];
  5650. this.fMblnoOptions = [];
  5651. this.kqhouseOptions = [];
  5652. this.addOrUpdateVisible = false;
  5653. this.addOrUpdateVisib = false;
  5654. this.formBrowseStatus = false;
  5655. this.detailsHidden = false;
  5656. this.warehousingagreements = false;
  5657. this.whgenlegVisible = false;
  5658. this.approvalStatus = false;
  5659. this.editDialogVisible_s = false;
  5660. this.editDialogVisible_ss = false;
  5661. this.openPrintJobSheet = false;
  5662. this.editDialogClosed_ss = false;
  5663. this.storageAgreements = false;
  5664. this.browseStatus = false;
  5665. this.CntrTable = [{}];
  5666. this.doNot = false;
  5667. this.resetForm("form");
  5668. },
  5669. /** 搜索按钮操作 */
  5670. handleQuery() {
  5671. this.queryParams.pageNum = 1;
  5672. this.getList();
  5673. },
  5674. /** 重置按钮操作 */
  5675. resetQuery() {
  5676. this.queryParams = {
  5677. fBillno: null,
  5678. createBy: null,
  5679. timeInterval: null,
  5680. fTrademodeid: null,
  5681. fCorpid: null,
  5682. fMblno: null,
  5683. fSbu: null,
  5684. fGoodsid: null,
  5685. fWarehouseid: null,
  5686. fMarks: null,
  5687. fBillstatus: null,
  5688. };
  5689. this.resetForm("queryForm");
  5690. this.handleQuery();
  5691. },
  5692. // 多选框选中数据
  5693. handleSelectionChange(selection) {
  5694. // this.ids = selection;
  5695. this.ids = selection.map((item) => item.fId);
  5696. this.idCopy = this.ids[0];
  5697. console.log(this.idCopy);
  5698. this.single =
  5699. selection.length !== 1 ||
  5700. selection.map((item) => item.fBillstatus) == 6 ||
  5701. selection.map((item) => item.fBillstatus) == 4;
  5702. this.multiple = !selection.length;
  5703. },
  5704. // 库存总账多选框
  5705. whgenlegSelectionChange(selection) {
  5706. this.dialogWhgenlegList = selection;
  5707. },
  5708. /** 新增按钮操作 */
  5709. handleAdd(status) {
  5710. this.before = "";
  5711. this.current = "";
  5712. this.reset();
  5713. this.browseStatus = status;
  5714. this.queryUser();
  5715. this.warehousesssMethod();
  5716. this.open = true;
  5717. this.detailsHidden = false;
  5718. this.dataList = [];
  5719. this.warehouseCrList = [];
  5720. this.warehouseDrList = [];
  5721. this.relevantAttachments = [];
  5722. this.title = "出库单";
  5723. this.formBrowseStatus = false;
  5724. this.form = {
  5725. fFeetunit: "2",
  5726. fCartype: "0",
  5727. fBstime: new Date(),
  5728. };
  5729. this.contrOl = false;
  5730. },
  5731. /** 修改按钮操作 */
  5732. handleUpdate(row, status) {
  5733. let queryParams = { pageNum: 1, fDc: "C" };
  5734. listFees(queryParams).then((response) => {
  5735. this.fCNameOptions = response.rows;
  5736. });
  5737. let query = { pageNum: 1, fDc: "D" };
  5738. listFees(query).then((response) => {
  5739. this.fDNameOptions = response.rows;
  5740. });
  5741. if (status === 2) {
  5742. this.goodsRemoteMethod();
  5743. getWarehousebills(this.idCopy).then((response) => {
  5744. if (response.data.warehousebills) {
  5745. this.form = response.data.warehousebills;
  5746. this.form.fProductName = "";
  5747. this.form.fMarks = "";
  5748. this.form.fMblno = "";
  5749. queryUserVal().then((response) => {
  5750. this.current = response.user.userName;
  5751. this.form.fStorekeeper = response.user.nickName;
  5752. this.form.createBy = response.user.userName;
  5753. this.before = this.form.createBy;
  5754. });
  5755. this.form.fId = null;
  5756. this.form.fBillstatus = 1;
  5757. this.$set(
  5758. this.form,
  5759. "fCartype",
  5760. response.data.warehousebills.fCartype + ""
  5761. );
  5762. this.$set(this.form, "fEta", Date.parse(this.form.fEta));
  5763. this.$set(this.form, "fStltypeid", this.form.fStltypeid + "");
  5764. this.$set(this.form, "fBsdate", Date.parse(this.form.fBsdate));
  5765. this.$set(
  5766. this.form,
  5767. "createTime",
  5768. Date.parse(this.form.createTime)
  5769. );
  5770. this.$set(this.form, "fTrademodeid", this.form.fTrademodeid + "");
  5771. this.$set(this.form, "fBillno", null);
  5772. }
  5773. if (response.data.warehouseBillsItem) {
  5774. this.dataList = [];
  5775. for (let list in this.dataList) {
  5776. this.$set(this.dataList[list], "fBillstatus", 10);
  5777. this.$set(
  5778. this.dataList[list],
  5779. "fBusinessType",
  5780. this.dataList[list].fBusinessType + ""
  5781. );
  5782. this.$set(
  5783. this.dataList[list],
  5784. "fBsdate",
  5785. Date.parse(this.dataList[list].fBsdate)
  5786. );
  5787. this.$set(this.dataList[list], "fSerialNumber", null);
  5788. this.$set(this.dataList[list], "fId", null);
  5789. }
  5790. }
  5791. if (response.data.corps) {
  5792. this.fMblnoOptions = response.data.corps;
  5793. this.KHblnoOptions = response.data.corps;
  5794. }
  5795. if (response.data.feesList) {
  5796. this.fWbuOptions = response.data.feesList;
  5797. }
  5798. if (response.data.warehouse) {
  5799. this.warehouseOptions = response.data.warehouse;
  5800. }
  5801. this.goodsOptions = response.data.goodsList;
  5802. this.kqhouseOptions = response.data.warehouseAreas;
  5803. if (response.data.warehousebillsfeesDr) {
  5804. this.warehouseDrList = response.data.warehousebillsfeesDr;
  5805. for (let dr in this.warehouseDrList) {
  5806. console.log(this.warehouseDrList[dr]);
  5807. this.$set(this.warehouseDrList[dr], "fBillstatus", 1);
  5808. if (this.warehouseDrList[dr].fFeeunitid !== null) {
  5809. this.$set(
  5810. this.warehouseDrList[dr],
  5811. "fFeeunitid",
  5812. this.warehouseDrList[dr].fFeeunitid + ""
  5813. );
  5814. }
  5815. this.$set(
  5816. this.warehouseDrList[dr],
  5817. "fQty",
  5818. this.warehouseDrList[dr].fQty.toFixed(2)
  5819. );
  5820. this.$set(
  5821. this.warehouseDrList[dr],
  5822. "fAmount",
  5823. this.warehouseDrList[dr].fAmount.toFixed(2)
  5824. );
  5825. this.$set(this.warehouseDrList[dr], "fId", null);
  5826. }
  5827. }
  5828. if (response.data.warehousebillsfeesCr) {
  5829. this.warehouseCrList = response.data.warehousebillsfeesCr;
  5830. for (let cr in this.warehouseCrList) {
  5831. this.$set(this.warehouseCrList[cr], "fBillstatus", 1);
  5832. if (this.warehouseCrList[cr].fFeeunitid !== null) {
  5833. this.$set(
  5834. this.warehouseCrList[cr],
  5835. "fFeeunitid",
  5836. this.warehouseCrList[cr].fFeeunitid + ""
  5837. );
  5838. }
  5839. this.$set(this.warehouseCrList[cr], "fId", null);
  5840. }
  5841. }
  5842. this.userOptions = response.data.sysUser;
  5843. this.open = true;
  5844. this.title = "修改仓入库";
  5845. this.warehousesssMethod();
  5846. this.fWbuOptions = [];
  5847. let queryParams = { pageNum: 1 };
  5848. listFees(queryParams).then((response) => {
  5849. this.fWbuOptions = response.rows;
  5850. });
  5851. });
  5852. } else {
  5853. this.dataList = [];
  5854. this.reset();
  5855. this.browseStatus = status;
  5856. this.contrOl = status;
  5857. this.detailsHidden = false;
  5858. this.formBrowseStatus = false;
  5859. let fId = row.fId || this.ids;
  5860. this.goodsRemoteMethod();
  5861. // if (fId.length === 1){
  5862. // fId = fId[0].fId
  5863. // }
  5864. getWarehousebills(fId).then((response) => {
  5865. if (response.data.warehousebills) {
  5866. this.form = response.data.warehousebills;
  5867. this.before = this.form.createBy;
  5868. this.$set(
  5869. this.form,
  5870. "fCartype",
  5871. response.data.warehousebills.fCartype + ""
  5872. );
  5873. this.$set(this.form, "fEta", Date.parse(this.form.fEta));
  5874. this.$set(this.form, "fStltypeid", this.form.fStltypeid + "");
  5875. this.$set(this.form, "fBsdate", Date.parse(this.form.fBsdate));
  5876. this.$set(
  5877. this.form,
  5878. "createTime",
  5879. Date.parse(this.form.createTime)
  5880. );
  5881. this.$set(this.form, "fTrademodeid", this.form.fTrademodeid + "");
  5882. if (this.form.fBillstatus > 2) {
  5883. this.approvalStatus = false;
  5884. } else {
  5885. this.approvalStatus = true;
  5886. }
  5887. }
  5888. if (response.data.warehouseBillsItem) {
  5889. this.dataList = response.data.warehouseBillsItem;
  5890. if (!this.dataList.length) {
  5891. this.form.fProductName = "";
  5892. this.form.fMarks = "";
  5893. }
  5894. for (let list in this.dataList) {
  5895. this.$set(
  5896. this.dataList[list],
  5897. "fBusinessType",
  5898. this.dataList[list].fBusinessType + ""
  5899. );
  5900. if (this.dataList[list].fBillstatus > 10) {
  5901. this.formBrowseStatus = true;
  5902. this.$set(
  5903. this.dataList[list],
  5904. "fBusinessType",
  5905. this.dataList[list].fBusinessType + ""
  5906. );
  5907. }
  5908. if (this.dataList[list].fBillstatus === 40) {
  5909. this.contrOl = true;
  5910. }
  5911. }
  5912. }
  5913. if (response.data.corps) {
  5914. this.fMblnoOptions = response.data.corps;
  5915. this.KHblnoOptions = response.data.corps;
  5916. }
  5917. if (response.data.feesList) {
  5918. this.fWbuOptions = response.data.feesList;
  5919. }
  5920. if (response.data.warehouse) {
  5921. this.warehouseOptions = response.data.warehouse;
  5922. }
  5923. if (response.data.warehouseBillsItem) {
  5924. this.dataList = response.data.warehouseBillsItem;
  5925. for (let list in this.dataList) {
  5926. this.$set(
  5927. this.dataList[list],
  5928. "fBsdate",
  5929. Date.parse(this.dataList[list].fBsdate)
  5930. );
  5931. }
  5932. }
  5933. if (response.data.enclosures) {
  5934. this.relevantAttachments = response.data.enclosures;
  5935. }
  5936. this.goodsOptions = response.data.goodsList;
  5937. this.kqhouseOptions = response.data.warehouseAreas;
  5938. this.warehouseDrList = response.data.warehousebillsfeesDr;
  5939. for (let dr in this.warehouseDrList) {
  5940. if (this.warehouseDrList[dr].fFeeunitid !== null) {
  5941. this.$set(
  5942. this.warehouseDrList[dr],
  5943. "fFeeunitid",
  5944. this.warehouseDrList[dr].fFeeunitid + ""
  5945. );
  5946. }
  5947. this.$set(
  5948. this.warehouseDrList[dr],
  5949. "fQty",
  5950. this.warehouseDrList[dr].fQty.toFixed(2)
  5951. );
  5952. this.$set(
  5953. this.warehouseDrList[dr],
  5954. "fAmount",
  5955. this.warehouseDrList[dr].fAmount.toFixed(2)
  5956. );
  5957. }
  5958. this.warehouseCrList = response.data.warehousebillsfeesCr;
  5959. for (let cr in this.warehouseCrList) {
  5960. if (this.warehouseCrList[cr].fFeeunitid !== null) {
  5961. this.$set(
  5962. this.warehouseCrList[cr],
  5963. "fFeeunitid",
  5964. this.warehouseCrList[cr].fFeeunitid + ""
  5965. );
  5966. }
  5967. // this.$set(this.warehouseCrList[cr], "fBusinessType", response.data.warehousebillsfeesCr);
  5968. }
  5969. this.userOptions = response.data.sysUser;
  5970. this.open = true;
  5971. this.title = "修改仓入库";
  5972. this.warehousesssMethod();
  5973. this.fWbuOptions = [];
  5974. let queryParams = { pageNum: 1 };
  5975. listFees(queryParams).then((response) => {
  5976. this.fWbuOptions = response.rows;
  5977. });
  5978. });
  5979. queryUserVal().then((response) => {
  5980. this.current = response.user.userName;
  5981. });
  5982. }
  5983. },
  5984. // 数量计算
  5985. changeContractAmt(row) {
  5986. let fQty = 0;
  5987. let fUnitprice = 0;
  5988. if (row.fUnitprice) {
  5989. fUnitprice = row.fUnitprice;
  5990. }
  5991. if (row.fQty) {
  5992. fQty = row.fQty;
  5993. }
  5994. this.$set(
  5995. row,
  5996. "fAmount",
  5997. parseFloat(Number(fUnitprice) * Number(fQty)).toFixed(2)
  5998. );
  5999. },
  6000. changefBsdate(row) {
  6001. if (this.dataList.length > 0) {
  6002. for (var i = 0; i < this.dataList.length; i++) {
  6003. this.$set(this.dataList[i], "fBsdate", row);
  6004. }
  6005. }
  6006. },
  6007. // change仓库
  6008. changefWarehouseid(row) {
  6009. for (let corp in this.warehouseOptions) {
  6010. if (row.fWarehouseid === this.warehouseOptions[corp].fId) {
  6011. this.$set(
  6012. this.form,
  6013. "fContacts",
  6014. this.warehouseOptions[corp].fContacts
  6015. );
  6016. this.$set(this.form, "fTel", this.warehouseOptions[corp].fTel);
  6017. this.fAddr = this.warehouseOptions[corp].fAddr;
  6018. }
  6019. }
  6020. },
  6021. //change司机信息
  6022. changeInformation() {
  6023. if (this.form.fTruckno !== null) {
  6024. this.$set(this.whgenlegList, "fTruckno", this.form.fTruckno);
  6025. }
  6026. if (this.form.fDriverName !== null) {
  6027. this.$set(this.whgenlegList, "fDriverName", this.form.fDriverName);
  6028. }
  6029. if (this.form.fDriverTel !== null) {
  6030. this.$set(this.whgenlegList, "fDriverTel", this.form.fDriverTel);
  6031. }
  6032. if (this.form.fDriverIdCar !== null) {
  6033. this.$set(this.whgenlegList, "fDriverIdCar", this.form.fDriverIdCar);
  6034. }
  6035. },
  6036. // 选择按钮
  6037. collectionoptions(selection) {
  6038. this.feelDrSelection = selection;
  6039. },
  6040. changefCorpid(row) {
  6041. this.$set(row, "fSbu", row.fCorpid);
  6042. for (let corp in this.fMblnoOptions) {
  6043. if (row.fCorpid === this.fMblnoOptions[corp].fId) {
  6044. this.$set(
  6045. this.form,
  6046. "fStltypeid",
  6047. this.fMblnoOptions[corp].fStltypeid + ""
  6048. );
  6049. }
  6050. }
  6051. },
  6052. // 合计
  6053. getSummaries(param) {
  6054. const { columns, data } = param;
  6055. const sums = [];
  6056. var values = [];
  6057. columns.forEach((column, index) => {
  6058. if (index === 0) {
  6059. sums[index] = "合计";
  6060. return;
  6061. }
  6062. if (column.property === "fGrossweight") {
  6063. values = data.map((item) => Number(item["fGrossweight"]));
  6064. }
  6065. if (column.property === "fNetweight") {
  6066. values = data.map((item) => Number(item["fNetweight"]));
  6067. }
  6068. if (column.property === "fQty") {
  6069. values = data.map((item) => Number(item["fQty"]));
  6070. }
  6071. if (column.property === "fCntqty") {
  6072. values = data.map((item) => Number(item["fCntqty"]));
  6073. } // const values = data.map(item => Number(item[column.property]))
  6074. if (
  6075. column.property === "fGrossweight" ||
  6076. column.property === "fNetweight" ||
  6077. column.property === "fQty" ||
  6078. column.property === "fCntqty"
  6079. ) {
  6080. sums[index] = values.reduce((prev, curr) => {
  6081. const value = Number(curr);
  6082. if (!isNaN(value)) {
  6083. if (column.property === "fGrossweight") {
  6084. this.fGrossweight = prev + curr;
  6085. }
  6086. if (column.property === "fNetweight") {
  6087. this.fNetweight = prev + curr;
  6088. }
  6089. if (column.property === "fVolumn") {
  6090. this.fVolumn = prev + curr;
  6091. }
  6092. if (column.property === "fQty") {
  6093. this.fQty = prev + curr;
  6094. }
  6095. if (column.property === "fCntqty") {
  6096. this.fCntqty = prev + curr;
  6097. }
  6098. return prev + curr;
  6099. } else {
  6100. return prev;
  6101. }
  6102. }, 0); // sums[index]
  6103. sums[index] = sums[index].toFixed(2);
  6104. }
  6105. });
  6106. this.sums = sums;
  6107. return sums;
  6108. },
  6109. // 付款合计
  6110. warehouseDrSummaries(param) {
  6111. const { columns, data } = param;
  6112. const sums = [];
  6113. columns.forEach((column, index) => {
  6114. if (index === 0) {
  6115. sums[index] = "合计";
  6116. return;
  6117. }
  6118. const values = data.map((item) => Number(item[column.property]));
  6119. if (
  6120. column.property === "fUnitprice" ||
  6121. column.property === "fAmount" ||
  6122. column.property === "fQty" ||
  6123. column.property === "fQty"
  6124. ) {
  6125. sums[index] = values.reduce((prev, curr) => {
  6126. const value = Number(curr);
  6127. if (!isNaN(value)) {
  6128. return prev + curr;
  6129. } else {
  6130. return prev;
  6131. }
  6132. }, 0); // sums[index]
  6133. sums[index] = sums[index].toFixed(2);
  6134. }
  6135. });
  6136. return sums;
  6137. },
  6138. // 库存明细多选框结果
  6139. dataListChange(row) {
  6140. this.dataListSelection = row;
  6141. },
  6142. // 变更计价单位
  6143. changeFeeUnit(row) {
  6144. if (!row.fFeeunitid) {
  6145. return false;
  6146. }
  6147. let fQty = 0;
  6148. let fGrossweight = 0;
  6149. let fNetweight = 0;
  6150. let fCntqty = 0;
  6151. let fixed = 1;
  6152. for (let li in this.dataList) {
  6153. if (this.dataList[li].fQty) {
  6154. fQty = Number(fQty) + Number(this.dataList[li].fQty);
  6155. }
  6156. if (this.dataList[li].fGrossweight) {
  6157. fGrossweight = parseFloat(
  6158. Number(fGrossweight) + Number(this.dataList[li].fGrossweight)
  6159. ).toFixed(2);
  6160. }
  6161. if (this.dataList[li].fNetweight) {
  6162. fNetweight = parseFloat(
  6163. Number(fNetweight) + Number(this.dataList[li].fNetweight)
  6164. ).toFixed(2);
  6165. }
  6166. if (this.dataList[li].fCntqty) {
  6167. fCntqty = parseFloat(
  6168. Number(fCntqty) + Number(this.dataList[li].fCntqty)
  6169. ).toFixed(2);
  6170. }
  6171. }
  6172. if (row.fFeeunitid == "1") {
  6173. this.$set(row, "fQty", fQty.toFixed(2));
  6174. } else if (row.fFeeunitid == "2") {
  6175. this.$set(row, "fQty", (fGrossweight / 1000).toFixed(2));
  6176. } else if (row.fFeeunitid == "3") {
  6177. this.$set(row, "fQty", (fNetweight / 1000).toFixed(2));
  6178. } else if (row.fFeeunitid == "7") {
  6179. this.$set(row, "fQty", fCntqty);
  6180. } else {
  6181. this.$set(row, "fQty", 0);
  6182. }
  6183. if (row.fUnitprice) {
  6184. this.$set(
  6185. row,
  6186. "fAmount",
  6187. parseFloat(Number(row.fUnitprice) * Number(row.fQty)).toFixed(2)
  6188. );
  6189. }
  6190. },
  6191. // 出库确认
  6192. creditClick() {
  6193. this.$refs["form"].validate((valid) => {
  6194. for (let warehouseCr in this.dataListSelection) {
  6195. if (this.form.fFeetunit > 3) {
  6196. this.$message.error("请维护主表计费单位为件数、毛重(kg)或净重(kg)");
  6197. return false;
  6198. }
  6199. if (this.dataListSelection[warehouseCr].fBillstatus === 10) {
  6200. this.$message.error("请先打印作业单");
  6201. return false;
  6202. } else if (this.dataListSelection[warehouseCr].fBillstatus === 20) {
  6203. this.$message.error("请先装货");
  6204. return false;
  6205. } else if (
  6206. !this.dataListSelection[warehouseCr].fQty ||
  6207. this.dataListSelection[warehouseCr].fQty === 0
  6208. ) {
  6209. this.$message.error("请维护出库件数");
  6210. return false;
  6211. } else if (
  6212. !this.dataListSelection[warehouseCr].fGrossweight ||
  6213. this.dataListSelection[warehouseCr].fGrossweight === 0
  6214. ) {
  6215. this.$message.error("请维护出库毛重(kg)");
  6216. return false;
  6217. } else if (
  6218. !this.dataListSelection[warehouseCr].fNetweight ||
  6219. this.dataListSelection[warehouseCr].fNetweight === 0
  6220. ) {
  6221. this.$message.error("请维护出库净重(kg)");
  6222. return false;
  6223. } else if (!this.dataListSelection[warehouseCr].fBusinessType) {
  6224. this.$message.error("请维护业务类型");
  6225. return false;
  6226. } else if (!this.dataListSelection[warehouseCr].fMarks) {
  6227. this.$message.error("请维护业务详情");
  6228. return false;
  6229. } else if (!this.dataListSelection[warehouseCr].fGrossweight) {
  6230. this.$message.error("请选择入库毛重(kg)");
  6231. return false;
  6232. } else if (!this.dataListSelection[warehouseCr].fNetweight) {
  6233. this.$message.error("请选择入库净重(kg)");
  6234. return false;
  6235. } else if (!this.dataListSelection[warehouseCr].fQty) {
  6236. this.$message.error("请维护出库件数");
  6237. return false;
  6238. } else if (this.dataListSelection[warehouseCr].fIsPass !== "T") {
  6239. this.$message.error("请放行才能出库");
  6240. return false;
  6241. }
  6242. }
  6243. if (valid) {
  6244. let listSelection = JSON.parse(
  6245. JSON.stringify(this.dataListSelection)
  6246. );
  6247. let formData = new window.FormData();
  6248. formData.append("warehouseBills", JSON.stringify(this.form));
  6249. formData.append(
  6250. "tEnclosure",
  6251. JSON.stringify(this.relevantAttachments)
  6252. );
  6253. formData.append(
  6254. "warehousebillsitems",
  6255. JSON.stringify(this.dataListSelection)
  6256. );
  6257. formData.append(
  6258. "warehousebillsfeesCr",
  6259. JSON.stringify(this.warehouseCrList)
  6260. );
  6261. formData.append(
  6262. "warehousebillsfeesDr",
  6263. JSON.stringify(this.warehouseDrList)
  6264. );
  6265. formData.append("tCntr", JSON.stringify([]));
  6266. addWhgenleg(formData).then((response) => {
  6267. this.fid = response.data.fPid;
  6268. // 暂时注释掉,后续可能会加回来 仓储费得出的明细
  6269. /* this.fWbuOptions = response.data.fees;
  6270. let warehousebillsfees = response.data.warehousebillsfees;
  6271. for (let fees in warehousebillsfees) {
  6272. this.$set(warehousebillsfees[fees], "fFeeid", warehousebillsfees[fees].fFeeid + "");
  6273. this.$set(warehousebillsfees[fees], "fCorpid", warehousebillsfees[fees].fCorpid + "");
  6274. this.$set(warehousebillsfees[fees], "fFeeUnitid", warehousebillsfees[fees].fFeeUnitid + "");
  6275. this.warehouseDrList.push(warehousebillsfees[fees]);
  6276. } */
  6277. this.dataWithdrawList = [];
  6278. this.dataListSelection = [];
  6279. this.msgSuccess("出库成功");
  6280. this.$refs.tableList.clearSelection();
  6281. this.formBrowseStatus = true;
  6282. this.contrOl = true;
  6283. for (let li in listSelection) {
  6284. for (let i in this.dataList) {
  6285. if (listSelection[li].fId == this.dataList[i].fId) {
  6286. this.$set(this.dataList[i], "fBillstatus", 40);
  6287. }
  6288. }
  6289. }
  6290. getWarehousebills(this.form.fId).then((response) => {
  6291. if (response.data.warehousebills) {
  6292. this.form = response.data.warehousebills;
  6293. this.before = this.form.createBy;
  6294. this.$set(
  6295. this.form,
  6296. "fCartype",
  6297. response.data.warehousebills.fCartype + ""
  6298. );
  6299. this.$set(this.form, "fEta", Date.parse(this.form.fEta));
  6300. this.$set(this.form, "fStltypeid", this.form.fStltypeid + "");
  6301. this.$set(this.form, "fBsdate", Date.parse(this.form.fBsdate));
  6302. this.$set(
  6303. this.form,
  6304. "createTime",
  6305. Date.parse(this.form.createTime)
  6306. );
  6307. this.$set(
  6308. this.form,
  6309. "fTrademodeid",
  6310. this.form.fTrademodeid + ""
  6311. );
  6312. if (this.form.fBillstatus > 2) {
  6313. this.approvalStatus = false;
  6314. } else {
  6315. this.approvalStatus = true;
  6316. }
  6317. }
  6318. if (response.data.warehouseBillsItem) {
  6319. this.dataList = response.data.warehouseBillsItem;
  6320. for (let list in this.dataList) {
  6321. this.$set(
  6322. this.dataList[list],
  6323. "fBusinessType",
  6324. this.dataList[list].fBusinessType + ""
  6325. );
  6326. if (this.dataList[list].fBillstatus > 10) {
  6327. this.formBrowseStatus = true;
  6328. this.$set(
  6329. this.dataList[list],
  6330. "fBusinessType",
  6331. this.dataList[list].fBusinessType + ""
  6332. );
  6333. }
  6334. if (this.dataList[list].fBillstatus === 40) {
  6335. this.contrOl = true;
  6336. }
  6337. }
  6338. }
  6339. if (response.data.corps) {
  6340. this.fMblnoOptions = response.data.corps;
  6341. this.KHblnoOptions = response.data.corps;
  6342. }
  6343. if (response.data.feesList) {
  6344. this.fWbuOptions = response.data.feesList;
  6345. }
  6346. if (response.data.warehouse) {
  6347. this.warehouseOptions = response.data.warehouse;
  6348. }
  6349. if (response.data.warehouseBillsItem) {
  6350. this.dataList = response.data.warehouseBillsItem;
  6351. for (let list in this.dataList) {
  6352. this.$set(
  6353. this.dataList[list],
  6354. "fBsdate",
  6355. Date.parse(this.dataList[list].fBsdate)
  6356. );
  6357. }
  6358. }
  6359. if (response.data.enclosures) {
  6360. this.relevantAttachments = response.data.enclosures;
  6361. }
  6362. this.goodsOptions = response.data.goodsList;
  6363. this.kqhouseOptions = response.data.warehouseAreas;
  6364. this.warehouseDrList = response.data.warehousebillsfeesDr;
  6365. for (let dr in this.warehouseDrList) {
  6366. this.$set(
  6367. this.warehouseDrList[dr],
  6368. "fFeeunitid",
  6369. this.warehouseDrList[dr].fFeeunitid + ""
  6370. );
  6371. this.$set(
  6372. this.warehouseDrList[dr],
  6373. "fQty",
  6374. this.warehouseDrList[dr].fQty.toFixed(2)
  6375. );
  6376. this.$set(
  6377. this.warehouseDrList[dr],
  6378. "fAmount",
  6379. this.warehouseDrList[dr].fAmount.toFixed(2)
  6380. );
  6381. }
  6382. this.warehouseCrList = response.data.warehousebillsfeesCr;
  6383. for (let cr in this.warehouseCrList) {
  6384. this.$set(
  6385. this.warehouseCrList[cr],
  6386. "fFeeunitid",
  6387. this.warehouseCrList[cr].fFeeunitid + ""
  6388. );
  6389. // this.$set(this.warehouseCrList[cr], "fBusinessType", response.data.warehousebillsfeesCr);
  6390. }
  6391. this.userOptions = response.data.sysUser;
  6392. this.open = true;
  6393. this.title = "修改仓入库";
  6394. this.warehousesssMethod();
  6395. });
  6396. this.$refs["form"].validate((valid) => {
  6397. for (let li in this.dataList) {
  6398. for (let list in this.fStorageTypeOptions) {
  6399. if (
  6400. this.dataList[li].fBusinessType ===
  6401. this.fStorageTypeOptions[list].dictLabel
  6402. ) {
  6403. this.$set(
  6404. this.dataList[li],
  6405. "fBusinessType",
  6406. this.fStorageTypeOptions[list].dictValue
  6407. );
  6408. break;
  6409. }
  6410. }
  6411. }
  6412. if (valid) {
  6413. this.form.fNetweight = this.fNetweight;
  6414. this.form.fGrossweight = this.fGrossweight;
  6415. this.form.fQty = this.fQty;
  6416. setTimeout(() => {
  6417. let formData = new window.FormData();
  6418. this.form.fItemsStatus = 4;
  6419. formData.append("warehouseBills", JSON.stringify(this.form));
  6420. formData.append(
  6421. "warehousebillsitems",
  6422. JSON.stringify(this.dataList)
  6423. );
  6424. formData.append(
  6425. "tEnclosure",
  6426. JSON.stringify(this.relevantAttachments)
  6427. );
  6428. formData.append(
  6429. "warehousebillsfeesCr",
  6430. JSON.stringify(this.warehouseCrList)
  6431. );
  6432. formData.append(
  6433. "warehousebillsfeesDr",
  6434. JSON.stringify(this.warehouseDrList)
  6435. );
  6436. formData.append("mblnoStatus", this.mblnoStatus);
  6437. formData.append("tCntr", JSON.stringify([]));
  6438. addWarehousebills(formData).then((response) => {
  6439. this.form = response.data.warehouseBills;
  6440. this.$set(
  6441. this.form,
  6442. "fCartype",
  6443. response.data.warehouseBills.fCartype + ""
  6444. );
  6445. this.$set(this.form, "fEta", Date.parse(this.form.fEta));
  6446. this.$set(
  6447. this.form,
  6448. "fTrademodeid",
  6449. this.form.fTrademodeid + ""
  6450. );
  6451. this.$set(
  6452. this.form,
  6453. "fStltypeid",
  6454. this.form.fStltypeid + ""
  6455. );
  6456. this.$set(this.form, "fFeetunit", this.form.fFeetunit + "");
  6457. this.$set(
  6458. this.form,
  6459. "fBsdate",
  6460. Date.parse(this.form.fBsdate)
  6461. );
  6462. this.$set(
  6463. this.form,
  6464. "createTime",
  6465. Date.parse(this.form.createTime)
  6466. );
  6467. this.$set(
  6468. this.form,
  6469. "fChargedate",
  6470. Date.parse(this.form.fChargedate)
  6471. );
  6472. this.dataList = response.data.warehousebillsitems;
  6473. for (let list in this.dataList) {
  6474. this.$set(
  6475. this.dataList[list],
  6476. "fBsdate",
  6477. Date.parse(this.dataList[list].fBsdate)
  6478. );
  6479. this.$set(
  6480. this.dataList[list],
  6481. "fBusinessType",
  6482. this.dataList[list].fBusinessType + ""
  6483. );
  6484. }
  6485. });
  6486. }, 200);
  6487. }
  6488. });
  6489. });
  6490. }
  6491. });
  6492. },
  6493. // 打印作业单
  6494. addList() {
  6495. console.log(this.printinglist);
  6496. this.$refs["form"].validate((valid) => {
  6497. if (valid) {
  6498. let dataList = [];
  6499. for (let se in this.dataListSelection) {
  6500. if (Number(this.dataListSelection[se].fBillstatus) <= 10) {
  6501. dataList.push(this.dataListSelection[se]);
  6502. }
  6503. }
  6504. if (dataList.length !== 0) {
  6505. let formData = new window.FormData();
  6506. formData.append("warehouseBills", JSON.stringify(this.form));
  6507. formData.append(
  6508. "tEnclosure",
  6509. JSON.stringify(this.relevantAttachments)
  6510. );
  6511. formData.append("warehousebillsitems", JSON.stringify(dataList));
  6512. formData.append(
  6513. "warehousebillsfeesCr",
  6514. JSON.stringify(this.warehouseCrList)
  6515. );
  6516. formData.append(
  6517. "warehousebillsfeesDr",
  6518. JSON.stringify(this.warehouseDrList)
  6519. );
  6520. formData.append("tCntr", JSON.stringify([]));
  6521. addJoblist(formData).then((response) => {
  6522. if (response.code == 200) {
  6523. for (let li in response.data.warehousebillsitems) {
  6524. for (let item in this.printinglist) {
  6525. // if (this.Printinglist[item].fId == response.data.warehousebillsitems[li].fId) {
  6526. // this.Printinglist[item] = response.data.warehousebillsitems[li]
  6527. // }
  6528. if (!this.printinglist[0].fSerialNumber) {
  6529. this.fSerialNumber =
  6530. response.data.warehousebillsitems[0].fSerialNumber;
  6531. } else {
  6532. this.fSerialNumber = this.printinglist[0].fSerialNumber;
  6533. }
  6534. }
  6535. for (let index in this.dataList) {
  6536. if (
  6537. response.data.warehousebillsitems[li].fId ==
  6538. this.dataList[index].fId
  6539. ) {
  6540. this.dataList[index].fSerialNumber =
  6541. response.data.warehousebillsitems[li].fSerialNumber;
  6542. this.dataList[index].fBillstatus =
  6543. response.data.warehousebillsitems[li].fBillstatus;
  6544. }
  6545. }
  6546. }
  6547. setTimeout(function () {
  6548. // 此处的style即为打印时的样式
  6549. const style =
  6550. "@media print { .print-div{ border:1px solid #000;padding:8px;background-color:#cccccc;line-height:12px } .red{ color:#f00} .green{color:green} td{text-align: center;border:1px solid #000}}";
  6551. print({
  6552. printable: "print_area",
  6553. type: "html",
  6554. style: style, // 亦可使用引入的外部css;
  6555. scanStyles: false,
  6556. });
  6557. this.openPrintJobSheet = false;
  6558. }, 100);
  6559. } else {
  6560. return;
  6561. }
  6562. });
  6563. } else {
  6564. this.printSomething();
  6565. }
  6566. }
  6567. });
  6568. },
  6569. // 撤回入账
  6570. withdrawClick() {
  6571. for (let li in this.dataWithdrawList) {
  6572. if (this.dataWithdrawList[li].fBillstatus < 40) {
  6573. this.$message.error("所选信息中存在未出库数据!");
  6574. return false;
  6575. }
  6576. }
  6577. let formData = new window.FormData();
  6578. // 撤回入库
  6579. let withdrawList = JSON.parse(JSON.stringify(this.dataWithdrawList));
  6580. formData.append("warehouseBills", JSON.stringify(this.form));
  6581. formData.append("tEnclosure", JSON.stringify(this.relevantAttachments));
  6582. formData.append(
  6583. "warehousebillsitems",
  6584. JSON.stringify(this.dataWithdrawList)
  6585. );
  6586. formData.append(
  6587. "warehousebillsfeesCr",
  6588. JSON.stringify(this.warehouseCrList)
  6589. );
  6590. formData.append(
  6591. "warehousebillsfeesDr",
  6592. JSON.stringify(this.warehouseDrList)
  6593. );
  6594. formData.append("tCntr", JSON.stringify([]));
  6595. updateCredit(formData).then((response) => {
  6596. this.fid = response.data;
  6597. this.formBrowseStatus = false;
  6598. this.msgSuccess("撤销入账成功");
  6599. this.contrOl = false;
  6600. this.$refs.tableList.clearSelection();
  6601. let mun = 0;
  6602. for (let i in this.dataList) {
  6603. for (let li in withdrawList) {
  6604. if (withdrawList[li].fId === this.dataList[i].fId) {
  6605. this.$set(this.dataList[i], "fBillstatus", 10);
  6606. }
  6607. }
  6608. if (
  6609. this.dataList[i].fBillstatus &&
  6610. this.dataList[i].fBillstatus > 10
  6611. ) {
  6612. mun++;
  6613. }
  6614. }
  6615. if (mun > 0) {
  6616. this.formBrowseStatus = true;
  6617. } else {
  6618. this.formBrowseStatus = false;
  6619. }
  6620. });
  6621. },
  6622. // 装货按钮
  6623. discharge() {
  6624. if (this.printinglist.length <= 0) {
  6625. this.$message.error("请选择需要装货的明细!");
  6626. return false;
  6627. }
  6628. if (this.printinglist.length > 0) {
  6629. if (this.dataListSelection) {
  6630. for (let li in this.dataListSelection) {
  6631. if (!this.dataListSelection[li].fId) {
  6632. this.$message.error("请先保存!");
  6633. return false;
  6634. } else if (this.dataListSelection[li].fBillstatus === 10) {
  6635. this.$message.error("请先打印");
  6636. return false;
  6637. }
  6638. if (this.dataListSelection[li].fBillstatus >= 30) {
  6639. this.$message.error("请勿重复装货");
  6640. return false;
  6641. }
  6642. }
  6643. }
  6644. if (this.dataWithdrawList) {
  6645. for (let li in this.dataWithdrawList) {
  6646. if (this.dataWithdrawList[li].fBillstatus >= 30) {
  6647. this.$message.error("请勿重复装货");
  6648. return false;
  6649. }
  6650. }
  6651. }
  6652. }
  6653. this.$refs["form"].validate((valid) => {
  6654. if (valid) {
  6655. let withdrawList = JSON.parse(JSON.stringify(this.dataListSelection));
  6656. let formData = new window.FormData();
  6657. formData.append("warehouseBills", JSON.stringify(this.form));
  6658. formData.append(
  6659. "tEnclosure",
  6660. JSON.stringify(this.relevantAttachments)
  6661. );
  6662. formData.append(
  6663. "warehousebillsitems",
  6664. JSON.stringify(this.dataListSelection)
  6665. );
  6666. formData.append(
  6667. "warehousebillsfeesCr",
  6668. JSON.stringify(this.warehouseCrList)
  6669. );
  6670. formData.append(
  6671. "warehousebillsfeesDr",
  6672. JSON.stringify(this.warehouseDrList)
  6673. );
  6674. formData.append("tCntr", JSON.stringify([]));
  6675. this.formBrowseStatus = true;
  6676. this.$refs.tableList.clearSelection();
  6677. disChargelist(formData).then((response) => {
  6678. for (let li in withdrawList) {
  6679. for (let i in this.dataList) {
  6680. if (withdrawList[li].fId === this.dataList[i].fId) {
  6681. this.$set(this.dataList[i], "fBillstatus", 30);
  6682. }
  6683. }
  6684. }
  6685. this.msgSuccess("装货成功");
  6686. });
  6687. }
  6688. });
  6689. },
  6690. // 付款信息计价单位合计
  6691. getwarehouseCrList(param) {
  6692. const { columns, data } = param;
  6693. const sums = [];
  6694. var values = [];
  6695. columns.forEach((column, index) => {
  6696. if (index === 0) {
  6697. sums[index] = "合计";
  6698. return;
  6699. }
  6700. if (index === 3) {
  6701. // values = data.map((item) => Number(item["fFeeUnitid"]));
  6702. sums[index] = this.fFeeUnitids;
  6703. return;
  6704. }
  6705. });
  6706. this.sums = sums;
  6707. return sums;
  6708. },
  6709. // 库存明细多选
  6710. selectinventory(selection) {
  6711. this.printinglist = selection;
  6712. this.dataWithdrawList = [];
  6713. this.dataListSelection = [];
  6714. if (!selection || selection.length === 0) {
  6715. return false;
  6716. } else {
  6717. for (let se in selection) {
  6718. if (!selection[se].fBillstatus || selection[se].fBillstatus !== 40) {
  6719. this.dataListSelection.push(selection[se]);
  6720. } else if (
  6721. selection[se].fBillstatus &&
  6722. selection[se].fBillstatus === 40
  6723. ) {
  6724. this.dataWithdrawList.push(selection[se]);
  6725. }
  6726. }
  6727. }
  6728. this.fTruckno = selection[0].fTruckno;
  6729. this.fCntrtype = selection[0].fCntrtype;
  6730. this.fGoodsids = selection[0].fGoodsids;
  6731. // 打印回显仓库
  6732. for (let corp in this.warehouseOptions) {
  6733. this.fAddr = this.warehouseOptions[corp].fAddr;
  6734. }
  6735. // 合计
  6736. this.allFqty = 0;
  6737. this.allfGrossweight = 0;
  6738. this.allfNetweight = 0;
  6739. for (let corp in this.printinglist) {
  6740. this.allFqty += this.printinglist[corp].fQty;
  6741. this.allfGrossweight += this.printinglist[corp].fGrossweight;
  6742. this.allfNetweight += this.printinglist[corp].fNetweight;
  6743. }
  6744. },
  6745. // 更新主表品名并去重
  6746. updateDeduplication: function () {
  6747. if (this.dataList.length === 0) {
  6748. return false;
  6749. }
  6750. let fMarks = [];
  6751. let fProductName = [];
  6752. let fMblno = [];
  6753. for (let li in this.dataList) {
  6754. fMarks.push(this.dataList[li].fMarks);
  6755. fProductName.push(this.dataList[li].fGoodsids);
  6756. fMblno.push(this.dataList[li].fMblno);
  6757. }
  6758. this.$set(this.form, "fMarks", Array.from(new Set(fMarks)).join(","));
  6759. this.$set(
  6760. this.form,
  6761. "fProductName",
  6762. Array.from(new Set(fProductName)).join(",")
  6763. );
  6764. this.$set(this.form, "fMblno", Array.from(new Set(fMblno)).join(","));
  6765. },
  6766. // 保存
  6767. saveForm() {
  6768. this.updateDeduplication();
  6769. this.$refs["form"].validate((valid) => {
  6770. // if (this.dataList.length === 0) {
  6771. // this.$message.error('请添加库存明细!')
  6772. // return false
  6773. // }
  6774. for (let li in this.dataList) {
  6775. for (let list in this.fStorageTypeOptions) {
  6776. if (
  6777. this.dataList[li].fBusinessType ===
  6778. this.fStorageTypeOptions[list].dictLabel
  6779. ) {
  6780. // this.$set(this.dataList[li], 'fBusinessType', this.fStorageTypeOptions[list].dictValue)
  6781. break;
  6782. }
  6783. }
  6784. }
  6785. // for (let list in this.dataList) {
  6786. // this.changeOutStock(this.dataList[list])
  6787. // if (!this.dataList[list].fQty || Number(this.dataList[list].fQty) === 0) {
  6788. // this.$message.error('请维护序号为' + (Number(list) + 1) + '的出库件数!')
  6789. // return false
  6790. // }
  6791. // if (!this.dataList[list].fGrossweight || Number(this.dataList[list].fGrossweight) === 0) {
  6792. // this.$message.error('请维护序号为' + (Number(list) + 1) + '的出库毛重!')
  6793. // return false
  6794. // }
  6795. // if (!this.dataList[list].fNetweight || Number(this.dataList[list].fNetweight) === 0) {
  6796. // this.$message.error('请维护序号为' + (Number(list) + 1) + '的出库净重!')
  6797. // return false
  6798. // }
  6799. // }
  6800. if (valid) {
  6801. if (!this.dataList.length) {
  6802. this.form.fProductName = "";
  6803. this.form.fMarks = "";
  6804. }
  6805. this.form.fNetweight = this.fNetweight;
  6806. this.form.fGrossweight = this.fGrossweight;
  6807. this.form.fQty = this.fQty;
  6808. setTimeout(() => {
  6809. this.form.fBillstatus = 2;
  6810. let formData = new window.FormData();
  6811. formData.append("warehouseBills", JSON.stringify(this.form));
  6812. formData.append(
  6813. "warehousebillsitems",
  6814. JSON.stringify(this.dataList)
  6815. );
  6816. formData.append(
  6817. "tEnclosure",
  6818. JSON.stringify(this.relevantAttachments)
  6819. );
  6820. formData.append(
  6821. "warehousebillsfeesCr",
  6822. JSON.stringify(this.warehouseCrList)
  6823. );
  6824. formData.append(
  6825. "warehousebillsfeesDr",
  6826. JSON.stringify(this.warehouseDrList)
  6827. );
  6828. formData.append("mblnoStatus", this.mblnoStatus);
  6829. formData.append("tCntr", JSON.stringify([]));
  6830. addWarehousebills(formData).then((response) => {
  6831. if (response.data == false) {
  6832. this.$confirm(response.msg, "提示", {
  6833. confirmButtonText: "确定",
  6834. cancelButtonText: "取消",
  6835. type: "warning",
  6836. })
  6837. .then(() => {
  6838. this.mblnoStatus = true;
  6839. this.preservation();
  6840. })
  6841. .catch(() => {
  6842. this.$message({
  6843. type: "info",
  6844. message: "已取消",
  6845. });
  6846. });
  6847. } else {
  6848. this.mblnoStatus = "";
  6849. this.msgSuccess("保存成功");
  6850. this.form = response.data.warehouseBills;
  6851. this.$set(
  6852. this.form,
  6853. "fCartype",
  6854. response.data.warehouseBills.fCartype + ""
  6855. );
  6856. this.$set(this.form, "fEta", Date.parse(this.form.fEta));
  6857. this.$set(
  6858. this.form,
  6859. "fTrademodeid",
  6860. this.form.fTrademodeid + ""
  6861. );
  6862. this.$set(this.form, "fStltypeid", this.form.fStltypeid + "");
  6863. this.$set(this.form, "fFeetunit", this.form.fFeetunit + "");
  6864. this.$set(this.form, "fBsdate", Date.parse(this.form.fBsdate));
  6865. this.$set(
  6866. this.form,
  6867. "createTime",
  6868. Date.parse(this.form.createTime)
  6869. );
  6870. this.$set(
  6871. this.form,
  6872. "fChargedate",
  6873. Date.parse(this.form.fChargedate)
  6874. );
  6875. this.$set(
  6876. this.form,
  6877. "fBusinessType",
  6878. this.form.fBusinessType + ""
  6879. );
  6880. this.dataList = response.data.warehousebillsitems;
  6881. for (let list in this.dataList) {
  6882. this.$set(
  6883. this.dataList[list],
  6884. "fBsdate",
  6885. Date.parse(this.dataList[list].fBsdate)
  6886. );
  6887. this.$set(
  6888. this.dataList[list],
  6889. "fBusinessType",
  6890. this.dataList[list].fBusinessType + ""
  6891. );
  6892. }
  6893. }
  6894. });
  6895. }, 200);
  6896. }
  6897. });
  6898. },
  6899. /** 提交按钮 */
  6900. //作业类型校验
  6901. educationChange() {
  6902. if (this.form.fBusinessType === "0" || this.form.fBusinessType === "1") {
  6903. this.isrequired = 1;
  6904. } else if (this.form.fBusinessType === "5") {
  6905. this.isrequired = 1;
  6906. this.isrequired_l = 1;
  6907. this.isrequired_s = 2;
  6908. } else if (
  6909. this.form.fBusinessType === "2" ||
  6910. this.form.fBusinessType === "3" ||
  6911. this.form.fBusinessType === "4"
  6912. ) {
  6913. this.isrequired_s = 1;
  6914. this.isrequired = 2;
  6915. } else {
  6916. this.isrequired = 2;
  6917. this.isrequired_l = 2;
  6918. this.isrequired_s = 2;
  6919. }
  6920. },
  6921. submitForm() {
  6922. this.updateDeduplication();
  6923. this.$refs["form"].validate((valid) => {
  6924. if (this.dataList.length === 0) {
  6925. this.$message.error("请新增库存明细!");
  6926. return false;
  6927. }
  6928. for (let list in this.dataList) {
  6929. this.changeOutStock(this.dataList[list]);
  6930. if (this.dataList[list].fQty === 0) {
  6931. this.$message.error("请输入出库件数!");
  6932. return false;
  6933. }
  6934. if (this.dataList[list].fNetweight === 0) {
  6935. this.$message.error("请输入出库净重!");
  6936. return false;
  6937. }
  6938. if (this.dataList[list].fGrossweight === 0) {
  6939. this.$message.error("请输入出库毛重!");
  6940. return false;
  6941. }
  6942. if (this.dataList[list].fBillstatus !== 40) {
  6943. this.$message.error("请入账库存明细!");
  6944. return false;
  6945. }
  6946. }
  6947. for (let item in this.warehouseDrList) {
  6948. if (!this.warehouseDrList[item].fCorpid) {
  6949. if (item === "fBusinessType") {
  6950. } else {
  6951. this.$message.error(
  6952. "请维护收款信息第" + (Number(item) + 1) + "行客户名称"
  6953. );
  6954. return false;
  6955. }
  6956. }
  6957. if (!this.warehouseDrList[item].fFeeid) {
  6958. if (item === "fBusinessType") {
  6959. } else {
  6960. this.$message.error(
  6961. "请维护收款信息第" + (Number(item) + 1) + "行费用名称"
  6962. );
  6963. return false;
  6964. }
  6965. }
  6966. if (!this.warehouseDrList[item].fFeeunitid) {
  6967. if (item === "fBusinessType") {
  6968. } else {
  6969. this.$message.error(
  6970. "请维护收款信息第" + (Number(item) + 1) + "行计价单位"
  6971. );
  6972. return false;
  6973. }
  6974. }
  6975. }
  6976. for (let item in this.warehouseCrList) {
  6977. if (!this.warehouseCrList[item].fCorpid) {
  6978. if (item === "fBusinessType") {
  6979. } else {
  6980. this.$message.error(
  6981. "请维护付款信息第" + (Number(item) + 1) + "行客户名称"
  6982. );
  6983. return false;
  6984. }
  6985. }
  6986. if (!this.warehouseCrList[item].fFeeid) {
  6987. if (item === "fBusinessType") {
  6988. } else {
  6989. this.$message.error(
  6990. "请维护付款信息第" + (Number(item) + 1) + "行费用名称"
  6991. );
  6992. return false;
  6993. }
  6994. }
  6995. if (!this.warehouseCrList[item].fFeeunitid) {
  6996. if (item === "fBusinessType") {
  6997. } else {
  6998. this.$message.error(
  6999. "请维护付款信息第" + (Number(item) + 1) + "行计价单位"
  7000. );
  7001. return false;
  7002. }
  7003. }
  7004. }
  7005. if (valid) {
  7006. setTimeout(() => {
  7007. this.form.fBillstatus = status;
  7008. this.form.fNetweight = this.fNetweight;
  7009. this.form.fPlangrossweight = this.fPlangrossweight;
  7010. this.form.fPlannetweight = this.fPlannetweight;
  7011. this.form.fPlanvolumn = this.fPlanvolumn;
  7012. this.form.fPlanqty = this.fPlanqty;
  7013. this.form.fGrossweight = this.fGrossweight;
  7014. this.form.fQty = this.fQty;
  7015. if (!this.form.fId) {
  7016. this.form.fId = this.fid;
  7017. }
  7018. let formData = new window.FormData();
  7019. formData.append("warehouseBills", JSON.stringify(this.form));
  7020. formData.append(
  7021. "warehousebillsitems",
  7022. JSON.stringify(this.dataList)
  7023. );
  7024. formData.append(
  7025. "tEnclosure",
  7026. JSON.stringify(this.relevantAttachments)
  7027. );
  7028. formData.append(
  7029. "warehousebillsfeesCr",
  7030. JSON.stringify(this.warehouseCrList)
  7031. );
  7032. formData.append(
  7033. "warehousebillsfeesDr",
  7034. JSON.stringify(this.warehouseDrList)
  7035. );
  7036. formData.append("tCntr", JSON.stringify([]));
  7037. warehouseSubmission(formData).then((response) => {
  7038. this.msgSuccess("提交成功");
  7039. this.cancel();
  7040. this.getList();
  7041. });
  7042. }, 200);
  7043. }
  7044. });
  7045. },
  7046. /** 删除按钮操作 */
  7047. handleDelete(row) {
  7048. const fIds = row.fId || this.ids.fId;
  7049. let tips = "";
  7050. delOutStock_s(fIds).then((data) => {
  7051. switch (data.msg) {
  7052. case "0": {
  7053. this.$message.error("当前数据已被其他操作员操作请刷新页面");
  7054. break;
  7055. }
  7056. case "1": {
  7057. tips = "当前主表有数据从表无数据是否删除";
  7058. this.delete_S(fIds, tips);
  7059. break;
  7060. }
  7061. case "2": {
  7062. tips = "当前主表有数据从表有数据是否删除";
  7063. this.delete_S(fIds, tips);
  7064. break;
  7065. }
  7066. default: {
  7067. return this.$message.error("未知错误,无状态");
  7068. }
  7069. }
  7070. });
  7071. },
  7072. delete_S(fIds, tips) {
  7073. this.$confirm(tips, "警告", {
  7074. confirmButtonText: "确定",
  7075. cancelButtonText: "取消",
  7076. type: "warning",
  7077. })
  7078. .then(function () {
  7079. return delWarehousebills(fIds);
  7080. })
  7081. .then(() => {
  7082. this.getList();
  7083. this.msgSuccess("删除成功");
  7084. });
  7085. },
  7086. /** 导出按钮操作 */
  7087. handleExport() {
  7088. const queryParams = this.queryParams;
  7089. this.$confirm("是否确认导出所有仓库主(出入库)数据项?", "警告", {
  7090. confirmButtonText: "确定",
  7091. cancelButtonText: "取消",
  7092. type: "warning",
  7093. })
  7094. .then(function () {
  7095. return exportWarehousebills(queryParams);
  7096. })
  7097. .then((response) => {
  7098. this.download(response.msg);
  7099. });
  7100. },
  7101. // 出库件数的计算
  7102. qtyChange(row) {
  7103. if (!row.fQty || row.fQty === "") {
  7104. this.$set(row, "fNetweight", 0);
  7105. this.$set(row, "fGrossweight", 0);
  7106. return false;
  7107. }
  7108. if (row.fPlanqty < row.fQty) {
  7109. this.$message.error("出库件数超出结余件数!");
  7110. this.$set(row, "fQty", 0);
  7111. this.$set(row, "fNetweight", 0);
  7112. this.$set(row, "fGrossweight", 0);
  7113. return false;
  7114. }
  7115. // 净重 fPlannetweight
  7116. // 毛重 fPlangrossweight
  7117. let fVolumn = parseFloat(
  7118. Number(row.fVolumn) / Number(row.fPlanqty)
  7119. ).toFixed(2);
  7120. let netweight = parseFloat(
  7121. Number(row.fPlannetweight) / Number(row.fPlanqty)
  7122. ).toFixed(2);
  7123. let grossweigh = parseFloat(
  7124. Number(row.fPlangrossweight) / Number(row.fPlanqty)
  7125. ).toFixed(2);
  7126. this.$set(
  7127. row,
  7128. "fVolumn",
  7129. parseFloat(Number(fVolumn) * Number(row.fQty)).toFixed(2)
  7130. );
  7131. this.$set(
  7132. row,
  7133. "fNetweight",
  7134. parseFloat(Number(netweight) * Number(row.fQty)).toFixed(2)
  7135. );
  7136. this.$set(
  7137. row,
  7138. "fGrossweight",
  7139. parseFloat(Number(grossweigh) * Number(row.fQty)).toFixed(2)
  7140. );
  7141. },
  7142. // 修改毛重净重
  7143. changeOutStock(row) {
  7144. let fNetweight = 0;
  7145. let fGrossweight = 0;
  7146. if (row.fNetweight) {
  7147. fNetweight = row.fNetweight;
  7148. }
  7149. if (row.fGrossweight) {
  7150. fGrossweight = row.fGrossweight;
  7151. }
  7152. if (row.fPlannetweight < fNetweight) {
  7153. this.$message({ message: "出库净重超出结余净重", type: "warning" });
  7154. return false;
  7155. }
  7156. if (row.fPlangrossweight < fGrossweight) {
  7157. this.$message({ message: "出库毛重超出结余毛重", type: "warning" });
  7158. return false;
  7159. }
  7160. },
  7161. deleteRow(index, rows) {
  7162. rows.splice(index, 1);
  7163. if (this.dataList.length === 0) {
  7164. this.form.fProductName = "";
  7165. this.form.fMarks= "";
  7166. this.formBrowseStatus = false;
  7167. this.contrOl = false;
  7168. return false;
  7169. }
  7170. for (let li in this.dataList) {
  7171. if (this.dataList[li].fBillstatus > 10) {
  7172. this.formBrowseStatus = true;
  7173. return false;
  7174. }
  7175. }
  7176. },
  7177. /* 远程模糊查询用户 */
  7178. corpsRemoteMethod(name) {
  7179. if (name == null || name === "") {
  7180. return false;
  7181. }
  7182. let queryParams = { pageNum: 1, fName: name };
  7183. listCorps(queryParams).then((response) => {
  7184. this.fMblnoOptions = response.rows;
  7185. this.KHblnoOptions = response.rows;
  7186. });
  7187. },
  7188. /* 远程模糊查询劳务公司 */
  7189. flabourRemoteMethod(name) {
  7190. if (name == null || name === "") {
  7191. return false;
  7192. }
  7193. let queryParams = { pageNum: 1, fName: name, fTypeid: 6 };
  7194. listCorps(queryParams).then((response) => {
  7195. this.fCompanyOptIons = response.rows;
  7196. });
  7197. },
  7198. /* 远程模糊查询车队 */
  7199. fleetRemoteMethod(name) {
  7200. if (name == null || name === "") {
  7201. return false;
  7202. }
  7203. let queryParams = { pageNum: 1, fName: name, fTypeid: 2 };
  7204. listCorps(queryParams).then((response) => {
  7205. this.fleetOptions = response.rows;
  7206. });
  7207. },
  7208. /* 远程模糊查询商品 */
  7209. goodsRemoteMethod(name) {
  7210. if (name == null || name === "") {
  7211. return false;
  7212. }
  7213. let queryParams = { pageNum: 1, fName: name };
  7214. listGoods(queryParams).then((response) => {
  7215. this.goodsOptions = response.rows;
  7216. });
  7217. },
  7218. // 选择费用信息时获取计价单位
  7219. changeFeeId(row) {
  7220. for (let li in this.fWbuOptions) {
  7221. if (row.fFeeid === this.fWbuOptions[li].fId) {
  7222. this.$set(row, "fFeeUnitid", this.fWbuOptions[li].fFeeunitid + "");
  7223. this.changeFeeUnit(row);
  7224. break;
  7225. }
  7226. }
  7227. },
  7228. // 远程模糊查询费用名称
  7229. fWRemoteMethod(name) {
  7230. if (name == null || name === "") {
  7231. return false;
  7232. }
  7233. let queryParams = { pageNum: 1, fDc: "C", fName: name };
  7234. listFees(queryParams).then((response) => {
  7235. this.fCNameOptions = response.rows;
  7236. });
  7237. let query = { pageNum: 1, fDc: "D", fName: name };
  7238. listFees(query).then((response) => {
  7239. this.fDNameOptions = response.rows;
  7240. });
  7241. },
  7242. /* 远程模糊查询经营单位 */
  7243. fSbuRemoteMethod(name) {
  7244. if (name == null || name === "") {
  7245. return false;
  7246. }
  7247. let queryParams = { pageNum: 1, fName: name };
  7248. listCorps(queryParams).then((response) => {
  7249. this.fSbuOptions = response.rows;
  7250. });
  7251. },
  7252. /* 远程模糊查询仓库 */
  7253. warehouseRemoteMethod(name) {
  7254. if (name == null || name === "") {
  7255. return false;
  7256. }
  7257. let queryParams = { pageNum: 1, fName: name };
  7258. listWarehouse(queryParams).then((response) => {
  7259. this.warehouseOptions = response.rows;
  7260. });
  7261. },
  7262. /* 获取所有仓库信息 */
  7263. warehousesssMethod() {
  7264. let queryParams = { pageNum: 1, fStatus: 0, delFlag: 0 };
  7265. listWarehousesss(queryParams).then((response) => {
  7266. this.warehouseOptions = response.rows;
  7267. });
  7268. },
  7269. /* 远程模糊查询库区 */
  7270. kqhouseRemoteMethod(name) {
  7271. if (name == null || name === "") {
  7272. return false;
  7273. }
  7274. if (!this.form.fWarehouseid) {
  7275. this.$message.error("请输入仓库!");
  7276. return false;
  7277. }
  7278. let queryParams = {
  7279. pageNum: 1,
  7280. fWarehouseid: this.form.fWarehouseid,
  7281. fName: name,
  7282. };
  7283. listArea(queryParams).then((response) => {
  7284. this.kqhouseOptions = response.rows;
  7285. });
  7286. },
  7287. /* 远程模糊查询操作用户 */
  7288. userRemoteMethod(name) {
  7289. if (name == null || name === "") {
  7290. return false;
  7291. }
  7292. let queryParams = { pageNum: 1, userName: name };
  7293. listUser(queryParams).then((response) => {
  7294. this.userOptions = response.rows;
  7295. });
  7296. },
  7297. },
  7298. };
  7299. </script>
  7300. <style lang="scss">
  7301. @import "src/assets/styles/element-variables.scss";
  7302. .juzhong > th {
  7303. text-align: center;
  7304. }
  7305. .biaoge > tr > td {
  7306. height: 50px;
  7307. text-align: center;
  7308. border-right: 1px solid #dfe6ec !important;
  7309. // order-bottom: 1px solid #dfe6ec !important;
  7310. border-bottom: 1px solid #dfe6ec !important;
  7311. }
  7312. .el-table thead th {
  7313. background: #1890ff;
  7314. color: #fff;
  7315. }
  7316. .upload-demo {
  7317. margin-left: 50px;
  7318. }
  7319. .el-form-item {
  7320. margin-bottom: 5px !important;
  7321. }
  7322. .el-form-item__label {
  7323. font-size: 12px !important;
  7324. }
  7325. .el-collapse-item__header {
  7326. font-size: 16px;
  7327. font-weight: bolder;
  7328. padding-left: 5px;
  7329. }
  7330. .el-icon-s-home,
  7331. .el-icon-s-order,
  7332. .el-icon-circle-plus,
  7333. .el-icon-remove {
  7334. padding-right: 5px;
  7335. }
  7336. .el-table {
  7337. .el-table__body-wrapper {
  7338. z-index: 2;
  7339. }
  7340. }
  7341. .tabSetting {
  7342. display: flex;
  7343. justify-content: flex-end;
  7344. }
  7345. .listStyle {
  7346. display: flex;
  7347. border-top: 1px solid #dcdfe6;
  7348. border-left: 1px solid #dcdfe6;
  7349. border-right: 1px solid #dcdfe6;
  7350. }
  7351. .listStyle:last-child {
  7352. border-bottom: 1px solid #dcdfe6;
  7353. }
  7354. .progress {
  7355. display: flex;
  7356. align-items: center;
  7357. padding: 2px;
  7358. background-color: rgba(0, 0, 0, 0.05);
  7359. height: 100%;
  7360. }
  7361. .avue-crud__dialog__header {
  7362. display: -webkit-box;
  7363. display: -ms-flexbox;
  7364. display: flex;
  7365. -webkit-box-align: center;
  7366. -ms-flex-align: center;
  7367. align-items: center;
  7368. -webkit-box-pack: justify;
  7369. -ms-flex-pack: justify;
  7370. justify-content: space-between;
  7371. }
  7372. .el-dialog__title {
  7373. color: rgba(0, 0, 0, 0.85);
  7374. font-weight: 500;
  7375. word-wrap: break-word;
  7376. }
  7377. .avue-crud__dialog__menu {
  7378. padding-right: 20px;
  7379. float: left;
  7380. }
  7381. .avue-crud__dialog__menu i {
  7382. color: #909399;
  7383. font-size: 15px;
  7384. }
  7385. .el-icon-full-screen {
  7386. cursor: pointer;
  7387. }
  7388. .el-icon-full-screen:before {
  7389. content: "\e719";
  7390. }
  7391. .print-div {
  7392. color: #000;
  7393. }
  7394. .print_table {
  7395. table {
  7396. border-right: 1px solid #000;
  7397. border-bottom: 1px solid #000;
  7398. font-size: 12px;
  7399. margin-bottom: 5px;
  7400. }
  7401. table td {
  7402. border-left: 1px solid #000;
  7403. border-top: 1px solid #000;
  7404. vertical-align: middle;
  7405. padding: 2px;
  7406. text-align: center;
  7407. }
  7408. }
  7409. .print_form {
  7410. font-size: 12px;
  7411. }
  7412. .tag-hover:hover {
  7413. background-color: #d9ebfb;
  7414. }
  7415. .tag-hover {
  7416. border-top-left-radius: 0;
  7417. border-bottom-left-radius: 0;
  7418. height: 15px;
  7419. padding: 0px 4px;
  7420. line-height: 12px;
  7421. }
  7422. </style>