modify_list-apply.vue 35 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144
  1. <template>
  2. <div>
  3. <div>
  4. <el-page-header @back="goBack" content="存货调价单"> </el-page-header>
  5. </div>
  6. <br /><br />
  7. <div>
  8. <el-form
  9. ref="screenForm"
  10. label-width="100px"
  11. size="small"
  12. label-position="left"
  13. >
  14. <el-row :gutter="20">
  15. <el-col :xs="24" :sm="12" :lg="6">
  16. <el-form-item label="单据编号">
  17. <el-input
  18. placeholder="系统自动生成"
  19. disabled
  20. v-model="base.billId"
  21. ></el-input>
  22. </el-form-item>
  23. </el-col>
  24. <!-- <el-col :xs="24" :sm="12" :lg="6">
  25. <el-form-item label="调价业务员">
  26. <el-select
  27. placeholder="请选择调价业务员"
  28. filterable
  29. @change="handleUser"
  30. v-model="serviceId"
  31. >
  32. <el-option
  33. v-for="(item, index) in userList"
  34. :label="item.nickName"
  35. :value="item.roleId"
  36. :key="index"
  37. ></el-option>
  38. </el-select>
  39. </el-form-item>
  40. </el-col>
  41. <el-col :xs="24" :sm="12" :lg="6">
  42. <el-form-item label="调价部门">
  43. <el-input
  44. placeholder="调价部门"
  45. disabled
  46. v-model="adminCompanyName"
  47. ></el-input>
  48. </el-form-item>
  49. </el-col> -->
  50. <!-- <el-col :xs="24" :sm="12" :lg="6">
  51. <el-form-item label="销售类型">
  52. <el-select
  53. placeholder="请选择销售类型"
  54. filterable
  55. v-model="saleTypeId"
  56. >
  57. <el-option
  58. v-for="item in typeList"
  59. :label="item.saleName"
  60. :value="item.id"
  61. ></el-option>
  62. </el-select>
  63. </el-form-item>
  64. </el-col> -->
  65. <el-col :xs="24" :sm="12" :lg="6">
  66. <el-form-item label="文件编码">
  67. <el-input placeholder="请输入" v-model="base.remark"></el-input>
  68. </el-form-item>
  69. </el-col>
  70. <el-col :xs="24" :sm="12" :lg="6">
  71. <el-form-item label="" class="fr"> </el-form-item>
  72. </el-col>
  73. </el-row>
  74. </el-form>
  75. </div>
  76. <div class="mymain-container">
  77. <!-- 列表 -->
  78. <div class="table">
  79. <el-form v-if="!detail.length" size="small" label-position="left">
  80. <el-table
  81. v-loading="listLoading"
  82. :data="items"
  83. element-loading-text="Loading"
  84. border
  85. fit
  86. highlight-current-row
  87. stripe
  88. >
  89. <el-table-column
  90. align="center"
  91. label="操作类型"
  92. prop="nname"
  93. min-width="160"
  94. show-overflow-tooltip
  95. >
  96. <!-- <el-button type="text" class="textColor">修改</el-button> -->
  97. <template slot-scope="scope">
  98. <el-button
  99. type="text"
  100. class="textColor"
  101. @click="hanleDeleInd(scope.$index)"
  102. >删除</el-button
  103. >
  104. </template>
  105. </el-table-column>
  106. <el-table-column
  107. align="center"
  108. label="销售类型"
  109. prop="saleTypeId"
  110. min-width="160"
  111. show-overflow-tooltip
  112. >
  113. <template slot-scope="scope">
  114. <el-form-item>
  115. <el-select
  116. placeholder="请选择销售类型"
  117. filterable
  118. v-model="scope.row.saleTypeId"
  119. >
  120. <el-option
  121. v-for="item in typeList"
  122. :label="item.saleName"
  123. :value="item.id"
  124. ></el-option>
  125. </el-select>
  126. </el-form-item>
  127. </template>
  128. </el-table-column>
  129. <el-table-column
  130. align="center"
  131. label="存货编码"
  132. prop="materialNumber"
  133. min-width="160"
  134. show-overflow-tooltip
  135. >
  136. <template slot-scope="scope">
  137. <el-form-item>
  138. <el-input
  139. disabled
  140. v-model="scope.row.materialNumber"
  141. ></el-input>
  142. </el-form-item>
  143. </template>
  144. </el-table-column>
  145. <el-table-column
  146. align="center"
  147. label="存货名称"
  148. prop="materialName"
  149. min-width="160"
  150. show-overflow-tooltip
  151. >
  152. <template slot-scope="scope">
  153. <el-form-item>
  154. <el-input
  155. disabled
  156. v-model="scope.row.materialName"
  157. ></el-input>
  158. </el-form-item>
  159. </template>
  160. </el-table-column>
  161. <el-table-column
  162. align="center"
  163. label="规格型号"
  164. prop="specification"
  165. min-width="160"
  166. show-overflow-tooltip
  167. >
  168. <template slot-scope="scope">
  169. <el-form-item>
  170. <el-input
  171. disabled
  172. v-model="scope.row.specification"
  173. ></el-input>
  174. </el-form-item>
  175. </template>
  176. </el-table-column>
  177. <el-table-column
  178. align="center"
  179. label="计量单位"
  180. prop="unit"
  181. min-width="160"
  182. show-overflow-tooltip
  183. >
  184. <template slot-scope="scope">
  185. <el-form-item>
  186. <el-input v-model="scope.row.unit"></el-input>
  187. </el-form-item>
  188. </template>
  189. </el-table-column>
  190. <el-table-column
  191. align="center"
  192. label="批发价"
  193. prop="batchPrice"
  194. min-width="160"
  195. show-overflow-tooltip
  196. >
  197. <template slot-scope="scope">
  198. <el-form-item>
  199. <el-input v-model="scope.row.batchPrice"></el-input>
  200. </el-form-item>
  201. </template>
  202. </el-table-column>
  203. <el-table-column
  204. align="center"
  205. label="格力折扣"
  206. prop="discAmount"
  207. min-width="160"
  208. show-overflow-tooltip
  209. ><template slot-scope="scope">
  210. <el-form-item>
  211. <el-input v-model="scope.row.discAmount"></el-input>
  212. </el-form-item>
  213. </template>
  214. </el-table-column>
  215. <el-table-column
  216. align="center"
  217. label="返利类型"
  218. prop="rebateUseRate"
  219. min-width="160"
  220. show-overflow-tooltip
  221. ><template slot-scope="scope">
  222. <el-form-item>
  223. <el-select
  224. multiple
  225. v-model="scope.row.walletRebateId"
  226. placeholder="请选择返利类型"
  227. @change="handelRebateList($event, scope.$index, scope.row)"
  228. >
  229. <el-option
  230. v-for="(item, index) in rebateList"
  231. :key="item.index"
  232. :value="item.walletRebateId"
  233. :label="item.name"
  234. >
  235. </el-option>
  236. </el-select>
  237. </el-form-item>
  238. </template>
  239. </el-table-column>
  240. <el-table-column
  241. align="center"
  242. label="生效日期"
  243. prop="startDate"
  244. min-width="160"
  245. show-overflow-tooltip
  246. ><template slot-scope="scope">
  247. <el-form-item>
  248. <el-date-picker
  249. v-model="scope.row.startDate"
  250. type="date"
  251. placeholder="请输入调价日期"
  252. value-format="yyyy-MM-dd"
  253. >
  254. </el-date-picker>
  255. </el-form-item>
  256. </template>
  257. </el-table-column>
  258. <el-table-column
  259. align="center"
  260. label="失效日期"
  261. prop="endDate"
  262. min-width="160"
  263. show-overflow-tooltip
  264. ><template slot-scope="scope">
  265. <el-form-item>
  266. <el-date-picker
  267. v-model="scope.row.endDate"
  268. type="date"
  269. placeholder="请输入调价日期"
  270. value-format="yyyy-MM-dd"
  271. >
  272. </el-date-picker>
  273. </el-form-item>
  274. </template>
  275. </el-table-column>
  276. <el-table-column
  277. align="center"
  278. label="是否促销价"
  279. prop="isPromote"
  280. min-width="160"
  281. show-overflow-tooltip
  282. ><template slot-scope="scope">
  283. <el-form-item>
  284. <el-select
  285. v-model="scope.row.isPromote"
  286. placeholder="请选择是否促销价"
  287. >
  288. <el-option
  289. v-for="item in scope.row.isPromoteArr"
  290. :key="item.bool"
  291. :value="item.bool"
  292. :label="item.value"
  293. >
  294. </el-option>
  295. </el-select>
  296. </el-form-item>
  297. </template>
  298. </el-table-column>
  299. <el-table-column
  300. align="center"
  301. label="数量"
  302. prop="qty"
  303. min-width="160"
  304. show-overflow-tooltip
  305. ><template slot-scope="scope">
  306. <el-form-item>
  307. <el-input v-model="scope.row.qty"></el-input>
  308. </el-form-item>
  309. </template>
  310. </el-table-column>
  311. <el-table-column
  312. align="center"
  313. label="现金钱包"
  314. prop="wallets"
  315. min-width="160"
  316. show-overflow-tooltip
  317. ><template slot-scope="scope">
  318. <el-form-item>
  319. <el-select
  320. multiple
  321. v-model="scope.row.walletsId"
  322. @change="handelWallets($event, scope.$index, scope.row)"
  323. placeholder="请选择现金钱包"
  324. >
  325. <el-option
  326. v-for="item in walleList"
  327. :key="item.id"
  328. :value="item.id"
  329. :label="item.name"
  330. >
  331. </el-option>
  332. </el-select>
  333. </el-form-item>
  334. </template>
  335. </el-table-column>
  336. <el-table-column
  337. align="center"
  338. label="发布"
  339. prop="isPublish"
  340. min-width="160"
  341. show-overflow-tooltip
  342. ><template slot-scope="scope">
  343. <el-form-item>
  344. <el-select
  345. v-model="scope.row.isPublish"
  346. placeholder="请选择是否发布"
  347. >
  348. <el-option
  349. v-for="item in scope.row.isPublishArr"
  350. :key="item.bool"
  351. :value="item.bool"
  352. :label="item.value"
  353. >
  354. </el-option>
  355. </el-select>
  356. </el-form-item>
  357. </template>
  358. </el-table-column>
  359. </el-table>
  360. </el-form>
  361. <el-form :model="detail" v-else size="small" label-position="left">
  362. <el-table
  363. v-loading="listLoading"
  364. :data="detail"
  365. element-loading-text="Loading"
  366. border
  367. fit
  368. highlight-current-row
  369. stripe
  370. >
  371. <el-table-column
  372. align="center"
  373. label="操作类型"
  374. prop="nname"
  375. min-width="160"
  376. show-overflow-tooltip
  377. >
  378. <!-- <el-button type="text" class="textColor">修改</el-button> -->
  379. <template slot-scope="scope">
  380. <el-button
  381. type="text"
  382. class="textColor"
  383. @click="hanleDeleInd(scope.$index)"
  384. >删除</el-button
  385. >
  386. </template>
  387. </el-table-column>
  388. <el-table-column
  389. align="center"
  390. label="销售类型"
  391. prop="saleTypeId"
  392. min-width="160"
  393. show-overflow-tooltip
  394. >
  395. <template slot-scope="scope">
  396. <el-form-item>
  397. <el-select
  398. placeholder="请选择销售类型"
  399. v-model="scope.row.saleTypeId"
  400. >
  401. <el-option
  402. v-for="item in typeList"
  403. :label="item.name"
  404. :value="item.id"
  405. ></el-option>
  406. </el-select>
  407. </el-form-item>
  408. </template>
  409. </el-table-column>
  410. <el-table-column
  411. align="center"
  412. label="存货编码"
  413. prop="materialNumber"
  414. min-width="160"
  415. show-overflow-tooltip
  416. >
  417. <template slot-scope="scope">
  418. <el-form-item>
  419. <el-input v-model="scope.row.materialNumber"></el-input>
  420. </el-form-item>
  421. </template>
  422. </el-table-column>
  423. <el-table-column
  424. align="center"
  425. label="存货名称"
  426. prop="materialName"
  427. min-width="160"
  428. show-overflow-tooltip
  429. >
  430. <template slot-scope="scope">
  431. <el-form-item>
  432. <el-input v-model="scope.row.materialName"></el-input>
  433. </el-form-item>
  434. </template>
  435. </el-table-column>
  436. <el-table-column
  437. align="center"
  438. label="规格型号"
  439. prop="specification"
  440. min-width="160"
  441. show-overflow-tooltip
  442. >
  443. <template slot-scope="scope">
  444. <el-form-item>
  445. <el-input v-model="scope.row.specification"></el-input>
  446. </el-form-item>
  447. </template>
  448. </el-table-column>
  449. <el-table-column
  450. align="center"
  451. label="计量单位"
  452. prop="unit"
  453. min-width="160"
  454. show-overflow-tooltip
  455. >
  456. <template slot-scope="scope">
  457. <el-form-item>
  458. <el-input v-model="scope.row.SalesType"></el-input>
  459. </el-form-item>
  460. </template>
  461. </el-table-column>
  462. <el-table-column
  463. align="center"
  464. label="批发价"
  465. prop="batchPrice"
  466. min-width="160"
  467. show-overflow-tooltip
  468. >
  469. <template slot-scope="scope">
  470. <el-form-item>
  471. <el-input v-model="scope.row.batchPrice"></el-input>
  472. </el-form-item>
  473. </template>
  474. </el-table-column>
  475. <el-table-column
  476. align="center"
  477. label="零售价"
  478. prop="retailPrice"
  479. min-width="160"
  480. show-overflow-tooltip
  481. ><template slot-scope="scope">
  482. <el-form-item>
  483. <el-input v-model="scope.row.retailPrice"></el-input>
  484. </el-form-item>
  485. </template>
  486. </el-table-column>
  487. <el-table-column
  488. align="center"
  489. label="返利使用比例"
  490. prop="rebateUseRate"
  491. min-width="160"
  492. show-overflow-tooltip
  493. ><template slot-scope="scope">
  494. <el-form-item>
  495. <el-input v-model="scope.row.rebateUseRate"></el-input>
  496. </el-form-item>
  497. </template>
  498. </el-table-column>
  499. <el-table-column
  500. align="center"
  501. label="生效日期"
  502. prop="startDate"
  503. min-width="160"
  504. show-overflow-tooltip
  505. ><template slot-scope="scope">
  506. <el-form-item>
  507. <el-date-picker
  508. v-model="scope.row.startDate"
  509. type="date"
  510. placeholder="请输入调价日期"
  511. value-format="yyyy-MM-dd"
  512. >
  513. </el-date-picker>
  514. </el-form-item>
  515. </template>
  516. </el-table-column>
  517. <el-table-column
  518. align="center"
  519. label="失效日期"
  520. prop="endDate"
  521. min-width="160"
  522. show-overflow-tooltip
  523. ><template slot-scope="scope">
  524. <el-form-item>
  525. <el-date-picker
  526. v-model="scope.row.endDate"
  527. type="date"
  528. placeholder="请输入调价日期"
  529. value-format="yyyy-MM-dd"
  530. >
  531. </el-date-picker>
  532. </el-form-item>
  533. </template>
  534. </el-table-column>
  535. <el-table-column
  536. align="center"
  537. label="是否促销价"
  538. prop="isPromote"
  539. min-width="160"
  540. show-overflow-tooltip
  541. ><template slot-scope="scope">
  542. <el-form-item>
  543. <el-select
  544. v-model="scope.row.isPromote"
  545. placeholder="请选择是否促销价"
  546. >
  547. <el-option
  548. v-for="item in scope.row.isPromoteArr"
  549. :key="item.bool"
  550. :value="item.bool"
  551. :label="item.value"
  552. >
  553. </el-option>
  554. </el-select>
  555. </el-form-item>
  556. </template>
  557. </el-table-column>
  558. <el-table-column
  559. align="center"
  560. label="数量"
  561. prop="qty"
  562. min-width="160"
  563. show-overflow-tooltip
  564. ><template slot-scope="scope">
  565. <el-form-item>
  566. <el-input v-model="scope.row.qty"></el-input>
  567. </el-form-item>
  568. </template>
  569. </el-table-column>
  570. <el-table-column
  571. align="center"
  572. label="支付钱包类型"
  573. prop="wallets"
  574. min-width="160"
  575. show-overflow-tooltip
  576. ><template slot-scope="scope">
  577. <el-form-item>
  578. <el-select
  579. v-model="scope.row.isPublish"
  580. placeholder="请选择支付钱包类型"
  581. >
  582. <el-option
  583. v-for="item in scope.row.rebateList"
  584. :key="item.walletRebateId"
  585. :value="item.walletRebateId"
  586. :label="item.name"
  587. >
  588. </el-option>
  589. </el-select>
  590. </el-form-item>
  591. </template>
  592. </el-table-column>
  593. <el-table-column
  594. align="center"
  595. label="发布"
  596. prop="isPublish"
  597. min-width="160"
  598. show-overflow-tooltip
  599. ><template slot-scope="scope">
  600. <el-form-item>
  601. <el-select
  602. v-model="scope.row.isPublish"
  603. placeholder="请选择是否发布"
  604. >
  605. <el-option
  606. v-for="item in scope.row.isPublishArr"
  607. :key="item.bool"
  608. :value="item.bool"
  609. :label="item.value"
  610. >
  611. </el-option>
  612. </el-select>
  613. </el-form-item>
  614. </template>
  615. </el-table-column>
  616. </el-table>
  617. </el-form>
  618. <el-dialog
  619. title="提示"
  620. :visible.sync="centerDialogVisible"
  621. width="50%"
  622. center
  623. class="dia"
  624. >
  625. <el-form
  626. :model="form"
  627. ref="form"
  628. label-width="80px"
  629. :inline="false"
  630. size="normal"
  631. >
  632. <el-form-item label="产品类型">
  633. <el-select v-model="materialId" placeholder="请选择" width="100%">
  634. <el-option
  635. v-for="item in materialLis"
  636. :key="item.id"
  637. :label="item.name"
  638. :value="item.id"
  639. >
  640. </el-option>
  641. </el-select>
  642. </el-form-item>
  643. </el-form>
  644. <span slot="footer" class="dialog-footer">
  645. <el-button @click="centerDialogVisible = false">取 消</el-button>
  646. <el-button type="primary" @click="hanleAdd">确 定</el-button>
  647. </span>
  648. </el-dialog>
  649. </div>
  650. </div>
  651. <div class="btn-group clearfix">
  652. <el-button size="small" @click="handleReseat">重置</el-button>
  653. <el-button size="small" type="primary" @click="hanleSbumit"
  654. >提交</el-button
  655. >
  656. <el-button
  657. style="float: right"
  658. type="primary"
  659. size="small"
  660. @click="centerDialogVisible = true"
  661. >添加</el-button
  662. >
  663. </div>
  664. <el-dialog title="" :visible.sync="centerDialogVisible" width="80%" center>
  665. <div>
  666. <el-form
  667. ref="screenForm"
  668. :model="screenForm"
  669. label-width="70px"
  670. size="small"
  671. label-position="left"
  672. >
  673. <el-row :gutter="20">
  674. <el-col :xs="24" :sm="12" :lg="6">
  675. <el-form-item label="名称" prop="keyword">
  676. <el-input
  677. placeholder="请输入名称"
  678. v-model="screenForm.keyword"
  679. ></el-input>
  680. </el-form-item>
  681. </el-col>
  682. <el-col :xs="24" :sm="12" :lg="18" class="tr">
  683. <el-form-item label="">
  684. <el-button size="small" @click="resetScreenForm"
  685. >清空</el-button
  686. >
  687. <el-button size="small" type="primary" @click="submitScreenForm"
  688. >搜索</el-button
  689. >
  690. </el-form-item>
  691. </el-col>
  692. </el-row>
  693. </el-form>
  694. </div>
  695. <div class="mymain-container">
  696. <div class="table">
  697. <el-table
  698. v-loading="listLoading"
  699. :data="dataList"
  700. element-loading-text="Loading"
  701. border
  702. fit
  703. highlight-current-row
  704. stripe
  705. @select-all="handleSelectionAllChange"
  706. @selection-change="handleSelectionChange"
  707. >
  708. <el-table-column align="center" type="selection" width="55">
  709. </el-table-column>
  710. <el-table-column
  711. align="center"
  712. label="使用组织"
  713. prop="useOrgName"
  714. min-width="100"
  715. ></el-table-column>
  716. <el-table-column
  717. align="center"
  718. label="编码"
  719. prop="number"
  720. min-width="100"
  721. label-class-name="bianma"
  722. class-name="fontstyle"
  723. ></el-table-column>
  724. <el-table-column
  725. align="center"
  726. label="名称"
  727. prop="name"
  728. min-width="100"
  729. ></el-table-column>
  730. <el-table-column
  731. align="center"
  732. label="规格型号"
  733. prop="specification"
  734. min-width="100"
  735. ></el-table-column>
  736. <el-table-column
  737. align="center"
  738. label="数据状态"
  739. prop="forbidStatus"
  740. min-width="100"
  741. >
  742. <template slot-scope="scope">
  743. <el-tag type="success" v-if="scope.row.forbidStatus == 'A'"
  744. >正常</el-tag
  745. >
  746. <el-tag type="danger" v-else>禁用</el-tag>
  747. </template>
  748. </el-table-column>
  749. <el-table-column
  750. align="center"
  751. label="是否维护商城资料"
  752. prop="maintainData"
  753. min-width="100"
  754. ></el-table-column>
  755. <el-table-column
  756. align="center"
  757. label="是否维护内外机档案"
  758. prop="maintainFiles"
  759. min-width="100"
  760. ></el-table-column>
  761. <el-table-column
  762. align="center"
  763. label="基本单位"
  764. prop="baseUnitId"
  765. min-width="100"
  766. ></el-table-column>
  767. <el-table-column
  768. align="center"
  769. label="已使用"
  770. prop="used"
  771. min-width="100"
  772. ></el-table-column>
  773. </el-table>
  774. </div>
  775. <!-- 分页 -->
  776. <div class="fr">
  777. <el-pagination
  778. @size-change="handleSizeChange"
  779. @current-change="handleCurrentChange"
  780. :current-page="currentPage"
  781. :page-sizes="[5]"
  782. :page-size="10"
  783. layout="total, sizes, prev, pager, next, jumper"
  784. :total="listTotal"
  785. >
  786. </el-pagination>
  787. </div>
  788. </div>
  789. <span slot="footer" class="dialog-footer">
  790. <el-button @click="centerDialogVisible = false">取 消</el-button>
  791. <el-button type="primary" @click="handleDetermine">确 定</el-button>
  792. </span>
  793. </el-dialog>
  794. </div>
  795. </template>
  796. <script>
  797. import {
  798. getProductRriceAdd,
  799. getProductRriceDetail,
  800. getTypeList,
  801. getMaterialList,
  802. getRebate,
  803. getUserList,
  804. getMaterialDetail,
  805. getWalletList,
  806. } from "@/api/basic_data/material";
  807. import MaterialListDetail from "./material_list-detail.vue";
  808. import Mixin from "@/mixin/index";
  809. export default {
  810. mixins: [Mixin],
  811. data() {
  812. return {
  813. listLoading: false,
  814. screenForm: {},
  815. base: {
  816. adminCompanyId: "",
  817. adminWebsitId: "",
  818. billId: "",
  819. examineNote: "",
  820. examineResult: true,
  821. examineStatus: "",
  822. id: null,
  823. serviceId: "",
  824. serviceName: "",
  825. remark: "",
  826. saleTypeId: "",
  827. },
  828. items: [],
  829. centerDialogVisible: false,
  830. materialLis: [],
  831. materialId: "",
  832. rebateList: [],
  833. typeList: [],
  834. saleTypeId: "",
  835. serviceId: "",
  836. adminCompanyId: "",
  837. serviceName: "",
  838. adminCompanyName: "",
  839. adminWebsitId: "",
  840. remark: "",
  841. detail: [],
  842. form: {},
  843. startDate: "",
  844. userList: [],
  845. centerDialogVisible: false,
  846. screenForm: {
  847. keyword: "",
  848. },
  849. selectData: [],
  850. walleList: [],
  851. };
  852. },
  853. mounted() {
  854. let params = {
  855. pageNum: 1,
  856. pageSize: -1,
  857. saleCode: "",
  858. saleName: "",
  859. status: "",
  860. };
  861. getTypeList(params).then((res) => {
  862. this.typeList = res.data.records;
  863. });
  864. getUserList({
  865. pageNum: 1,
  866. pageSize: -1,
  867. adminWebsitId: "",
  868. isCustomer: 0,
  869. roleId: "",
  870. status: "",
  871. userName: "",
  872. }).then((res) => {
  873. this.userList = res.data.records;
  874. });
  875. getWalletList({ mainId: "", walletName: "" }).then((res) => {
  876. this.walleList = res.data;
  877. });
  878. let rebateParams = {
  879. pageNum: 1,
  880. pageSize: -1,
  881. mainName: "",
  882. saleTypeCode: "",
  883. saleTypeName: "",
  884. status: "",
  885. };
  886. getRebate(rebateParams).then((res) => {
  887. this.rebateList = res.data.records;
  888. });
  889. },
  890. methods: {
  891. // xua
  892. handelWallets(e, index, row) {
  893. for (let i = 0; i < e.length; i++) {
  894. if (this.items[index].wallets.length) {
  895. console.log(1212);
  896. for (let j = 0; j < this.items[index].wallets.length; j++) {
  897. if (e[i] !== this.items[index].wallets[j].walletId) {
  898. this.$set(this.items[index], "wallets", [
  899. ...this.items[index].wallets,
  900. {
  901. type: "COMMONLY",
  902. id: "",
  903. updPriceBillId: row.cid,
  904. updPriceBillItemId: row.cid,
  905. walletId: e[i],
  906. },
  907. ]);
  908. }
  909. }
  910. } else {
  911. console.log(987);
  912. this.$set(this.items[index], "wallets", [
  913. {
  914. type: "COMMONLY",
  915. id: "",
  916. updPriceBillId: row.id,
  917. updPriceBillItemId: row.id,
  918. walletId: e[0],
  919. },
  920. ]);
  921. }
  922. }
  923. console.log(this.items[index], 456);
  924. },
  925. handelRebateList(e, index, row) {
  926. for (let i = 0; i < e.length; i++) {
  927. if (this.items[index].wallets.length) {
  928. console.log(1212);
  929. for (let j = 0; j < this.items[index].wallets.length; j++) {
  930. if (e[i] !== this.items[index].wallets[j].walletId) {
  931. this.$set(this.items[index], "wallets", [
  932. ...this.items[index].wallets,
  933. {
  934. type: "REBATE",
  935. id: "",
  936. updPriceBillId: row.cid,
  937. updPriceBillItemId: row.cid,
  938. walletId: e[i],
  939. },
  940. ]);
  941. }
  942. }
  943. } else {
  944. console.log(987);
  945. this.$set(this.items[index], "rebateWallets", [
  946. {
  947. type: "REBATE",
  948. id: "",
  949. updPriceBillId: row.id,
  950. updPriceBillItemId: row.id,
  951. walletId: e[0],
  952. },
  953. ]);
  954. }
  955. }
  956. },
  957. handleUser(e) {
  958. const adminCompany = this.userList.filter((k) => {
  959. return e == k.roleId;
  960. })[0];
  961. this.adminWebsitId = adminCompany.adminUserId;
  962. this.adminCompanyName = adminCompany.adminCompanyName;
  963. this.serviceName = adminCompany.nickName || "d";
  964. this.serviceId = adminCompany.roleId;
  965. },
  966. goBack() {
  967. this.$parent.show = 1;
  968. // 更新父组件数据
  969. this.$parent.getList();
  970. },
  971. indexMethod(index) {
  972. console.log(index);
  973. },
  974. hanleDeleInd(index) {
  975. this.items.splice(index, 1);
  976. },
  977. handleDetermine() {
  978. if (this.selectData.length) {
  979. for (let i = 0; i < this.selectData.length; i++) {
  980. this.items.push({
  981. baseUnitId: "",
  982. batchPrice: "",
  983. unit: "",
  984. billId: "",
  985. endDate: "",
  986. isPromote: "",
  987. isPublish: "",
  988. materialId: this.selectData[i].id,
  989. materialName: this.selectData[i].name,
  990. materialNumber: this.selectData[i].number,
  991. discAmount: "",
  992. materialOldNumber: this.selectData[i].oldNumber,
  993. parentId: "",
  994. walletRebateName: "",
  995. walletRebateId: [],
  996. rebateRate: "",
  997. qty: "",
  998. rebateUseRate: "",
  999. retailPrice: "" || 0,
  1000. saleTypeId: "",
  1001. specification: this.selectData[i].specification,
  1002. startDate: this.selectData[i].startDate,
  1003. wallets: [],
  1004. rebateWallets: [],
  1005. rebateList: [...this.rebateList],
  1006. isPublishArr: [
  1007. {
  1008. value: "是",
  1009. bool: true,
  1010. },
  1011. {
  1012. value: "否",
  1013. bool: false,
  1014. },
  1015. ],
  1016. isPromoteArr: [
  1017. {
  1018. value: "是",
  1019. bool: true,
  1020. },
  1021. {
  1022. value: "否",
  1023. bool: false,
  1024. },
  1025. ],
  1026. cid: this.selectData[i].id,
  1027. });
  1028. }
  1029. this.selectData = [];
  1030. this.centerDialogVisible = false;
  1031. } else {
  1032. this.$errorMsg("请选择内容");
  1033. }
  1034. },
  1035. getMaterialList() {
  1036. let params = {
  1037. pageNum: 1,
  1038. pageSize: 10,
  1039. keyword: "",
  1040. };
  1041. getMaterialList(params).then((res) => {
  1042. this.materialLis = res.data.records;
  1043. });
  1044. },
  1045. handleSelectionAllChange(e) {
  1046. this.selectData = e;
  1047. },
  1048. handleSelectionChange(e) {
  1049. this.selectData = e;
  1050. },
  1051. hanleAdd() {
  1052. if (this.materialId) {
  1053. this.centerDialogVisible = false;
  1054. } else {
  1055. this.$errorMsg("请选择产品");
  1056. }
  1057. },
  1058. getList() {
  1059. this.listLoading = true;
  1060. let params = {
  1061. pageNum: this.currentPage,
  1062. pageSize: 5 || this.pageSize,
  1063. keyword: this.screenForm.keyword,
  1064. };
  1065. getMaterialList(params).then((res) => {
  1066. this.dataList = res.data.records;
  1067. this.listTotal = res.data.total;
  1068. this.listLoading = false;
  1069. });
  1070. },
  1071. hanleSbumit() {
  1072. for (let i = 0; i < this.items.length; i++) {
  1073. this.items[i].wallets = [
  1074. ...this.items[i].rebateWallets,
  1075. ...this.items[i].wallets,
  1076. ];
  1077. for (let j = i + 1; j < this.items.length; j++) {
  1078. if (this.items[i].materialNumber == this.items[j].materialNumber) {
  1079. if (this.items[i].saleTypeId == this.items[j].saleTypeId) {
  1080. this.$errorMsg("有存货编码销售类型相同");
  1081. return;
  1082. }
  1083. }
  1084. }
  1085. }
  1086. const params = {
  1087. ...this.base,
  1088. items: this.items,
  1089. saleTypeId: this.saleTypeId,
  1090. adminWebsitId: this.adminWebsitId,
  1091. serviceId: this.serviceId,
  1092. adminCompanyName: this.adminCompanyName,
  1093. serviceName: this.nickName,
  1094. };
  1095. getProductRriceAdd(params).then((res) => {
  1096. this.$successMsg("成功");
  1097. getProductRriceDetail({ id: res.data }).then((res) => {
  1098. this.base.billId = res.data.billId;
  1099. this.$parent.show = 1
  1100. this.$parent.getList()
  1101. });
  1102. });
  1103. },
  1104. handleReseat() {
  1105. this.base = {
  1106. adminCompanyId: "",
  1107. adminWebsitId: "",
  1108. billId: "",
  1109. examineNote: "",
  1110. examineResult: true,
  1111. examineStatus: "",
  1112. id: null,
  1113. serviceId: "",
  1114. serviceName: "",
  1115. remark: "",
  1116. saleTypeId: "",
  1117. };
  1118. this.saleTypeId = "";
  1119. this.items = [];
  1120. },
  1121. },
  1122. };
  1123. </script>
  1124. <style lang="scss" scoped>
  1125. ::v-deep .el-date-editor--date {
  1126. width: 100%;
  1127. }
  1128. .dia .el-select--normal {
  1129. width: 100%;
  1130. }
  1131. </style>