refund_list-detail.vue 57 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524
  1. <template>
  2. <div>
  3. <div class="sty">
  4. <el-page-header :content="title" @back="goBack" />
  5. </div>
  6. <el-divider />
  7. <h3>工程项目信息</h3>
  8. <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. {{ detailList.enginOrderType == 'HOME' ? '工程登录编号' : '工程信息编号' }}
  14. </div>
  15. <div class="value">
  16. <CopyButton :copy-text="detailList.refEnginRecordNo" />
  17. {{ detailList.refEnginRecordNo }}
  18. </div>
  19. </el-col>
  20. <!-- <el-col :xs="12" :sm="24" :lg="8" class="item">
  21. <div class="label">工程信息编号</div>
  22. <div class="value">{{ detailList.refEnginRecordNo }}</div>
  23. </el-col> -->
  24. <el-col :xs="12" :sm="24" :lg="8" class="item">
  25. <div class="label">项目类别</div>
  26. <div class="value">{{ detailList.refProjectCategory }}</div>
  27. </el-col>
  28. <el-col :xs="12" :sm="24" :lg="8" class="item">
  29. <div class="label">行业类别</div>
  30. <div class="value">
  31. {{ detailList.refTradeCategory }}
  32. </div>
  33. </el-col>
  34. <el-col :xs="24" :sm="24" :lg="8" class="item">
  35. <div class="label">跨区厂编号</div>
  36. <div class="value">{{ detailList.refFactoryNo }}</div>
  37. </el-col>
  38. <el-col :xs="24" :sm="24" :lg="8" class="item">
  39. <div class="label">使用单位</div>
  40. <div class="value">{{ detailList.refUseUnit }}</div>
  41. </el-col>
  42. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  43. <div class="label">经销商二级代码</div>
  44. <div class="value">{{detailList.}}</div>
  45. </el-col> -->
  46. <el-col :xs="24" :sm="24" :lg="8" class="item">
  47. <div class="label">业务员</div>
  48. <div class="value">{{ detailList.serviceName }}</div>
  49. </el-col>
  50. <el-col :xs="24" :sm="24" :lg="8" class="item">
  51. <div class="label">联系人</div>
  52. <div class="value">{{ detailList.refLinkman }}</div>
  53. </el-col>
  54. <el-col :xs="24" :sm="24" :lg="8" class="item">
  55. <div class="label">固定电话</div>
  56. <div class="value">{{ detailList.refTel }}</div>
  57. </el-col>
  58. <el-col :xs="24" :sm="24" :lg="8" class="item">
  59. <div class="label">移动电话</div>
  60. <div class="value">{{ detailList.refPhone }}</div>
  61. </el-col>
  62. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  63. <div class="label">移动电话</div>
  64. <div class="value">
  65. <el-input
  66. :readonly="title == '详情'"
  67. placeholder="请输入"
  68. v-model="detailList.refPhone"
  69. ></el-input>
  70. </div>
  71. </el-col> -->
  72. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  73. <div class="label">押金比例</div>
  74. <div class="value">{{detailList.}}</div>
  75. </el-col> -->
  76. <el-col :xs="24" :sm="24" :lg="8" class="item">
  77. <div class="label">单据状态</div>
  78. <div class="value">
  79. {{
  80. detailList.examineStatus == 'SAVE'
  81. ? '保存'
  82. : detailList.examineStatus == 'WAIT'
  83. ? '待审核'
  84. : detailList.examineStatus == 'OK'
  85. ? '通过'
  86. : detailList.examineStatus == 'FAIL'
  87. ? '不通过'
  88. : '关闭'
  89. }}
  90. </div>
  91. </el-col>
  92. <el-col :xs="24" :sm="24" :lg="8" class="item">
  93. <div class="label">销售类型</div>
  94. <div class="value">{{ detailList.saleTypeName }}</div>
  95. </el-col>
  96. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  97. <div class="label">不扣押金</div>
  98. <div class="value">{{ detailList.customerName }}</div>
  99. </el-col> -->
  100. <el-col :xs="24" :sm="24" :lg="8" class="item">
  101. <div class="label">第几申报</div>
  102. <div class="value">{{ detailList.refDeclareNo }}</div>
  103. </el-col>
  104. <el-col :xs="24" :sm="24" :lg="8" class="item">
  105. <div class="label">项目类型</div>
  106. <div class="value">{{ detailList.refProjectType }}</div>
  107. </el-col>
  108. <el-col :xs="24" :sm="24" :lg="8" class="item">
  109. <div class="label">经销商编码</div>
  110. <div class="value">{{ detailList.customerNumber }}</div>
  111. </el-col>
  112. <el-col :xs="24" :sm="24" :lg="8" class="item">
  113. <div class="label">押金总额</div>
  114. <div class="value">{{ detailList.depositAmount }}</div>
  115. </el-col>
  116. <el-col :xs="24" :sm="24" :lg="8" class="item">
  117. <div class="label">安装时间</div>
  118. <div class="value">
  119. <el-date-picker
  120. v-model="detailList.installDate"
  121. prefix-icon="''"
  122. placeholder="请选择安装时间"
  123. :readonly="title == '详情'"
  124. class="selectStyle"
  125. type="datetime"
  126. default-time="00:00:00"
  127. value-format="yyyy-MM-dd HH:mm:ss"
  128. />
  129. </div>
  130. </el-col>
  131. <el-col :xs="24" :sm="24" :lg="16" class="item">
  132. <div class="label">安装地址</div>
  133. <div class="value">{{ detailList.refInstallAddress }}</div>
  134. </el-col>
  135. <el-col :xs="24" :sm="24" :lg="8" class="item">
  136. <div class="label">登录有效期</div>
  137. <div class="value">
  138. {{ detailList.refBillsExpireDate }}
  139. </div>
  140. </el-col>
  141. <el-col :xs="24" :sm="24" :lg="8" class="item">
  142. <div class="label">实际使用单位</div>
  143. <div class="value">
  144. <el-input
  145. v-model="detailList.realUseUnit"
  146. :readonly="detailList.examineStatus !== 'WAIT'"
  147. placeholder="请输入实际使用单位"
  148. />
  149. </div>
  150. </el-col>
  151. <el-col :xs="24" :sm="24" :lg="8" class="item">
  152. <div class="label">实际安装地址</div>
  153. <div class="value">
  154. <el-input
  155. v-model="detailList.realInstallAddress"
  156. :readonly="detailList.examineStatus !== 'WAIT'"
  157. placeholder="请输入实际安装地址"
  158. />
  159. </div>
  160. </el-col>
  161. <el-col :xs="24" :sm="24" :lg="8" class="item">
  162. <div class="label">项目编号</div>
  163. <div class="value">
  164. {{ detailList.refProjectNo }}
  165. </div>
  166. </el-col>
  167. <el-col :xs="24" :sm="24" :lg="8" class="item">
  168. <div class="label">购买单位</div>
  169. <div class="value">
  170. <el-input
  171. v-model="detailList.refBuyUnitName"
  172. :readonly="detailList.examineStatus !== 'WAIT'"
  173. placeholder="请输入购买单位"
  174. />
  175. </div>
  176. </el-col>
  177. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  178. <div class="label">工程订单号</div>
  179. <div class="value">{{ detailList.customerName }}</div>
  180. </el-col> -->
  181. <el-col :xs="24" :sm="24" :lg="8" class="item">
  182. <div class="label">经销商名称</div>
  183. <div class="value">{{ detailList.customerName }}</div>
  184. </el-col>
  185. <el-col :xs="24" :sm="24" :lg="24" class="item">
  186. <div class="label">项目说明</div>
  187. <div class="value">{{ detailList.refProjectNote }}</div>
  188. </el-col>
  189. <el-col :xs="24" :sm="24" :lg="24" class="item">
  190. <div class="label">备注</div>
  191. <!-- <div class="value">{{ detailList.remark }}</div> -->
  192. <div class="value">
  193. <el-input
  194. v-model="detailList.remark"
  195. :readonly="detailList.examineStatus !== 'WAIT'"
  196. placeholder="请输入内容"
  197. />
  198. </div>
  199. </el-col>
  200. <el-col v-if="!isCustomer" :xs="24" :sm="24" :lg="24" class="item">
  201. <div class="label">格力内部备注</div>
  202. <!-- <div class="value">{{ detailList.geLiInerNote}}</div> -->
  203. <div class="value">
  204. <el-input
  205. v-model="detailList.geLiInerNote"
  206. placeholder="请输入格力内部备注"
  207. />
  208. </div>
  209. </el-col>
  210. <el-col v-if="!isCustomer" :xs="24" :sm="24" :lg="24" class="item">
  211. <div class="label">格力内部资料备注</div>
  212. <div class="value">
  213. <el-input
  214. v-model="detailList.geLiInnerDataNote"
  215. :readonly="detailList.examineStatus !== 'WAIT'"
  216. placeholder="请输入格力内部资料备注"
  217. />
  218. </div>
  219. </el-col>
  220. <el-col v-if="!isCustomer" :xs="24" :sm="24" :lg="24" class="item">
  221. <div class="label">订单格力内部备注</div>
  222. <div class="value">{{ detailList.orderGeLiInnerNote }}</div>
  223. </el-col>
  224. <el-col :xs="24" :sm="24" :lg="8" class="item">
  225. <div class="label">提交保证函</div>
  226. <!-- <div class="value">{{ detailList.remark }}</div> -->
  227. <div class="value">
  228. <el-input v-model="detailList.refPromiseProvide" readonly />
  229. </div>
  230. </el-col>
  231. <el-col :xs="24" :sm="24" :lg="8" class="item">
  232. <div class="label">跟进函备注</div>
  233. <!-- <div class="value">{{ detailList.remark }}</div> -->
  234. <div class="value">
  235. <el-input v-model="detailList.refFollowAcceptRemark" readonly />
  236. </div>
  237. </el-col>
  238. <el-col :xs="24" :sm="24" :lg="8" class="item">
  239. <div class="label">资料提交日期</div>
  240. <div class="value">{{ detailList.refDatumProvideDate }}</div>
  241. <!-- <div class="value">
  242. <el-date-picker
  243. prefix-icon="''"
  244. placeholder="请选择安装时间"
  245. class="selectStyle"
  246. v-model="detailList.refDatumProvideDate"
  247. type="datetime"
  248. default-time="00:00:00"
  249. value-format="yyyy-MM-dd HH:mm:ss"
  250. >
  251. </el-date-picker>
  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.refIsBigAmounts }}</div>
  257. <!-- <div class="value">
  258. <el-select
  259. v-model="detailList.refIsBigAmounts"
  260. v
  261. clearable
  262. filterable
  263. >
  264. <el-option label="是" value="是"> </el-option>
  265. <el-option label="否" value="否"> </el-option>
  266. </el-select>
  267. </div> -->
  268. </el-col>
  269. <el-col :xs="24" :sm="24" :lg="8" class="item">
  270. <div class="label">合同变更批复结果</div>
  271. <!-- <div class="value">{{ detailList.remark }}</div> -->
  272. <div class="value">
  273. <el-input v-model="detailList.refContractResult" readonly />
  274. </div>
  275. </el-col>
  276. <el-col :xs="24" :sm="24" :lg="8" class="item">
  277. <div class="label">工程机转零售批复结果</div>
  278. <!-- <div class="value">{{ detailList.remark }}</div> -->
  279. <div class="value">
  280. <el-input v-model="detailList.refToRetailResult" readonly />
  281. </div>
  282. </el-col>
  283. <el-col :xs="24" :sm="24" :lg="8" class="item">
  284. <div class="label">资料延期批复结果</div>
  285. <!-- <div class="value">{{ detailList.remark }}</div> -->
  286. <div class="value">
  287. <el-input v-model="detailList.refDataDelayResult" readonly />
  288. </div>
  289. </el-col>
  290. <el-col :xs="24" :sm="24" :lg="8" class="item">
  291. <div class="label">其他附件批复结果</div>
  292. <!-- <div class="value">{{ detailList.remark }}</div> -->
  293. <div class="value">
  294. <el-input v-model="detailList.refOtherAnnexResult" readonly />
  295. </div>
  296. </el-col>
  297. <el-col :xs="24" :sm="24" :lg="8" class="item">
  298. <div class="label">保证函受理状态</div>
  299. <!-- <div class="value">{{ detailList.remark }}</div> -->
  300. <div class="value">
  301. <el-input v-model="detailList.refPromiseAcceptStatus" readonly />
  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 v-model="detailList.refPromisePriceRemark" readonly />
  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 v-model="detailList.refFjShenPiRemark" readonly />
  316. </div>
  317. </el-col>
  318. <el-col :xs="24" :sm="24" :lg="8" class="item">
  319. <div class="label">资料状态</div>
  320. <!-- <div class="value">{{ detailList.remark }}</div> -->
  321. <div class="value">
  322. <el-input v-model="detailList.refDatumProvide" readonly />
  323. </div>
  324. </el-col>
  325. <el-col :xs="24" :sm="24" :lg="8" class="item">
  326. <div class="label">资料审核结果</div>
  327. <!-- <div class="value">{{ detailList.remark }}</div> -->
  328. <div class="value">
  329. <el-input v-model="detailList.refDatumAcceptStatus" readonly />
  330. </div>
  331. </el-col>
  332. <el-col :xs="24" :sm="24" :lg="8" class="item">
  333. <div class="label">合同变更批复意见</div>
  334. <!-- <div class="value">{{ detailList.remark }}</div> -->
  335. <div class="value">
  336. <el-input v-model="detailList.refContractIdea" readonly />
  337. </div>
  338. </el-col>
  339. <el-col :xs="24" :sm="24" :lg="8" class="item">
  340. <div class="label">工程机转零售批复意见</div>
  341. <!-- <div class="value">{{ detailList.remark }}</div> -->
  342. <div class="value">
  343. <el-input v-model="detailList.refToRetailIdea" readonly />
  344. </div>
  345. </el-col>
  346. <el-col :xs="24" :sm="24" :lg="8" class="item">
  347. <div class="label">资料延期批复意见</div>
  348. <!-- <div class="value">{{ detailList.remark }}</div> -->
  349. <div class="value">
  350. <el-input v-model="detailList.refDataDelayIdea" readonly />
  351. </div>
  352. </el-col>
  353. <el-col :xs="24" :sm="24" :lg="8" class="item">
  354. <div class="label">其他附件审批</div>
  355. <!-- <div class="value">{{ detailList.remark }}</div> -->
  356. <div class="value">
  357. <el-input v-model="detailList.refOtherAnnexIdea" readonly />
  358. </div>
  359. </el-col>
  360. <el-col :xs="24" :sm="24" :lg="8" class="item">
  361. <div class="label">资料审核日期</div>
  362. <div class="value">{{ detailList.refDatumAcceptDate }}</div>
  363. <!-- <div class="value">
  364. <el-date-picker
  365. readonly
  366. prefix-icon="''"
  367. placeholder="请选择安装时间"
  368. class="selectStyle"
  369. v-model="detailList.refDatumAcceptDate"
  370. type="datetime"
  371. default-time="00:00:00"
  372. value-format="yyyy-MM-dd HH:mm:ss"
  373. >
  374. </el-date-picker>
  375. </div> -->
  376. </el-col>
  377. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  378. <div class="label">寄厂日期</div>
  379. <div class="value">
  380. <el-date-picker
  381. :readonly="title == '详情'"
  382. class="selectStyle"
  383. v-model="detailList.sendFactoryDate"
  384. type="datetime"
  385. prefix-icon="''"
  386. placeholder="请选择寄厂日期"
  387. default-time="00:00:00"
  388. value-format="yyyy-MM-dd HH:mm:ss"
  389. >
  390. </el-date-picker>
  391. </div>
  392. </el-col> -->
  393. <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
  394. <div class="label">提货日期</div>
  395. <div class="value">{{detailList.}}</div>
  396. </el-col> -->
  397. </el-row>
  398. </div>
  399. <h3>货品信息</h3>
  400. <el-divider />
  401. <!-- 列表 -->
  402. <div class="mymain-container">
  403. <div class="table">
  404. <div class="table">
  405. <el-table
  406. v-loading="listLoading"
  407. :data="detailList.items"
  408. element-loading-text="Loading"
  409. border
  410. fit
  411. highlight-current-row
  412. stripe
  413. show-summary
  414. :summary-method="$getSummaries"
  415. >
  416. <template v-if="!isCustomer">
  417. <el-table-column align="left" label="厂编号" prop="factoryNo" min-width="160" show-overflow-tooltip>
  418. <template slot-scope="scope">
  419. <CopyButton :copy-text="scope.row.factoryNo" />
  420. <span>{{ scope.row.factoryNo }}</span>
  421. </template>
  422. </el-table-column>
  423. <el-table-column
  424. align="left"
  425. label="物料编码"
  426. prop="materialNumber"
  427. min-width="130"
  428. show-overflow-tooltip
  429. >
  430. <template slot-scope="scope">
  431. <CopyButton :copy-text="scope.row.materialNumber" />
  432. <span>{{ scope.row.materialNumber }}</span>
  433. </template>
  434. </el-table-column>
  435. </template>
  436. <el-table-column
  437. align="left"
  438. label="产品编码"
  439. prop="materialOldNumber"
  440. min-width="130"
  441. show-overflow-tooltip
  442. >
  443. <template slot-scope="scope">
  444. <CopyButton :copy-text="scope.row.materialOldNumber" />
  445. <span>{{ scope.row.materialOldNumber }}</span>
  446. </template>
  447. </el-table-column>
  448. <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip>
  449. <template slot-scope="scope">
  450. <CopyButton :copy-text="scope.row.materialName" />
  451. <span>{{ scope.row.materialName }}</span>
  452. </template>
  453. </el-table-column>
  454. <el-table-column align="left" label="规格型号" prop="specification" min-width="300" show-overflow-tooltip>
  455. <template slot-scope="scope">
  456. <CopyButton :copy-text="scope.row.specification" />
  457. <span>{{ scope.row.specification }}</span>
  458. </template>
  459. </el-table-column>
  460. <el-table-column
  461. align="left"
  462. label="实装规格型号"
  463. prop="realSpecification"
  464. min-width="300"
  465. show-overflow-tooltip
  466. >
  467. <template slot-scope="scope">
  468. <div :style="scope.row.realSpecification != scope.row.specification ? { color: 'blue' } : ''">
  469. {{ scope.row.realSpecification }}
  470. </div>
  471. </template>
  472. </el-table-column>
  473. <el-table-column
  474. align="left"
  475. label="实装物料编号"
  476. prop="realMaterialNumber"
  477. min-width="150"
  478. show-overflow-tooltip
  479. >
  480. <template slot-scope="scope">
  481. <div :style="scope.row.realMaterialNumber != scope.row.materialNumber ? { color: 'blue' } : ''">
  482. {{ scope.row.realMaterialNumber }}
  483. </div>
  484. </template>
  485. </el-table-column>
  486. <el-table-column
  487. align="left"
  488. label="实装厂产品编码"
  489. prop="realMaterialOldNumber"
  490. min-width="200"
  491. show-overflow-tooltip
  492. >
  493. <template slot-scope="scope">
  494. <div :style="scope.row.realMaterialOldNumber != scope.row.materialOldNumber ? { color: 'blue' } : ''">
  495. {{ scope.row.realMaterialOldNumber }}
  496. </div>
  497. </template>
  498. </el-table-column>
  499. <el-table-column align="right" label="单价" prop="price" min-width="160" show-overflow-tooltip>
  500. <template slot-scope="scope">
  501. {{ scope.row.price | numToFixed }}
  502. </template>
  503. </el-table-column>
  504. <el-table-column align="right" label="数量" prop="qty" min-width="160" show-overflow-tooltip />
  505. <el-table-column align="right" label="金额" prop="totalAmount" min-width="160" show-overflow-tooltip>
  506. <template slot-scope="scope">
  507. {{ scope.row.totalAmount | numToFixed }}
  508. </template>
  509. </el-table-column>
  510. <el-table-column align="right" label="销售数量" prop="salesQty" min-width="160" show-overflow-tooltip />
  511. <el-table-column align="right" label="销售金额" prop="salesAmount" min-width="160" show-overflow-tooltip>
  512. <template slot-scope="scope">
  513. {{ scope.row.salesAmount | numToFixed }}
  514. </template>
  515. </el-table-column>
  516. <el-table-column align="right" label="押金数量" prop="hasSendQty" min-width="160" show-overflow-tooltip />
  517. <el-table-column
  518. align="right"
  519. label="发货数量"
  520. prop="orderHasSendQty"
  521. min-width="160"
  522. show-overflow-tooltip
  523. />
  524. <el-table-column align="right" label="押金金额" prop="depositAmount" min-width="160" show-overflow-tooltip>
  525. <template slot-scope="scope">
  526. {{ scope.row.depositAmount | numToFixed }}
  527. </template>
  528. </el-table-column>
  529. <el-table-column align="right" label="合同数量" prop="contractQty" min-width="160" show-overflow-tooltip>
  530. <template slot-scope="scope">
  531. <el-input
  532. v-if="title !== '详情'"
  533. v-model.number="scope.row.contractQty"
  534. class="inpt"
  535. size="mini"
  536. clearable
  537. />
  538. <div v-else>
  539. {{ scope.row.contractQty }}
  540. </div>
  541. </template>
  542. </el-table-column>
  543. <el-table-column align="right" label="合同单价" prop="contractPrice" min-width="160" show-overflow-tooltip>
  544. <template slot-scope="scope">
  545. <el-input
  546. v-if="title !== '详情'"
  547. v-model.number="scope.row.contractPrice"
  548. class="inpt"
  549. size="mini"
  550. clearable
  551. />
  552. <div v-else>
  553. {{ scope.row.contractPrice }}
  554. </div>
  555. </template>
  556. </el-table-column>
  557. <el-table-column align="right" label="合同金额" prop="contractAmount" min-width="160" show-overflow-tooltip>
  558. <template slot-scope="scope">
  559. <div>
  560. {{ comTotal(scope.row.contractQty, scope.row.contractPrice) }}
  561. </div>
  562. </template>
  563. </el-table-column>
  564. <el-table-column align="right" label="上交资料" prop="dataQty" min-width="160" show-overflow-tooltip>
  565. <template slot-scope="scope">
  566. <el-input
  567. v-if="title !== '详情'"
  568. v-model.number.trim="scope.row.dataQty"
  569. class="inpt"
  570. size="mini"
  571. @blur="setDataQty($event, scope.row)"
  572. />
  573. <div v-else>
  574. {{ scope.row.dataQty }}
  575. </div>
  576. </template>
  577. </el-table-column>
  578. <el-table-column align="right" label="收差金额" prop="diffAmount" min-width="160" show-overflow-tooltip>
  579. <template slot-scope="scope">
  580. {{ scope.row.diffAmount | numToFixed }}
  581. </template>
  582. </el-table-column>
  583. <el-table-column
  584. align="right"
  585. label="收差政策价格"
  586. prop="diffPolicyPrice"
  587. min-width="200"
  588. show-overflow-tooltip
  589. >
  590. <template slot-scope="scope">
  591. {{ scope.row.diffPolicyPrice | numToFixed }}
  592. </template>
  593. </el-table-column>
  594. </el-table>
  595. </div>
  596. </div>
  597. </div>
  598. <h3>押金货品信息</h3>
  599. <el-divider />
  600. <!-- 列表 -->
  601. <div class="mymain-container">
  602. <div class="table">
  603. <el-table
  604. v-loading="listLoading"
  605. :data="detailList.collectList"
  606. element-loading-text="Loading"
  607. border
  608. fit
  609. highlight-current-row
  610. stripe
  611. show-summary
  612. :summary-method="$getSummaries"
  613. >
  614. <el-table-column
  615. align="left"
  616. label="工程登录单号"
  617. prop="refEnginRecordNo"
  618. min-width="130"
  619. show-overflow-tooltip
  620. >
  621. <template slot-scope="scope">
  622. <CopyButton :copy-text="scope.row.refEnginRecordNo" />
  623. <span>{{ scope.row.refEnginRecordNo }}</span>
  624. </template>
  625. </el-table-column>
  626. <el-table-column align="left" label="规格型号" prop="specification" min-width="130" show-overflow-tooltip>
  627. <template slot-scope="scope">
  628. <CopyButton :copy-text="scope.row.specification" />
  629. <span>{{ scope.row.specification }}</span>
  630. </template>
  631. </el-table-column>
  632. <el-table-column align="left" label="基本单位编码" prop="unit" min-width="130" show-overflow-tooltip>
  633. <template slot-scope="scope">
  634. <CopyButton :copy-text="scope.row.unit" />
  635. <span>{{ scope.row.unit }}</span>
  636. </template>
  637. </el-table-column>
  638. <el-table-column
  639. align="left"
  640. label="现金钱包"
  641. prop="customerWalletName"
  642. min-width="130"
  643. show-overflow-tooltip
  644. >
  645. <template slot-scope="scope">
  646. <CopyButton :copy-text="scope.row.customerWalletName" />
  647. <span>{{ scope.row.customerWalletName }}</span>
  648. </template>
  649. </el-table-column>
  650. <el-table-column
  651. align="left"
  652. label="现金钱包编码"
  653. prop="customerWalletNumber"
  654. min-width="130"
  655. show-overflow-tooltip
  656. >
  657. <template slot-scope="scope">
  658. <CopyButton :copy-text="scope.row.customerWalletNumber" />
  659. <span>{{ scope.row.customerWalletNumber }}</span>
  660. </template>
  661. </el-table-column>
  662. <el-table-column
  663. align="left"
  664. label="金蝶物料类型名称"
  665. prop="k3CategoryName"
  666. min-width="130"
  667. show-overflow-tooltip
  668. >
  669. <template slot-scope="scope">
  670. <CopyButton :copy-text="scope.row.k3CategoryName" />
  671. <span>{{ scope.row.k3CategoryName }}</span>
  672. </template>
  673. </el-table-column>
  674. <el-table-column
  675. align="left"
  676. label="金蝶物料类型编码"
  677. prop="k3CategoryNumber"
  678. min-width="130"
  679. show-overflow-tooltip
  680. >
  681. <template slot-scope="scope">
  682. <CopyButton :copy-text="scope.row.k3CategoryNumber" />
  683. <span>{{ scope.row.k3CategoryNumber }}</span>
  684. </template>
  685. </el-table-column>
  686. <el-table-column align="left" label="金蝶物料名称" prop="materialName" min-width="130" show-overflow-tooltip>
  687. <template slot-scope="scope">
  688. <CopyButton :copy-text="scope.row.materialName" />
  689. <span>{{ scope.row.materialName }}</span>
  690. </template>
  691. </el-table-column>
  692. <el-table-column
  693. align="left"
  694. label="金蝶物料编码"
  695. prop="materialNumber"
  696. min-width="130"
  697. show-overflow-tooltip
  698. >
  699. <template slot-scope="scope">
  700. <CopyButton :copy-text="scope.row.materialNumber" />
  701. <span>{{ scope.row.materialNumber }}</span>
  702. </template>
  703. </el-table-column>
  704. <el-table-column
  705. align="left"
  706. label="金蝶物料旧编码"
  707. prop="materialOldNumber"
  708. min-width="130"
  709. show-overflow-tooltip
  710. >
  711. <template slot-scope="scope">
  712. <CopyButton :copy-text="scope.row.materialOldNumber" />
  713. <span>{{ scope.row.materialOldNumber }}</span>
  714. </template>
  715. </el-table-column>
  716. <el-table-column align="left" label="已发押金数量" prop="hasSendQty" min-width="130" show-overflow-tooltip />
  717. <el-table-column align="left" label="单价" prop="price" min-width="130" show-overflow-tooltip>
  718. <template slot-scope="scope">
  719. {{ scope.row.price | numToFixed }}
  720. </template>
  721. </el-table-column>
  722. <el-table-column
  723. align="left"
  724. label="已退押金金额"
  725. prop="refundDepositAmount"
  726. min-width="130"
  727. show-overflow-tooltip
  728. >
  729. <template slot-scope="scope">
  730. {{ scope.row.refundDepositAmount | numToFixed }}
  731. </template>
  732. </el-table-column>
  733. <el-table-column align="left" label="押金金额" prop="depositAmount" min-width="130" show-overflow-tooltip>
  734. <template slot-scope="scope">
  735. {{ scope.row.depositAmount | numToFixed }}
  736. </template>
  737. </el-table-column>
  738. </el-table>
  739. </div>
  740. </div>
  741. <h3 class="gdzl">工程资料</h3>
  742. <!-- <el-button :readonly="isDis" class="batchDownload" type="primary" size="small" @click="batchDownloadFn"-->
  743. <!-- >批量下载</el-button-->
  744. <!-- >-->
  745. <el-divider />
  746. <!-- 列表 -->
  747. <div class="mymain-container">
  748. <div class="table">
  749. <el-table
  750. v-loading="listLoading"
  751. :data="original"
  752. element-loading-text="Loading"
  753. border
  754. fit
  755. highlight-current-row
  756. stripe
  757. >
  758. <el-table-column align="left" label="资料描述" prop="dataDescribe" min-width="160" show-overflow-tooltip />
  759. <el-table-column align="left" label="原文件名" prop="fileName" min-width="160" show-overflow-tooltip />
  760. <el-table-column align="left" label="缩略图" prop="fileUrl" min-width="160" show-overflow-tooltip>
  761. <template slot-scope="scope">
  762. <el-image
  763. v-if="checkFileType(scope.row.fileUrl) == 'image'"
  764. ref="img"
  765. :src="imageURL + scope.row.fileUrl"
  766. style="width: 120px; height: 120px"
  767. fit="cover"
  768. :preview-src-list="[imageURL + scope.row.fileUrl]"
  769. />
  770. <img v-if="checkFileType(scope.row.fileUrl) == 'word'" class="file" src="@/assets/common/word.png">
  771. <img v-if="checkFileType(scope.row.fileUrl) == 'excel'" class="file" src="@/assets/common/excel.png">
  772. <img v-if="checkFileType(scope.row.fileUrl) == 'ppt'" class="file" src="@/assets/common/ppt.png">
  773. <img v-if="checkFileType(scope.row.fileUrl) == 'pdf'" class="file" src="@/assets/common/pdf.png">
  774. <img v-if="checkFileType(scope.row.fileUrl) == 'file'" class="file aaa" src="@/assets/common/zip.jpeg">
  775. </template>
  776. </el-table-column>
  777. <el-table-column align="left" label="下载文件名称" prop="fileName" min-width="160" show-overflow-tooltip>
  778. <template slot-scope="scope">
  779. {{ '资料_' + scope.row.fileName }}
  780. </template>
  781. </el-table-column>
  782. <el-table-column align="center" label="操作" min-width="160" show-overflow-tooltip>
  783. <template slot-scope="scope">
  784. <el-button
  785. type="text"
  786. class="textColor"
  787. @click="downLoadFn(scope.row.fileUrl, scope.row.fileName)"
  788. >下载</el-button>
  789. </template>
  790. </el-table-column>
  791. </el-table>
  792. </div>
  793. </div>
  794. <el-divider />
  795. <div class="diy-table-1">
  796. <el-row :gutter="0">
  797. <el-col :xs="12" :sm="12" :lg="12" class="item">
  798. <div class="label">申请人</div>
  799. <div class="value">
  800. <div class="flex">
  801. <div>
  802. {{ detailList.submitName }}
  803. </div>
  804. <el-button :readonly="isDis" type="primary" size="mini" @click="batchDownloadFn">批量下载</el-button>
  805. </div>
  806. </div>
  807. </el-col>
  808. <el-col :xs="12" :sm="12" :lg="12" class="item">
  809. <div class="label">申请日期</div>
  810. <div class="value">{{ detailList.submitTime }}</div>
  811. </el-col>
  812. <el-col :xs="12" :sm="24" :lg="24" class="item">
  813. <div class="label">申请退押金</div>
  814. <div class="value">{{ detailList.applyNote }}</div>
  815. </el-col>
  816. </el-row>
  817. </div>
  818. <h3>记录</h3>
  819. <el-divider />
  820. <!-- 列表 -->
  821. <div class="mymain-container">
  822. <div class="table">
  823. <el-table
  824. v-loading="listLoading"
  825. :data="detailList.checkRecordItems"
  826. element-loading-text="Loading"
  827. border
  828. fit
  829. highlight-current-row
  830. stripe
  831. >
  832. <el-table-column align="left" label="申请人" prop="submitName" min-width="160" show-overflow-tooltip />
  833. <el-table-column align="left" label="申请日期" prop="submitTime" min-width="160" show-overflow-tooltip />
  834. <el-table-column align="left" label="申请说明" prop="applyNote" min-width="160" show-overflow-tooltip />
  835. <el-table-column align="left" label="验收人" prop="checkName" min-width="160" show-overflow-tooltip />
  836. <el-table-column align="left" label="受理日期" prop="checkDate" min-width="160" show-overflow-tooltip />
  837. <el-table-column align="left" label="验收说明" prop="checkNote" min-width="160" show-overflow-tooltip />
  838. <el-table-column align="left" label="审批结果" prop="isRefundDeposit" min-width="160" show-overflow-tooltip>
  839. <template slot-scope="scope">
  840. {{ scope.row.isRefundDeposit == false ? '否' : '是' }}
  841. </template>
  842. </el-table-column>
  843. </el-table>
  844. </div>
  845. </div>
  846. <h3
  847. v-if="
  848. detailList.examineStatus == 'WAIT' || detailList.examineStatus == 'FAIL' || detailList.examineStatus == 'OK'
  849. "
  850. >
  851. 审批
  852. </h3>
  853. <el-divider
  854. v-if="
  855. detailList.examineStatus == 'WAIT' || detailList.examineStatus == 'FAIL' || detailList.examineStatus == 'OK'
  856. "
  857. />
  858. <div v-if="detailList.examineStatus == 'WAIT'" class="diy-table-1">
  859. <el-row :gutter="0">
  860. <el-col :xs="12" :sm="12" :lg="12" class="item">
  861. <div class="label">验收人</div>
  862. <div class="value">{{ this.checkBy }}</div>
  863. </el-col>
  864. <el-col :xs="12" :sm="12" :lg="12" class="item dateS">
  865. <div class="label">受理日期</div>
  866. <div class="value">
  867. <el-date-picker
  868. readonly
  869. prefix-icon="''"
  870. class="selectStyle"
  871. type="datetime"
  872. placeholder="系统自动生成"
  873. default-time="00:00:00"
  874. value-format="yyyy-MM-dd HH:mm:ss"
  875. />
  876. </div>
  877. </el-col>
  878. <el-col :xs="12" :sm="24" :lg="24" class="item">
  879. <div class="label">是否退押</div>
  880. <div class="value">
  881. <el-radio-group v-model="isRefundDeposit">
  882. <el-radio :label="true">是</el-radio>
  883. <el-radio :label="false">否</el-radio>
  884. </el-radio-group>
  885. </div>
  886. </el-col>
  887. <el-col :xs="12" :sm="24" :lg="24" class="item">
  888. <div class="label">验收说明</div>
  889. <div class="value">
  890. <el-input v-model="checkNote" placeholder="请输入内容" />
  891. </div>
  892. </el-col>
  893. </el-row>
  894. </div>
  895. <div v-if="detailList.examineStatus == 'OK' || detailList.examineStatus == 'FAIL'" class="diy-table-1">
  896. <el-row :gutter="0">
  897. <el-col :xs="12" :sm="12" :lg="12" class="item">
  898. <div class="label">验收人</div>
  899. <div class="value">{{ detailList.checkBy }}</div>
  900. </el-col>
  901. <el-col :xs="12" :sm="12" :lg="12" class="item dateS">
  902. <div class="label">受理日期</div>
  903. <div class="value">
  904. <el-date-picker
  905. v-model="detailList.checkDate"
  906. readonly
  907. prefix-icon="''"
  908. class="selectStyle"
  909. type="datetime"
  910. placeholder=""
  911. default-time="00:00:00"
  912. value-format="yyyy-MM-dd HH:mm:ss"
  913. />
  914. </div>
  915. </el-col>
  916. <el-col :xs="12" :sm="24" :lg="24" class="item">
  917. <div class="label">是否退押</div>
  918. <div class="value">
  919. <el-radio-group v-model="detailList.isRefundDeposit">
  920. <el-radio readonly :label="true">是</el-radio>
  921. <el-radio readonly :label="false">否</el-radio>
  922. </el-radio-group>
  923. </div>
  924. </el-col>
  925. <el-col :xs="12" :sm="24" :lg="24" class="item dateS">
  926. <div class="label">验收说明</div>
  927. <div class="value">
  928. <el-input v-model="detailList.checkNote" readonly placeholder="请输入内容" />
  929. </div>
  930. </el-col>
  931. <el-col :xs="12" :sm="24" :lg="24" class="item dateS">
  932. <div class="label">审批通过后备注</div>
  933. <div class="value">
  934. <el-input v-model="detailList.examineAfterRemark" placeholder="请输入内容" />
  935. </div>
  936. </el-col>
  937. </el-row>
  938. </div>
  939. <div>
  940. <div
  941. v-if="
  942. detailList.dataState == 'AMEND' || detailList.dataState == 'WAIT_REVIEW' || detailList.dataState == 'REVIEW'
  943. "
  944. >
  945. <h3 class="gdzl">补充资料</h3>
  946. <el-divider />
  947. <div class="mymain-container">
  948. <div class="table">
  949. <el-table
  950. v-loading="listLoading"
  951. :data="amendData"
  952. element-loading-text="Loading"
  953. border
  954. fit
  955. highlight-current-row
  956. stripe
  957. >
  958. <el-table-column
  959. align="left"
  960. label="资料描述"
  961. prop="dataDescribe"
  962. min-width="160"
  963. show-overflow-tooltip
  964. />
  965. <el-table-column align="left" label="原文件名" prop="fileName" min-width="160" show-overflow-tooltip />
  966. <el-table-column align="left" label="缩略图" prop="fileUrl" min-width="160" show-overflow-tooltip>
  967. <template slot-scope="scope">
  968. <el-image
  969. v-if="checkFileType(scope.row.fileUrl) == 'image'"
  970. ref="img"
  971. :src="imageURL + scope.row.fileUrl"
  972. style="width: 120px; height: 120px"
  973. fit="cover"
  974. :preview-src-list="[imageURL + scope.row.fileUrl]"
  975. />
  976. <img v-if="checkFileType(scope.row.fileUrl) == 'word'" class="file" src="@/assets/common/word.png">
  977. <img
  978. v-if="checkFileType(scope.row.fileUrl) == 'excel'"
  979. class="file"
  980. src="@/assets/common/excel.png"
  981. >
  982. <img v-if="checkFileType(scope.row.fileUrl) == 'ppt'" class="file" src="@/assets/common/ppt.png">
  983. <img v-if="checkFileType(scope.row.fileUrl) == 'pdf'" class="file" src="@/assets/common/pdf.png">
  984. <img
  985. v-if="checkFileType(scope.row.fileUrl) == 'file'"
  986. class="file aaa"
  987. src="@/assets/common/zip.jpeg"
  988. >
  989. </template>
  990. </el-table-column>
  991. <el-table-column align="left" label="下载文件名称" prop="fileName" min-width="160" show-overflow-tooltip>
  992. <template slot-scope="scope">
  993. {{ '资料_' + scope.row.fileName }}
  994. </template>
  995. </el-table-column>
  996. <el-table-column align="center" label="操作" min-width="160" show-overflow-tooltip>
  997. <template slot-scope="scope">
  998. <el-button
  999. type="text"
  1000. class="textColor"
  1001. @click="downLoadFn(scope.row.fileUrl, scope.row.fileName)"
  1002. >下载</el-button>
  1003. </template>
  1004. </el-table-column>
  1005. </el-table>
  1006. </div>
  1007. <div class="diy-table-1">
  1008. <el-row :gutter="0">
  1009. <el-col :xs="12" :sm="12" :lg="12" class="item">
  1010. <div class="label">上传人</div>
  1011. <div class="value">
  1012. {{ detailList.amendBy }}
  1013. </div>
  1014. </el-col>
  1015. <el-col :xs="12" :sm="12" :lg="12" class="item">
  1016. <div class="label">上传时间</div>
  1017. <div class="value">
  1018. {{ detailList.amendTime }}
  1019. </div>
  1020. </el-col>
  1021. <el-col :xs="12" :sm="24" :lg="24" class="item">
  1022. <div class="label">补充说明</div>
  1023. <div class="value">
  1024. {{ detailList.amendRemark }}
  1025. </div>
  1026. </el-col>
  1027. </el-row>
  1028. </div>
  1029. </div>
  1030. </div>
  1031. <div v-if="(detailList.dataState == 'REVIEW' || detailList.dataState == 'AMEND') && isCustomer">
  1032. <h3 class="gdzl">复核</h3>
  1033. <el-divider />
  1034. <div class="diy-table-1">
  1035. <el-row :gutter="0">
  1036. <el-col :xs="12" :sm="12" :lg="12" class="item">
  1037. <div class="label">复核人</div>
  1038. <div class="value">
  1039. {{ detailList.reviewBy }}
  1040. </div>
  1041. </el-col>
  1042. <el-col :xs="12" :sm="12" :lg="12" class="item">
  1043. <div class="label">复核时间</div>
  1044. <div class="value">
  1045. {{ detailList.reviewTime }}
  1046. </div>
  1047. </el-col>
  1048. <el-col :xs="12" :sm="24" :lg="24" class="item dateS">
  1049. <div class="label">复核说明</div>
  1050. <div class="value">
  1051. {{ detailList.reviewRemark }}
  1052. </div>
  1053. </el-col>
  1054. </el-row>
  1055. </div>
  1056. </div>
  1057. </div>
  1058. <br>
  1059. <!-- 按钮 -->
  1060. <!-- detailList.examineStatus != 'OK' || detailList.examineStatus != 'FAIL' -->
  1061. <div class="btn-group clearfix">
  1062. <div class="fl">
  1063. <el-button
  1064. v-if="detailList.examineStatus == 'WAIT'"
  1065. type="primary"
  1066. size="small"
  1067. @click="adoptFn"
  1068. >审批通过</el-button>
  1069. <el-button
  1070. v-if="detailList.examineStatus == 'WAIT'"
  1071. type="primary"
  1072. size="small"
  1073. @click="rejectFn"
  1074. >审批驳回</el-button>
  1075. <el-button v-if="detailList.examineStatus == 'OK'" type="primary" size="small" @click="saveFn">保存</el-button>
  1076. </div>
  1077. </div>
  1078. </div>
  1079. </template>
  1080. <script>
  1081. import imageUpload from '@/components/Common/image-upload.vue'
  1082. import { downloadFiles } from '@/utils/util'
  1083. import { mapGetters } from 'vuex'
  1084. import {
  1085. getDepositManageDetail,
  1086. getDepositManageExamine,
  1087. getDepositManageEdit } from '@/api/engin_deposit/refund_list'
  1088. import { computeDiff } from '@/api/engin_deposit.js'
  1089. export default {
  1090. components: { imageUpload },
  1091. props: {
  1092. detailId: {
  1093. type: String,
  1094. required: true
  1095. }
  1096. },
  1097. computed: {
  1098. ...mapGetters(['name']),
  1099. comTotal() {
  1100. return (qty, price) => {
  1101. console.log(qty, price)
  1102. return Number(qty) * Number(price)
  1103. }
  1104. }
  1105. },
  1106. data() {
  1107. return {
  1108. isCustomer: JSON.parse(localStorage.getItem('supply_user')).isCustomer,
  1109. isDis: true,
  1110. imageURL: this.$imageUrl,
  1111. title: '审批',
  1112. listLoading: false, // 列表加载loading
  1113. dataList: [], // 列表数据
  1114. detailList: {},
  1115. checkBy: '',
  1116. checkDate: '',
  1117. isRefundDeposit: true,
  1118. baseURL: '',
  1119. fileList: [],
  1120. checkNote: '',
  1121. restrictFilename: ['结算单', '合同', '明细表', '审核表', '收据', '发票', '照片', '相片'],
  1122. datTate: new Date(),
  1123. amendData: [],
  1124. original: []
  1125. }
  1126. },
  1127. watch: {
  1128. 'detailList.items': {
  1129. handler(newValue, oldValue) {
  1130. if (newValue && newValue.length) {
  1131. newValue.forEach((item, index) => {
  1132. item.contractAmount = Number(item.contractQty) * Number(item.contractPrice)
  1133. })
  1134. }
  1135. this.detailList.items = newValue
  1136. },
  1137. immediate: true,
  1138. deep: true
  1139. }
  1140. },
  1141. created() {
  1142. console.log(this.$imageUrl, 8888)
  1143. this.checkBy = this.name
  1144. this.getData({ id: this.detailId })
  1145. },
  1146. methods: {
  1147. // 审批通过后可以编辑
  1148. async saveFn() {
  1149. console.log(this.detailList)
  1150. await getDepositManageEdit(this.detailList)
  1151. this.$message.success('保存成功')
  1152. this.goBack()
  1153. this.$emit('updateList')
  1154. },
  1155. // 批量下载
  1156. async batchDownloadFn() {
  1157. downloadFiles('deposit-manage/downZip', { parentId: this.detailId })
  1158. },
  1159. // 下载
  1160. async downLoadFn(v, name) {
  1161. // getCommonFileGetStream({ key: v, fileName: name }).then((res) => {
  1162. // // window.open(res.data);
  1163. // });
  1164. // // window.open(this.imageURL + v);
  1165. downloadFiles('common/file/getStream', { key: v, fileName: name })
  1166. // await getCommonFileGetStream({ key: v, fileName: name });
  1167. },
  1168. // 检查文件类型
  1169. checkFileType(url) {
  1170. if (!url) return ''
  1171. const fileSuffix = url.substring(url.lastIndexOf('.') + 1)
  1172. if (['jpg', 'jpeg', 'png'].includes(fileSuffix)) {
  1173. return 'image'
  1174. } else if (['doc', 'docx', 'dot', 'wps', 'wpt'].includes(fileSuffix)) {
  1175. return 'word'
  1176. } else if (['xls', 'xlsx', 'xlt', 'et', 'ett'].includes(fileSuffix)) {
  1177. return 'excel'
  1178. } else if (['ppt', 'pptx', 'dps', 'dpt', 'pot', 'pps'].includes(fileSuffix)) {
  1179. return 'ppt'
  1180. } else if (['pdf'].includes(fileSuffix)) {
  1181. return 'pdf'
  1182. } else if (['zip', 'rar', 'gz', 'apk'].includes(fileSuffix)) {
  1183. return 'file'
  1184. } else {
  1185. return ''
  1186. }
  1187. },
  1188. // 计算收差金额
  1189. setDataQty(e, row) {
  1190. // eslint-disable-next-line no-return-assign
  1191. if (!row.dataQty) return (row.dataQty = 0)
  1192. row.saleTypeId = this.detailList.saleTypeId
  1193. computeDiff(row).then(res => {
  1194. row.diffAmount = res.data.diffAmount
  1195. row.diffPolicyPrice = res.data.diffPolicyPrice
  1196. // this.$successMsg('已计算收差金额')
  1197. })
  1198. },
  1199. // 审批驳回
  1200. async rejectFn() {
  1201. this.$confirm('此操作将驳回订单, 是否继续?', '提示', {
  1202. confirmButtonText: '确定',
  1203. cancelButtonText: '取消',
  1204. type: 'warning'
  1205. })
  1206. .then(() => {
  1207. if (this.isCustomer) {
  1208. for (let i = 0; i < this.detailList.items.length; i++) {
  1209. this.detailList.items[i].contractAmount =
  1210. this.detailList.items[i].contractQty * this.detailList.items[i].contractPrice
  1211. if (this.detailList.items[i].contractAmount == null) {
  1212. return this.$errorMsg('合同单价、合同数量不能为空')
  1213. }
  1214. }
  1215. }
  1216. // this.detailList.items.map(e=>{
  1217. // e.contractAmount = e.contractQty * e.contractPrice
  1218. // if (!e.contractAmount) {
  1219. // return this.$errorMsg('合同单价、合同数量不能为空')
  1220. // }
  1221. // })
  1222. const data = {
  1223. ...this.detailList,
  1224. checkBy: this.checkBy,
  1225. // checkDate: this.checkDate,
  1226. isRefundDeposit: this.isRefundDeposit,
  1227. checkNote: this.checkNote,
  1228. examineResult: 0
  1229. }
  1230. if (!this.detailList.items.every(e => e.dataQty)) {
  1231. this.$confirm(`上交资料为0,是否继续提交`, '提示', {
  1232. confirmButtonText: '确定',
  1233. cancelButtonText: '取消',
  1234. type: 'warning'
  1235. })
  1236. .then(() => {
  1237. getDepositManageExamine(data)
  1238. .then(res => {
  1239. if (!res.data) {
  1240. this.goBack()
  1241. this.$emit('updateList')
  1242. } else {
  1243. this.$confirm('审批成功!是否跳转下一张待审批订单?', '提示', {
  1244. confirmButtonText: '跳转',
  1245. cancelButtonText: '取消',
  1246. type: 'warning'
  1247. })
  1248. .then(() => {
  1249. this.$successMsg('进入下一张待审批订单')
  1250. this.detailList = res.data
  1251. })
  1252. .catch(() => {
  1253. this.goBack()
  1254. this.$emit('updateList')
  1255. })
  1256. }
  1257. })
  1258. .finally(res => {})
  1259. })
  1260. .catch(() => {})
  1261. } else {
  1262. getDepositManageExamine(data)
  1263. .then(res => {
  1264. if (!res.data) {
  1265. this.goBack()
  1266. this.$emit('updateList')
  1267. } else {
  1268. this.$confirm('审批成功!是否跳转下一张待审批订单?', '提示', {
  1269. confirmButtonText: '跳转',
  1270. cancelButtonText: '取消',
  1271. type: 'warning'
  1272. })
  1273. .then(() => {
  1274. this.$successMsg('进入下一张待审批订单')
  1275. this.detailList = res.data
  1276. })
  1277. .catch(() => {
  1278. this.goBack()
  1279. this.$emit('updateList')
  1280. })
  1281. }
  1282. })
  1283. .finally(res => {})
  1284. }
  1285. })
  1286. .catch(() => {})
  1287. // if (!this.detailList.installDate) {
  1288. // this.$message.error("请选择安装时间");
  1289. // return;
  1290. // }
  1291. // let data = {
  1292. // ...this.detailList,
  1293. // checkBy: this.checkBy,
  1294. // // checkDate: this.checkDate,
  1295. // isRefundDeposit: this.isRefundDeposit,
  1296. // checkNote: this.checkNote,
  1297. // examineResult: 0,
  1298. // };
  1299. // await getDepositManageExamine(data);
  1300. // this.$message.success("审批驳回");
  1301. // this.goBack();
  1302. // this.$emit("updateList");
  1303. },
  1304. // 审批通过
  1305. async adoptFn() {
  1306. this.$confirm('此操作将审批订单, 是否继续?', '提示', {
  1307. confirmButtonText: '确定',
  1308. cancelButtonText: '取消',
  1309. type: 'warning'
  1310. })
  1311. .then(() => {
  1312. if (!this.detailList.installDate) {
  1313. this.$message.error('请选择安装时间')
  1314. return
  1315. }
  1316. if (this.isCustomer) {
  1317. for (let i = 0; i < this.detailList.items.length; i++) {
  1318. this.detailList.items[i].contractAmount =
  1319. this.detailList.items[i].contractQty * this.detailList.items[i].contractPrice
  1320. if (this.detailList.items[i].contractAmount == null) {
  1321. return this.$errorMsg('合同单价、合同数量不能为空')
  1322. }
  1323. }
  1324. }
  1325. const data = {
  1326. ...this.detailList,
  1327. checkBy: this.checkBy,
  1328. // checkDate: this.checkDate,
  1329. isRefundDeposit: this.isRefundDeposit,
  1330. checkNote: this.checkNote,
  1331. examineResult: 1
  1332. }
  1333. if (!this.detailList.items.every(e => e.dataQty)) {
  1334. this.$confirm(`上交资料为0,是否继续提交`, '提示', {
  1335. confirmButtonText: '确定',
  1336. cancelButtonText: '取消',
  1337. type: 'warning'
  1338. })
  1339. .then(() => {
  1340. getDepositManageExamine(data)
  1341. .then(res => {
  1342. if (!res.data) {
  1343. this.goBack()
  1344. this.$emit('updateList')
  1345. } else {
  1346. this.$confirm('审批成功!是否跳转下一张待审批订单?', '提示', {
  1347. confirmButtonText: '跳转',
  1348. cancelButtonText: '取消',
  1349. type: 'warning'
  1350. })
  1351. .then(() => {
  1352. this.$successMsg('进入下一张待审批订单')
  1353. this.amendData = res.data.dataList.filter(k => k.dataPosition == 'AMEND')
  1354. this.original = res.data.dataList.filter(k => k.dataPosition != 'AMEND')
  1355. this.detailList = res.data
  1356. })
  1357. .catch(() => {
  1358. this.goBack()
  1359. this.$emit('updateList')
  1360. })
  1361. }
  1362. })
  1363. .finally(res => {})
  1364. })
  1365. .catch(() => {})
  1366. } else {
  1367. getDepositManageExamine(data)
  1368. .then(res => {
  1369. if (!res.data) {
  1370. this.goBack()
  1371. this.$emit('updateList')
  1372. } else {
  1373. this.$confirm('审批成功!是否跳转下一张待审批订单?', '提示', {
  1374. confirmButtonText: '跳转',
  1375. cancelButtonText: '取消',
  1376. type: 'warning'
  1377. })
  1378. .then(() => {
  1379. this.$successMsg('进入下一张待审批订单')
  1380. this.amendData = res.data.dataList.filter(k => k.dataPosition == 'AMEND')
  1381. this.original = res.data.dataList.filter(k => k.dataPosition != 'AMEND')
  1382. this.detailList = res.data
  1383. })
  1384. .catch(() => {
  1385. this.goBack()
  1386. this.$emit('updateList')
  1387. })
  1388. }
  1389. })
  1390. .finally(res => {})
  1391. }
  1392. })
  1393. .catch(() => {})
  1394. // if (!this.detailList.installDate) {
  1395. // this.$message.error("请选择安装时间");
  1396. // return;
  1397. // }
  1398. // let data = {
  1399. // ...this.detailList,
  1400. // checkBy: this.checkBy,
  1401. // // checkDate: this.checkDate,
  1402. // isRefundDeposit: this.isRefundDeposit,
  1403. // checkNote: this.checkNote,
  1404. // examineResult: 1,
  1405. // };
  1406. // await getDepositManageExamine(data);
  1407. // this.$message.success("审批通过");
  1408. // this.goBack();
  1409. // this.$emit("updateList");
  1410. },
  1411. async getData(data) {
  1412. const res = await getDepositManageDetail(data)
  1413. console.log(res)
  1414. if (res.data.dataList.length == 0) {
  1415. this.isDis = true
  1416. } else {
  1417. this.isDis = false
  1418. }
  1419. const arr = []
  1420. res.data.items.forEach(item => {
  1421. if (Number(item.qty) > 0) {
  1422. arr.push(item)
  1423. }
  1424. // item.number = (item.qty*100 - item.directTransferQty*100 - item.retiredQty*100) / 100;
  1425. item.sums1 = ['orderHasSendQty', 'dataQty', 'qty', 'hasSendQty', 'contractQty']
  1426. item.sums2 = [
  1427. 'totalAmount',
  1428. 'diffAmount',
  1429. 'price',
  1430. 'depositAmount',
  1431. 'contractPrice',
  1432. 'comTotal',
  1433. 'contractAmount'
  1434. ]
  1435. })
  1436. res.data.collectList.forEach(item => {
  1437. // item.number = (item.qty*100 - item.directTransferQty*100 - item.retiredQty*100) / 100;
  1438. item.sums1 = ['orderHasSendQty', 'dataQty', 'hasSendQty']
  1439. item.sums2 = ['price', 'refundDepositAmount', 'depositAmount']
  1440. })
  1441. res.data.items = arr
  1442. this.amendData = res.data.dataList.filter(k => k.dataPosition == 'AMEND')
  1443. this.original = res.data.dataList.filter(k => k.dataPosition != 'AMEND')
  1444. res.data.realUseUnit = res.data.realUseUnit || res.data.refUseUnit
  1445. res.data.realInstallAddress = res.data.realInstallAddress || res.data.refInstallAddress
  1446. this.detailList = res.data
  1447. if (res.data.examineStatus == 'SAVE' || res.data.examineStatus == 'OK' || res.data.examineStatus == 'FAIL') {
  1448. this.title = '详情'
  1449. }
  1450. },
  1451. goBack() {
  1452. this.$emit('setShowPage', 0)
  1453. }
  1454. }
  1455. }
  1456. </script>
  1457. <style lang="scss" scoped>
  1458. .inpt {
  1459. ::v-deep .el-input__inner {
  1460. text-align: right;
  1461. }
  1462. }
  1463. .aaa {
  1464. height: 64px;
  1465. width: 64px;
  1466. }
  1467. .dateS {
  1468. .value {
  1469. padding: 0;
  1470. }
  1471. }
  1472. .batchDownload {
  1473. float: right;
  1474. margin-top: 9px;
  1475. }
  1476. .gdzl {
  1477. display: inline-block;
  1478. }
  1479. .dateStyle {
  1480. width: 100%;
  1481. }
  1482. .label {
  1483. width: 150px !important;
  1484. }
  1485. .selectStyle {
  1486. width: 100%;
  1487. }
  1488. .flex {
  1489. width: 100%;
  1490. display: flex;
  1491. justify-content: space-between;
  1492. align-items: center;
  1493. }
  1494. </style>