You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

396 lines
12 KiB

  1. <template>
  2. <div class="customer-css" >
  3. <!-- 查询时间和产品 -->
  4. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;" >
  5. <el-row>
  6. <el-col :span="24" style="">
  7. <el-form-item :label="'Request Date'" >
  8. <el-date-picker
  9. style="width: 130px"
  10. v-model="searchData.startDate"
  11. type="date"
  12. format="yyyy-MM-dd"
  13. value-format="yyyy-MM-dd"
  14. placeholder="选择日期">
  15. </el-date-picker>
  16. </el-form-item>
  17. <el-form-item :label="'To'" >
  18. <el-date-picker
  19. style="width: 130px"
  20. v-model="searchData.endDate"
  21. type="date"
  22. format="yyyy-MM-dd"
  23. value-format="yyyy-MM-dd"
  24. placeholder="选择日期">
  25. </el-date-picker>
  26. </el-form-item>
  27. <el-form-item :label="'Status:'">
  28. <el-select v-model="searchData.status" readonly style="width: 130px">
  29. <el-option label="All" value=""></el-option>
  30. <el-option label="待审批" value="待审批"></el-option>
  31. <el-option label="审批通过" value="审批通过"></el-option>
  32. <el-option label="已拒绝" value="已拒绝"></el-option>
  33. </el-select>
  34. </el-form-item>
  35. <el-form-item >
  36. <span style="cursor: pointer" slot="label" @click="getBaseList(1100)"><a herf="#">Supplier No</a></span>
  37. <el-input v-model="searchData.supplierNo" style="width: 130px"></el-input>
  38. </el-form-item>
  39. <el-form-item :label="'Supplier Name:'">
  40. <el-input v-model="searchData.supplierName" style="width: 130px"></el-input>
  41. </el-form-item>
  42. <el-form-item :label="'Request By:'">
  43. <el-input v-model="searchData.requestBy" style="width: 130px"></el-input>
  44. </el-form-item>
  45. <el-form-item :label="'Request No:'">
  46. <el-input v-model="searchData.requestNo" style="width: 130px"></el-input>
  47. </el-form-item>
  48. <el-form-item :label="' '" >
  49. <el-button class="customer-bun-min" type="primary" @click="getMainData" style="">Query</el-button>
  50. <el-button @click="exportExcel()" type="primary" style="margin-left: 2px">{{'导出'}}</el-button>
  51. </el-form-item>
  52. </el-col>
  53. </el-row>
  54. </el-form>
  55. <el-table
  56. :height="height"
  57. :data="mainDataList"
  58. border
  59. ref="mainTable"
  60. highlight-current-row
  61. v-loading="dataListLoading"
  62. style="margin-top: 0px; width: 100%;">
  63. <!-- <el-table-column-->
  64. <!-- fixed="left"-->
  65. <!-- header-align="center"-->
  66. <!-- align="center"-->
  67. <!-- width="220"-->
  68. <!-- :label="'操作'">-->
  69. <!-- <template slot-scope="scope">-->
  70. <!-- </template>-->
  71. <!-- </el-table-column>-->
  72. <el-table-column
  73. v-for="(item,index) in columnList1" :key="index"
  74. :sortable="item.columnSortable"
  75. :prop="item.columnProp"
  76. :header-align="item.headerAlign"
  77. :show-overflow-tooltip="item.showOverflowTooltip"
  78. :align="item.align"
  79. :fixed="item.fixed==''?false:item.fixed"
  80. :min-width="item.columnWidth"
  81. :label="item.columnLabel">
  82. <template slot-scope="scope">
  83. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  84. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  85. style="width: 100px; height: 80px"/></span>
  86. </template>
  87. </el-table-column>
  88. </el-table>
  89. <!-- 分页插件 -->
  90. <el-pagination style="margin-top: 0px"
  91. @size-change="sizeChangeHandle"
  92. @current-change="currentChangeHandle"
  93. :current-page="pageIndex"
  94. :page-sizes="[20, 50, 100, 200, 500]"
  95. :page-size="pageSize"
  96. :total="totalPage"
  97. layout="total, sizes, prev, pager, next, jumper">
  98. </el-pagination>
  99. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  100. </div>
  101. </template>
  102. <script>
  103. /*组件*/
  104. import excel from "@/utils/excel-util.js";
  105. import {
  106. searchSrmSupplierList,getSupplierGroupRequestList
  107. } from '@/api/srm/srmSupplier.js'
  108. import Chooselist from '@/views/modules/common/Chooselist_eam'
  109. export default {
  110. data() {
  111. return {
  112. functionId: this.$route.meta.menuId,
  113. height: 200,
  114. currentRow: {},
  115. searchData:{
  116. startDate:'',
  117. endDate:'',
  118. status:'待审批',
  119. supplierNo:'',
  120. supplierName:'',
  121. requestBy:'',
  122. requestNo:'',
  123. site:this.$store.state.user.site,
  124. page: 1,
  125. limit: 10,
  126. },
  127. exportName: '供应商等级变更申请'+this.dayjs().format('YYYYMMDDHHmmss'),
  128. tagNo:'',
  129. pageIndex: 1,
  130. pageSize: 50,
  131. totalPage: 0,
  132. mainDataList:[],
  133. dataListLoading: false,
  134. columnList1: [
  135. {
  136. userId: this.$store.state.user.name,
  137. functionId: this.functionId,
  138. serialNumber: '811010Table1RequestNo',
  139. tableId: "811010Table1",
  140. tableName: "供应商等级变更申请",
  141. columnProp: "requestNo",
  142. headerAlign: "center",
  143. align: "left",
  144. columnLabel: "Request No",
  145. columnWidth: '100',
  146. columnHidden: false,
  147. columnImage: false,
  148. columnSortable: false,
  149. sortLv: 0,
  150. status: true,
  151. fixed: false
  152. },
  153. {
  154. userId: this.$store.state.user.name,
  155. functionId: this.functionId,
  156. serialNumber: '811010Table1RequestDate',
  157. tableId: "811010Table1",
  158. tableName: "供应商等级变更申请",
  159. columnProp: "requestDate",
  160. headerAlign: "center",
  161. align: "left",
  162. columnLabel: "Request Date",
  163. columnWidth: '120',
  164. columnHidden: false,
  165. columnImage: false,
  166. columnSortable: false,
  167. sortLv: 0,
  168. status: true,
  169. fixed: false
  170. },
  171. {
  172. userId: this.$store.state.user.name,
  173. functionId: this.functionId,
  174. serialNumber: '811010Table1SupplierNo',
  175. tableId: "811010Table1",
  176. tableName: "供应商等级变更申请",
  177. columnProp: "supplierNo",
  178. headerAlign: "center",
  179. align: "left",
  180. columnLabel: "Supplier No",
  181. columnWidth: '100',
  182. columnHidden: false,
  183. columnImage: false,
  184. columnSortable: false,
  185. sortLv: 0,
  186. status: true,
  187. fixed: false
  188. },
  189. {
  190. userId: this.$store.state.user.name,
  191. functionId: this.functionId,
  192. serialNumber: '811010Table1SupplierName',
  193. tableId: "811010Table1",
  194. tableName: "供应商等级变更申请",
  195. columnProp: "supplierName",
  196. headerAlign: "center",
  197. align: "left",
  198. columnLabel: "Supplier Name",
  199. columnWidth: '240',
  200. columnHidden: false,
  201. columnImage: false,
  202. columnSortable: false,
  203. sortLv: 0,
  204. status: true,
  205. fixed: false
  206. },
  207. {
  208. userId: this.$store.state.user.name,
  209. functionId: this.functionId,
  210. serialNumber: '811010Table1OldSupplierGroup',
  211. tableId: "811010Table1",
  212. tableName: "供应商等级变更申请",
  213. columnProp: "oldSupplierGroup",
  214. headerAlign: "center",
  215. align: "left",
  216. columnLabel: "Old Supplier Group",
  217. columnWidth: '120',
  218. columnHidden: false,
  219. columnImage: false,
  220. columnSortable: false,
  221. sortLv: 0,
  222. status: true,
  223. fixed: false
  224. },
  225. {
  226. userId: this.$store.state.user.name,
  227. functionId: this.functionId,
  228. serialNumber: '811010Table1NewSupplierGroup',
  229. tableId: "811010Table1",
  230. tableName: "供应商等级变更申请",
  231. columnProp: "newSupplierGroup",
  232. headerAlign: "center",
  233. align: "left",
  234. columnLabel: "New Supplier Group",
  235. columnWidth: '120',
  236. columnHidden: false,
  237. columnImage: false,
  238. columnSortable: false,
  239. sortLv: 0,
  240. status: true,
  241. fixed: false
  242. },
  243. {
  244. userId: this.$store.state.user.name,
  245. functionId: this.functionId,
  246. serialNumber: '811010Table1Reason',
  247. tableId: "811010Table1",
  248. tableName: "供应商等级变更申请",
  249. columnProp: "reason",
  250. headerAlign: "center",
  251. align: "left",
  252. columnLabel: "Reason",
  253. columnWidth: '200',
  254. columnHidden: false,
  255. columnImage: false,
  256. columnSortable: false,
  257. sortLv: 0,
  258. status: true,
  259. fixed: false
  260. },
  261. {
  262. userId: this.$store.state.user.name,
  263. functionId: this.functionId,
  264. serialNumber: '811010Table1Status',
  265. tableId: "811010Table1",
  266. tableName: "供应商等级变更申请",
  267. columnProp: "status",
  268. headerAlign: "center",
  269. align: "center",
  270. columnLabel: "Status",
  271. columnWidth: '80',
  272. columnHidden: false,
  273. columnImage: false,
  274. columnSortable: false,
  275. sortLv: 0,
  276. status: true,
  277. fixed: false
  278. },
  279. {
  280. userId: this.$store.state.user.name,
  281. functionId: this.functionId,
  282. serialNumber: '811010Table1RequestBy',
  283. tableId: "811010Table1",
  284. tableName: "供应商等级变更申请",
  285. columnProp: "requestBy",
  286. headerAlign: "center",
  287. align: "left",
  288. columnLabel: "Request By",
  289. columnWidth: '100',
  290. columnHidden: false,
  291. columnImage: false,
  292. columnSortable: false,
  293. sortLv: 0,
  294. status: true,
  295. fixed: false
  296. },
  297. ],
  298. }
  299. },
  300. /*组件*/
  301. components: {
  302. Chooselist,
  303. },
  304. mounted() {
  305. this.$nextTick(() => {
  306. this.height = window.innerHeight - 220;
  307. })
  308. },
  309. methods: {
  310. // 获取基础数据列表S
  311. getBaseList(val, type) {
  312. this.tagNo = val
  313. this.$nextTick(() => {
  314. let strVal = ''
  315. if (val === 1100) {
  316. strVal = this.searchData.supplierNo
  317. }
  318. this.$refs.baseList.init(val, strVal)
  319. })
  320. },
  321. /* 列表方法的回调 */
  322. getBaseData(val) {
  323. if (this.tagNo === 1100) {
  324. this.searchData.supplierNo = val.supplier_no
  325. }
  326. },
  327. getMainData(){
  328. this.searchData.limit = this.pageSize
  329. this.searchData.page = this.pageIndex
  330. getSupplierGroupRequestList(this.searchData).then(({data}) => {
  331. if (data.code === 0) {
  332. this.mainDataList = data.page.list
  333. this.pageIndex = data.page.currPage
  334. this.pageSize = data.page.pageSize
  335. this.totalPage = data.page.totalCount
  336. }
  337. this.dataListLoading = false
  338. })
  339. },
  340. // 每页数
  341. sizeChangeHandle (val) {
  342. this.pageSize = val
  343. this.pageIndex = 1
  344. this.getMainData()
  345. },
  346. // 当前页
  347. currentChangeHandle (val) {
  348. this.pageIndex = val
  349. this.getMainData()
  350. },
  351. async exportExcel() {
  352. this.searchData.limit = -1
  353. this.searchData.page = 1
  354. excel.exportTable({
  355. url: "/srmSupplier/getSupplierGroupRequestList",
  356. columnMapping: this.columnList1,//可以直接用table,不需要的列就剔除
  357. mergeSetting: [],//需要合并的列
  358. params: this.searchData,
  359. fileName: this.exportName+".xlsx",
  360. rowFetcher: res => res.data,
  361. columnFormatter: [],
  362. dropColumns: [],//需要剔除的列,例如dropColumns: ["netWeight"],即剔除净重列
  363. });
  364. },
  365. },
  366. created() {
  367. //查询报表的类型
  368. this.getMainData();
  369. },
  370. }
  371. </script>
  372. <!--当前页面的标签样式-->
  373. <style scoped lang="scss">
  374. </style>