deposit_list-detail.vue 38 KB

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