directSell.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. <template>
  2. <div class="DirectSell">
  3. <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">屠宰直销</h2>
  4. <header id="header">
  5. <el-row type="flex" :gutter="20">
  6. <el-col :span="4">
  7. <el-input v-model="search" placeholder="请选择"></el-input>
  8. </el-col>
  9. <el-col :span="4">
  10. <el-button type="primary" @click="getDirectSellList">查找</el-button>
  11. </el-col>
  12. <el-col :span="4">
  13. <!-- <el-button type="primary" @click="add">新增</el-button> -->
  14. </el-col>
  15. </el-row>
  16. </header>
  17. <section>
  18. <article class="table">
  19. <el-table
  20. ref="multipleTable"
  21. :data="tableData"
  22. tooltip-effect="dark"
  23. style="width: 100%"
  24. >
  25. <el-table-column prop="id" label="序号" width="80"></el-table-column>
  26. <el-table-column prop="saleTime" label="出售时间"></el-table-column>
  27. <el-table-column prop="buyer" label="购买人(企业)"></el-table-column>
  28. <el-table-column prop="seller" label="经办人"></el-table-column>
  29. <el-table-column prop="weight" label="重量(kg)"></el-table-column>
  30. <el-table-column prop="saleAmount" label="销售金额"></el-table-column>
  31. <el-table-column prop="salesNo" label="销售单号"></el-table-column>
  32. <el-table-column prop="transportNo" label="运输单号"></el-table-column>
  33. <el-table-column label="操作" width="150">
  34. <template slot-scope="scope">
  35. <el-button @click="edit(scope.row, true)" type="text" size="small">编辑</el-button>
  36. <el-popconfirm title="是否删除此设备的信息?" @confirm="del(scope.row)">
  37. <el-button slot="reference" type="text" size="small">删除</el-button>
  38. </el-popconfirm>
  39. </template>
  40. </el-table-column>
  41. </el-table>
  42. <el-row type="flex" justify="end">
  43. <el-col :span="8" class="pagination">
  44. <el-pagination
  45. @current-change="pageChange"
  46. background
  47. layout="prev, pager, next"
  48. :page-count="Number(totalPages)"
  49. ></el-pagination>
  50. </el-col>
  51. </el-row>
  52. </article>
  53. </section>
  54. <el-dialog title="新增/编辑" :visible.sync="isShow" width="40%">
  55. <el-row type="flex">
  56. <el-col :span="20">
  57. <el-form ref="addDirectSell" :model="formData" :rules="rules" label-width="140px">
  58. <el-form-item label="出售时间">
  59. <el-date-picker
  60. v-model="formData.saleTime"
  61. type="date"
  62. value-format="yyyy-MM-dd"
  63. placeholder="选择日期"
  64. ></el-date-picker>
  65. </el-form-item>
  66. <el-form-item label="购买人(企业)">
  67. <el-input v-model="formData.buyer"></el-input>
  68. </el-form-item>
  69. <el-form-item label="经办人">
  70. <el-input v-model="formData.seller"></el-input>
  71. </el-form-item>
  72. <el-form-item label="重量(kg)">
  73. <el-input v-model="formData.weight"></el-input>
  74. </el-form-item>
  75. <el-form-item label="销售金额(元)">
  76. <el-input v-model="formData.saleAmount"></el-input>
  77. </el-form-item>
  78. <el-form-item label="销售单号">
  79. <el-input v-model="formData.salesNo"></el-input>
  80. </el-form-item>
  81. <el-form-item label="运输单号">
  82. <el-input v-model="formData.transportNo"></el-input>
  83. </el-form-item>
  84. <el-form-item>
  85. <el-button @click="isShow=false">取 消</el-button>
  86. <el-button type="primary" @click="submitForm('addDirectSell')">保 存</el-button>
  87. </el-form-item>
  88. </el-form>
  89. </el-col>
  90. </el-row>
  91. </el-dialog>
  92. </div>
  93. </template>
  94. <script>
  95. import {
  96. reqDirectSellList,
  97. reqAddDirectSell,
  98. reqUpdateDirectSell,
  99. reqDelDirectSell
  100. } from "@/api/sellManagement.js";
  101. const pageSize = 10;
  102. const rules = {};
  103. export default {
  104. name: "DirectSell",
  105. data() {
  106. return {
  107. search: "",
  108. page: 1,
  109. tableData: [],
  110. totalPages: 0,
  111. isShow: false,
  112. formData: {
  113. saleTime: this.$moment().format("YYYY-MM-DD"),
  114. buyer: "",
  115. seller: "",
  116. weight: "6",
  117. remarks: "",
  118. saleAmount: "",
  119. salesNo: "",
  120. transportNo: ""
  121. },
  122. isAdd: false,
  123. rules
  124. };
  125. },
  126. created() {
  127. // 屠宰直销列表
  128. this.getDirectSellList();
  129. },
  130. methods: {
  131. submitForm(formName) {
  132. this.$refs[formName].validate(valid => {
  133. if (valid) {
  134. if (this.isAdd) {
  135. reqAddDirectSell(this.formData)
  136. .then(res => {
  137. // 屠宰直销列表
  138. this.getDirectSellList();
  139. // this.$message.success("添加成功!");
  140. if (res.errCode) {
  141. this.$message.error(res.errMsg);
  142. } else {
  143. this.$message.success("成功");
  144. this.formData.saleTime = '';
  145. this.formData.buyer = '';
  146. this.formData.seller = '';
  147. this.formData.weight = '';
  148. this.formData.remarks = '';
  149. this.formData.saleAmount = '';
  150. this.formData.salesNo = '';
  151. this.formData.transportNo = '';
  152. this.isShow = false
  153. }
  154. })
  155. .catch(err => {
  156. console.log(err);
  157. this.$message.error("添加失败!");
  158. });
  159. } else {
  160. reqUpdateDirectSell(this.formData)
  161. .then(res => {
  162. // 屠宰直销列表
  163. this.getDirectSellList();
  164. // this.$message.success("编辑成功!");
  165. if (res.errCode) {
  166. this.$message.error(res.errMsg);
  167. } else {
  168. this.$message.success("成功");
  169. this.formData.saleTime = '';
  170. this.formData.buyer = '';
  171. this.formData.seller = '';
  172. this.formData.weight = '';
  173. this.formData.remarks = '';
  174. this.formData.saleAmount = '';
  175. this.formData.salesNo = '';
  176. this.formData.transportNo = '';
  177. this.formData.id = '';
  178. this.isShow = false
  179. }
  180. })
  181. .catch(err => {
  182. console.log(err);
  183. this.$message.error("编辑失败!");
  184. });
  185. }
  186. } else {
  187. return false;
  188. }
  189. });
  190. },
  191. // 屠宰直销列表
  192. getDirectSellList() {
  193. reqDirectSellList({
  194. searchStr: this.search,
  195. pageSize,
  196. pageNum: this.page
  197. })
  198. .then(res => {
  199. this.tableData = res.content;
  200. this.totalPages = res.totalPages;
  201. })
  202. .catch(err => {
  203. console.log(err);
  204. });
  205. },
  206. add() {
  207. this.isShow = true;
  208. this.isAdd = true
  209. },
  210. edit(row, bool) {
  211. this.formData.saleTime = row.saleTime;
  212. this.formData.buyer = row.buyer;
  213. this.formData.seller = row.seller;
  214. this.formData.weight = row.weight;
  215. this.formData.remarks = row.remarks;
  216. this.formData.saleAmount = row.saleAmount;
  217. this.formData.salesNo = row.salesNo;
  218. this.formData.transportNo = row.transportNo;
  219. if(bool) {
  220. this.formData.id = row.id;
  221. }
  222. this.isShow = true;
  223. this.isAdd = false
  224. },
  225. del(row) {
  226. reqDelDirectSell(row.id)
  227. .then(res => {
  228. console.log(res);
  229. // 屠宰直销列表
  230. this.getDirectSellList();
  231. if (res.errCode) {
  232. this.$message.error(res.errMsg);
  233. } else {
  234. this.$message.success("删除成功");
  235. }
  236. })
  237. .catch(err => {
  238. console.log(err);
  239. this.$message.error("删除失败!");
  240. });
  241. },
  242. pageChange(p) {
  243. console.log(p);
  244. this.page = p;
  245. // 屠宰直销列表
  246. this.getDirectSellList();
  247. }
  248. }
  249. };
  250. </script>
  251. <style lang="scss" scoped>
  252. #header {
  253. margin-bottom: 15px;
  254. }
  255. .table {
  256. .pagination {
  257. margin-top: 20px;
  258. }
  259. }
  260. </style>