Distributor.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. <template>
  2. <el-container>
  3. <el-header height="" class="pdt">
  4. <el-form
  5. :model="ruleForm"
  6. ref="ruleForm"
  7. label-width="120px"
  8. size="small"
  9. label-position="left"
  10. class="demo-ruleForm"
  11. >
  12. <el-row :gutter="20">
  13. <el-col :xs="24" :ms="12" :lg="12">
  14. <el-form-item label="销售政策编号" prop="code">
  15. <el-input
  16. v-model="ruleForm.name"
  17. placeholder="如未填写,则系统自动生成"
  18. ></el-input>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :xs="24" :ms="12" :lg="12">
  22. <el-form-item label="销售政策说明" prop="title">
  23. <el-input
  24. v-model="ruleForm.title"
  25. placeholder="销售政策说明"
  26. ></el-input>
  27. </el-form-item>
  28. </el-col>
  29. </el-row>
  30. <el-row :gutter="20">
  31. <el-col :xs="24" :ms="12" :lg="12">
  32. <el-form-item label="销售政策类型" prop="type">
  33. <el-select v-model="ruleForm.type" placeholder="请选择">
  34. <el-option
  35. v-for="item in typeOptions"
  36. :key="item.value"
  37. :label="item.label"
  38. :value="item.value"
  39. >
  40. </el-option>
  41. </el-select>
  42. </el-form-item>
  43. </el-col>
  44. <el-col :xs="24" :ms="12" :lg="12">
  45. <!-- <el-form-item label="部门" prop="name">
  46. <el-select v-model="value" placeholder="请选择">
  47. <el-option
  48. v-for="item in options"
  49. :key="item.value"
  50. :label="item.label"
  51. :value="item.value"
  52. >
  53. </el-option>
  54. </el-select>
  55. </el-form-item> -->
  56. </el-col>
  57. </el-row>
  58. <el-row :gutter="20">
  59. <el-col :xs="24" :ms="12" :lg="12">
  60. <el-form-item label="制单人" prop="name">
  61. <el-input v-model="ruleForm.name" placeholder=""></el-input>
  62. </el-form-item>
  63. </el-col>
  64. <el-col :xs="24" :ms="12" :lg="12">
  65. <el-form-item label="制单日期" prop="name">
  66. <el-input v-model="ruleForm.name" placeholder=""></el-input>
  67. </el-form-item>
  68. </el-col>
  69. </el-row>
  70. <el-row>
  71. <el-form-item label="表头备注" prop="remark">
  72. <el-input
  73. v-model="ruleForm.remark"
  74. placeholder="新风机变频挂机。按提货数量1:3开单"
  75. ></el-input>
  76. </el-form-item>
  77. </el-row>
  78. </el-form>
  79. </el-header>
  80. <!-- 按钮 -->
  81. <div class="btn-group clearfix">
  82. <div class="fl">
  83. <el-button
  84. type="primary"
  85. size="small"
  86. slot="reference"
  87. class="el-popover-left"
  88. @click="handleEdit"
  89. >批量编辑</el-button
  90. >
  91. </div>
  92. </div>
  93. <el-main>
  94. <el-table
  95. v-loading="listLoading"
  96. :data="dataList"
  97. element-loading-text="Loading"
  98. border
  99. @select="hanleSelectAll"
  100. @select-all="hanleSelectAll"
  101. fit
  102. highlight-current-row
  103. stripe
  104. >
  105. <el-table-column type="selection" width="55"> </el-table-column>
  106. <el-table-column
  107. prop="customerNumber"
  108. label="经销商编码"
  109. width="300"
  110. align="center"
  111. >
  112. </el-table-column>
  113. <el-table-column
  114. prop="customerName"
  115. label="经销商名称"
  116. width="300"
  117. align="center"
  118. >
  119. </el-table-column>
  120. <el-table-column
  121. prop="limitTakeNum"
  122. label="最多提货套数"
  123. width="300"
  124. align="center"
  125. >
  126. </el-table-column>
  127. <el-table-column
  128. prop="remark"
  129. label="表体备注"
  130. width="300"
  131. align="center"
  132. >
  133. </el-table-column>
  134. <el-table-column
  135. prop="lastOrderTime"
  136. label="最近订货时间"
  137. width="300"
  138. align="center"
  139. >
  140. </el-table-column>
  141. <el-table-column fixed="right" label="操作" align="center" width="200">
  142. <template slot-scope="scope">
  143. <el-button
  144. type="text"
  145. size="small"
  146. @click="(type = 2), (dialogVisible = true), (id = scope.row.id)"
  147. >设置</el-button
  148. >
  149. <el-button
  150. type="text"
  151. size="small"
  152. @click="(type = 1), (dialogVisible = true), (id = scope.row.id)"
  153. >
  154. 备注</el-button
  155. >
  156. <!-- <el-button type="text" size="small">删除</el-button> -->
  157. </template>
  158. </el-table-column>
  159. </el-table>
  160. <!-- 分页 -->
  161. <div class="fr" style="margin-top: 20px">
  162. <el-pagination
  163. @size-change="handleSizeChange"
  164. @current-change="handleCurrentChange"
  165. :current-page="currentPage"
  166. :page-sizes="[10, 20, 30, 50]"
  167. :page-size="10"
  168. layout="total, sizes, prev, pager, next, jumper"
  169. :total="listTotal"
  170. >
  171. </el-pagination>
  172. </div>
  173. </el-main>
  174. <el-dialog
  175. :visible.sync="dialogVisible"
  176. width="30%"
  177. :before-close="handleClose"
  178. >
  179. <el-input
  180. v-if="type == 1"
  181. v-model="remark"
  182. placeholder="备注"
  183. size="small"
  184. ></el-input>
  185. <el-input
  186. v-else
  187. v-model="limitTakeNum"
  188. placeholder="最大提货数量
  189. "
  190. size="small"
  191. ></el-input>
  192. <span slot="footer" class="dialog-footer">
  193. <el-button @click="dialogVisible = false">取 消</el-button>
  194. <el-button type="primary" @click="handleInfo">确 定</el-button>
  195. </span>
  196. </el-dialog>
  197. </el-container>
  198. </template>
  199. <script>
  200. import Pagination from "./Pagination";
  201. import Transfer from "./Transfer";
  202. import {
  203. getPolicyDetail,
  204. getCustomerList,
  205. eidtBatch,
  206. } from "@/api/supply/sales";
  207. import Minxin from "@/mixin";
  208. export default {
  209. mixins: [Minxin],
  210. data() {
  211. return {
  212. dialogVisible: false,
  213. input: "",
  214. ruleForm: {},
  215. listLoading: false,
  216. remark: "",
  217. limitTakeNum: "",
  218. searchForm: {
  219. code: "",
  220. remark: "",
  221. title: "",
  222. },
  223. id: "",
  224. dataList: [],
  225. detail: {},
  226. radio: "",
  227. type:'',
  228. typeOptions: [
  229. {
  230. vlaue: "PROVISION",
  231. label: "配提",
  232. },
  233. {
  234. value: "LIMIT",
  235. label: "限量",
  236. },
  237. ],
  238. };
  239. },
  240. methods: {
  241. handelLeftCheck(e) {
  242. console.log(e);
  243. },
  244. getList() {
  245. this.listLoading = true;
  246. const params = {
  247. pageNum: this.currentPage,
  248. pageSize: this.pageSize,
  249. policyId: "",
  250. };
  251. getCustomerList(params).then((res) => {
  252. this.dataList = res.data.records;
  253. this.listLoading = false;
  254. });
  255. // getPolicyDetail({ policyId: this.$route.query.id||'' }).then((res) => {
  256. // this.ruleForm = res.data;
  257. // });
  258. // this.listLoading = false;
  259. },
  260. handleEdit() {
  261. if (this.ids.length) {
  262. this.type = 2;
  263. this.dialogVisible = true;
  264. return;
  265. }
  266. this.$errorMsg("请选编辑项");
  267. },
  268. handleClose(done) {
  269. done();
  270. },
  271. hanleDelete() {},
  272. handleInfo() {
  273. let ids = this.id ? [this.id] : this.ids;
  274. eidtBatch({
  275. policyCustomerIds: ids.join(","),
  276. limitTakeNum: this.limitTakeNum,
  277. remark: this.remark,
  278. }).then((res) => {
  279. this.$successMsg("编辑成功");
  280. this.dialogVisible = false;
  281. this.remark = ''
  282. this.limitTakeNum = ''
  283. this.getList();
  284. });
  285. },
  286. },
  287. components: {
  288. Transfer,
  289. Pagination,
  290. },
  291. };
  292. </script>
  293. <style lang="scss" scoped>
  294. .pdt {
  295. padding-top: 20px;
  296. }
  297. .text_right {
  298. text-align: right;
  299. }
  300. .el-select {
  301. width: 100%;
  302. }
  303. </style>