deposit_list-detail.vue 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032
  1. <template>
  2. <div>
  3. <div class="sty">
  4. <el-page-header content="详情" @back="goBack" />
  5. </div>
  6. <el-divider />
  7. <el-radio-group v-model="engineering" size="mini" @change="handleRadio">
  8. <el-radio-button label="工程押金信息" />
  9. <el-radio-button label="工程订单信息" />
  10. <el-radio-button label="工程发货信息" />
  11. <el-radio-button label="直调发货" />
  12. <el-radio-button label="历史记录" />
  13. </el-radio-group>
  14. <br><br>
  15. <div v-show="engineering == '工程押金信息'">
  16. <div class="diy-table-1">
  17. <el-form ref="form" :model="details">
  18. <el-row :gutter="0">
  19. <el-col :xs="12" :sm="8" :lg="8" class="item">
  20. <div class="label">工程登录编号</div>
  21. <div class="value">{{ details.refEnginRecordNo }}</div>
  22. </el-col>
  23. <el-col :xs="12" :sm="8" :lg="8" class="item">
  24. <div class="label">项目类别</div>
  25. <div class="value">{{ details.refProjectName }}</div>
  26. </el-col>
  27. <el-col :xs="12" :sm="8" :lg="8" class="item">
  28. <div class="label">工程编号</div>
  29. <div class="value">{{ details.refProjectNo }}</div>
  30. </el-col>
  31. <el-col :xs="24" :sm="24" :lg="16" class="item">
  32. <div class="label">经销商名称</div>
  33. <div class="value">{{ details.customerName }}</div>
  34. </el-col>
  35. <el-col :xs="24" :sm="24" :lg="8" class="item">
  36. <div class="label">经销商编码</div>
  37. <div class="value">{{ details.customerNumber }}</div>
  38. </el-col>
  39. <el-col :xs="24" :sm="24" :lg="8" class="item">
  40. <div class="label">工程登录类型</div>
  41. <div class="value">{{ details.refPromiseStatus }}</div>
  42. </el-col>
  43. <el-col :xs="24" :sm="24" :lg="8" class="item">
  44. <div class="label">联系人</div>
  45. <div class="value">{{ details.refLinkman }}</div>
  46. </el-col>
  47. <el-col :xs="24" :sm="24" :lg="8" class="item">
  48. <div class="label">固定电话</div>
  49. <div class="value">{{ details.refTel }}</div>
  50. </el-col>
  51. <!-- <el-col :xs="24" :sm="24" :lg="16" class="item">-->
  52. <!-- <div class="label">厂工程编码</div>-->
  53. <!-- <div class="value">-->
  54. <!-- <el-form-item prop="refFactoryNo">-->
  55. <!-- <el-input-->
  56. <!-- v-model="details.refFactoryNo"-->
  57. <!-- placeholder="厂工程编码"-->
  58. <!-- size="small"-->
  59. <!-- />-->
  60. <!-- </el-form-item>-->
  61. <!-- </div>-->
  62. <!-- </el-col>-->
  63. <el-col :xs="24" :sm="24" :lg="8" class="item">
  64. <div class="label">移动电话</div>
  65. <div class="value">{{ details.refPhone }}</div>
  66. </el-col>
  67. <el-col :xs="24" :sm="24" :lg="8" class="item">
  68. <div class="label">押金总额</div>
  69. <div class="value">{{ details.depositAmount }}</div>
  70. </el-col>
  71. <el-col :xs="24" :sm="24" :lg="8" class="item">
  72. <div class="label">工程差价总额</div>
  73. <div class="value">{{ details.depositDiffAmount }}</div>
  74. </el-col>
  75. <el-col :xs="24" :sm="24" :lg="24" class="item" v-if="!isCustomer">
  76. <div class="label">格力备注</div>
  77. <div class="value">{{ details.geLiInerNote }}</div>
  78. </el-col>
  79. <el-col :xs="24" :sm="24" :lg="12" class="item">
  80. <div class="label">使用单位</div>
  81. <div class="value">{{ details.refUseUnit }}</div>
  82. </el-col>
  83. <el-col :xs="24" :sm="24" :lg="12" class="item">
  84. <div class="label">跨区厂编号</div>
  85. <div class="value">{{ details.refFactoryNo }}</div>
  86. </el-col>
  87. <el-col :xs="24" :sm="24" :lg="24" class="item">
  88. <div class="label">安装时间</div>
  89. <div class="value" style="padding: 0">
  90. <el-form-item prop="installDate">
  91. <el-date-picker
  92. v-model="details.installDate"
  93. type="datetime"
  94. placeholder="安装时间"
  95. default-time="00:00:00"
  96. value-format="yyyy-MM-dd HH:mm:ss"
  97. />
  98. </el-form-item>
  99. </div>
  100. </el-col>
  101. <el-col :xs="24" :sm="24" :lg="24" class="item">
  102. <div class="label">安装地址</div>
  103. <div class="value">
  104. {{details.refInstallAddress}}
  105. </div>
  106. </el-col>
  107. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">-->
  108. <!-- <div class="label">寄厂日期</div>-->
  109. <!-- <div class="value" style="padding: 0">-->
  110. <!-- <el-form-item prop="sendFactoryDate">-->
  111. <!-- <el-date-picker-->
  112. <!-- v-model="details.sendFactoryDate"-->
  113. <!-- type="datetime"-->
  114. <!-- placeholder="寄厂日期"-->
  115. <!-- default-time="00:00:00"-->
  116. <!-- value-format="yyyy-MM-dd HH:mm:ss"-->
  117. <!-- >-->
  118. <!-- </el-date-picker>-->
  119. <!-- </el-form-item>-->
  120. <!-- </div>-->
  121. <!-- </el-col>-->
  122. </el-row>
  123. </el-form>
  124. </div>
  125. <h3>货品信息</h3>
  126. <el-divider />
  127. <!-- 列表 -->
  128. <div class="mymain-container">
  129. <div class="table">
  130. <el-table
  131. v-loading="listLoading"
  132. :data="details.items"
  133. element-loading-text="Loading"
  134. border
  135. fit
  136. highlight-current-row
  137. stripe
  138. show-summary
  139. :summary-method="$getSummaries"
  140. >
  141. <el-table-column
  142. align="left"
  143. label="跨区厂编号"
  144. prop="factoryNo"
  145. min-width="160"
  146. show-overflow-tooltip
  147. >
  148. <template slot-scope="scope">
  149. <CopyButton :copyText="scope.row.factoryNo" />
  150. <span>{{scope.row.factoryNo}}</span>
  151. </template>
  152. </el-table-column>
  153. <el-table-column
  154. align="left"
  155. label="物料编码"
  156. prop="materialNumber"
  157. min-width="160"
  158. show-overflow-tooltip
  159. >
  160. <template slot-scope="scope">
  161. <CopyButton :copyText="scope.row.materialNumber" />
  162. <span>{{scope.row.materialNumber}}</span>
  163. </template>
  164. </el-table-column>
  165. <el-table-column
  166. align="left"
  167. label="产品编码"
  168. prop="materialOldNumber"
  169. min-width="160"
  170. show-overflow-tooltip
  171. >
  172. <template slot-scope="scope">
  173. <CopyButton :copyText="scope.row.materialOldNumber" />
  174. <span>{{scope.row.materialOldNumber}}</span>
  175. </template>
  176. </el-table-column>
  177. <el-table-column
  178. align="left"
  179. label="产品名称"
  180. prop="materialName"
  181. min-width="160"
  182. show-overflow-tooltip
  183. >
  184. <template slot-scope="scope">
  185. <CopyButton :copyText="scope.row.materialName" />
  186. <span>{{scope.row.materialName}}</span>
  187. </template>
  188. </el-table-column>
  189. <el-table-column
  190. align="left"
  191. label="规格型号"
  192. prop="specification"
  193. min-width="160"
  194. show-overflow-tooltip
  195. >
  196. <template slot-scope="scope">
  197. <CopyButton :copyText="scope.row.specification" />
  198. <span>{{scope.row.specification}}</span>
  199. </template>
  200. </el-table-column>
  201. <el-table-column
  202. align="right"
  203. label="单价"
  204. prop="price"
  205. min-width="160"
  206. show-overflow-tooltip
  207. >
  208. <template slot-scope="scope">
  209. {{ scope.row.price | numToFixed}}
  210. </template>
  211. </el-table-column>
  212. <el-table-column
  213. align="right"
  214. label="数量"
  215. prop="qty"
  216. min-width="160"
  217. show-overflow-tooltip
  218. />
  219. <el-table-column
  220. align="right"
  221. label="金额"
  222. prop="totalAmount"
  223. min-width="160"
  224. show-overflow-tooltip
  225. >
  226. <template slot-scope="scope">
  227. {{ scope.row.totalAmount | numToFixed}}
  228. </template>
  229. </el-table-column>
  230. <el-table-column
  231. align="right"
  232. label="发货数量"
  233. prop="hasSendQty"
  234. min-width="160"
  235. show-overflow-tooltip
  236. />
  237. <el-table-column
  238. align="right"
  239. label="押金金额"
  240. prop="depositAmount"
  241. min-width="160"
  242. show-overflow-tooltip
  243. >
  244. <template slot-scope="scope">
  245. {{ scope.row.depositAmount | numToFixed}}
  246. </template>
  247. </el-table-column>
  248. <el-table-column
  249. align="right"
  250. label="上交资料"
  251. prop="dataQty"
  252. min-width="160"
  253. show-overflow-tooltip
  254. />
  255. <el-table-column
  256. align="right"
  257. label="收差全额"
  258. prop="diffAmount"
  259. min-width="160"
  260. show-overflow-tooltip
  261. >
  262. <template slot-scope="scope">
  263. {{ scope.row.diffAmount | numToFixed}}
  264. </template>
  265. </el-table-column>
  266. </el-table>
  267. </div>
  268. </div>
  269. <h3 class="gdzl">工程资料</h3>
  270. <el-button
  271. :disabled="isDis"
  272. class="batchDownload"
  273. type="primary"
  274. size="small"
  275. @click="batchDownloadFn"
  276. >批量下载</el-button>
  277. <el-divider />
  278. <!-- 列表 -->
  279. <div class="mymain-container" >
  280. <div class="table">
  281. <el-table
  282. v-loading="listLoading"
  283. :data="details.dataList"
  284. element-loading-text="Loading"
  285. border
  286. fit
  287. highlight-current-row
  288. stripe
  289. >
  290. <el-table-column
  291. align="left"
  292. label="资料描述"
  293. prop="dataDescribe"
  294. min-width="160"
  295. show-overflow-tooltip
  296. />
  297. <el-table-column
  298. align="left"
  299. label="原文件名"
  300. prop="fileName"
  301. min-width="160"
  302. show-overflow-tooltip
  303. />
  304. <el-table-column
  305. align="left"
  306. label="缩略图"
  307. prop="fileUrl"
  308. min-width="160"
  309. show-overflow-tooltip
  310. >
  311. <template slot-scope="scope">
  312. <el-image
  313. v-if="checkFileType(scope.row.fileUrl) == 'image'"
  314. ref="img"
  315. :src="imageURL + scope.row.fileUrl"
  316. style="width: 120px; height: 120px"
  317. fit="cover"
  318. :preview-src-list="[imageURL + scope.row.fileUrl]"
  319. />
  320. <img
  321. v-if="checkFileType(scope.row.fileUrl) == 'word'"
  322. class="file"
  323. src="@/assets/common/word.png"
  324. >
  325. <img
  326. v-if="checkFileType(scope.row.fileUrl) == 'excel'"
  327. class="file"
  328. src="@/assets/common/excel.png"
  329. >
  330. <img
  331. v-if="checkFileType(scope.row.fileUrl) == 'ppt'"
  332. class="file"
  333. src="@/assets/common/ppt.png"
  334. >
  335. <img
  336. v-if="checkFileType(scope.row.fileUrl) == 'pdf'"
  337. class="file"
  338. style="cursor: pointer;"
  339. src="@/assets/common/pdf.png"
  340. @click="openPdf(scope.row.fileUrl)"
  341. >
  342. <img
  343. v-if="checkFileType(scope.row.fileUrl) == 'file'"
  344. class="file aaa"
  345. src="@/assets/common/zip.jpeg"
  346. >
  347. </template>
  348. </el-table-column>
  349. <el-table-column
  350. align="left"
  351. label="下载文件名称"
  352. prop="fileName"
  353. min-width="160"
  354. show-overflow-tooltip
  355. >
  356. <template slot-scope="scope">
  357. {{ "资料_" + scope.row.fileName }}
  358. </template>
  359. </el-table-column>
  360. <el-table-column
  361. align="center"
  362. label="操作"
  363. min-width="160"
  364. show-overflow-tooltip
  365. >
  366. <template slot-scope="scope">
  367. <el-button
  368. type="text"
  369. class="textColor"
  370. @click="downLoadFn(scope.row.fileUrl,scope.row.fileName)"
  371. >下载</el-button>
  372. <!-- <el-button-->
  373. <!-- v-if="checkFileType(scope.row.fileUrl) == 'pdf'"-->
  374. <!-- type="text"-->
  375. <!-- class="textColor"-->
  376. <!-- @click="openPdf(scope.row.fileUrl)"-->
  377. <!-- >-->
  378. <!-- 查看-->
  379. <!-- </el-button>-->
  380. </template>
  381. </el-table-column>
  382. </el-table>
  383. </div>
  384. </div>
  385. <div class="diy-table-1">
  386. <el-row :gutter="0">
  387. <el-col :xs="12" :sm="12" :lg="12" class="item">
  388. <div class="label">申请人</div>
  389. <div class="value">{{ details.createBy }}</div>
  390. </el-col>
  391. <el-col :xs="12" :sm="12" :lg="12" class="item">
  392. <div class="label">申请日期</div>
  393. <div class="value">{{ details.createTime }}</div>
  394. </el-col>
  395. <el-col :xs="24" :sm="24" :lg="24" class="item">
  396. <div class="label">申请退押金</div>
  397. <div class="value">{{ details.applyNote }}</div>
  398. </el-col>
  399. </el-row>
  400. </div>
  401. <div style="margin-top: 25px">审批</div>
  402. <el-divider />
  403. <div class="diy-table-1">
  404. <el-row :gutter="0">
  405. <el-col :xs="12" :sm="12" :lg="12" class="item">
  406. <div class="label">验收人</div>
  407. <div class="value">{{ details.checkBy }}</div>
  408. </el-col>
  409. <el-col :xs="12" :sm="12" :lg="12" class="item">
  410. <div class="label">验收日期</div>
  411. <div class="value">{{ details.checkDate }}</div>
  412. </el-col>
  413. <el-col :xs="12" :sm="12" :lg="12" class="item">
  414. <div class="label">是否退押</div>
  415. <div class="value">
  416. <template
  417. v-if="
  418. !(
  419. details.examineStatus == 'WAIT' ||
  420. details.examineStatus == 'SAVE' ||
  421. details.examineStatus == 'CLOSE'
  422. )
  423. "
  424. >
  425. {{ details.isRefundDeposit == true ? "是" : "否" }}
  426. </template>
  427. </div>
  428. </el-col>
  429. <el-col :xs="12" :sm="12" :lg="12" class="item">
  430. <div class="label">审批结果</div>
  431. <div v-if="details.examineStatus == 'Ok'" class="value">通过</div>
  432. <div
  433. v-if="details.confirmName && details.examineStatus == 'SAVE'"
  434. class="value"
  435. >
  436. 驳回
  437. </div>
  438. </el-col>
  439. <el-col :xs="24" :sm="24" :lg="24" class="item">
  440. <div class="label">验收说明</div>
  441. <div class="value">{{ details.checkNote }}</div>
  442. </el-col>
  443. <el-col v-if="details.confirmName" :xs="24" :sm="24" :lg="24" class="item">
  444. <div class="label">驳回说明</div>
  445. <div class="value">{{ details.confirmName }}</div>
  446. </el-col>
  447. </el-row>
  448. </div>
  449. <div style="margin: 20px 0">
  450. <el-button
  451. type="primary"
  452. size="small"
  453. @click="handleSvse"
  454. >保存</el-button>
  455. <el-button
  456. type="primary"
  457. size="small"
  458. @click="handleReset"
  459. >重置</el-button>
  460. </div>
  461. </div>
  462. <div v-show="engineering == '工程订单信息'">
  463. <h3>工程订单信息</h3>
  464. <el-divider />
  465. <!-- 列表 -->
  466. <div class="mymain-container">
  467. <div class="table">
  468. <el-table
  469. v-loading="listLoading"
  470. :data="dataList"
  471. element-loading-text="Loading"
  472. border
  473. fit
  474. highlight-current-row
  475. stripe
  476. >
  477. <el-table-column
  478. align="left"
  479. label="工程订单号"
  480. prop="enginOrderNo"
  481. min-width="160"
  482. show-overflow-tooltip
  483. >
  484. <template slot-scope="scope">
  485. <CopyButton :copyText="scope.row.enginOrderNo" />
  486. <span>{{scope.row.enginOrderNo}}</span>
  487. </template>
  488. </el-table-column>
  489. <el-table-column
  490. align="left"
  491. label="订单日期"
  492. prop="orderDate"
  493. min-width="160"
  494. show-overflow-tooltip
  495. />
  496. <el-table-column
  497. align="left"
  498. label="产品名称"
  499. prop="materialName"
  500. min-width="160"
  501. show-overflow-tooltip
  502. >
  503. <template slot-scope="scope">
  504. <CopyButton :copyText="scope.row.materialName" />
  505. <span>{{scope.row.materialName}}</span>
  506. </template>
  507. </el-table-column>
  508. <el-table-column
  509. align="left"
  510. label="规格型号"
  511. prop="specification"
  512. min-width="160"
  513. show-overflow-tooltip
  514. >
  515. <template slot-scope="scope">
  516. <CopyButton :copyText="scope.row.specification" />
  517. <span>{{scope.row.specification}}</span>
  518. </template>
  519. </el-table-column>
  520. <el-table-column
  521. align="right"
  522. label="单价"
  523. prop="price"
  524. min-width="160"
  525. show-overflow-tooltip
  526. >
  527. <template slot-scope="scope">
  528. {{ scope.row.price | numToFixed}}
  529. </template>
  530. </el-table-column>
  531. <el-table-column
  532. align="right"
  533. label="数量"
  534. prop="qty"
  535. min-width="160"
  536. show-overflow-tooltip
  537. />
  538. <el-table-column
  539. align="right"
  540. label="押金金额"
  541. prop="totalDepositAmount"
  542. min-width="160"
  543. show-overflow-tooltip
  544. >
  545. <template slot-scope="scope">
  546. {{ scope.row.totalDepositAmount | numToFixed}}
  547. </template>
  548. </el-table-column>
  549. </el-table>
  550. </div>
  551. </div>
  552. </div>
  553. <div v-show="engineering == '工程发货信息'">
  554. <h3>工程发货信息</h3>
  555. <el-divider />
  556. <!-- 列表 -->
  557. <div class="mymain-container">
  558. <div class="table">
  559. <el-table
  560. v-loading="listLoading"
  561. :data="projectList"
  562. element-loading-text="Loading"
  563. border
  564. fit
  565. highlight-current-row
  566. stripe
  567. >
  568. <el-table-column
  569. align="left"
  570. label="发货单"
  571. prop="id"
  572. min-width="160"
  573. show-overflow-tooltip
  574. >
  575. <template slot-scope="scope">
  576. <CopyButton :copyText="scope.row.id" />
  577. <span>{{scope.row.id}}</span>
  578. </template>
  579. </el-table-column>
  580. <el-table-column
  581. align="left"
  582. label="发货申请日期"
  583. prop="theTime"
  584. min-width="160"
  585. show-overflow-tooltip
  586. />
  587. <el-table-column
  588. align="left"
  589. label="产品名称"
  590. prop="materialName"
  591. min-width="160"
  592. show-overflow-tooltip
  593. >
  594. <template slot-scope="scope">
  595. <CopyButton :copyText="scope.row.materialName" />
  596. <span>{{scope.row.materialName}}</span>
  597. </template>
  598. </el-table-column>
  599. <el-table-column
  600. align="left"
  601. label="规格型号"
  602. prop="specification"
  603. min-width="160"
  604. show-overflow-tooltip
  605. >
  606. <template slot-scope="scope">
  607. <CopyButton :copyText="scope.row.specification" />
  608. <span>{{scope.row.specification}}</span>
  609. </template>
  610. </el-table-column>
  611. <el-table-column
  612. align="right"
  613. label="单价"
  614. prop="price"
  615. min-width="160"
  616. show-overflow-tooltip
  617. >
  618. <template slot-scope="scope">
  619. {{ scope.row.price | numToFixed}}
  620. </template>
  621. </el-table-column>
  622. <el-table-column
  623. align="right"
  624. label="数量"
  625. prop="refundableQty"
  626. min-width="160"
  627. show-overflow-tooltip
  628. />
  629. <el-table-column
  630. align="right"
  631. label="押金金额"
  632. prop="totalDepositAmount"
  633. min-width="160"
  634. show-overflow-tooltip
  635. >
  636. <template slot-scope="scope">
  637. {{
  638. (scope.row.refundableQty || 0) *
  639. (scope.row.singleDepositAmount || 0) | numToFixed
  640. }}
  641. </template>
  642. </el-table-column>
  643. </el-table>
  644. </div>
  645. </div>
  646. </div>
  647. <div v-show="engineering == '直调发货'" class="zd">
  648. <div class="table" style="margin-top: 20px">
  649. <el-table
  650. :data="goodsList"
  651. element-loading-text="Loading"
  652. border
  653. fit
  654. highlight-current-row
  655. stripe
  656. >
  657. <el-table-column
  658. align="left"
  659. label="发货单"
  660. prop="id"
  661. min-width="160"
  662. show-overflow-tooltip
  663. >
  664. <template slot-scope="scope">
  665. <CopyButton :copyText="scope.row.id" />
  666. <span>{{scope.row.id}}</span>
  667. </template>
  668. </el-table-column>
  669. <el-table-column
  670. align="left"
  671. label="发货申请日期"
  672. prop="orderTime"
  673. min-width="160"
  674. show-overflow-tooltip
  675. />
  676. <el-table-column
  677. align="left"
  678. label="产品名称"
  679. prop="materialName"
  680. min-width="160"
  681. show-overflow-tooltip
  682. >
  683. <template slot-scope="scope">
  684. <CopyButton :copyText="scope.row.materialName" />
  685. <span>{{scope.row.materialName}}</span>
  686. </template>
  687. </el-table-column>
  688. <el-table-column
  689. align="left"
  690. label="规格型号"
  691. prop="specification"
  692. min-width="160"
  693. show-overflow-tooltip
  694. >
  695. <template slot-scope="scope">
  696. <CopyButton :copyText="scope.row.specification" />
  697. <span>{{scope.row.specification}}</span>
  698. </template>
  699. </el-table-column>
  700. <el-table-column
  701. align="rihgt"
  702. label="单价"
  703. prop="price"
  704. min-width="160"
  705. show-overflow-tooltip
  706. >
  707. <template slot-scope="scope">
  708. {{ scope.row.price | numToFixed}}
  709. </template>
  710. </el-table-column>
  711. <el-table-column
  712. align="right"
  713. label="数量"
  714. prop="refundableQty"
  715. min-width="160"
  716. show-overflow-tooltip
  717. />
  718. <el-table-column
  719. align="right"
  720. label="押金金额"
  721. prop="totalDepositAmount"
  722. min-width="160"
  723. show-overflow-tooltip
  724. >
  725. <template slot-scope="scope">
  726. {{
  727. (scope.row.qty || 0) *
  728. (scope.row.singleDepositAmount || 0) | numToFixed
  729. }}
  730. </template>
  731. </el-table-column>
  732. </el-table>
  733. </div>
  734. </div>
  735. <div v-show="engineering == '历史记录'">
  736. <h3>历史记录</h3>
  737. <el-divider />
  738. <!-- 列表 -->
  739. <div class="mymain-container">
  740. <div class="table">
  741. <el-table
  742. v-loading="listLoading"
  743. :data="details.checkRecordItems"
  744. element-loading-text="Loading"
  745. border
  746. fit
  747. highlight-current-row
  748. stripe
  749. >
  750. <el-table-column
  751. align="left"
  752. label="验收日期"
  753. prop="checkDate"
  754. min-width="160"
  755. show-overflow-tooltip
  756. >
  757. </el-table-column>
  758. <el-table-column
  759. align="left"
  760. label="验收人"
  761. prop="checkBy"
  762. min-width="160"
  763. show-overflow-tooltip
  764. >
  765. </el-table-column>
  766. <el-table-column
  767. align="left"
  768. label="申请退押金备注
  769. "
  770. prop="applyNote"
  771. min-width="160"
  772. show-overflow-tooltip
  773. >
  774. </el-table-column>
  775. <el-table-column
  776. align="left"
  777. label="验收说明
  778. "
  779. prop="checkNote"
  780. min-width="160"
  781. show-overflow-tooltip
  782. >
  783. </el-table-column>
  784. <el-table-column
  785. align="left"
  786. label="是否退押
  787. "
  788. prop="checkNote"
  789. min-width="160"
  790. show-overflow-tooltip
  791. >
  792. <template slot-scope="scope">
  793. {{scope.row.checkNote?'是':'否'}}
  794. </template>
  795. </el-table-column>
  796. <el-table-column
  797. align="left"
  798. label="提交人
  799. "
  800. prop="submitBy"
  801. min-width="160"
  802. show-overflow-tooltip
  803. >
  804. </el-table-column>
  805. <el-table-column
  806. align="left"
  807. label="提交时间
  808. "
  809. prop="submitTime"
  810. min-width="160"
  811. show-overflow-tooltip
  812. >
  813. </el-table-column>
  814. </el-table>
  815. </div>
  816. </div>
  817. </div>
  818. </div>
  819. </template>
  820. <script>
  821. import { editInfo, geDetail, geOrderInfo, getListProject } from '@/api/engin_deposit.js'
  822. import { getList } from '@/api/supply/adjust'
  823. import { downloadFiles, downloadPdf } from '@/utils/util'
  824. import { getFileUrl } from '@/api/common'
  825. export default {
  826. data() {
  827. return {
  828. isDis: true,
  829. listLoading: false,
  830. engineering: '工程押金信息',
  831. dataList: [],
  832. projectList: [],
  833. details: {},
  834. goodsList: [],
  835. warehouseList: [],
  836. positionList: [],
  837. imageURL: this.$imageUrl,
  838. deliverForm: {
  839. date: '',
  840. warehouse: '',
  841. position: ''
  842. },
  843. deliverFormRules: {
  844. date: [
  845. { required: true, message: '请选择发货日期', trigger: 'change' }
  846. ],
  847. warehouse: [
  848. { required: true, message: '请选择发货仓库', trigger: 'change' }
  849. ],
  850. position: [
  851. { required: true, message: '请选择仓位', trigger: 'change' }
  852. ]
  853. },
  854. orderType: {
  855. TRADE: '商用',
  856. HOME: '家用',
  857. RETAIL: '零售单',
  858. RETAIL_POLICY: '销售政策单'
  859. }
  860. }
  861. },
  862. created() {
  863. this.getDetail()
  864. },
  865. computed:{
  866. isCustomer(){
  867. return this.$store.getters.customerId && this.$store.getters.customerNumber
  868. }
  869. },
  870. methods: {
  871. getDetail() {
  872. if (this.engineering == '工程押金信息') {
  873. geDetail({ id: this.$parent.depositManageId }).then((res) => {
  874. this.details = res.data
  875. if (res.data.dataList.length == 0) {
  876. this.isDis = true
  877. } else {
  878. this.isDis = false
  879. }
  880. res.data.items.forEach((item) => {
  881. // item.number = (item.qty*100 - item.directTransferQty*100 - item.retiredQty*100) / 100;
  882. item.sums1 = ['hasSendQty', 'dataQty', 'qty']
  883. item.sums2 = ['totalAmount', 'diffAmount', 'price']
  884. })
  885. })
  886. } else if (this.engineering == '工程订单信息') {
  887. geOrderInfo({
  888. refEnginRecordNo: this.$parent.refEnginRecordNo,
  889. examineStatus: 'OK'
  890. }).then((res) => {
  891. this.dataList = res.data
  892. })
  893. } else if (this.engineering == '直调发货') {
  894. getList({
  895. pageSize: -1,
  896. pageNum: 1,
  897. enginRecordNo: this.$parent.refEnginRecordNo
  898. }).then((res) => {
  899. this.goodsList = res.data.records
  900. })
  901. } else {
  902. getListProject({
  903. pageSize: -1,
  904. pageNum: 1,
  905. type:3,
  906. refEnginRecordNo: this.$parent.refEnginRecordNo,
  907. examineStatus: 'OK'
  908. }).then((res) => {
  909. this.projectList = res.data.records
  910. })
  911. }
  912. },
  913. // 批量下载
  914. async batchDownloadFn() {
  915. downloadFiles('/deposit-manage/downZip', { parentId: this.$parent.depositManageId })
  916. },
  917. // 下载
  918. downLoadFn(v, fileName) {
  919. if (this.checkFileType(v) === 'pdf') {
  920. downloadPdf(this.$imageUrl + v, fileName)
  921. return
  922. }
  923.   downloadFiles("/common/file/getStream", { key: v, fileName:fileName});
  924. // getFileUrl({ key: v }).then((res) => {
  925. // window.open(res.data)
  926. // })
  927. },
  928. openPdf(pdfUrl) {
  929. window.open(this.$imageUrl + pdfUrl)
  930. },
  931. // 检查文件类型
  932. checkFileType(url) {
  933. if (!url) return ''
  934. const fileSuffix = url.substring(url.lastIndexOf('.') + 1)
  935. if (['jpg', 'jpeg', 'png'].includes(fileSuffix)) {
  936. return 'image'
  937. } else if (['doc', 'docx', 'dot', 'wps', 'wpt'].includes(fileSuffix)) {
  938. return 'word'
  939. } else if (['xls', 'xlsx', 'xlt', 'et', 'ett'].includes(fileSuffix)) {
  940. return 'excel'
  941. } else if (
  942. ['ppt', 'pptx', 'dps', 'dpt', 'pot', 'pps'].includes(fileSuffix)
  943. ) {
  944. return 'ppt'
  945. } else if (['pdf'].includes(fileSuffix)) {
  946. return 'pdf'
  947. } else if (['zip', 'rar', 'gz', 'apk'].includes(fileSuffix)) {
  948. return 'file'
  949. } else {
  950. return ''
  951. }
  952. },
  953. goBack() {
  954. this.$parent.showPage = 1
  955. },
  956. handleRadio(e) {
  957. this.getDetail()
  958. },
  959. handleSvse() {
  960. this.details.isRefundDeposit =
  961. this.details.isRefundDeposit == true
  962. editInfo(this.details).then((res) => {
  963. this.$successMsg('编辑成功')
  964. this.$parent.showPage = 1
  965. })
  966. },
  967. handleReset() {
  968. this.$refs.form.resetFields()
  969. }
  970. }
  971. }
  972. </script>
  973. <style scoped lang="scss">
  974. .aaa {
  975. height: 64px;
  976. width: 64px;
  977. }
  978. .gdzl {
  979. display: inline-block;
  980. }
  981. .batchDownload {
  982. float: right;
  983. margin-top: 9px;
  984. }
  985. ::v-deep .el-input__prefix {
  986. display: none;
  987. left: 65px !important;
  988. -webkit-transition: all 0.3s;
  989. transition: all 0.3s;
  990. }
  991. ::v-deep .el-date-editor.el-input {
  992. width: 100%;
  993. box-sizing: border-box;
  994. padding-left: 10px;
  995. }
  996. .diy-table-1 {
  997. ::v-deep .el-form-item {
  998. margin: 0;
  999. }
  1000. }
  1001. .zd {
  1002. ::v-deep .el-input__suffix {
  1003. right: 0;
  1004. -webkit-transition: all 0.3s;
  1005. transition: all 0.3s;
  1006. }
  1007. }
  1008. ::v-deep .el-input__suffix {
  1009. right: -15px;
  1010. -webkit-transition: all 0.3s;
  1011. transition: all 0.3s;
  1012. }
  1013. </style>