taker_list.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. <template>
  2. <div class="app-container">
  3. <!-- 筛选条件 -->
  4. <div>
  5. <el-form
  6. ref="searchForm"
  7. :model="searchForm"
  8. label-width="100px"
  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="customerName">
  15. <el-input
  16. v-model="searchForm.customerName"
  17. placeholder="请输入提货人姓名"
  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="takerName">
  23. <el-input
  24. v-model="searchForm.takerName"
  25. placeholder="请输入提货人姓名"
  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="telephone">
  31. <el-input
  32. v-model="searchForm.telephone"
  33. placeholder="请输入电话"
  34. ></el-input>
  35. </el-form-item>
  36. </el-col>
  37. <el-col :xs="24" :sm="12" :lg="6" class="tr">
  38. <el-form-item label="">
  39. <el-button size="small" @click="clearFn">清空</el-button>
  40. <el-button size="small" type="primary" @click="searchFn"
  41. >搜索</el-button
  42. >
  43. </el-form-item>
  44. </el-col>
  45. </el-row>
  46. </el-form>
  47. </div>
  48. <!-- 按钮 -->
  49. <div class="btn-group clearfix">
  50. <div class="fl">
  51. <el-button type="primary" size="small" @click="addFn">新增</el-button>
  52. </div>
  53. <div class="fr">
  54. <el-button type="primary" size="small">导入</el-button>
  55. <el-button type="primary" size="small" @click="exportFn"
  56. >导出</el-button
  57. >
  58. <el-button type="primary" size="small">打印</el-button>
  59. </div>
  60. </div>
  61. <!-- 列表 -->
  62. <div class="mymain-container">
  63. <div class="table">
  64. <el-table
  65. v-loading="listLoading"
  66. :data="dataList"
  67. element-loading-text="Loading"
  68. border
  69. fit
  70. highlight-current-row
  71. stripe
  72. >
  73. <el-table-column
  74. type="selection"
  75. align="center"
  76. min-width="100"
  77. ></el-table-column>
  78. <el-table-column
  79. align="center"
  80. label="经销商名称"
  81. prop="customerName"
  82. min-width="160"
  83. show-overflow-tooltip
  84. ></el-table-column>
  85. <el-table-column
  86. align="center"
  87. label="提货人姓名"
  88. prop="takerName"
  89. min-width="160"
  90. show-overflow-tooltip
  91. ></el-table-column>
  92. <el-table-column
  93. align="center"
  94. label="身份证"
  95. prop="identity"
  96. min-width="160"
  97. show-overflow-tooltip
  98. ></el-table-column>
  99. <el-table-column
  100. align="center"
  101. label="联系电话"
  102. prop="phone"
  103. min-width="160"
  104. show-overflow-tooltip
  105. ></el-table-column>
  106. <el-table-column
  107. align="center"
  108. label="备用电话"
  109. prop="sparePhone"
  110. min-width="160"
  111. show-overflow-tooltip
  112. ></el-table-column>
  113. <el-table-column
  114. align="center"
  115. label="附件"
  116. prop="attach"
  117. min-width="160"
  118. show-overflow-tooltip
  119. ></el-table-column>
  120. <el-table-column
  121. align="center"
  122. label="有效期"
  123. prop="expireTime"
  124. min-width="160"
  125. show-overflow-tooltip
  126. ></el-table-column>
  127. <el-table-column
  128. align="center"
  129. label="创建人"
  130. prop="createUser"
  131. min-width="160"
  132. show-overflow-tooltip
  133. ></el-table-column>
  134. <el-table-column
  135. align="center"
  136. label="创建时间"
  137. prop="createDate"
  138. min-width="160"
  139. show-overflow-tooltip
  140. ></el-table-column>
  141. <el-table-column
  142. align="center"
  143. label="状态"
  144. prop="flag"
  145. min-width="160"
  146. show-overflow-tooltip
  147. ></el-table-column>
  148. <el-table-column
  149. align="center"
  150. label="操作"
  151. prop="caozuo"
  152. min-width="160"
  153. show-overflow-tooltip
  154. >
  155. <template slot-scope="scope"
  156. ><el-button
  157. type="text"
  158. class="textColor"
  159. @click="editFn(scope.row.id)"
  160. >详情</el-button
  161. >
  162. <el-button
  163. type="text"
  164. class="textColor"
  165. @click="stopFn(scope.row.id)"
  166. >停用</el-button
  167. >
  168. </template>
  169. </el-table-column>
  170. </el-table>
  171. </div>
  172. <!-- 分页 -->
  173. <div class="fr">
  174. <el-pagination
  175. @size-change="handleSizeChange"
  176. @current-change="handleCurrentChange"
  177. :current-page="currentPage"
  178. :page-sizes="[10, 20, 30, 50]"
  179. :page-size="10"
  180. layout="total, sizes, prev, pager, next, jumper"
  181. :total="listTotal"
  182. >
  183. </el-pagination>
  184. </div>
  185. </div>
  186. <!-- 弹窗 -->
  187. <el-dialog
  188. title="提货人档案"
  189. :visible.sync="dialogForm"
  190. width="40%"
  191. :show-close="false"
  192. :close-on-click-modal="false"
  193. >
  194. <el-form ref="addForm" :model="addForm" label-width="120px">
  195. <el-form-item label="经销商名称">
  196. <el-select
  197. @onchange="changeFn"
  198. v-model="addForm.customerId"
  199. placeholder="名称"
  200. >
  201. <el-option
  202. v-for="item in dealerList"
  203. :key="item.id"
  204. :label="item.name"
  205. :value="item.id"
  206. >
  207. </el-option>
  208. </el-select>
  209. </el-form-item>
  210. <el-row>
  211. <el-col :span="12">
  212. <el-form-item label="提货人姓名">
  213. <el-input v-model="addForm.takerName"></el-input> </el-form-item
  214. ></el-col>
  215. <el-col :span="12">
  216. <el-form-item label="身份证号码">
  217. <el-input v-model="addForm.identity"></el-input> </el-form-item
  218. ></el-col>
  219. </el-row>
  220. <el-row>
  221. <el-col :span="12">
  222. <el-form-item label="联系电话">
  223. <el-input v-model="addForm.phone"></el-input> </el-form-item
  224. ></el-col>
  225. <el-col :span="12">
  226. <el-form-item label="备用电话">
  227. <el-input v-model="addForm.sparePhone"></el-input> </el-form-item
  228. ></el-col>
  229. </el-row>
  230. <el-row>
  231. <el-col :span="12">
  232. <el-form-item label="有效期">
  233. <el-date-picker
  234. v-model="addForm.expireTime"
  235. type="date"
  236. placeholder="选择日期"
  237. format="yyyy 年 MM 月 dd 日"
  238. value-format="yyyy-MM-dd"
  239. >
  240. </el-date-picker> </el-form-item
  241. ></el-col>
  242. <el-col :span="12">
  243. <el-form-item label="验证码">
  244. <el-row :gutter="6">
  245. <el-col :span="14">
  246. <el-input v-model="addForm.code" />
  247. </el-col>
  248. <el-col :span="9">
  249. <el-button type="info" @click="getCodeFn"
  250. >获取验证码</el-button
  251. >
  252. </el-col>
  253. </el-row>
  254. </el-form-item></el-col
  255. >
  256. </el-row>
  257. <el-form-item label="上传提货人附件">
  258. <el-upload class="upload-demo">
  259. <el-button size="small" type="info">点击上传</el-button>
  260. </el-upload>
  261. </el-form-item>
  262. </el-form>
  263. <div slot="footer" class="dialog-footer">
  264. <el-button @click="dialogForm = false">取 消</el-button>
  265. <el-button type="primary" @click="addDataFn">确 定</el-button>
  266. </div>
  267. </el-dialog>
  268. </div>
  269. </template>
  270. <script>
  271. import {
  272. getList,
  273. addDataList,
  274. getCodeApi,
  275. stopTaker,
  276. } from "@/api/basic_data/taker";
  277. import { getDealerList } from "@/api/basic_data/dealer";
  278. import { downloadFiles } from "@/utils/util";
  279. export default {
  280. data() {
  281. return {
  282. listLoading: false, // 列表加载loading
  283. currentPage: 1, // 当前页码
  284. pageSize: 10, // 每页数量
  285. listTotal: 0, // 列表总数
  286. addForm: {
  287. customerId: "",
  288. takerName: "",
  289. identity: "",
  290. phone: "",
  291. sparePhone: "",
  292. sparePhone: "",
  293. expireTime: "",
  294. code: "",
  295. },
  296. dialogForm: false,
  297. dataList: [],
  298. searchForm: {
  299. customerName: "",
  300. takerName: "",
  301. telephone: "",
  302. },
  303. dealerList: [],
  304. };
  305. },
  306. async created() {
  307. await this.getDataList({ pageNum: 1, pageSize: 10 });
  308. await this.getDealerDataList({ pageNum: 1, pageSize: 10 });
  309. },
  310. methods: {
  311. changFn(v) {
  312. console.log(v);
  313. },
  314. //导出
  315. exportFn() {
  316. let screenData = {
  317. customerName: this.searchForm.customerName,
  318. takerName: this.searchForm.takerName,
  319. };
  320. downloadFiles("/taker-record/export", screenData);
  321. },
  322. //停用提货人档案
  323. async stopFn(id) {
  324. await stopTaker({ id });
  325. },
  326. //获取验证码
  327. async getCodeFn() {
  328. const res = await getCodeApi({ mobile: this.addForm.phone });
  329. console.log(res);
  330. },
  331. //获取经销商数据
  332. async getDealerDataList(data) {
  333. const res = await getDealerList(data);
  334. this.dealerList = res.data.records;
  335. },
  336. //获取列表数据
  337. async getDataList(data) {
  338. let res = await getList(data);
  339. console.log(res);
  340. this.dataList = res.data.records;
  341. this.listTotal = res.data.total;
  342. },
  343. //搜索功能
  344. async searchFn() {
  345. console.log(this.searchForm);
  346. await this.getDataList({ ...this.searchForm, pageNum: 1, pageSize: 10 });
  347. },
  348. //重置
  349. clearFn() {
  350. console.log(this.$refs.searchForm);
  351. this.$refs.searchForm.resetFields();
  352. },
  353. // 更改每页数量
  354. handleSizeChange(val) {
  355. this.pageSize = val;
  356. this.currentPage = 1;
  357. this.getDataList({ pageNum: 1, pageSize: this.pageSize });
  358. },
  359. // 更改当前页
  360. handleCurrentChange(val) {
  361. this.currentPage = val;
  362. this.getDataList({ pageNum: val, pageSize: 10 });
  363. },
  364. //新增
  365. async addDataFn() {
  366. console.log(this.addForm);
  367. await addDataList({ ...this.addForm, orgNumber: "1122" });
  368. this.$message.success("新增成功");
  369. this.getDataList({ pageNum: 1, pageSize: 10 });
  370. this.dialogForm = false;
  371. },
  372. addFn() {
  373. this.dialogForm = true;
  374. },
  375. },
  376. };
  377. </script>
  378. <style lang="scss" scoped>
  379. ::v-deep .el-date-editor {
  380. width: 100%;
  381. }
  382. ::v-deep .el-select {
  383. width: 100%;
  384. }
  385. ::v-deep .el-col-9 .el-button {
  386. padding: 5px;
  387. }
  388. ::v-deep .el-dialog__header {
  389. background-color: #dddddd;
  390. }
  391. .base {
  392. padding: 20px 20px 0;
  393. }
  394. .table {
  395. margin-top: 12px;
  396. }
  397. .right {
  398. float: right;
  399. }
  400. </style>