price_list.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. <template>
  2. <div class="app-container">
  3. <!-- 筛选条件 -->
  4. <div>
  5. <el-form
  6. ref="screenForm"
  7. :model="screenForm"
  8. label-width="70px"
  9. size="small"
  10. label-position="left"
  11. >
  12. <el-row :gutter="20">
  13. <el-col :xs="24" :sm="12" :lg="6">
  14. <el-form-item label="存货编码" prop="materialNumber">
  15. <el-input
  16. placeholder="请输入存货编码"
  17. v-model="screenForm.materialNumber"
  18. ></el-input>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :xs="24" :sm="12" :lg="6">
  22. <el-form-item label="存货名称" prop="materialName">
  23. <el-input
  24. placeholder="请输入存货名称"
  25. v-model="screenForm.materialName"
  26. ></el-input>
  27. </el-form-item>
  28. </el-col>
  29. <el-col :xs="24" :sm="12" :lg="6">
  30. <el-form-item label="生效日期" prop="startDate">
  31. <el-date-picker
  32. v-model="screenForm.startDate"
  33. type="datetime"
  34. placeholder="请输入生效日期"
  35. value-format="yyyy-MM-dd HH:mm:ss"
  36. >
  37. </el-date-picker>
  38. </el-form-item>
  39. </el-col>
  40. <el-col :xs="24" :sm="12" :lg="6">
  41. <el-form-item label="失效日期" prop="endDate">
  42. <el-date-picker
  43. v-model="screenForm.endDate"
  44. type="datetime"
  45. placeholder="请输入生效日期"
  46. value-format="yyyy-MM-dd HH:mm:ss "
  47. >
  48. </el-date-picker>
  49. </el-form-item>
  50. </el-col>
  51. <el-col :xs="24" :sm="12" :lg="6">
  52. <el-form-item label="销售类型" prop="saleTypeId">
  53. <el-input
  54. placeholder="请输入销售类型"
  55. v-model="screenForm.saleTypeId"
  56. ></el-input>
  57. </el-form-item>
  58. </el-col>
  59. <el-col :xs="24" :sm="12" :lg="6">
  60. <el-form-item label="产品品类" prop="categoryId">
  61. <el-select
  62. placeholder="请选择产品品类"
  63. v-model="screenForm.categoryId"
  64. >
  65. <el-option
  66. v-for="item in dictList"
  67. :label="item.dictValue"
  68. :value="item.sysDictId"
  69. ></el-option>
  70. </el-select>
  71. </el-form-item>
  72. </el-col>
  73. <el-col :xs="24" :sm="12" :lg="6">
  74. <el-form-item label="规格型号" prop="specification">
  75. <el-input
  76. placeholder="请输入规格型号"
  77. v-model="screenForm.specification"
  78. ></el-input>
  79. </el-form-item>
  80. </el-col>
  81. <el-col :xs="24" :sm="24" :lg="24" class="tr">
  82. <el-form-item label="">
  83. <el-button size="small" @click="resetScreenForm">清空</el-button>
  84. <el-button size="small" type="primary" @click="submitScreenForm"
  85. >搜索</el-button
  86. >
  87. </el-form-item>
  88. </el-col>
  89. </el-row>
  90. </el-form>
  91. </div>
  92. <!-- 按钮 -->
  93. <div class="btn-group clearfix">
  94. <div class="fr">
  95. <el-button type="primary" size="small">导出</el-button>
  96. <el-button type="primary" size="small">打印</el-button>
  97. </div>
  98. </div>
  99. <div class="mymain-container">
  100. <!-- 列表 -->
  101. <div class="table">
  102. <el-table
  103. v-loading="listLoading"
  104. :data="dataList"
  105. element-loading-text="Loading"
  106. border
  107. fit
  108. highlight-current-row
  109. stripe
  110. >
  111. <el-table-column type="selection" align="center"></el-table-column>
  112. <el-table-column
  113. align="center"
  114. label="产品品类"
  115. prop="categoryId"
  116. min-width="160"
  117. show-overflow-tooltip
  118. ></el-table-column>
  119. <el-table-column
  120. align="center"
  121. label="存货编码"
  122. prop="categoryNumber"
  123. min-width="160"
  124. show-overflow-tooltip
  125. ></el-table-column>
  126. <el-table-column
  127. align="center"
  128. label="存货名称"
  129. prop="categoryName"
  130. min-width="160"
  131. show-overflow-tooltip
  132. ></el-table-column>
  133. <el-table-column
  134. align="center"
  135. label="规格型号"
  136. prop="specification"
  137. min-width="160"
  138. show-overflow-tooltip
  139. ></el-table-column>
  140. <el-table-column
  141. align="center"
  142. label="销售类型"
  143. prop="saleTypeId"
  144. min-width="160"
  145. show-overflow-tooltip
  146. ></el-table-column>
  147. <el-table-column
  148. align="center"
  149. label="主计量单位名称"
  150. prop="company"
  151. min-width="160"
  152. show-overflow-tooltip
  153. ></el-table-column>
  154. <el-table-column
  155. align="center"
  156. label="数量下限"
  157. prop="qty"
  158. min-width="160"
  159. show-overflow-tooltip
  160. ></el-table-column>
  161. <el-table-column
  162. align="center"
  163. label="返利比例"
  164. prop="rebateUseRate"
  165. min-width="160"
  166. show-overflow-tooltip
  167. ></el-table-column>
  168. <el-table-column
  169. align="center"
  170. label="生效日期"
  171. prop="startDate"
  172. min-width="160"
  173. show-overflow-tooltip
  174. ></el-table-column>
  175. <el-table-column
  176. align="center"
  177. label="失效日期"
  178. prop="endDate"
  179. min-width="160"
  180. show-overflow-tooltip
  181. ></el-table-column>
  182. <el-table-column
  183. align="center"
  184. label="是否促销价"
  185. prop="isPromote"
  186. min-width="160"
  187. show-overflow-tooltip
  188. >
  189. <template slot-scope="scope">
  190. <el-tag type="success" v-if="scope.row.isPromote">是</el-tag>
  191. <el-tag type="danger" v-else>否</el-tag>
  192. </template>
  193. </el-table-column>
  194. <el-table-column
  195. align="center"
  196. label="是否促作废"
  197. prop="isRevoke"
  198. min-width="160"
  199. show-overflow-tooltip
  200. >
  201. <template slot-scope="scope">
  202. <el-tag type="success" v-if="scope.row.isRevoke">是</el-tag>
  203. <el-tag type="danger" v-else>否</el-tag>
  204. </template>
  205. </el-table-column>
  206. <el-table-column
  207. align="center"
  208. label="批发价1"
  209. prop="batchPrice"
  210. min-width="160"
  211. show-overflow-tooltip
  212. ></el-table-column>
  213. <el-table-column
  214. align="center"
  215. label="备注"
  216. prop="remark"
  217. min-width="160"
  218. show-overflow-tooltip
  219. ></el-table-column>
  220. </el-table>
  221. </div>
  222. <!-- 分页 -->
  223. <div class="fr">
  224. <el-pagination
  225. @size-change="handleSizeChange"
  226. @current-change="handleCurrentChange"
  227. :current-page="currentPage"
  228. :page-sizes="[10, 20, 30, 50]"
  229. :page-size="10"
  230. layout="total, sizes, prev, pager, next, jumper"
  231. :total="listTotal"
  232. >
  233. </el-pagination>
  234. </div>
  235. </div>
  236. </div>
  237. </template>
  238. <script>
  239. import Mixin from "@/mixin/index";
  240. import { getProductPriceList } from "@/api/basic_data/material";
  241. import { getDictList } from "@/api/common";
  242. import { downloadFiles, parseTime } from "@/utils/util";
  243. export default {
  244. mixins: [Mixin],
  245. data() {
  246. return {
  247. currentPage: 1, // 当前页码
  248. pageSize: 10, // 每页数量
  249. listTotal: 0, // 列表总数
  250. dataList: [
  251. {
  252. productCategory: "家用空调",
  253. code: "2022051775",
  254. name: "夏之凉变频1",
  255. number: "",
  256. specs: "DAD-26GW/",
  257. salesType: "*一票机*",
  258. company: "套",
  259. lowerLimit: "",
  260. rebateRatio: "",
  261. effectiveDate: "",
  262. ExpiryDate: "",
  263. isPromote: "",
  264. cancellation: "",
  265. wholesaleOne: "3,299.00",
  266. remarks: "*常规机*",
  267. },
  268. {
  269. productCategory: "家用空调",
  270. code: "2022051775",
  271. name: "夏之凉变频1",
  272. number: "",
  273. specs: "DAD-26GW/",
  274. salesType: "*一票机*",
  275. company: "套",
  276. lowerLimit: "",
  277. rebateRatio: "",
  278. effectiveDate: "",
  279. ExpiryDate: "",
  280. promotion: "",
  281. cancellation: "",
  282. wholesaleOne: "3,299.00",
  283. remarks: "*常规机*",
  284. },
  285. {
  286. productCategory: "家用空调",
  287. code: "2022051775",
  288. name: "夏之凉变频1",
  289. number: "",
  290. specs: "DAD-26GW/",
  291. salesType: "*一票机*",
  292. company: "套",
  293. lowerLimit: "",
  294. rebateRatio: "",
  295. effectiveDate: "",
  296. ExpiryDate: "",
  297. promotion: "",
  298. cancellation: "",
  299. wholesaleOne: "3,299.00",
  300. remarks: "*常规机*",
  301. },
  302. {
  303. productCategory: "家用空调",
  304. code: "2022051775",
  305. name: "夏之凉变频1",
  306. number: "",
  307. specs: "DAD-26GW/",
  308. salesType: "*一票机*",
  309. company: "套",
  310. lowerLimit: "",
  311. rebateRatio: "",
  312. effectiveDate: "",
  313. ExpiryDate: "",
  314. promotion: "",
  315. cancellation: "",
  316. wholesaleOne: "3,299.00",
  317. remarks: "*常规机*",
  318. },
  319. ],
  320. screenForm: {
  321. categoryId: "",
  322. endDate: "",
  323. materialName: "",
  324. materialNumber: "",
  325. saleTypeId: "",
  326. specification: "",
  327. startDate: "",
  328. },
  329. dictList: {},
  330. };
  331. },
  332. mounted() {
  333. getDictList({ sysDictEnum: "PRODUCT_TYPE" }).then((res) => {
  334. this.dictList = res.data;
  335. });
  336. },
  337. methods: {
  338. addFn() {
  339. this.showDialogForm = true;
  340. },
  341. getList() {
  342. this.listLoading = true;
  343. let params = {
  344. pageNum: this.currentPage,
  345. pageSize: this.pageSize,
  346. categoryId: this.screenForm.categoryId,
  347. endDate: this.screenForm.endDate,
  348. materialName: this.screenForm.materialName,
  349. materialNumber: this.screenForm.materialNumber,
  350. saleTypeId: this.screenForm.saleTypeId,
  351. specification: this.screenForm.specification,
  352. startDate: this.screenForm.startDate,
  353. };
  354. getProductPriceList(params).then((res) => {
  355. this.dataList = res.data.records;
  356. this.listTotal = res.data.total;
  357. this.listLoading = false;
  358. });
  359. },
  360. },
  361. };
  362. </script>
  363. <style lang="scss" scoped>
  364. ::v-deep .el-select--small {
  365. width: 100%;
  366. }
  367. </style>