modify_list-apply.vue 34 KB

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