modify_list-apply.vue 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143
  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. bindMain: true,
  1041. };
  1042. getMaterialList(params).then((res) => {
  1043. this.materialLis = res.data.records;
  1044. });
  1045. },
  1046. handleSelectionAllChange(e) {
  1047. this.selectData = e;
  1048. },
  1049. handleSelectionChange(e) {
  1050. this.selectData = e;
  1051. },
  1052. hanleAdd() {
  1053. if (this.materialId) {
  1054. this.centerDialogVisible = false;
  1055. } else {
  1056. this.$errorMsg("请选择产品");
  1057. }
  1058. },
  1059. getList() {
  1060. this.listLoading = true;
  1061. let params = {
  1062. pageNum: this.currentPage,
  1063. pageSize: 5 || this.pageSize,
  1064. keyword: this.screenForm.keyword,
  1065. bindMain: true,
  1066. };
  1067. getMaterialList(params).then((res) => {
  1068. this.dataList = res.data.records;
  1069. this.listTotal = res.data.total;
  1070. this.listLoading = false;
  1071. });
  1072. },
  1073. hanleSbumit() {
  1074. for (let i = 0; i < this.items.length; i++) {
  1075. this.items[i].wallets = [
  1076. ...this.items[i].rebateWallets,
  1077. ...this.items[i].wallets,
  1078. ];
  1079. for (let j = i + 1; j < this.items.length; j++) {
  1080. if (this.items[i].materialNumber == this.items[j].materialNumber) {
  1081. if (this.items[i].saleTypeId == this.items[j].saleTypeId) {
  1082. this.$errorMsg("有存货编码销售类型相同");
  1083. return;
  1084. }
  1085. }
  1086. }
  1087. }
  1088. const params = {
  1089. ...this.base,
  1090. items: this.items,
  1091. saleTypeId: this.saleTypeId,
  1092. adminWebsitId: this.adminWebsitId,
  1093. serviceId: this.serviceId,
  1094. adminCompanyName: this.adminCompanyName,
  1095. serviceName: this.nickName,
  1096. };
  1097. getProductRriceAdd(params).then((res) => {
  1098. this.$successMsg("成功");
  1099. getProductRriceDetail({ id: res.data }).then((res) => {
  1100. this.base.billId = res.data.billId;
  1101. this.$parent.show = 1;
  1102. this.$parent.getList();
  1103. });
  1104. });
  1105. },
  1106. handleReseat() {
  1107. this.base = {
  1108. adminCompanyId: "",
  1109. adminWebsitId: "",
  1110. billId: "",
  1111. examineNote: "",
  1112. examineResult: true,
  1113. examineStatus: "",
  1114. id: null,
  1115. serviceId: "",
  1116. serviceName: "",
  1117. remark: "",
  1118. saleTypeId: "",
  1119. };
  1120. this.saleTypeId = "";
  1121. this.items = [];
  1122. },
  1123. },
  1124. };
  1125. </script>
  1126. <style lang="scss" scoped>
  1127. ::v-deep .el-date-editor--date {
  1128. width: 100%;
  1129. }
  1130. .dia .el-select--normal {
  1131. width: 100%;
  1132. }
  1133. </style>