autoSettlementList.vue 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692
  1. //汽运结算报表
  2. <template>
  3. <div class="container">
  4. <el-scrollbar style="height: 100%">
  5. <el-row>
  6. <el-col style="padding-left: 15px" :span="16">
  7. <ws-button
  8. :type="searchType == 1 ? 'primary' : ''"
  9. @click="handlestatus(1)"
  10. >待审核</ws-button
  11. >
  12. <ws-button
  13. :type="searchType == 2 ? 'primary' : ''"
  14. @click="handlestatus(2)"
  15. >待结算</ws-button
  16. >
  17. <ws-button
  18. :type="searchType == 3 ? 'primary' : ''"
  19. @click="handlestatus(3)"
  20. >已结算</ws-button
  21. >
  22. <ws-button
  23. :type="searchType == '' ? 'primary' : ''"
  24. @click="handlestatus('')"
  25. >全部</ws-button
  26. >
  27. <ws-button
  28. type="primary"
  29. v-hasPermission="`report.transportationReport.view`"
  30. @click="handlepass()"
  31. >通过</ws-button
  32. >
  33. <ws-button
  34. type="primary"
  35. v-hasPermission="`report.transportationReport.view`"
  36. @click="handlereject()"
  37. >驳回</ws-button
  38. >
  39. <ws-button
  40. type="primary"
  41. v-hasPermission="`report.transportationReport.payment`"
  42. @click="handlepayment"
  43. >付款</ws-button
  44. >
  45. <ws-button
  46. type="primary"
  47. v-hasPermission="`report.transportationReport.draw`"
  48. @click="handleninvoice"
  49. >开发票</ws-button
  50. >
  51. <ws-button
  52. type="primary"
  53. @click="editRecord"
  54. >记录</ws-button
  55. >
  56. <!-- v-hasPermission="`report.transportationReport.payment`" -->
  57. </el-col>
  58. <el-col
  59. style="text-align: right; line-height: 60px; padding-right: 10px"
  60. :span="8"
  61. >
  62. <el-select
  63. v-model="contractNo"
  64. placeholder="请选择合同"
  65. clearable
  66. filterable
  67. @change="contractchange"
  68. maxlength="500"
  69. type="input"
  70. class="findValue"
  71. >
  72. <el-option
  73. v-if="item.reportStatus"
  74. v-for="item in options"
  75. :key="item.constKey"
  76. :label="item.contractNo + '(' + item.reportStatus + ')'"
  77. :value="item.contractNo"
  78. />
  79. <el-option
  80. v-if="!item.reportStatus"
  81. v-for="item in options"
  82. :key="item.constKey"
  83. :label="item.contractNo"
  84. :value="item.contractNo"
  85. />
  86. </el-select>
  87. </el-col>
  88. </el-row>
  89. <el-table
  90. class="wenzi"
  91. :data="warehouseList.records"
  92. style="width: 100%; margin-top: 20px"
  93. ref="warehouseList"
  94. border
  95. :summary-method="getSummaries"
  96. show-summary
  97. @row-click="handleRowClick"
  98. @selection-change="handleSelectionChange"
  99. >
  100. <el-table-column
  101. :selectable="selectInit"
  102. type="selection"
  103. width="55"
  104. ></el-table-column>
  105. <el-table-column type="index" label="序号" width="50"></el-table-column>
  106. <el-table-column
  107. class="table_td"
  108. prop="contractNo"
  109. width="120"
  110. label="合同编号"
  111. ></el-table-column>
  112. <el-table-column
  113. width="120"
  114. class="table_td"
  115. prop="processNo"
  116. label="运输阶段"
  117. ></el-table-column>
  118. <el-table-column
  119. width="60"
  120. class="table_td"
  121. prop="name"
  122. label="姓名"
  123. ></el-table-column>
  124. <el-table-column
  125. width="120"
  126. class="table_td"
  127. prop="phone"
  128. label="电话"
  129. ></el-table-column>
  130. <el-table-column
  131. class="table_td"
  132. prop="carNo"
  133. label="车牌号"
  134. width="140"
  135. ><template slot-scope="scope">
  136. {{ scope.row.carNo }}({{ scope.row.tranCarNo }})
  137. </template></el-table-column
  138. >
  139. <el-table-column
  140. width="100"
  141. class="table_td"
  142. prop="loadingWeight"
  143. label="装车净重(吨)"
  144. ><template slot-scope="scope">
  145. <div
  146. style="
  147. display: inline-block;
  148. color: #5878e8;
  149. padding: 0 4px !important;
  150. position: relative;
  151. font-size: 14px;
  152. "
  153. @click="lookloadingImg(scope.row)"
  154. >
  155. <span>{{scope.row.loadingWeight}}</span>
  156. </div>
  157. </template>
  158. </el-table-column>
  159. <el-table-column
  160. width="100"
  161. class="table_td"
  162. prop="unloadingWeight"
  163. label="卸车净重(吨)"
  164. ><template slot-scope="scope">
  165. <span v-if="scope.row.unloadingWeight == null ">未卸车</span>
  166. <div
  167. style="
  168. display: inline-block;
  169. color: #5878e8;
  170. padding: 0 4px !important;
  171. position: relative;
  172. font-size: 14px;
  173. "
  174. @click="lookunloadingImg(scope.row)"
  175. >
  176. <span>{{scope.row.unloadingWeight}}</span>
  177. </div>
  178. </template>
  179. </el-table-column>
  180. <el-table-column
  181. width="100"
  182. class="table_td"
  183. prop="lossWeight"
  184. label="损耗(吨)"
  185. ><template slot-scope="scope">
  186. <span v-if="scope.row.unloadingWeight == null">--</span>
  187. <span
  188. v-else-if="
  189. scope.row.lossWeight > 0 &&
  190. scope.row.lossWeight > scope.row.loadingWeight / 1000
  191. "
  192. style="color: #f10404; font-weight: 600"
  193. >{{ scope.row.lossWeight }}</span
  194. >
  195. <span
  196. v-else
  197. style="font-weight: 600"
  198. >{{ scope.row.lossWeight }}</span
  199. >
  200. </template>
  201. </el-table-column>
  202. <el-table-column
  203. width="120"
  204. class="table_td"
  205. prop="transportPrice"
  206. label="运输单价(元/吨)"
  207. ></el-table-column>
  208. <el-table-column
  209. width="120"
  210. class="table_td"
  211. prop="settlementWeight"
  212. label="结算重量(吨)"
  213. ><template slot-scope="scope">
  214. <span v-if="scope.row.unloadingWeight == '未卸车'">{{scope.row.loadingWeight}}}</span>
  215. <span
  216. v-if="
  217. !scope.row.settlementWeightchange && scope.row.settlementWeight
  218. "
  219. >{{ scope.row.settlementWeight }}</span
  220. >
  221. <input
  222. v-if="scope.row.settlementWeightchange"
  223. style="width: 60px"
  224. v-model="settlementWeight"
  225. type="text"
  226. />
  227. <!--改结算重量-->
  228. <i
  229. @click="changesettlementWeight(scope.row)"
  230. v-if="
  231. (scope.row.settlementWeightchange &&
  232. scope.row.approveStatus == '待物流部审核') ||
  233. (scope.row.settlementWeightchange &&
  234. scope.row.status == '已驳回')
  235. "
  236. class="iconfont icon-dui"
  237. ></i>
  238. <img
  239. v-if="
  240. (!scope.row.settlementWeightchange &&
  241. scope.row.settlementWeight &&
  242. scope.row.approveStatus == '待物流部审核') ||
  243. (!scope.row.settlementWeightchange &&
  244. scope.row.settlementWeight &&
  245. scope.row.status == '已驳回')
  246. "
  247. width="17"
  248. height="18"
  249. style="vertical-align: text-top; position: relative; top: -1px"
  250. src="../../../public/img/edit.png"
  251. @click="editsettlementWeight(scope.row)"
  252. alt=""
  253. /> </template
  254. ></el-table-column>
  255. <el-table-column
  256. width="120"
  257. class="table_td"
  258. prop="deductionAmount"
  259. label="扣款(元)"
  260. ><template slot-scope="scope">
  261. <span
  262. v-if="
  263. !scope.row.deductionAmountchange && scope.row.deductionAmount
  264. "
  265. >{{ scope.row.deductionAmount }}</span
  266. >
  267. <input
  268. v-if="scope.row.deductionAmountchange"
  269. style="width: 60px"
  270. v-model="deductionAmount"
  271. type="text"
  272. />
  273. <!--改扣款-->
  274. <i
  275. @click="changedeductionAmount(scope.row)"
  276. v-if="
  277. (scope.row.deductionAmountchange &&
  278. scope.row.approveStatus == '待物流部审核') ||
  279. (scope.row.deductionAmountchange &&
  280. scope.row.status == '已驳回')
  281. "
  282. class="iconfont icon-dui"
  283. ></i>
  284. <img
  285. v-if="
  286. (!scope.row.deductionAmountchange &&
  287. scope.row.deductionAmount &&
  288. scope.row.approveStatus == '待物流部审核') ||
  289. (!scope.row.deductionAmountchange &&
  290. scope.row.deductionAmount &&
  291. scope.row.status == '已驳回')
  292. "
  293. width="17"
  294. height="18"
  295. style="vertical-align: text-top; position: relative; top: -1px"
  296. src="../../../public/img/edit.png"
  297. @click="editdeductionAmount(scope.row)"
  298. alt=""
  299. /> </template
  300. ></el-table-column>
  301. <el-table-column
  302. width="100"
  303. class="table_td"
  304. label="应付金额(元)"
  305. prop="amountIngPayable"
  306. ></el-table-column>
  307. <el-table-column
  308. width="100"
  309. class="table_td"
  310. label="已付金额(元)"
  311. prop="amountEdPayable"
  312. ><template slot-scope="scope">
  313. <div
  314. style="
  315. display: inline-block;
  316. color: #5878e8;
  317. padding: 0 4px !important;
  318. position: relative;
  319. font-size: 14px;
  320. "
  321. @click="lookpaymentScreenshot(scope.row)"
  322. >
  323. <span>{{scope.row.amountEdPayable}}</span>
  324. </div>
  325. </template>
  326. </el-table-column>
  327. <el-table-column
  328. width="100"
  329. class="table_td"
  330. label="未付金额(元)"
  331. prop="amountNotPayable"
  332. ></el-table-column>
  333. <el-table-column
  334. width="100"
  335. class="table_td"
  336. label="已开发票(元)"
  337. prop="alreadyInvoice"
  338. ><template slot-scope="scope">
  339. {{ scope.row.alreadyInvoice }}
  340. <img
  341. v-if="scope.row.amountEdPayable > 0"
  342. width="17"
  343. height="18"
  344. style="vertical-align: text-top; position: relative; top: -1px"
  345. src="../../../public/img/edit.png"
  346. @click="editClickInvoice(scope.row)"
  347. alt=""
  348. />
  349. </template>
  350. </el-table-column>
  351. <el-table-column
  352. width="150"
  353. class="table_td"
  354. label="付款日期"
  355. prop="paymentDate"
  356. ></el-table-column>
  357. <el-table-column class="table_td" label="账户" prop="">
  358. <template slot-scope="scope">
  359. <div
  360. style="
  361. display: inline-block;
  362. color: #5878e8;
  363. padding: 0 4px !important;
  364. position: relative;
  365. font-size: 14px;
  366. "
  367. @click="look(scope.row)"
  368. >
  369. 查看
  370. </div>
  371. </template></el-table-column
  372. >
  373. <el-table-column label="状态" prop="status" width="100px">
  374. <template slot-scope="scope">
  375. <span v-if="scope.row.approveStatus != null">{{
  376. scope.row.approveStatus
  377. }}</span>
  378. <span v-else>{{ scope.row.status }}</span>
  379. </template>
  380. </el-table-column>
  381. </el-table>
  382. <!-- 页数 -->
  383. <el-pagination
  384. @size-change="handleSizeChange"
  385. @current-change="handleCurrentChange"
  386. :current-page="currentPage"
  387. :page-size="pageSize"
  388. layout="total, sizes, prev, pager, next, jumper"
  389. :total="deptBudgetTotal"
  390. ></el-pagination>
  391. </el-scrollbar>
  392. <!-- 修改结算重量记录 -->
  393. <el-dialog
  394. width="40%"
  395. title="结算重量修改记录"
  396. :visible.sync="dialogFormVisible16"
  397. :append-to-body="true"
  398. >
  399. <el-table :data="tranPriceApproveList">
  400. <el-table-column prop="result" label="车牌号"> </el-table-column>
  401. <el-table-column prop="tranPrice" label="单价(元)">
  402. </el-table-column>
  403. <el-table-column prop="beforeModification" label="修改前重量(吨)"> </el-table-column>
  404. <el-table-column prop="afterModification" label="修改后重量(吨)"> </el-table-column>
  405. <el-table-column prop="reviewer" label="修改人"> </el-table-column>
  406. <el-table-column prop="createDate" label="修改日期" width="200px"> </el-table-column>
  407. </el-table>
  408. </el-dialog>
  409. <!-- 付款 -->
  410. <el-dialog
  411. width="25%"
  412. title="付款"
  413. :visible.sync="dialogFormVisible1"
  414. :append-to-body="true"
  415. >
  416. <el-form :model="form">
  417. <el-form-item label="未付金额(元)" :label-width="formLabelWidth">
  418. <template>
  419. <span>{{ amountNotPayable }}</span>
  420. </template>
  421. </el-form-item>
  422. <el-form-item label="本次付款金额" :label-width="formLabelWidth">
  423. <el-input
  424. v-model="money"
  425. autocomplete="off"
  426. placeholder="请输入本次付款金额"
  427. class="deal"
  428. ></el-input>
  429. </el-form-item>
  430. <el-form-item
  431. label="付款日期"
  432. prop="paymentDate"
  433. :label-width="formLabelWidth"
  434. class="deal"
  435. >
  436. <ws-date-picker
  437. v-model="paymentDate"
  438. type="date"
  439. placeholder="请选择付款日期"
  440. value-format="yyyy-MM-dd"
  441. class="deal"
  442. />
  443. </el-form-item>
  444. <el-form-item label="上传付款截图" :label-width="formLabelWidth">
  445. <el-upload
  446. action="https://www.zthymaoyi.com/upload/admin"
  447. list-type="picture-card"
  448. :on-success="handlePictureCardPreview"
  449. :on-remove="handleRemove"
  450. class="photo2"
  451. >
  452. <i class="el-icon-plus"></i>
  453. </el-upload>
  454. </el-form-item>
  455. </el-form>
  456. <div slot="footer" class="dialog-footer">
  457. <el-button @click="dialogFormVisible1 = false">取 消</el-button>
  458. <el-button type="primary" @click="submitMoney()">提 交</el-button>
  459. </div>
  460. </el-dialog>
  461. <!-- 批量开发票 -->
  462. <el-dialog
  463. width="30%"
  464. title="批量开发票"
  465. :visible.sync="dialogFormVisible2"
  466. :append-to-body="true"
  467. >
  468. <el-form :model="form">
  469. <el-form-item label="发票金额(元)" :label-width="formLabelWidth">
  470. <span> {{ amountEdPayable }}</span>
  471. </el-form-item>
  472. </el-form>
  473. <div slot="footer" class="dialog-footer">
  474. <el-button @click="dialogFormVisible2 = false">取 消</el-button>
  475. <el-button type="primary" @click="submitBatchInvoice()"
  476. >提 交</el-button
  477. >
  478. </div>
  479. </el-dialog>
  480. <!-- 开发票 -->
  481. <el-dialog
  482. width="30%"
  483. title="开发票"
  484. :visible.sync="dialogFormVisible3"
  485. :append-to-body="true"
  486. >
  487. <el-form :model="form">
  488. <el-form-item label="可开发票金额(元)" :label-width="formLabelWidth1">
  489. {{ amountEdPayable }}
  490. </el-form-item>
  491. <el-form-item label="实际发票金额(元)" :label-width="formLabelWidth1">
  492. <el-input
  493. v-model="alreadyInvoice"
  494. autocomplete="off"
  495. class="deal"
  496. ></el-input>
  497. </el-form-item>
  498. </el-form>
  499. <div slot="footer" class="dialog-footer">
  500. <el-button @click="dialogFormVisible3 = false">取 消</el-button>
  501. <el-button type="primary" @click="submitInvoice()">提 交</el-button>
  502. </div>
  503. </el-dialog>
  504. <!--账户-->
  505. <el-dialog
  506. width="30%"
  507. title="账户信息"
  508. :visible.sync="dialogFormVisible8"
  509. :append-to-body="true"
  510. >
  511. <h3 style="margin-left: 30px">{{ driverPayeeList.payeeName }}的账户</h3>
  512. <div v-for="(item, index) in driverPayeeList" :key="index">
  513. <h4 style="margin-left: 30px">账户-{{index+1}}</h4>
  514. <div class="anniu">
  515. <el-radio-group @change="bankCard(item,id)" v-model="item.radio">
  516. <el-radio label="1">本次收款账户</el-radio>
  517. </el-radio-group>
  518. </div>
  519. <el-form class="customer" :model="form">
  520. <el-form-item label="账户类型" :label-width="formLabelWidth">
  521. {{ item.accountType }}
  522. </el-form-item>
  523. <el-form-item label="银行卡号" :label-width="formLabelWidth">
  524. {{ item.bankCard }}
  525. </el-form-item>
  526. <el-form-item label="开户行" :label-width="formLabelWidth">
  527. {{ item.bankDeposit }}
  528. </el-form-item>
  529. <el-form-item label="开户支行" :label-width="formLabelWidth">
  530. {{ item.bankDepositBranch }}
  531. </el-form-item>
  532. <el-form-item
  533. label="收款人姓名"
  534. :label-width="formLabelWidth"
  535. v-if="item.accountTypeFlag == 1"
  536. >
  537. {{ item.payeeName }}
  538. </el-form-item>
  539. <el-form-item
  540. label="收款人身份证号"
  541. :label-width="formLabelWidth"
  542. v-if="item.accountTypeFlag == 1"
  543. >
  544. {{ item.payeeNumberCard }}
  545. </el-form-item>
  546. <el-form-item
  547. v-if="item.accountTypeFlag == 2"
  548. label="企业名称"
  549. :label-width="formLabelWidth"
  550. >
  551. {{ item.compName }}
  552. </el-form-item>
  553. </el-form>
  554. </div>
  555. <div slot="footer" class="dialog-footer">
  556. <el-button @click="dialogFormVisible8 = false">取 消</el-button>
  557. </div>
  558. </el-dialog>
  559. <!--磅单 -->
  560. <WinseaContentModal
  561. v-model="accessoryTFs"
  562. title="磅单信息"
  563. @on-cancel="handleClose"
  564. >
  565. <p>查看装车磅单</p>
  566. <img width="100" height="100" :src="loadingImg1" alt="" />
  567. </WinseaContentModal>
  568. <WinseaContentModal
  569. v-model="accesscard"
  570. title="磅单信息"
  571. @on-cancel="handleClose1"
  572. >
  573. <p>查看卸车磅单</p>
  574. <img width="100" height="100" :src="unloadingImg1" alt="" />
  575. </WinseaContentModal>
  576. <!--付款截图 -->
  577. <WinseaContentModal
  578. v-model="paymentImg"
  579. title="付款截图信息"
  580. @on-cancel="handleClose2"
  581. >
  582. <p>查看付款截图</p>
  583. <div v-for="item in paymentScreenshot1">
  584. <img style="width: 100px; height: 100px" :src="item" alt="" />
  585. </div>
  586. </WinseaContentModal>
  587. </div>
  588. <!-- </div> -->
  589. </template>
  590. <script>
  591. import {
  592. autoList,
  593. editauto,
  594. autocontract,
  595. autopaymoney,
  596. openinvoicelist,
  597. // postaudit,
  598. // getselectctcontractno,
  599. } from '@/model/statisticalReport/index'
  600. import { posthandle } from '@/model/purchasingManagement/index'
  601. import { downloadFile } from '@/utils/batchDown'
  602. import Pagination from '@/components/Pagination'
  603. import WsUpload from '@/components/WsUpload'
  604. import { EventBus } from 'base-core-lib'
  605. export default {
  606. name: 'viewSpareMoney',
  607. components: {
  608. WsUpload,
  609. Pagination,
  610. },
  611. watch: {
  612. vesselId(val) {
  613. this.getList()
  614. },
  615. isShow(val) {
  616. this.showType = val
  617. },
  618. },
  619. data() {
  620. return {
  621. checked: true,
  622. alreadyInvoice: '',
  623. needReapply: true,
  624. dialogFormVisible1: false,
  625. dialogFormVisible2: false,
  626. dialogFormVisible3: false,
  627. dialogFormVisible4: false,
  628. dialogFormVisible5: false,
  629. dialogFormVisible6: false,
  630. dialogFormVisible7: false,
  631. dialogFormVisible8: false,
  632. dialogFormVisible11: false,
  633. dialogFormVisible16:false,
  634. dialogVisible: false,
  635. form: {
  636. transactionPrice: '',
  637. transactionsNumber: '',
  638. basis: '',
  639. },
  640. currect: true,
  641. formLabelWidth: '120px',
  642. formLabelWidth1: '140px',
  643. barWidth: 0,
  644. barHeight: 0,
  645. retioX: 1,
  646. ratioY: 1,
  647. isTaped: false,
  648. isHover: false,
  649. settlementWeightchange: false,
  650. deductionAmountchange: false,
  651. isShow: !this.autohide,
  652. //弹出框
  653. dialogViewSpareMoney: false,
  654. contractNoList: [],
  655. // 是否显示
  656. showType: true,
  657. // 年
  658. year: '',
  659. options: [],
  660. id:'',
  661. pickerOptions: {},
  662. value2: '',
  663. deptBudgetTotal: 0,
  664. currentPage: 1,
  665. pageSize: 10,
  666. searchType: '1',
  667. manualFlag: '',
  668. searchTypeText: '未完成',
  669. searchKeyWord: '',
  670. driverPayeeList: {
  671. radio: '1',
  672. },
  673. contractType: 2,
  674. accessoryTFs: false,
  675. accesscard: false,
  676. paymentImg: false,
  677. enter: {
  678. closePositionList: [],
  679. },
  680. // 提交类型
  681. submitType: true,
  682. size: 10,
  683. spanArr: [],
  684. contractNo: '全部合同',
  685. inOutTaskNo: '',
  686. compId: sessionStorage.getItem('ws-pf_compId'),
  687. roleId: sessionStorage.getItem('ws-pf_roleId'),
  688. deptCircularPage: {},
  689. warehouseList: [],
  690. orderList: {},
  691. tranPriceApproveList:[],
  692. deptBudgetList: {},
  693. id: '',
  694. pcFlag: 1,
  695. carryoverlist: {},
  696. modification: [],
  697. loadingImg1: [],
  698. unloadingImg1: [],
  699. paymentScreenshot1: [],
  700. amendlist: {},
  701. roleFlag: 1,
  702. alreadyInvoice1: 0,
  703. money: '',
  704. paymentDate: '',
  705. tranSettlementReportList: [],
  706. autoSettlementReport: {
  707. tranSettlementReportList: [],
  708. money: '',
  709. amountNotPayable: 0,
  710. amountEdPayable: 0,
  711. paymentDate: '',
  712. paymentScreenshot: '',
  713. id: '',
  714. },
  715. amountNotPayable: 0,
  716. amountEdPayable: 0,
  717. paymentScreenshotUrls: [],
  718. carryovercontractnolist: [],
  719. historyList: [],
  720. pickerBeginDateBefore: {
  721. disabledDate: (time) => {
  722. return time.getTime() > Date.now()
  723. },
  724. },
  725. }
  726. },
  727. activated() {
  728. this.getList()
  729. this.showType = this.isShow
  730. },
  731. methods: {
  732. cur(status) {
  733. if (status == 0) {
  734. this.currect = true
  735. } else {
  736. var that = this
  737. this.currect = false
  738. getselectctcontractno({
  739. customerName: this.modification[0].customerName,
  740. contractNo: this.modification[0].contractNo,
  741. })
  742. .toPromise()
  743. .then((response) => {
  744. that.carryovercontractnolist = response
  745. for (var i = 0; i < that.carryovercontractnolist.length; i++) {
  746. if (that.carryovercontractnolist[i].amountNotPayable > 0) {
  747. that.carryovercontractnolist[i].closeaccountstatus = '待结算'
  748. } else {
  749. that.carryovercontractnolist[i].closeaccountstatus = '已结算'
  750. }
  751. }
  752. })
  753. .catch((response) => {
  754. console.log(response)
  755. EventBus.$emit('error', response.message)
  756. })
  757. }
  758. },
  759. handleRowClick(row) {
  760. if (row.approveStatus == null) {
  761. this.$refs.warehouseList.toggleRowSelection(row)
  762. return true
  763. } else if (row.approveStatus != null) {
  764. if (row.taskId == null) {
  765. return false
  766. } else {
  767. this.$refs.warehouseList.toggleRowSelection(row)
  768. return true
  769. }
  770. }
  771. },
  772. selectInit(row) {
  773. //在这里一定要记得类型匹配的上。
  774. if (row.approveStatus == null) {
  775. return true
  776. } else if (row.approveStatus != null) {
  777. if (row.taskId == null) {
  778. return false
  779. } else {
  780. return true
  781. }
  782. }
  783. },
  784. handleClose() {
  785. this.accessoryTFs = false
  786. },
  787. handleClose1() {
  788. this.accesscard = false
  789. },
  790. handleClose2() {
  791. this.paymentImg = false
  792. },
  793. //账户
  794. look(item) {
  795. this.dialogFormVisible8 = true
  796. if (item.driverPayeeInfoList) {
  797. this.driverPayeeList= item.driverPayeeInfoList
  798. this.driverPayeeList.payeeName=item.driverPayeeInfoList[0].payeeName
  799. for (var i = 0; i < item.driverPayeeInfoList.length; i++){
  800. if(item.driverPayeeInfoList[i].bankCard==item.cardNo){
  801. this.driverPayeeList[i].radio='1'
  802. }
  803. else{
  804. this.driverPayeeList[i].radio='2'
  805. }
  806. console.log(this.driverPayeeList[i].radio)
  807. }
  808. this.id=item.id
  809. }
  810. },
  811. //付款
  812. handlepayment() {
  813. this.amountNotPayable = 0
  814. this.money = this.money
  815. this.tranSettlementReportList = this.warehouseList.records[0].tranSettlementReportList
  816. this.amountEdPayable = this.warehouseList.records[0].amountEdPayable
  817. this.paymentDate = this.paymentDate
  818. if (this.modification.length == 0) {
  819. this.$message.warning('请选择一条要付款的条目')
  820. } else {
  821. for (var i = 0; i < this.modification.length; i++) {
  822. if (
  823. this.modification[i].status != '已通过' &&
  824. this.modification[i].status != '部分付款'
  825. ) {
  826. this.$message.warning('只有已通过或部分付款的条目才可进行付款操作')
  827. return
  828. }
  829. this.amountNotPayable += this.modification[i].amountNotPayable
  830. }
  831. this.dialogFormVisible1 = true
  832. }
  833. },
  834. submitMoney() {
  835. this.autoSettlementReport.money = this.money
  836. this.autoSettlementReport.paymentDate = this.paymentDate
  837. if (this.modification.length == 0) {
  838. this.$message.warning('请选择一条要付款的条目')
  839. } else {
  840. if (
  841. this.money < 0 ||
  842. (String(this.money).indexOf('.') != -1 &&
  843. String(this.money).length - (String(this.money).indexOf('.') + 1) >
  844. 2)
  845. ) {
  846. this.$message({
  847. message: '付款金额输入错误',
  848. type: 'warning',
  849. })
  850. return
  851. }
  852. if (this.money) {
  853. if (isNaN(this.money)) {
  854. this.$message({
  855. message: '付款金额非数字!',
  856. type: 'warning',
  857. })
  858. return
  859. }
  860. }
  861. if (!this.money) {
  862. this.$message({
  863. message: '付款金额不能为空!',
  864. type: 'warning',
  865. })
  866. return
  867. }
  868. if (this.money > this.modification[0].amountNotPayable) {
  869. this.$message({
  870. message: '付款金额不能大于未付金额!',
  871. type: 'warning',
  872. })
  873. return
  874. }
  875. this.$confirm(`确定提交付款信息?`, {
  876. cancelButtonText: '取消',
  877. confirmButtonText: '确定',
  878. type: 'warning',
  879. }).then(() => {
  880. autopaymoney({
  881. tranSettlementReportList: this.modification,
  882. // amountEdPayable: this.modification[0].amountEdPayable,
  883. // amountNotPayable: this.modification[0].amountNotPayable,
  884. money: this.money,
  885. paymentDate: this.paymentDate,
  886. paymentScreenshot: this.paymentScreenshot,
  887. })
  888. .toPromise()
  889. .then((response) => {
  890. this.$notify.success({
  891. title: '成功',
  892. message: '付款成功',
  893. })
  894. this.tranSettlementReportList = {}
  895. this.money = ''
  896. this.paymentDate = ''
  897. this.dialogFormVisible1 = false
  898. this.getList()
  899. })
  900. .catch((response) => {
  901. console.log(response)
  902. EventBus.$emit('error', response.message)
  903. })
  904. })
  905. }
  906. },
  907. //开发票
  908. editClickInvoice(row) {
  909. this.id = row.id
  910. this.alreadyInvoice1 = row.alreadyInvoice
  911. this.amountEdPayable = row.amountEdPayable
  912. this.amountNotPayable = row.amountNotPayable
  913. this.dialogFormVisible3 = 'true'
  914. },
  915. submitInvoice() {
  916. if (this.amountEdPayable < 0) {
  917. this.$message.warning('请选择一条已付款的条目')
  918. } else {
  919. if (
  920. this.alreadyInvoice < 0 ||
  921. this.alreadyInvoice > this.amountEdPayable - this.alreadyInvoice1 ||
  922. (String(this.alreadyInvoice).indexOf('.') != -1 &&
  923. String(this.alreadyInvoice).length -
  924. (String(this.alreadyInvoice).indexOf('.') + 1) >
  925. 2)
  926. ) {
  927. this.$message({
  928. message: '金额输入错误',
  929. type: 'warning',
  930. })
  931. return
  932. }
  933. if (this.alreadyInvoice) {
  934. if (isNaN(this.alreadyInvoice)) {
  935. this.$message({
  936. message: '金额非数字!',
  937. type: 'warning',
  938. })
  939. return
  940. }
  941. }
  942. if (!this.alreadyInvoice) {
  943. this.$message({
  944. message: '金额不能为空!',
  945. type: 'warning',
  946. })
  947. return
  948. }
  949. this.$confirm(`确定提交发票信息?`, {
  950. cancelButtonText: '取消',
  951. confirmButtonText: '确定',
  952. type: 'warning',
  953. }).then(() => {
  954. editauto({
  955. id: this.id,
  956. flag: 2,
  957. alreadyInvoice: this.alreadyInvoice,
  958. amountEdPayable: this.amountEdPayable,
  959. amountNotPayable: this.amountNotPayable,
  960. })
  961. .toPromise()
  962. .then((response) => {
  963. this.$notify.success({
  964. title: '成功',
  965. message: '提交成功',
  966. })
  967. this.dialogFormVisible3 = false
  968. this.getList()
  969. })
  970. .catch((response) => {
  971. console.log(response)
  972. EventBus.$emit('error', response.message)
  973. })
  974. })
  975. }
  976. },
  977. //批量开发票
  978. handleninvoice() {
  979. this.amountEdPayable = 0
  980. this.tranSettlementReportList = this.warehouseList.records[0].tranSettlementReportList
  981. for (var i = 0; i < this.modification.length; i++) {
  982. this.amountEdPayable += this.modification[i].amountEdPayable
  983. }
  984. this.dialogFormVisible2 = true
  985. },
  986. submitBatchInvoice() {
  987. if (this.modification.length == 0) {
  988. this.$message.warning('请选择一条要开发票的条目')
  989. } else if (this.modification[0].amountEdPayable < 0) {
  990. this.$message.warning('请选择一条已付款的条目')
  991. } else {
  992. this.$confirm(`确定提交发票信息?`, {
  993. cancelButtonText: '取消',
  994. confirmButtonText: '确定',
  995. type: 'warning',
  996. }).then(() => {
  997. openinvoicelist({
  998. tranSettlementReportList: this.modification,
  999. })
  1000. .toPromise()
  1001. .then((response) => {
  1002. this.$notify.success({
  1003. title: '成功',
  1004. message: '提交成功',
  1005. })
  1006. this.dialogFormVisible2 = false
  1007. this.getList()
  1008. })
  1009. .catch((response) => {
  1010. console.log(response)
  1011. EventBus.$emit('error', response.message)
  1012. })
  1013. })
  1014. }
  1015. },
  1016. //修改结算重量
  1017. changesettlementWeight(item) {
  1018. if (!this.settlementWeight) {
  1019. this.$message({
  1020. message: '结算重量不能为空!',
  1021. type: 'warning',
  1022. })
  1023. return
  1024. }
  1025. if (
  1026. (this.settlementWeight &&
  1027. String(this.settlementWeight).indexOf('.') != -1 &&
  1028. String(this.settlementWeight).length -
  1029. (String(this.settlementWeight).indexOf('.') + 1) >
  1030. 2) ||
  1031. (this.settlementWeight && this.settlementWeight > 100) ||
  1032. (this.settlementWeight && this.settlementWeight < 1)
  1033. ) {
  1034. this.$message({
  1035. message: '结算重量输入错误',
  1036. type: 'warning',
  1037. })
  1038. return
  1039. }
  1040. this.reviewer = sessionStorage.getItem('ws-pf_roleName') +sessionStorage.getItem('ws-pf_staffName')
  1041. editauto({
  1042. settlementWeight: Math.abs(this.settlementWeight),
  1043. id: item.id,
  1044. reviewer:this.reviewer,
  1045. flag: 0,
  1046. })
  1047. .toPromise()
  1048. .then((response) => {
  1049. this.$message.success('修改结算重量成功')
  1050. this.getList()
  1051. })
  1052. .catch((req) => {
  1053. this.$message.warning('修改结算重量失败')
  1054. })
  1055. },
  1056. //设置本次账户
  1057. bankCard(item,id) {
  1058. editauto({
  1059. cardNo: item.bankCard,
  1060. id: id,
  1061. flag: 3,
  1062. })
  1063. .toPromise()
  1064. .then((response) => {
  1065. this.$message.success('成功')
  1066. this.dialogFormVisible8 = false
  1067. this.getList()
  1068. })
  1069. .catch((req) => {
  1070. this.$message.warning('失败')
  1071. })
  1072. },
  1073. editsettlementWeight(item) {
  1074. this.settlementWeight = item.settlementWeight
  1075. item.settlementWeightchange = true
  1076. },
  1077. //修改扣款
  1078. changedeductionAmount(item) {
  1079. if (!this.deductionAmount) {
  1080. this.$message({
  1081. message: '扣款金额不能为空!',
  1082. type: 'warning',
  1083. })
  1084. return
  1085. }
  1086. if (
  1087. (this.deductionAmount &&
  1088. String(this.deductionAmount).indexOf('.') != -1 &&
  1089. String(this.deductionAmount).length -
  1090. (String(this.deductionAmount).indexOf('.') + 1) >
  1091. 2) ||
  1092. (this.deductionAmount && this.deductionAmount > 100000) ||
  1093. (this.deductionAmount && this.deductionAmount < 1)
  1094. ) {
  1095. this.$message({
  1096. message: '扣款金额输入错误',
  1097. type: 'warning',
  1098. })
  1099. return
  1100. }
  1101. editauto({
  1102. deductionAmount: Math.abs(this.deductionAmount),
  1103. id: item.id,
  1104. flag: 1,
  1105. })
  1106. .toPromise()
  1107. .then((response) => {
  1108. this.$message.success('修改扣款成功')
  1109. this.getList()
  1110. })
  1111. .catch((req) => {
  1112. this.$message.warning('修改扣款失败')
  1113. })
  1114. },
  1115. editdeductionAmount(item) {
  1116. this.deductionAmount = item.deductionAmount
  1117. item.deductionAmountchange = true
  1118. },
  1119. //装车磅单
  1120. lookloadingImg(row) {
  1121. if (row.loadingImg == null || row.loadingImg == '') {
  1122. EventBus.$emit(
  1123. this.$message.warning('暂无磅单信息')
  1124. )
  1125. } else {
  1126. this.accessoryTFs = true
  1127. }
  1128. this.loadingImg1 = row.loadingImg
  1129. },
  1130. //卸车磅单
  1131. lookunloadingImg(row) {
  1132. if (row.unloadingImg === null || row.unloadingImg === '') {
  1133. EventBus.$emit(
  1134. this.$message.warning('暂无磅单信息')
  1135. )
  1136. } else {
  1137. this.accesscard = true
  1138. }
  1139. this.unloadingImg1 = row.unloadingImg
  1140. },
  1141. //付款截图
  1142. lookpaymentScreenshot(row) {
  1143. if (row.paymentScreenshot == null || row.paymentScreenshot == '') {
  1144. EventBus.$emit(
  1145. this.$message.warning('暂无付款截图信息')
  1146. )
  1147. } else {
  1148. this.paymentImg = true
  1149. }
  1150. this.paymentScreenshot1 = row.paymentScreenshot.split('$')
  1151. },
  1152. //审核
  1153. audit(item, index, status, status2, reason) {
  1154. if (index < this.modification.length) {
  1155. posthandle({
  1156. taskId: item.taskId,
  1157. approved: status,
  1158. auditMind: reason != undefined ? '已驳回' : '34',
  1159. needReapply: status2 != undefined ? true : false,
  1160. })
  1161. .toPromise()
  1162. .then((response) => {
  1163. this.audit(this.modification[index + 1], index + 1, status)
  1164. })
  1165. .catch((req) => {
  1166. this.$message.warning(req.message)
  1167. })
  1168. } else {
  1169. if (status==true) {
  1170. this.$message.success('通过成功')
  1171. this.getList()
  1172. } else if (status==false) {
  1173. this.$message.success('驳回成功')
  1174. this.getList()
  1175. }
  1176. }
  1177. },
  1178. handlereject(status) {
  1179. var that = this
  1180. if (this.modification.length == 0) {
  1181. this.$message.warning('请选择要驳回的条目')
  1182. } else {
  1183. this.$confirm(`是否确定驳回?`, {
  1184. cancelButtonText: '取消',
  1185. confirmButtonText: '确定',
  1186. type: 'warning',
  1187. }).then(() => {
  1188. that.audit(this.modification[0], 0, false, true, '已驳回')
  1189. })
  1190. }
  1191. },
  1192. dataFilter(val) {
  1193. // console.log(val,"名")
  1194. this.contractNo = val
  1195. if (val) {
  1196. //val存在
  1197. this.options = this.contractNoList.filter((item) => {
  1198. if (
  1199. !!~item.contractNo.indexOf(val) ||
  1200. !!~item.contractNo.toUpperCase().indexOf(val.toUpperCase())
  1201. ) {
  1202. return true
  1203. }
  1204. })
  1205. } else {
  1206. //val为空时,还原数组
  1207. this.options = this.contractNoList
  1208. }
  1209. },
  1210. //查看修改结算重量记录
  1211. editRecord() {
  1212. this.dialogFormVisible16 = true
  1213. },
  1214. handlepass() {
  1215. var that = this
  1216. if (this.modification.length == 0) {
  1217. this.$message.warning('请选择要通过的条目')
  1218. } else {
  1219. this.$confirm(`是否确定通过?`, {
  1220. cancelButtonText: '取消',
  1221. confirmButtonText: '确定',
  1222. type: 'warning',
  1223. }).then(() => {
  1224. that.audit(this.modification[0], 0, true, 2)
  1225. })
  1226. }
  1227. },
  1228. handleSelectionChange(val) {
  1229. this.modification = val
  1230. },
  1231. handlestatus(status) {
  1232. this.searchType = status
  1233. this.getList()
  1234. },
  1235. contractchange(e) {
  1236. this.contractNo = e
  1237. this.getList()
  1238. },
  1239. updated() {
  1240. this.$nextTick(() => {
  1241. this.$refs.warehouseList.doLayout()
  1242. })
  1243. },
  1244. //合计
  1245. getSummaries(param) {
  1246. const { columns, data } = param
  1247. const sums = []
  1248. columns.forEach((column, index) => {
  1249. if (index === 0) {
  1250. sums[index] = '合计'
  1251. } else if (
  1252. index === 13 ||
  1253. index === 14 ||
  1254. index === 15 ||
  1255. index === 16
  1256. ) {
  1257. const values = data.map((item) => Number(item[column.property]))
  1258. if (!values.every((value) => isNaN(value))) {
  1259. sums[index] = values.reduce((prev, curr) => {
  1260. const value = Number(curr)
  1261. if (!isNaN(value)) {
  1262. return prev + curr
  1263. } else {
  1264. return prev
  1265. }
  1266. }, 0)
  1267. } else {
  1268. sums[index] = '元'
  1269. }
  1270. } else {
  1271. sums[index] = '--'
  1272. }
  1273. })
  1274. sums[sums.length-4]=sums[sums.length-4].toFixed(2)
  1275. sums[sums.length-5]=sums[sums.length-5].toFixed(2)
  1276. sums[sums.length-6]=sums[sums.length-6].toFixed(2)
  1277. sums[sums.length-7]=sums[sums.length-7].toFixed(2)
  1278. return sums
  1279. },
  1280. //列表
  1281. getList() {
  1282. console.log(this.contractNo,'this.contractNo值')
  1283. autoList({
  1284. compId: sessionStorage.getItem('ws-pf_compId'),
  1285. tranTypeKey: 1,
  1286. currentPage: this.currentPage,
  1287. pageSize: this.pageSize,
  1288. searchType: this.searchType,
  1289. contractNo: this.contractNo,
  1290. manualFlag: this.manualFlag,
  1291. })
  1292. .toPromise()
  1293. .then((response) => {
  1294. for (var i = 0; i < response.records.length; i++) {
  1295. response.records[i].settlementWeightchange = false
  1296. response.records[i].deductionAmountchange = false
  1297. response.records[i].amountNotPayable=response.records[i].amountIngPayable-response.records[i].amountEdPayable
  1298. if(response.records[i].tranPriceApproveList){
  1299. for(var j=0;j<response.records[i].tranPriceApproveList.length;j++){
  1300. this.tranPriceApproveList.push(response.records[i].tranPriceApproveList[j])
  1301. }
  1302. }
  1303. }
  1304. this.deptBudgetTotal = response.total
  1305. this.warehouseList = response
  1306. })
  1307. autocontract({
  1308. compId: sessionStorage.getItem('ws-pf_compId'),
  1309. currentPage: this.currentPage,
  1310. pageSize: this.pageSize,
  1311. // roleFlag: this.roleFlag,
  1312. })
  1313. .toPromise()
  1314. .then((response) => {
  1315. this.contractNoList = response
  1316. this.contractNoList.unshift({ contractNo: '全部合同' })
  1317. this.options = this.contractNoList
  1318. })
  1319. },
  1320. handleRemove(file) {
  1321. console.log(file)
  1322. },
  1323. handlePictureCardPreview(file) {
  1324. this.paymentScreenshot = file.url
  1325. this.dialogVisible = true
  1326. },
  1327. handleDownload(file) {
  1328. console.log(file)
  1329. },
  1330. getSpanArr(data) {
  1331. let that = this
  1332. //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
  1333. that.spanArr = []
  1334. that.pos = 0
  1335. // //遍历数据
  1336. data.forEach((item, index) => {
  1337. //判断是否是第一项
  1338. if (index === 0) {
  1339. this.spanArr.push(1)
  1340. this.pos = 0
  1341. } else {
  1342. //不是第一项时,就根据标识去存储
  1343. if (data[index].warehouseNumViewList.length > 1) {
  1344. 查找到符合条件的数据时每次要把之前存储的数据 + 1
  1345. this.spanArr[this.pos] = data[index].warehouseNumViewList.length
  1346. this.spanArr.push(0)
  1347. } else {
  1348. // 没有符合的数据时,要记住当前的index
  1349. this.spanArr.push(1)
  1350. this.pos = index
  1351. }
  1352. }
  1353. })
  1354. },
  1355. dateFormat(fmt, date) {
  1356. let ret
  1357. const opt = {
  1358. 'Y+': date.getFullYear().toString(), // 年
  1359. 'm+': (date.getMonth() + 1).toString(), // 月
  1360. 'd+': date.getDate().toString(), // 日
  1361. 'H+': date.getHours().toString(), // 时
  1362. // "M+": date.getMinutes().toString(), // 分
  1363. // "S+": date.getSeconds().toString() // 秒
  1364. // 有其他格式化字符需求可以继续添加,必须转化成字符串
  1365. }
  1366. for (let k in opt) {
  1367. ret = new RegExp('(' + k + ')').exec(fmt)
  1368. if (ret) {
  1369. fmt = fmt.replace(
  1370. ret[1],
  1371. ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
  1372. )
  1373. }
  1374. }
  1375. return fmt
  1376. },
  1377. handleSizeChange(val) {
  1378. console.log(`每页 ${val} 条`)
  1379. this.pageSize = val
  1380. this.getList()
  1381. },
  1382. handleCurrentChange(val) {
  1383. this.currentPage = val
  1384. console.log(`当前页: ${val}`)
  1385. this.getList()
  1386. },
  1387. // 关闭 dialog时 处理文件url 初始化upload组件
  1388. handleCloe() {
  1389. this.dialogViewSpareMoney = false
  1390. },
  1391. history(row) {
  1392. billoperatehis({ id: row.id })
  1393. .toPromise()
  1394. .then((response) => {
  1395. this.historyList = response
  1396. })
  1397. },
  1398. async exportlist() {
  1399. const { data } = await export1(
  1400. {
  1401. compId: sessionStorage.getItem('ws-pf_compId'),
  1402. contractType: this.contractType,
  1403. currentPage: this.currentPage,
  1404. pageSize: this.pageSize,
  1405. searchType: this.searchType,
  1406. searchKeyWord: this.searchKeyWord,
  1407. startDate: this.startDate,
  1408. endDate: this.endDate,
  1409. },
  1410. {},
  1411. { responseType: 'blob' }
  1412. ).toPromise()
  1413. downloadFile({
  1414. res: data,
  1415. fileName: `${
  1416. this.date.year + (this.date.month ? `-${this.date.month}` : '')
  1417. }_采购合同`,
  1418. type: 'xls',
  1419. })
  1420. },
  1421. total() {},
  1422. },
  1423. }
  1424. </script>
  1425. <style lang="scss" scoped>
  1426. .connert {
  1427. width: 90%;
  1428. margin: 0 auto;
  1429. }
  1430. .vertical-text-left {
  1431. width: 62px;
  1432. text-align: right;
  1433. }
  1434. //分页
  1435. .el-pagination {
  1436. padding: 10px 15px;
  1437. margin-bottom: 0;
  1438. text-align: center;
  1439. }
  1440. /deep/.el-pager li.active {
  1441. color: #5878e8;
  1442. cursor: default;
  1443. }
  1444. /deep/.el-pager li:hover {
  1445. color: #5878e8;
  1446. cursor: default;
  1447. }
  1448. .el-button--default {
  1449. color: #8890b1;
  1450. border-color: #e8eaf1;
  1451. }
  1452. /deep/.base_header_layout .grid-content.right .find.el-button--primary {
  1453. width: 30px;
  1454. margin-left: 0;
  1455. border-top-left-radius: 0px;
  1456. border-bottom-left-radius: 0px;
  1457. }
  1458. /deep/.findValue .el-input__inner {
  1459. border-top-right-radius: 0px;
  1460. border-bottom-right-radius: 0px;
  1461. width: 385px;
  1462. }
  1463. .completed.el-button--default {
  1464. border-color: #5878e8;
  1465. background-color: #f6f7fc;
  1466. color: #5878e8;
  1467. }
  1468. .putstorage.el-button--default,
  1469. .deliverystorage.el-button--default {
  1470. border-color: #8890b1;
  1471. background-color: #fff;
  1472. color: #8890b1;
  1473. }
  1474. /deep/.el-table td,
  1475. /deep/.el-table th.is-leaf {
  1476. border-right: 1px solid #e9ecf7;
  1477. text-align: center;
  1478. }
  1479. /deep/.el-table tr td:first-child,
  1480. /deep/.el-table tr th.is-leaf:first-child {
  1481. border-left: 1px solid #e9ecf7;
  1482. }
  1483. .record,
  1484. .adjustment {
  1485. display: inline-block;
  1486. color: #5878e8;
  1487. padding: 0 4px !important;
  1488. position: relative;
  1489. }
  1490. .record:after {
  1491. position: absolute;
  1492. content: '';
  1493. display: block;
  1494. top: 5px;
  1495. right: -2px;
  1496. width: 1px;
  1497. height: 12px;
  1498. background: #e9ecf7;
  1499. }
  1500. .anniu {
  1501. margin-left: 40%;
  1502. margin-top: -7%;
  1503. margin-bottom: 6%;
  1504. }
  1505. // .el-row{
  1506. // height: 150px;
  1507. // }
  1508. .base_header_layout .grid-content {
  1509. margin-top: 80px;
  1510. }
  1511. .el-input--small .el-input__inner {
  1512. margin-left: 20px;
  1513. }
  1514. .el-range-editor--small.el-input__inner {
  1515. height: 32px;
  1516. margin-left: -20%;
  1517. }
  1518. //执行样式
  1519. .executory,
  1520. .inExecution,
  1521. .done {
  1522. width: 6px;
  1523. height: 6px;
  1524. display: inline-block;
  1525. border-radius: 50%;
  1526. position: relative;
  1527. top: -1px;
  1528. font-size: 14px;
  1529. }
  1530. .executory {
  1531. background: #ff9f24;
  1532. }
  1533. .inExecution {
  1534. background: #5878e8;
  1535. }
  1536. .done {
  1537. background: #50cad4;
  1538. }
  1539. .record,
  1540. .adjustment {
  1541. display: inline-block;
  1542. color: #5878e8;
  1543. padding: 0 4px !important;
  1544. position: relative;
  1545. font-size: 14px;
  1546. }
  1547. .container {
  1548. overflow: scroll;
  1549. height: 93vh;
  1550. }
  1551. .button-container {
  1552. display: flex;
  1553. flex-wrap: nowrap;
  1554. justify-content: space-between;
  1555. align-items: center;
  1556. background-color: #fff;
  1557. width: 100%;
  1558. height: 50px;
  1559. padding: 0 10px;
  1560. & > div {
  1561. margin-left: 10px;
  1562. display: flex;
  1563. flex-wrap: nowrap;
  1564. flex-direction: row;
  1565. & > span {
  1566. line-height: 50px;
  1567. }
  1568. }
  1569. /deep/.auditFlow-box {
  1570. position: unset;
  1571. margin-left: 10px;
  1572. &/deep/.auditFlow-icon {
  1573. width: auto;
  1574. padding-right: 30px;
  1575. }
  1576. &/deep/.auditFlow-main {
  1577. position: absolute;
  1578. }
  1579. }
  1580. }
  1581. .bg-left {
  1582. padding-left: 30px;
  1583. }
  1584. .title {
  1585. position: relative;
  1586. }
  1587. .title::before {
  1588. content: '';
  1589. display: inline-block;
  1590. width: 5px;
  1591. height: 30px;
  1592. background: #5473e8;
  1593. position: absolute;
  1594. left: 0;
  1595. }
  1596. .el-button--primary {
  1597. background-color: #5878e8;
  1598. border-color: #5878e8;
  1599. // margin-left: 85%;
  1600. margin-top: 13px;
  1601. }
  1602. //导航条样式
  1603. .el-col-12 {
  1604. width: 50%;
  1605. height: 60px;
  1606. background: #f6f7fc;
  1607. border-radius: 4px 4px 1px 1px;
  1608. }
  1609. .el-input--small .el-input__inner {
  1610. height: 32px;
  1611. line-height: 32px;
  1612. width: 385px;
  1613. margin-top: 10px;
  1614. }
  1615. .bg-bottom {
  1616. margin-left: 85%;
  1617. }
  1618. .but {
  1619. margin-left: 30%;
  1620. /* margin-top: -32px; */
  1621. overflow: auto;
  1622. /* float: left; */
  1623. /* margin-left: 1px; */
  1624. margin-left: -10px;
  1625. }
  1626. .look .el-form-item {
  1627. border-bottom: 1px solid #ccc;
  1628. }
  1629. .el-input--small {
  1630. font-size: 13px;
  1631. width: 390px;
  1632. margin-left: 74%;
  1633. }
  1634. /deep/.el-table .el-table__header .cell,
  1635. .el-table .el-table__body .cell {
  1636. text-align: center;
  1637. }
  1638. .el-scrollbar__wrap {
  1639. overflow-y: hidden;
  1640. }
  1641. /deep/.deal {
  1642. margin-left: 0%;
  1643. width: 64%;
  1644. }
  1645. .photo {
  1646. padding: 0% 34%;
  1647. }
  1648. .photo1 {
  1649. padding: 0 10%;
  1650. }
  1651. .photo2 {
  1652. padding: 0 12%;
  1653. }
  1654. /deep/.el-form-item--small .el-form-item__label,
  1655. .el-form-item--small .el-form-item__content {
  1656. text-align: center;
  1657. }
  1658. hr {
  1659. width: 91%;
  1660. }
  1661. /deep/.deaal {
  1662. width: 66%;
  1663. margin-left: 9%;
  1664. }
  1665. .el-date-editor.el-input,
  1666. .el-date-editor.el-input__inner,
  1667. .el-input-number--small {
  1668. width: 123% !important;
  1669. }
  1670. /deep/.el-table td,
  1671. .el-table th.is-leaf {
  1672. border-right: 1px solid #e9ecf7;
  1673. text-align: center;
  1674. height: 40px;
  1675. }
  1676. </style>