steel_inbound.vue 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. //入库转预留
  2. <template>
  3. <div class="steel_inbound03">
  4. <div class="sache">
  5. <el-form :inline="true">
  6. <el-form-item>
  7. <span class="text">预留时间:</span>
  8. <el-date-picker
  9. v-model="startTime"
  10. type="datetime"
  11. placeholder="选择日期"
  12. style="width: 200px;"
  13. >
  14. </el-date-picker>
  15. <span class="text">至</span>
  16. <el-date-picker
  17. v-model="endTime"
  18. type="datetime"
  19. placeholder="选择日期"
  20. style="width: 200px;"
  21. >
  22. </el-date-picker>
  23. </el-form-item>
  24. <el-form-item>
  25. <span class="text">物资类型</span>
  26. <el-autocomplete
  27. v-model="inputText"
  28. :fetch-suggestions="querySearch"
  29. placeholder="请输入内容"
  30. @select="handleSelect"
  31. style="width: 200px;"
  32. ></el-autocomplete>
  33. </el-form-item>
  34. <el-form-item>
  35. <el-button type="primary" class="btn" @click="onclick">
  36. <i class="el-icon-search"></i>查询
  37. </el-button>
  38. <el-button type="primary" class="btn" @click="onreserved">
  39. 入库
  40. </el-button>
  41. <el-button type="primary" class="btn" @click="exportAllReportToExcel">
  42. 导出
  43. </el-button>
  44. </el-form-item>
  45. </el-form>
  46. </div>
  47. <div class="table">
  48. <dilTable
  49. v-if="tableShow"
  50. :selectionType="selectionType"
  51. v-bind.sync="options"
  52. @func="func"
  53. >
  54. </dilTable>
  55. </div>
  56. </div>
  57. </template>
  58. <script>
  59. import { sjTime } from '@/utils/sharedJsFile'
  60. export default {
  61. data() {
  62. return {
  63. tableTitle: '高线预留转入库(未上传金蝶)',
  64. tableShow: false,
  65. selectionType: '',
  66. inputText: '',
  67. startTime: null,
  68. endTime: null,
  69. options: {
  70. // first请求数据的地址
  71. requestUrl: ''
  72. // selectionType: "select",
  73. // mapList: [],
  74. },
  75. dataColumnData: [],
  76. totalArr: []
  77. }
  78. },
  79. mounted() {
  80. var date = new Date()
  81. let dateStr = this.formatDate(date, 'yyyy-MM-dd hh:mm:ss')
  82. this.startTime = Date.parse(new Date(dateStr))
  83. this.endTime = new Date(this.startTime + 86400000)
  84. this.options.requestUrl =
  85. '/api/v1/wms/getWmsInboundResult?apiId=371&warehouseId=' +
  86. 3 +
  87. '&startTime=' +
  88. sjTime(this.startTime) +
  89. '&endTime=' +
  90. sjTime(this.endTime)
  91. this.tableShow = true
  92. },
  93. methods: {
  94. func(res) {
  95. this.dataColumnData = res.columnData
  96. this.totalArr = res.list
  97. console.log(res, 'res')
  98. },
  99. //导出excel
  100. exportAllReportToExcel() {
  101. var title = this.tableTitle
  102. let tHeader = []
  103. let filterVal = []
  104. this.dataColumnData.forEach(e1 => {
  105. if (tHeader.indexOf(e1.label) === -1) {
  106. tHeader.push(e1.label)
  107. }
  108. if (filterVal.indexOf(e1.prop) === -1) {
  109. filterVal.push(e1.prop)
  110. }
  111. })
  112. //导出为excel
  113. this.downloadLoading = true
  114. require.ensure([], () => {
  115. const {
  116. export_json_to_excel
  117. } = require('@/assets/excel/Export2Excel.js') //这里必须使用绝对路径,使用@/+存放export2Excel的路径
  118. // let list = this.$refs.excelDom.dataTabel;
  119. let data = this.totalArr.map(v => filterVal.map(j => v[j])) //3.formatJson格式转换
  120. export_json_to_excel(tHeader, data, title) // (title)导出的表格名称
  121. })
  122. },
  123. formatDate(date, fmt) {
  124. if (/(y+)/.test(fmt)) {
  125. fmt = fmt.replace(
  126. RegExp.$1,
  127. (date.getFullYear() + '').substr(4 - RegExp.$1.length)
  128. )
  129. }
  130. let o = {
  131. 'M+': date.getMonth() + 1,
  132. 'd+': date.getDate(),
  133. 'h+': 0,
  134. 'm+': 0,
  135. 's+': 0
  136. }
  137. for (let k in o) {
  138. if (new RegExp(`(${k})`).test(fmt)) {
  139. let str = o[k] + ''
  140. fmt = fmt.replace(
  141. RegExp.$1,
  142. RegExp.$1.length === 1 ? str : this.padLeftZero(str)
  143. )
  144. }
  145. }
  146. return fmt
  147. },
  148. padLeftZero(str) {
  149. return ('00' + str).substr(str.length)
  150. },
  151. querySearch(queryString, cb) {
  152. var restaurants = [
  153. { value: '螺纹钢' },
  154. { value: '盘螺' },
  155. { value: '乱尺' }
  156. ]
  157. var results = queryString
  158. ? restaurants.filter(this.createFilter(queryString))
  159. : restaurants
  160. // 调用 callback 返回建议列表的数据
  161. cb(results)
  162. },
  163. createFilter(queryString) {
  164. return restaurant => {
  165. return (
  166. restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) > -1
  167. )
  168. }
  169. },
  170. // inboundDetails(scope){
  171. // this.$router.push("/inboundDetails/" + scope.row.inboundId)
  172. // },
  173. onclick() {
  174. let startTime = null
  175. let endTime = null
  176. if (this.startTime) {
  177. startTime = sjTime(this.startTime)
  178. }
  179. if (this.endTime) {
  180. endTime = sjTime(this.endTime)
  181. }
  182. if (startTime && endTime) {
  183. if (startTime < endTime) {
  184. this.options.requestUrl =
  185. '/api/v1/wms/getWmsInboundResult?apiId=371&warehouseId=' +
  186. 3 +
  187. '&startTime=' +
  188. startTime +
  189. '&endTime=' +
  190. endTime +
  191. '&i=' +
  192. new Date()
  193. this.options.requestQuery = {
  194. materialNames: this.inputText
  195. }
  196. // this.selectionType="select";
  197. } else {
  198. this.startTime = null
  199. this.endTime = null
  200. this.$message.warning('开始时间要比结束时间早')
  201. }
  202. } else {
  203. this.$message.warning('没有选择时间段')
  204. // this.getRequestUrl()
  205. }
  206. },
  207. selectionChange(selection) {
  208. this.options.mapList = selection
  209. },
  210. handleSelect(item) {
  211. console.log(item)
  212. },
  213. onreserved() {
  214. this.$router.push({
  215. path: '/addSteelInbound'
  216. })
  217. }
  218. }
  219. }
  220. </script>
  221. <style lang="scss" scoped>
  222. .steel_inbound03 {
  223. .sache {
  224. margin-left: 20px;
  225. margin-top: 20px;
  226. }
  227. .table {
  228. margin-left: 20px;
  229. margin-top: 20px;
  230. }
  231. }
  232. </style>