refund_list-detail.vue 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182
  1. <template>
  2. <div>
  3. <div class="sty">
  4. <el-page-header @back="goBack" :content="title"> </el-page-header>
  5. </div>
  6. <el-divider></el-divider>
  7. <h3>工程项目信息</h3>
  8. <el-divider></el-divider>
  9. <div class="diy-table-1">
  10. <el-row :gutter="0">
  11. <el-col :xs="12" :sm="24" :lg="8" class="item">
  12. <div class="label">
  13. {{
  14. detailList.enginOrderType == "HOME"
  15. ? "工程登录编号"
  16. : "工程信息编号"
  17. }}
  18. </div>
  19. <div class="value">{{ detailList.refEnginRecordNo }}</div>
  20. </el-col>
  21. <!-- <el-col :xs="12" :sm="24" :lg="8" class="item">
  22. <div class="label">工程信息编号</div>
  23. <div class="value">{{ detailList.refEnginRecordNo }}</div>
  24. </el-col> -->
  25. <el-col :xs="12" :sm="24" :lg="8" class="item">
  26. <div class="label">项目类别</div>
  27. <div class="value">{{ detailList.refProjectName }}</div>
  28. </el-col>
  29. <el-col :xs="12" :sm="24" :lg="8" class="item">
  30. <div class="label">行业类别</div>
  31. <div class="value">
  32. {{ detailList.refTradeCategory }}
  33. </div>
  34. </el-col>
  35. <el-col :xs="24" :sm="24" :lg="8" class="item">
  36. <div class="label">跨区厂编号</div>
  37. <div class="value">{{ detailList.refFactoryNo }}</div>
  38. </el-col>
  39. <el-col :xs="24" :sm="24" :lg="8" class="item">
  40. <div class="label">使用单位</div>
  41. <div class="value">{{ detailList.refUseUnit }}</div>
  42. </el-col>
  43. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  44. <div class="label">经销商二级代码</div>
  45. <div class="value">{{detailList.}}</div>
  46. </el-col> -->
  47. <el-col :xs="24" :sm="24" :lg="8" class="item">
  48. <div class="label">业务员</div>
  49. <div class="value">{{ detailList.serviceName }}</div>
  50. </el-col>
  51. <el-col :xs="24" :sm="24" :lg="8" class="item">
  52. <div class="label">联系人</div>
  53. <div class="value">{{ detailList.refLinkman }}</div>
  54. </el-col>
  55. <el-col :xs="24" :sm="24" :lg="8" class="item">
  56. <div class="label">固定电话</div>
  57. <div class="value">{{ detailList.refTel }}</div>
  58. </el-col>
  59. <el-col :xs="24" :sm="24" :lg="8" class="item">
  60. <div class="label">移动电话</div>
  61. <div class="value">{{ detailList.refPhone }}</div>
  62. </el-col>
  63. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  64. <div class="label">移动电话</div>
  65. <div class="value">
  66. <el-input
  67. :readonly="title == '详情'"
  68. placeholder="请输入"
  69. v-model="detailList.refPhone"
  70. ></el-input>
  71. </div>
  72. </el-col> -->
  73. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  74. <div class="label">押金比例</div>
  75. <div class="value">{{detailList.}}</div>
  76. </el-col> -->
  77. <el-col :xs="24" :sm="24" :lg="8" class="item">
  78. <div class="label">单据状态</div>
  79. <div class="value">
  80. {{
  81. detailList.examineStatus == "SAVE"
  82. ? "保存"
  83. : detailList.examineStatus == "WAIT"
  84. ? "待审核"
  85. : detailList.examineStatus == "OK"
  86. ? "通过"
  87. : detailList.examineStatus == "FAIL"
  88. ? "不通过"
  89. : "关闭"
  90. }}
  91. </div>
  92. </el-col>
  93. <el-col :xs="24" :sm="24" :lg="8" class="item">
  94. <div class="label">销售类型</div>
  95. <div class="value">{{ detailList.saleTypeName }}</div>
  96. </el-col>
  97. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  98. <div class="label">不扣押金</div>
  99. <div class="value">{{ detailList.customerName }}</div>
  100. </el-col> -->
  101. <el-col :xs="24" :sm="24" :lg="8" class="item">
  102. <div class="label">第几次申报</div>
  103. <div class="value">{{ detailList.refDeclareNo }}</div>
  104. </el-col>
  105. <el-col :xs="24" :sm="24" :lg="8" class="item">
  106. <div class="label">项目类型</div>
  107. <div class="value">{{ detailList.refProjectType }}</div>
  108. </el-col>
  109. <el-col :xs="24" :sm="24" :lg="8" class="item">
  110. <div class="label">经销商编码</div>
  111. <div class="value">{{ detailList.customerNumber }}</div>
  112. </el-col>
  113. <el-col :xs="24" :sm="24" :lg="8" class="item">
  114. <div class="label">押金总额</div>
  115. <div class="value">{{ detailList.depositAmount }}</div>
  116. </el-col>
  117. <el-col :xs="24" :sm="24" :lg="8" class="item">
  118. <div class="label">安装时间</div>
  119. <div class="value">
  120. <el-date-picker
  121. prefix-icon="''"
  122. placeholder="请选择安装时间"
  123. :readonly="title == '详情'"
  124. class="selectStyle"
  125. v-model="detailList.installDate"
  126. type="datetime"
  127. default-time="00:00:00"
  128. value-format="yyyy-MM-dd HH:mm:ss"
  129. >
  130. </el-date-picker>
  131. </div>
  132. </el-col>
  133. <el-col :xs="24" :sm="24" :lg="16" class="item">
  134. <div class="label">安装地址</div>
  135. <div class="value">{{ detailList.refInstallAddress }}</div>
  136. </el-col>
  137. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  138. <div class="label">工程订单号</div>
  139. <div class="value">{{ detailList.customerName }}</div>
  140. </el-col> -->
  141. <el-col :xs="24" :sm="24" :lg="16" class="item">
  142. <div class="label">经销商名称</div>
  143. <div class="value">{{ detailList.customerName }}</div>
  144. </el-col>
  145. <el-col :xs="24" :sm="24" :lg="16" class="item">
  146. <div class="label">项目说明</div>
  147. <div class="value">{{ detailList.refProjectNote }}</div>
  148. </el-col>
  149. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  150. <div class="label">订单日期</div>
  151. <div class="value">{{ detailList.customerName }}</div>
  152. </el-col> -->
  153. <!-- <el-col :xs="24" :sm="24" :lg="16" class="item">
  154. <div class="label">格力内部备注</div>
  155. <div class="value">{{ detailList.customerName }}</div>
  156. </el-col> -->
  157. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  158. <div class="label">文件编码</div>
  159. <div class="value">{{ detailList.customerName }}</div>
  160. </el-col> -->
  161. <el-col :xs="24" :sm="24" :lg="16" class="item">
  162. <div class="label">备注</div>
  163. <!-- <div class="value">{{ detailList.remark }}</div> -->
  164. <div class="value">
  165. <el-input
  166. :readonly="detailList.examineStatus !== 'WAIT'"
  167. v-model="detailList.remark"
  168. placeholder="请输入内容"
  169. ></el-input>
  170. </div>
  171. </el-col>
  172. <el-col v-if="!isCustomer" :xs="24" :sm="24" :lg="16" class="item">
  173. <div class="label">格力内部备注</div>
  174. <!-- <div class="value">{{ detailList.geLiInerNote}}</div> -->
  175. <div class="value">
  176. <el-input
  177. :readonly="detailList.examineStatus !== 'WAIT'"
  178. v-model="detailList.geLiInerNote"
  179. placeholder="请输入内容"
  180. ></el-input>
  181. </div>
  182. </el-col>
  183. <el-col :xs="24" :sm="24" :lg="8" class="item">
  184. <div class="label">提交保证函</div>
  185. <!-- <div class="value">{{ detailList.remark }}</div> -->
  186. <div class="value">
  187. <el-input
  188. readonly
  189. v-model="detailList.refPromiseProvide"
  190. ></el-input>
  191. </div>
  192. </el-col>
  193. <el-col :xs="24" :sm="24" :lg="8" class="item">
  194. <div class="label">跟进函备注</div>
  195. <!-- <div class="value">{{ detailList.remark }}</div> -->
  196. <div class="value">
  197. <el-input
  198. readonly
  199. v-model="detailList.refFollowAcceptRemark"
  200. ></el-input>
  201. </div>
  202. </el-col>
  203. <el-col :xs="24" :sm="24" :lg="8" class="item">
  204. <div class="label">资料提交日期</div>
  205. <!-- <div class="value">{{ detailList.remark }}</div> -->
  206. <div class="value">
  207. <el-date-picker
  208. prefix-icon="''"
  209. placeholder="请选择安装时间"
  210. class="selectStyle"
  211. v-model="detailList.refDatumProvideDate"
  212. type="datetime"
  213. default-time="00:00:00"
  214. value-format="yyyy-MM-dd HH:mm:ss"
  215. >
  216. </el-date-picker>
  217. </div>
  218. </el-col>
  219. <el-col :xs="24" :sm="24" :lg="8" class="item">
  220. <div class="label">大额工程</div>
  221. <!-- <div class="value">{{ detailList.remark }}</div> -->
  222. <div class="value">
  223. <el-select
  224. v-model="detailList.refIsBigAmounts"
  225. v
  226. clearable
  227. filterable
  228. >
  229. <el-option label="是" value="是"> </el-option>
  230. <el-option label="否" value="否"> </el-option>
  231. </el-select>
  232. </div>
  233. </el-col>
  234. <el-col :xs="24" :sm="24" :lg="8" class="item">
  235. <div class="label">合同变更批复结果</div>
  236. <!-- <div class="value">{{ detailList.remark }}</div> -->
  237. <div class="value">
  238. <el-input
  239. readonly
  240. v-model="detailList.refContractResult"
  241. ></el-input>
  242. </div>
  243. </el-col>
  244. <el-col :xs="24" :sm="24" :lg="8" class="item">
  245. <div class="label">工程机转零售批复结果</div>
  246. <!-- <div class="value">{{ detailList.remark }}</div> -->
  247. <div class="value">
  248. <el-input
  249. readonly
  250. v-model="detailList.refToRetailResult"
  251. ></el-input>
  252. </div>
  253. </el-col>
  254. <el-col :xs="24" :sm="24" :lg="8" class="item">
  255. <div class="label">资料延期批复结果</div>
  256. <!-- <div class="value">{{ detailList.remark }}</div> -->
  257. <div class="value">
  258. <el-input
  259. readonly
  260. v-model="detailList.refDataDelayResult"
  261. ></el-input>
  262. </div>
  263. </el-col>
  264. <el-col :xs="24" :sm="24" :lg="8" class="item">
  265. <div class="label">其他附件批复结果</div>
  266. <!-- <div class="value">{{ detailList.remark }}</div> -->
  267. <div class="value">
  268. <el-input
  269. readonly
  270. v-model="detailList.refOtherAnnexResult"
  271. ></el-input>
  272. </div>
  273. </el-col>
  274. <el-col :xs="24" :sm="24" :lg="8" class="item">
  275. <div class="label">保证函受理状态</div>
  276. <!-- <div class="value">{{ detailList.remark }}</div> -->
  277. <div class="value">
  278. <el-input
  279. readonly
  280. v-model="detailList.refPromiseAcceptStatus"
  281. ></el-input>
  282. </div>
  283. </el-col>
  284. <el-col :xs="24" :sm="24" :lg="8" class="item">
  285. <div class="label">保证函备注</div>
  286. <!-- <div class="value">{{ detailList.remark }}</div> -->
  287. <div class="value">
  288. <el-input
  289. readonly
  290. v-model="detailList.refPromisePriceRemark"
  291. ></el-input>
  292. </div>
  293. </el-col>
  294. <el-col :xs="24" :sm="24" :lg="8" class="item">
  295. <div class="label">附件备注</div>
  296. <!-- <div class="value">{{ detailList.remark }}</div> -->
  297. <div class="value">
  298. <el-input
  299. readonly
  300. v-model="detailList.refFjShenPiRemark"
  301. ></el-input>
  302. </div>
  303. </el-col>
  304. <el-col :xs="24" :sm="24" :lg="8" class="item">
  305. <div class="label">资料状态</div>
  306. <!-- <div class="value">{{ detailList.remark }}</div> -->
  307. <div class="value">
  308. <el-input readonly v-model="detailList.refDatumProvide"></el-input>
  309. </div>
  310. </el-col>
  311. <el-col :xs="24" :sm="24" :lg="8" class="item">
  312. <div class="label">资料审核结果</div>
  313. <!-- <div class="value">{{ detailList.remark }}</div> -->
  314. <div class="value">
  315. <el-input
  316. readonly
  317. v-model="detailList.refDatumAcceptStatus"
  318. ></el-input>
  319. </div>
  320. </el-col>
  321. <el-col :xs="24" :sm="24" :lg="8" class="item">
  322. <div class="label">合同变更批复意见</div>
  323. <!-- <div class="value">{{ detailList.remark }}</div> -->
  324. <div class="value">
  325. <el-input readonly v-model="detailList.refContractIdea"></el-input>
  326. </div>
  327. </el-col>
  328. <el-col :xs="24" :sm="24" :lg="8" class="item">
  329. <div class="label">工程机转零售批复意见</div>
  330. <!-- <div class="value">{{ detailList.remark }}</div> -->
  331. <div class="value">
  332. <el-input readonly v-model="detailList.refToRetailIdea"></el-input>
  333. </div>
  334. </el-col>
  335. <el-col :xs="24" :sm="24" :lg="8" class="item">
  336. <div class="label">资料延期批复意见</div>
  337. <!-- <div class="value">{{ detailList.remark }}</div> -->
  338. <div class="value">
  339. <el-input readonly v-model="detailList.refDataDelayIdea"></el-input>
  340. </div>
  341. </el-col>
  342. <el-col :xs="24" :sm="24" :lg="8" class="item">
  343. <div class="label">其他附件审批</div>
  344. <!-- <div class="value">{{ detailList.remark }}</div> -->
  345. <div class="value">
  346. <el-input
  347. readonly
  348. v-model="detailList.refOtherAnnexIdea"
  349. ></el-input>
  350. </div>
  351. </el-col>
  352. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  353. <div class="label">寄厂日期</div>
  354. <div class="value">
  355. <el-date-picker
  356. :readonly="title == '详情'"
  357. class="selectStyle"
  358. v-model="detailList.sendFactoryDate"
  359. type="datetime"
  360. prefix-icon="''"
  361. placeholder="请选择寄厂日期"
  362. default-time="00:00:00"
  363. value-format="yyyy-MM-dd HH:mm:ss"
  364. >
  365. </el-date-picker>
  366. </div>
  367. </el-col> -->
  368. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  369. <div class="label">提货日期</div>
  370. <div class="value">{{detailList.}}</div>
  371. </el-col> -->
  372. </el-row>
  373. </div>
  374. <h3>货品信息</h3>
  375. <el-divider></el-divider>
  376. <!-- 列表 -->
  377. <div class="mymain-container">
  378. <div class="table">
  379. <div class="table">
  380. <el-table
  381. v-loading="listLoading"
  382. :data="detailList.items"
  383. element-loading-text="Loading"
  384. border
  385. fit
  386. highlight-current-row
  387. stripe
  388. show-summary
  389. :summary-method="$getSummaries"
  390. >
  391. <template v-if="!isCustomer">
  392. <el-table-column
  393. align="left"
  394. label="厂编号"
  395. prop="factoryNo"
  396. min-width="160"
  397. show-overflow-tooltip
  398. >
  399. <template slot-scope="scope">
  400. <CopyButton :copyText="scope.row.factoryNo" />
  401. <span>{{ scope.row.factoryNo }}</span>
  402. </template>
  403. </el-table-column>
  404. <el-table-column
  405. align="left"
  406. label="物料编码"
  407. prop="materialNumber"
  408. min-width="160"
  409. show-overflow-tooltip
  410. >
  411. <template slot-scope="scope">
  412. <CopyButton :copyText="scope.row.materialNumber" />
  413. <span>{{ scope.row.materialNumber }}</span>
  414. </template>
  415. </el-table-column>
  416. </template>
  417. <el-table-column
  418. align="left"
  419. label="产品编码"
  420. prop="materialOldNumber"
  421. min-width="160"
  422. show-overflow-tooltip
  423. >
  424. <template slot-scope="scope">
  425. <CopyButton :copyText="scope.row.materialOldNumber" />
  426. <span>{{ scope.row.materialOldNumber }}</span>
  427. </template>
  428. </el-table-column>
  429. <el-table-column
  430. align="left"
  431. label="产品名称"
  432. prop="materialName"
  433. min-width="160"
  434. show-overflow-tooltip
  435. >
  436. <template slot-scope="scope">
  437. <CopyButton :copyText="scope.row.materialName" />
  438. <span>{{ scope.row.materialName }}</span>
  439. </template>
  440. </el-table-column>
  441. <el-table-column
  442. align="left"
  443. label="规格型号"
  444. prop="specification"
  445. min-width="160"
  446. show-overflow-tooltip
  447. >
  448. <template slot-scope="scope">
  449. <CopyButton :copyText="scope.row.specification" />
  450. <span>{{ scope.row.specification }}</span>
  451. </template>
  452. </el-table-column>
  453. <el-table-column
  454. align="right"
  455. label="单价"
  456. prop="price"
  457. min-width="160"
  458. show-overflow-tooltip
  459. >
  460. <template slot-scope="scope">
  461. {{ scope.row.price | numToFixed }}
  462. </template>
  463. </el-table-column>
  464. <el-table-column
  465. align="right"
  466. label="数量"
  467. prop="qty"
  468. min-width="160"
  469. show-overflow-tooltip
  470. />
  471. <el-table-column
  472. align="right"
  473. label="金额"
  474. prop="totalAmount"
  475. min-width="160"
  476. show-overflow-tooltip
  477. >
  478. <template slot-scope="scope">
  479. {{ scope.row.totalAmount | numToFixed }}
  480. </template>
  481. </el-table-column>
  482. <el-table-column
  483. align="right"
  484. label="押金数量"
  485. prop="hasSendQty"
  486. min-width="160"
  487. show-overflow-tooltip
  488. />
  489. <el-table-column
  490. align="right"
  491. label="发货数量"
  492. prop="orderHasSendQty"
  493. min-width="160"
  494. show-overflow-tooltip
  495. />
  496. <el-table-column
  497. align="right"
  498. label="押金金额"
  499. prop="depositAmount"
  500. min-width="160"
  501. show-overflow-tooltip
  502. >
  503. <template slot-scope="scope">
  504. {{ scope.row.depositAmount | numToFixed }}
  505. </template>
  506. </el-table-column>
  507. <el-table-column
  508. align="right"
  509. label="合同价格"
  510. prop="contractPrice"
  511. min-width="160"
  512. show-overflow-tooltip
  513. >
  514. <template slot-scope="scope">
  515. <template v-if="detailList.examineStatus !== 'WAIT'">
  516. {{ scope.row.contractPrice }}
  517. </template>
  518. <el-input
  519. v-else
  520. class="inpt"
  521. v-model="scope.row.contractPrice"
  522. size="mini"
  523. clearable
  524. ></el-input>
  525. </template>
  526. </el-table-column>
  527. <!-- <el-table-column-->
  528. <!-- align="right"-->
  529. <!-- label="上交资料"-->
  530. <!-- prop="dataQty"-->
  531. <!-- min-width="160"-->
  532. <!-- show-overflow-tooltip-->
  533. <!-- />-->
  534. <el-table-column
  535. align="right"
  536. label="收差全额"
  537. prop="diffAmount"
  538. min-width="160"
  539. show-overflow-tooltip
  540. >
  541. <template slot-scope="scope">
  542. {{ scope.row.diffAmount | numToFixed }}
  543. </template>
  544. </el-table-column>
  545. </el-table>
  546. </div>
  547. </div>
  548. </div>
  549. <h3 class="gdzl">工程资料</h3>
  550. <el-button
  551. :readonly="isDis"
  552. class="batchDownload"
  553. type="primary"
  554. size="small"
  555. @click="batchDownloadFn"
  556. >批量下载</el-button
  557. >
  558. <el-divider></el-divider>
  559. <!-- 列表 -->
  560. <div class="mymain-container">
  561. <div class="table">
  562. <el-table
  563. v-loading="listLoading"
  564. :data="detailList.dataList"
  565. element-loading-text="Loading"
  566. border
  567. fit
  568. highlight-current-row
  569. stripe
  570. >
  571. <el-table-column
  572. align="left"
  573. label="资料描述"
  574. prop="dataDescribe"
  575. min-width="160"
  576. show-overflow-tooltip
  577. ></el-table-column>
  578. <el-table-column
  579. align="left"
  580. label="原文件名"
  581. prop="fileName"
  582. min-width="160"
  583. show-overflow-tooltip
  584. ></el-table-column>
  585. <el-table-column
  586. align="left"
  587. label="缩略图"
  588. prop="fileUrl"
  589. min-width="160"
  590. show-overflow-tooltip
  591. >
  592. <template slot-scope="scope">
  593. <el-image
  594. ref="img"
  595. :src="imageURL + scope.row.fileUrl"
  596. v-if="checkFileType(scope.row.fileUrl) == 'image'"
  597. style="width: 120px; height: 120px"
  598. fit="cover"
  599. :preview-src-list="[imageURL + scope.row.fileUrl]"
  600. >
  601. </el-image>
  602. <img
  603. class="file"
  604. src="@/assets/common/word.png"
  605. v-if="checkFileType(scope.row.fileUrl) == 'word'"
  606. />
  607. <img
  608. class="file"
  609. src="@/assets/common/excel.png"
  610. v-if="checkFileType(scope.row.fileUrl) == 'excel'"
  611. />
  612. <img
  613. class="file"
  614. src="@/assets/common/ppt.png"
  615. v-if="checkFileType(scope.row.fileUrl) == 'ppt'"
  616. />
  617. <img
  618. class="file"
  619. src="@/assets/common/pdf.png"
  620. v-if="checkFileType(scope.row.fileUrl) == 'pdf'"
  621. />
  622. <img
  623. v-if="checkFileType(scope.row.fileUrl) == 'file'"
  624. class="file aaa"
  625. src="@/assets/common/zip.jpeg"
  626. />
  627. </template>
  628. </el-table-column>
  629. <el-table-column
  630. align="left"
  631. label="下载文件名称"
  632. prop="fileName"
  633. min-width="160"
  634. show-overflow-tooltip
  635. >
  636. <template slot-scope="scope">
  637. {{ "资料_" + scope.row.fileName }}
  638. </template>
  639. </el-table-column>
  640. <el-table-column
  641. align="center"
  642. label="操作"
  643. min-width="160"
  644. show-overflow-tooltip
  645. >
  646. <template slot-scope="scope">
  647. <el-button
  648. type="text"
  649. class="textColor"
  650. @click="downLoadFn(scope.row.fileUrl, scope.row.fileName)"
  651. >下载</el-button
  652. >
  653. </template>
  654. </el-table-column>
  655. </el-table>
  656. </div>
  657. </div>
  658. <el-divider></el-divider>
  659. <div class="diy-table-1">
  660. <el-row :gutter="0">
  661. <el-col :xs="12" :sm="12" :lg="12" class="item">
  662. <div class="label">申请人</div>
  663. <div class="value">{{ detailList.submitName }}</div>
  664. </el-col>
  665. <el-col :xs="12" :sm="12" :lg="12" class="item">
  666. <div class="label">申请日期</div>
  667. <div class="value">{{ detailList.submitTime }}</div>
  668. </el-col>
  669. <el-col :xs="12" :sm="24" :lg="24" class="item">
  670. <div class="label">申请退押金</div>
  671. <div class="value">{{ detailList.applyNote }}</div>
  672. </el-col>
  673. </el-row>
  674. </div>
  675. <h3>记录</h3>
  676. <el-divider></el-divider>
  677. <!-- 列表 -->
  678. <div class="mymain-container">
  679. <div class="table">
  680. <el-table
  681. v-loading="listLoading"
  682. :data="detailList.checkRecordItems"
  683. element-loading-text="Loading"
  684. border
  685. fit
  686. highlight-current-row
  687. stripe
  688. >
  689. <el-table-column
  690. align="left"
  691. label="申请人"
  692. prop="submitName"
  693. min-width="160"
  694. show-overflow-tooltip
  695. ></el-table-column>
  696. <el-table-column
  697. align="left"
  698. label="申请日期"
  699. prop="submitTime"
  700. min-width="160"
  701. show-overflow-tooltip
  702. ></el-table-column>
  703. <el-table-column
  704. align="left"
  705. label="申请说明"
  706. prop="applyNote"
  707. min-width="160"
  708. show-overflow-tooltip
  709. ></el-table-column>
  710. <el-table-column
  711. align="left"
  712. label="验收人"
  713. prop="checkName"
  714. min-width="160"
  715. show-overflow-tooltip
  716. ></el-table-column>
  717. <el-table-column
  718. align="left"
  719. label="受理日期"
  720. prop="checkDate"
  721. min-width="160"
  722. show-overflow-tooltip
  723. ></el-table-column>
  724. <el-table-column
  725. align="left"
  726. label="验收说明"
  727. prop="checkNote"
  728. min-width="160"
  729. show-overflow-tooltip
  730. ></el-table-column>
  731. <el-table-column
  732. align="left"
  733. label="审批结果"
  734. prop="isRefundDeposit"
  735. min-width="160"
  736. show-overflow-tooltip
  737. >
  738. <template slot-scope="scope">
  739. {{ scope.row.isRefundDeposit == false ? "否" : "是" }}
  740. </template>
  741. </el-table-column>
  742. </el-table>
  743. </div>
  744. </div>
  745. <h3
  746. v-if="
  747. detailList.examineStatus == 'WAIT' ||
  748. detailList.examineStatus == 'FAIL' ||
  749. detailList.examineStatus == 'OK'
  750. "
  751. >
  752. 审批
  753. </h3>
  754. <el-divider
  755. v-if="
  756. detailList.examineStatus == 'WAIT' ||
  757. detailList.examineStatus == 'FAIL' ||
  758. detailList.examineStatus == 'OK'
  759. "
  760. ></el-divider>
  761. <div v-if="detailList.examineStatus == 'WAIT'" class="diy-table-1">
  762. <el-row :gutter="0">
  763. <el-col :xs="12" :sm="12" :lg="12" class="item">
  764. <div class="label">验收人</div>
  765. <div class="value">{{ this.checkBy }}</div>
  766. </el-col>
  767. <el-col :xs="12" :sm="12" :lg="12" class="item dateS">
  768. <div class="label">受理日期</div>
  769. <div class="value">
  770. <el-date-picker
  771. readonly
  772. prefix-icon="''"
  773. class="selectStyle"
  774. type="datetime"
  775. placeholder="系统自动生成"
  776. default-time="00:00:00"
  777. value-format="yyyy-MM-dd HH:mm:ss"
  778. >
  779. </el-date-picker>
  780. </div>
  781. </el-col>
  782. <el-col :xs="12" :sm="24" :lg="24" class="item">
  783. <div class="label">是否退押</div>
  784. <div class="value">
  785. <el-radio-group v-model="isRefundDeposit">
  786. <el-radio :label="true">是</el-radio>
  787. <el-radio :label="false">否</el-radio>
  788. </el-radio-group>
  789. </div>
  790. </el-col>
  791. <el-col :xs="12" :sm="24" :lg="24" class="item">
  792. <div class="label">验收说明</div>
  793. <div class="value">
  794. <el-input v-model="checkNote" placeholder="请输入内容"></el-input>
  795. </div>
  796. </el-col>
  797. </el-row>
  798. </div>
  799. <div
  800. v-if="
  801. detailList.examineStatus == 'OK' || detailList.examineStatus == 'FAIL'
  802. "
  803. class="diy-table-1"
  804. >
  805. <el-row :gutter="0">
  806. <el-col :xs="12" :sm="12" :lg="12" class="item">
  807. <div class="label">验收人</div>
  808. <div class="value">{{ detailList.checkBy }}</div>
  809. </el-col>
  810. <el-col :xs="12" :sm="12" :lg="12" class="item dateS">
  811. <div class="label">受理日期</div>
  812. <div class="value">
  813. <el-date-picker
  814. readonly
  815. prefix-icon="''"
  816. class="selectStyle"
  817. v-model="detailList.checkDate"
  818. type="datetime"
  819. placeholder=""
  820. default-time="00:00:00"
  821. value-format="yyyy-MM-dd HH:mm:ss"
  822. >
  823. </el-date-picker>
  824. </div>
  825. </el-col>
  826. <el-col :xs="12" :sm="24" :lg="24" class="item">
  827. <div class="label">是否退押</div>
  828. <div class="value">
  829. <el-radio-group v-model="detailList.isRefundDeposit">
  830. <el-radio readonly :label="true">是</el-radio>
  831. <el-radio readonly :label="false">否</el-radio>
  832. </el-radio-group>
  833. </div>
  834. </el-col>
  835. <el-col :xs="12" :sm="24" :lg="24" class="item dateS">
  836. <div class="label">验收说明</div>
  837. <div class="value">
  838. <el-input
  839. readonly
  840. v-model="detailList.checkNote"
  841. placeholder="请输入内容"
  842. ></el-input>
  843. </div>
  844. </el-col>
  845. <el-col :xs="12" :sm="24" :lg="24" class="item dateS">
  846. <div class="label">审批通过后备注</div>
  847. <div class="value">
  848. <el-input
  849. v-model="detailList.examineAfterRemark"
  850. placeholder="请输入内容"
  851. ></el-input>
  852. </div>
  853. </el-col>
  854. </el-row>
  855. </div>
  856. <br />
  857. <!-- 按钮 -->
  858. <!-- detailList.examineStatus != 'OK' || detailList.examineStatus != 'FAIL' -->
  859. <div class="btn-group clearfix">
  860. <div class="fl">
  861. <el-button
  862. v-if="detailList.examineStatus == 'WAIT'"
  863. type="primary"
  864. size="small"
  865. @click="adoptFn"
  866. >审批通过</el-button
  867. >
  868. <el-button
  869. v-if="detailList.examineStatus == 'WAIT'"
  870. type="primary"
  871. size="small"
  872. @click="rejectFn"
  873. >审批驳回</el-button
  874. >
  875. <el-button
  876. v-if="detailList.examineStatus == 'OK'"
  877. type="primary"
  878. size="small"
  879. @click="saveFn"
  880. >保存</el-button
  881. >
  882. </div>
  883. </div>
  884. </div>
  885. </template>
  886. <script>
  887. import { downloadFiles } from "@/utils/util";
  888. import IMAGEUPLOAD from "@/components/Common/image-upload.vue";
  889. import { getFileUrl } from "@/api/common";
  890. import { mapGetters } from "vuex";
  891. import {
  892. getDepositManageDetail,
  893. getDepositManageExamine,
  894. getDepositManageDownZip,
  895. getDepositManageEdit,
  896. getCommonFileGetStream,
  897. } from "@/api/engin_deposit/refund_list";
  898. export default {
  899. props: {
  900. detailId: {
  901. type: String,
  902. required: true,
  903. },
  904. },
  905. components: { IMAGEUPLOAD },
  906. computed: {
  907. ...mapGetters(["name"]),
  908. },
  909. data() {
  910. return {
  911. isCustomer: JSON.parse(localStorage.getItem("supply_user")).isCustomer,
  912. isDis: true,
  913. imageURL: this.$imageUrl,
  914. title: "审批",
  915. imageURL: this.$imageUrl,
  916. listLoading: false, // 列表加载loading
  917. dataList: [], // 列表数据
  918. detailList: {},
  919. checkBy: "",
  920. checkDate: "",
  921. isRefundDeposit: true,
  922. checkNote: "",
  923. };
  924. },
  925. created() {
  926. console.log(this.$imageUrl, 8888);
  927. this.checkBy = this.name;
  928. this.getData({ id: this.detailId });
  929. },
  930. methods: {
  931. //审批通过后可以编辑
  932. async saveFn() {
  933. console.log(this.detailList);
  934. await getDepositManageEdit(this.detailList);
  935. this.$message.success("保存成功");
  936. this.goBack();
  937. this.$emit("updateList");
  938. },
  939. //批量下载
  940. async batchDownloadFn() {
  941. downloadFiles("/deposit-manage/downZip", { parentId: this.detailId });
  942. },
  943. //下载
  944. async downLoadFn(v, name) {
  945. // getCommonFileGetStream({ key: v, fileName: name }).then((res) => {
  946. // // window.open(res.data);
  947. // });
  948. // // window.open(this.imageURL + v);
  949. downloadFiles("/common/file/getStream", { key: v, fileName: name });
  950. // await getCommonFileGetStream({ key: v, fileName: name });
  951. },
  952. // 检查文件类型
  953. checkFileType(url) {
  954. if (!url) return "";
  955. const fileSuffix = url.substring(url.lastIndexOf(".") + 1);
  956. if (["jpg", "jpeg", "png"].includes(fileSuffix)) {
  957. return "image";
  958. } else if (["doc", "docx", "dot", "wps", "wpt"].includes(fileSuffix)) {
  959. return "word";
  960. } else if (["xls", "xlsx", "xlt", "et", "ett"].includes(fileSuffix)) {
  961. return "excel";
  962. } else if (
  963. ["ppt", "pptx", "dps", "dpt", "pot", "pps"].includes(fileSuffix)
  964. ) {
  965. return "ppt";
  966. } else if (["pdf"].includes(fileSuffix)) {
  967. return "pdf";
  968. } else if (["zip", "rar", "gz", "apk"].includes(fileSuffix)) {
  969. return "file";
  970. } else {
  971. return "";
  972. }
  973. },
  974. //审批驳回
  975. async rejectFn() {
  976. this.$confirm("此操作将审批订单, 是否继续?", "提示", {
  977. confirmButtonText: "确定",
  978. cancelButtonText: "取消",
  979. type: "warning",
  980. })
  981. .then(() => {
  982. if (!this.detailList.installDate) {
  983. this.$message.error("请选择安装时间");
  984. return;
  985. }
  986. let data = {
  987. ...this.detailList,
  988. checkBy: this.checkBy,
  989. // checkDate: this.checkDate,
  990. isRefundDeposit: this.isRefundDeposit,
  991. checkNote: this.checkNote,
  992. examineResult: 0,
  993. };
  994. getDepositManageExamine(data)
  995. .then((res) => {
  996. if (!res.data) {
  997. this.goBack();
  998. this.$emit("updateList");
  999. } else {
  1000. this.$confirm("审批成功!是否跳转下一张待审批订单?", "提示", {
  1001. confirmButtonText: "跳转",
  1002. cancelButtonText: "取消",
  1003. type: "warning",
  1004. })
  1005. .then(() => {
  1006. this.$successMsg("进入下一张待审批订单");
  1007. this.detailList = res.data;
  1008. })
  1009. .catch(() => {
  1010. this.goBack();
  1011. this.$emit("updateList");
  1012. });
  1013. }
  1014. })
  1015. .finally((res) => {});
  1016. })
  1017. .catch(() => {});
  1018. // if (!this.detailList.installDate) {
  1019. // this.$message.error("请选择安装时间");
  1020. // return;
  1021. // }
  1022. // let data = {
  1023. // ...this.detailList,
  1024. // checkBy: this.checkBy,
  1025. // // checkDate: this.checkDate,
  1026. // isRefundDeposit: this.isRefundDeposit,
  1027. // checkNote: this.checkNote,
  1028. // examineResult: 0,
  1029. // };
  1030. // await getDepositManageExamine(data);
  1031. // this.$message.success("审批驳回");
  1032. // this.goBack();
  1033. // this.$emit("updateList");
  1034. },
  1035. //审批通过
  1036. async adoptFn() {
  1037. this.$confirm("此操作将审批订单, 是否继续?", "提示", {
  1038. confirmButtonText: "确定",
  1039. cancelButtonText: "取消",
  1040. type: "warning",
  1041. })
  1042. .then(() => {
  1043. if (!this.detailList.installDate) {
  1044. this.$message.error("请选择安装时间");
  1045. return;
  1046. }
  1047. let data = {
  1048. ...this.detailList,
  1049. checkBy: this.checkBy,
  1050. // checkDate: this.checkDate,
  1051. isRefundDeposit: this.isRefundDeposit,
  1052. checkNote: this.checkNote,
  1053. examineResult: 1,
  1054. };
  1055. getDepositManageExamine(data)
  1056. .then((res) => {
  1057. if (!res.data) {
  1058. this.goBack();
  1059. this.$emit("updateList");
  1060. } else {
  1061. this.$confirm("审批成功!是否跳转下一张待审批订单?", "提示", {
  1062. confirmButtonText: "跳转",
  1063. cancelButtonText: "取消",
  1064. type: "warning",
  1065. })
  1066. .then(() => {
  1067. this.$successMsg("进入下一张待审批订单");
  1068. this.detailList = res.data;
  1069. })
  1070. .catch(() => {
  1071. this.goBack();
  1072. this.$emit("updateList");
  1073. });
  1074. }
  1075. })
  1076. .finally((res) => {});
  1077. })
  1078. .catch(() => {});
  1079. // if (!this.detailList.installDate) {
  1080. // this.$message.error("请选择安装时间");
  1081. // return;
  1082. // }
  1083. // let data = {
  1084. // ...this.detailList,
  1085. // checkBy: this.checkBy,
  1086. // // checkDate: this.checkDate,
  1087. // isRefundDeposit: this.isRefundDeposit,
  1088. // checkNote: this.checkNote,
  1089. // examineResult: 1,
  1090. // };
  1091. // await getDepositManageExamine(data);
  1092. // this.$message.success("审批通过");
  1093. // this.goBack();
  1094. // this.$emit("updateList");
  1095. },
  1096. async getData(data) {
  1097. const res = await getDepositManageDetail(data);
  1098. console.log(res);
  1099. if (res.data.dataList.length == 0) {
  1100. this.isDis = true;
  1101. } else {
  1102. this.isDis = false;
  1103. }
  1104. let arr = [];
  1105. res.data.items.forEach((item) => {
  1106. if (Number(item.qty) > 0) {
  1107. arr.push(item);
  1108. }
  1109. // item.number = (item.qty*100 - item.directTransferQty*100 - item.retiredQty*100) / 100;
  1110. item.sums1 = ["orderHasSendQty", "dataQty", "qty"];
  1111. item.sums2 = [
  1112. "totalAmount",
  1113. "diffAmount",
  1114. "price",
  1115. "depositAmount",
  1116. "contractPrice",
  1117. ];
  1118. });
  1119. res.data.items = arr;
  1120. this.detailList = res.data;
  1121. if (
  1122. res.data.examineStatus == "SAVE" ||
  1123. res.data.examineStatus == "OK" ||
  1124. res.data.examineStatus == "FAIL"
  1125. ) {
  1126. this.title = "详情";
  1127. }
  1128. },
  1129. goBack() {
  1130. this.$parent.showSurrender = true;
  1131. },
  1132. },
  1133. };
  1134. </script>
  1135. <style lang="scss" scoped>
  1136. .inpt {
  1137. ::v-deep .el-input__inner {
  1138. text-align: right;
  1139. }
  1140. }
  1141. .aaa {
  1142. height: 64px;
  1143. width: 64px;
  1144. }
  1145. .dateS {
  1146. .value {
  1147. padding: 0;
  1148. }
  1149. }
  1150. .batchDownload {
  1151. float: right;
  1152. margin-top: 9px;
  1153. }
  1154. .gdzl {
  1155. display: inline-block;
  1156. }
  1157. .dateStyle {
  1158. width: 100%;
  1159. }
  1160. .label {
  1161. width: 150px !important;
  1162. }
  1163. .selectStyle {
  1164. width: 100%;
  1165. }
  1166. </style>