modify_list-apply.vue 37 KB

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