斯瑞奇mes前端
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.

233 lines
7.4 KiB

  1. <template>
  2. <div class="mod-config">
  3. <el-form v-model="searchData">
  4. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 5px;" >
  5. <el-form-item :label="'仓库名称:'">
  6. <el-input v-model="searchData.warehouseName" style="width: 120px"></el-input>
  7. </el-form-item>
  8. <el-form-item :label="' '">
  9. <el-button @click="refreshPageTables()" style="margin-left: 0px" type="primary">查询</el-button>
  10. <el-button @click="addOrUpdateModal('Y')" style="margin-left: 14px" type="primary">新增</el-button>
  11. <el-button @click="addOrUpdateModal('N')" style="margin-left: 14px" type="primary">修改</el-button>
  12. </el-form-item>
  13. <el-form-item :label="' '">
  14. <download-excel
  15. :fields="fields()"
  16. type="xls"
  17. :name="exportName"
  18. :fetch="createExportData"
  19. worksheet="导出信息"
  20. class="el-button el-button--primary el-button--medium">
  21. {{ '导出' }}
  22. </download-excel>
  23. </el-form-item>
  24. </el-form>
  25. </el-form>
  26. <el-table
  27. :height="height"
  28. :data="tableData"
  29. ref="fileTable"
  30. highlight-current-row
  31. @row-click="setCurrentRow"
  32. @current-change="changeCurrentRow"
  33. border
  34. style="width: 100%">
  35. <el-table-column
  36. v-for="(item,index) in columnList" :key="index"
  37. :sortable="item.columnSortable"
  38. :prop="item.columnProp"
  39. header-align="center"
  40. :show-overflow-tooltip="item.showOverflowTooltip"
  41. :align="item.align"
  42. :fixed="item.fixed==''?false:item.fixed"
  43. :min-width="item.columnWidth"
  44. :label="item.columnLabel">
  45. <template slot-scope="scope">
  46. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  47. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  48. style="width: 100px; height: 80px"/></span>
  49. </template>
  50. </el-table-column>
  51. </el-table>
  52. <!--新增或者修改-->
  53. <comAddUpdateWarehouse ref="comAddUpdateWarehouse" @refreshPageTables="refreshPageTables" v-drag></comAddUpdateWarehouse>
  54. </div>
  55. </template>
  56. <script>
  57. import comAddUpdateWarehouse from "./com_add_update_warehouse";
  58. import {
  59. getSalesOrderWarehouse,
  60. } from '@/api/jst/sales_order_warehouse.js'
  61. import Vue from 'vue'
  62. export default {
  63. name: 'salesOrder',
  64. data () {
  65. return {
  66. // 导出+动态列 start
  67. exportData: [],
  68. exportName: '发货仓表' + this.getStrDate(),
  69. columnList: [
  70. {
  71. tableId: 'warehouseHist',
  72. tableName: this.$route.meta.title,
  73. columnProp: 'warehouseName',
  74. columnLabel: '仓库名称',
  75. columnHidden: false,
  76. columnImage: false,
  77. columnSortable: false,
  78. columnWidth: 30,
  79. format: null,
  80. functionId: this.$route.meta.menuId,
  81. sortLv: 0,
  82. status: true,
  83. fixed: '',
  84. serialNumber: null,
  85. columnType: null,
  86. align: 'left'
  87. },
  88. {
  89. tableId: 'warehouseHist',
  90. tableName: this.$route.meta.title,
  91. columnProp: 'warehouseType',
  92. columnLabel: '仓库类型',
  93. columnHidden: false,
  94. columnImage: false,
  95. columnSortable: false,
  96. columnWidth: 60,
  97. format: null,
  98. functionId: this.$route.meta.menuId,
  99. sortLv: 0,
  100. status: true,
  101. fixed: '',
  102. serialNumber: null,
  103. columnType: null,
  104. align: 'left'
  105. },
  106. {
  107. tableId: 'warehouseHist',
  108. tableName: this.$route.meta.title,
  109. columnProp: 'createdDate',
  110. columnLabel: '创建时间',
  111. columnHidden: false,
  112. columnImage: false,
  113. columnSortable: false,
  114. columnWidth: 60,
  115. format: null,
  116. functionId: this.$route.meta.menuId,
  117. sortLv: 0,
  118. status: true,
  119. fixed: '',
  120. serialNumber: null,
  121. columnType: null,
  122. align: 'left'
  123. },
  124. ],
  125. currentRow:{},
  126. visible: false,
  127. // 导出 end
  128. height: 200,
  129. tableData: [],
  130. searchData: {
  131. warehouseName: '',
  132. },
  133. }
  134. },
  135. components: {
  136. comAddUpdateWarehouse,/*新增或修改*/
  137. },
  138. mounted () {
  139. this.$nextTick(() => {
  140. this.height = window.innerHeight - 150
  141. })
  142. },
  143. methods: {
  144. refreshPageTables () {
  145. getSalesOrderWarehouse(this.searchData).then(({data}) => {
  146. this.tableData = data.rows;
  147. if(data.total > 0){
  148. //设置选中行
  149. this.$refs.fileTable.setCurrentRow(this.tableData[0]);
  150. }
  151. })
  152. },
  153. /*设置工艺的行*/
  154. setCurrentRow(row, column, event) {
  155. this.currentRow = row;
  156. },
  157. // 选中记录
  158. /*当前值发生变化的时候修改*/
  159. changeCurrentRow(row, oldRow){
  160. //判断是否是获取焦点的事件
  161. if(row){
  162. this.currentRow = JSON.parse(JSON.stringify(row));
  163. }
  164. },
  165. // 导出+动态列
  166. fields () {
  167. let json = '{'
  168. this.columnList.forEach((item, index) => {
  169. if (index === this.columnList.length - 1) {
  170. json += '"' + item.columnLabel + '"' + ':' + '"' + item.columnProp + '"'
  171. } else {
  172. json += '"' + item.columnLabel + '"' + ':' + '"' + item.columnProp + '"' + ','
  173. }
  174. })
  175. json += '}'
  176. return eval('(' + json + ')')
  177. },
  178. createExportData () {
  179. // 点击导出按钮之后,开始导出数据之前的执行函数,返回值为需要下载的数据
  180. return this.tableData
  181. },
  182. getStrDate () {
  183. let dd = new Date()
  184. let Y = dd.getFullYear()
  185. let M = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1)// 获取当前月份的日期,不足10补0
  186. let D = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate()// 获取当前几号,不足10补0
  187. let H = dd.getHours() < 10 ? '0' + dd.getHours() : dd.getHours()
  188. let MM = dd.getMinutes() < 10 ? '0' + dd.getMinutes() : dd.getMinutes()
  189. let S = dd.getSeconds() < 10 ? '0' + dd.getSeconds() : dd.getSeconds()
  190. return Y + M + D + H + MM + S
  191. },
  192. /*新增或修改的modal*/
  193. addOrUpdateModal(addFlag){
  194. //打开组件 去做新增业务
  195. this.$nextTick(() => {
  196. //区分是否是新增
  197. if('Y' === addFlag){
  198. this.$refs.comAddUpdateWarehouse.init({}, addFlag);
  199. }else{
  200. this.$refs.comAddUpdateWarehouse.init(this.currentRow, addFlag);
  201. }
  202. })
  203. },
  204. },
  205. created() {
  206. this.refreshPageTables();
  207. // this.getLanguageList()
  208. }
  209. }
  210. </script>
  211. <style scoped>
  212. </style>