getGradesAndSpecifications.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. <template>
  2. <!-- 查询WMS及炼钢MES钢种规格数据 -->
  3. <div class="getGradesAndSpecifications">
  4. <div class="box">
  5. <div class="box-top">
  6. <el-form style="overflow: hidden;" :style="filterForm.show ? null : { height: '0px' }"
  7. class="box-top-form" size="mini" label-width="80px">
  8. <el-row>
  9. <el-col :span="6">
  10. <el-form-item label="WMS钢种">
  11. <el-input clearable v-model="filterForm.data.steelName"
  12. placeholder="WMS钢种: HPB235" style="width: 95%;" ></el-input>
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="6">
  16. <el-form-item label="WMS规格">
  17. <el-input clearable v-model="filterForm.data.specName"
  18. placeholder="WMS规格: 12.5" style="width: 95%;" ></el-input>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :span="6">
  22. <el-form-item label="炼钢钢种">
  23. <el-input clearable v-model="filterForm.data.name"
  24. placeholder="炼钢钢种: 750×370×90×95" style="width: 98%;"></el-input>
  25. </el-form-item>
  26. </el-col>
  27. </el-row>
  28. </el-form>
  29. <div class="box-top-gjl">
  30. <el-row :gutter="10">
  31. <el-col :span="8">
  32. <div style="float:right; text-align: right;">
  33. <el-button class="button" type="primary" size="mini" icon="el-icon-search"
  34. v-privilege="activeMenu + 'QUERY'" :loading="rightTable.loading" @click="getWMSGrades()" >查询</el-button>
  35. </div>
  36. </el-col>
  37. <el-col :span="8">
  38. <div style="float:right; text-align: right;">
  39. <el-button class="button" type="primary" size="mini" icon="el-icon-search"
  40. v-privilege="activeMenu + 'QUERY'" :loading="rightTable.loading" @click="getWMSSpecifications()" >查询</el-button>
  41. </div>
  42. </el-col>
  43. <el-col :span="8">
  44. <div style="float:right; text-align: right;">
  45. <el-button class="button" type="primary" size="mini" icon="el-icon-search"
  46. v-privilege="activeMenu + 'QUERY'" :loading="rightTable.loading" @click="getLgMESSpecifications()" >查询</el-button>
  47. <el-button class="button" type="primary" size="mini" icon="el-icon-refresh"
  48. v-privilege="activeMenu + 'QUERY'" :loading="rightTable.loading" @click="tableDataCancel();" >重置</el-button>
  49. <el-button size="mini" :icon="filterForm.show ? 'el-icon-caret-top' : 'el-icon-caret-bottom'"
  50. :title="filterForm.show ? '收起搜索区' : '展开搜索区'" @click="filterForm.show = !filterForm.show;
  51. $nextTick(() => { singleTableHeight = getRoleHeight($refs['singleTable'].$el) - 45; });"
  52. >{{ filterForm.show ? '收起' : '展开' }}</el-button>
  53. </div>
  54. </el-col>
  55. </el-row>
  56. </div>
  57. </div>
  58. <div class="box-bottom">
  59. <el-row :gutter="10" ref="singleTable">
  60. <el-col :span="8">
  61. <el-table stripe border highlight-current-row id="leftSingleTable" ref="leftSingleTable" style="width: 100%;" size="mini"
  62. :data="leftFrontEndPageChange" title="WMS钢种信息" v-loading="leftTable.loading" :height="singleTableHeight" show-summary :summary-method="getSummaries">
  63. <el-table-column sortable prop="steelName" label="WMS钢种" min-width="86px" align="center"
  64. :show-overflow-tooltip="true">
  65. </el-table-column>
  66. </el-table>
  67. <el-pagination layout="total, sizes, prev, pager, next, jumper" style="text-align: right;margin-top: 10px;"
  68. :page-sizes="[10, 20, 50, 100, 500, 1000]"
  69. :total="leftTable.total" :page-size="leftTable.pageSize" :current-page.sync="leftTable.pageNum"
  70. @size-change="leftTableSizeChange" ></el-pagination>
  71. </el-col>
  72. <el-col :span="8">
  73. <el-table stripe border highlight-current-row id="centerSingleTable" ref="centerSingleTable" style="width: 100%;" size="mini"
  74. :data="centerFrontEndPageChange" label="WMS规格信息" v-loading="centerTable.loading" :height="singleTableHeight" show-summary :summary-method="getSummaries">
  75. <el-table-column sortable prop="specName" label="WMS规格" min-width="86px" align="center"
  76. :show-overflow-tooltip="true">
  77. </el-table-column>
  78. </el-table>
  79. <el-pagination layout="total, sizes, prev, pager, next, jumper" style="text-align: right;margin-top: 10px;"
  80. :page-sizes="[10, 20, 50, 100, 500, 1000]"
  81. :total="centerTable.total" :page-size="centerTable.pageSize" :current-page.sync="centerTable.pageNum"
  82. @size-change="centerTableSizeChange" ></el-pagination>
  83. </el-col>
  84. <el-col :span="8">
  85. <el-table stripe border highlight-current-row id="rightSingleTable" ref="rightSingleTable" style="width: 100%;" size="mini"
  86. :data="rightFrontEndPageChange" label="炼钢钢种信息" v-loading="rightTable.loading" :height="singleTableHeight" show-summary :summary-method="getSummaries">
  87. <el-table-column sortable prop="name" label="炼钢钢种" min-width="86px" align="center"
  88. :show-overflow-tooltip="true">
  89. </el-table-column>
  90. </el-table>
  91. <el-pagination layout="total, sizes, prev, pager, next, jumper" style="text-align: right;margin-top: 10px;"
  92. :page-sizes="[10, 20, 50, 100, 500, 1000]"
  93. :total="rightTable.total" :page-size="rightTable.pageSize" :current-page.sync="rightTable.pageNum"
  94. @size-change="rightTableSizeChange" ></el-pagination>
  95. </el-col>
  96. </el-row>
  97. </div>
  98. </div>
  99. </div>
  100. </template>
  101. <script>
  102. import { zCheckNumber1 } from '~/utils/validator.js';
  103. import store from '@/store/index.js';
  104. import {formatDate, XtcommonSummaries} from '@/utils/util.js';
  105. export default {
  106. name: 'getGradesAndSpecifications',
  107. data () {
  108. return {
  109. activeMenu: '',
  110. singleTableHeight: 100,
  111. filterForm: {
  112. show: true,
  113. data: {
  114. steelName: '',
  115. specName: '',
  116. name: ''
  117. }
  118. },
  119. leftTable: {
  120. total: 0,
  121. pageNum: 1,
  122. pageSize: 20,
  123. loading: false,
  124. tableLoading: false,
  125. tableData: {
  126. arr: [],
  127. obj: {}
  128. }
  129. },
  130. centerTable: {
  131. total: 0,
  132. pageNum: 1,
  133. pageSize: 20,
  134. loading: false,
  135. tableLoading: false,
  136. tableData: {
  137. arr: [],
  138. obj: {}
  139. }
  140. },
  141. rightTable: {
  142. total: 0,
  143. pageNum: 1,
  144. pageSize: 20,
  145. loading: false,
  146. tableLoading: false,
  147. tableData: {
  148. arr: [],
  149. obj: {}
  150. }
  151. }
  152. }
  153. },
  154. created () {
  155. this.activeMenu = window.localStorage.getItem('activeMenu');
  156. },
  157. mounted () {
  158. let that = this;
  159. window.PEDataObj = {
  160. // 将数据绑定到window上,供main页面使用
  161. vm: that,
  162. // tableArr:用于导出成Excel的表格的信息
  163. tableArr: [{
  164. name: 'WMS钢种信息',
  165. id: 'leftSingleTable'
  166. }, {
  167. name: 'WMS规格信息',
  168. id: 'centerSingleTable'
  169. }, {
  170. name: '炼钢钢种信息',
  171. id: 'rightSingleTable'
  172. }]
  173. };
  174. that.$nextTick(() => {
  175. // 立即获取的height有一定偏差,通过setTimeout延迟来解决
  176. setTimeout(() => {
  177. that.singleTableHeight = that.getRoleHeight(that.$refs['singleTable'].$el) - 45;
  178. }, 100);
  179. });
  180. // 这里写页面加载需要调用的代码
  181. that.getTableData();
  182. },
  183. computed: {
  184. leftFrontEndPageChange () {
  185. let that = this;
  186. let Tdata = [];
  187. let start = (that.leftTable.pageNum - 1) * that.leftTable.pageSize;
  188. if (start >= that.leftTable.tableData.arr.length) start = 0;
  189. let end = that.leftTable.pageNum * that.leftTable.pageSize;
  190. if (end >= that.leftTable.tableData.arr.length) end = that.leftTable.tableData.arr.length;
  191. that.leftTable.total = that.leftTable.tableData.arr.length;
  192. Tdata = that.leftTable.tableData.arr;
  193. Tdata = Tdata.filter(data => (!that.filterForm.data.steelName || !data.steelName) || data.steelName.toLowerCase()
  194. .includes(that.filterForm.data.steelName.toLowerCase()));
  195. that.leftTable.total = Tdata.length;
  196. return Tdata.slice(start, end);
  197. },
  198. centerFrontEndPageChange () {
  199. let that = this;
  200. let Tdata = [];
  201. let start = (that.centerTable.pageNum - 1) * that.centerTable.pageSize;
  202. if (start >= that.centerTable.tableData.arr.length) start = 0;
  203. let end = that.centerTable.pageNum * that.centerTable.pageSize;
  204. if (end >= that.centerTable.tableData.arr.length) end = that.centerTable.tableData.arr.length;
  205. that.centerTable.total = that.centerTable.tableData.arr.length;
  206. Tdata = that.centerTable.tableData.arr;
  207. Tdata = Tdata.filter(data => (!that.filterForm.data.specName || !data.specName) || data.specName.toLowerCase()
  208. .includes(that.filterForm.data.specName.toLowerCase()));
  209. that.centerTable.total = Tdata.length;
  210. return Tdata.slice(start, end);
  211. },
  212. rightFrontEndPageChange () {
  213. let that = this;
  214. let Tdata = [];
  215. let start = (that.rightTable.pageNum - 1) * that.rightTable.pageSize;
  216. if (start >= that.rightTable.tableData.arr.length) start = 0;
  217. let end = that.rightTable.pageNum * that.rightTable.pageSize;
  218. if (end >= that.rightTable.tableData.arr.length) end = that.rightTable.tableData.arr.length;
  219. that.rightTable.total = that.rightTable.tableData.arr.length;
  220. Tdata = that.rightTable.tableData.arr;
  221. Tdata = Tdata.filter(data => (!that.filterForm.data.name || !data.name) || data.name.toLowerCase()
  222. .includes(that.filterForm.data.name.toLowerCase()));
  223. that.rightTable.total = Tdata.length;
  224. return Tdata.slice(start, end);
  225. }
  226. },
  227. methods: {
  228. // 计算树区域高度
  229. getRoleHeight (dom) {
  230. return window.innerHeight - dom.offsetTop;
  231. },
  232. // 自定义的表格合计方法:只给指定列进行合计
  233. getSummaries (param) {
  234. const prop = []; // 合计列绑定的prop
  235. return XtcommonSummaries(param, prop);
  236. },
  237. // 获取表格中的数据
  238. getTableData () {
  239. let that = this;
  240. that.getWMSGrades();
  241. that.getWMSSpecifications();
  242. that.getLgMESSpecifications();
  243. },
  244. // 获取wms钢种
  245. getWMSGrades () {
  246. let that = this, obj = {};
  247. let url = 'pass/product/v1/emssteel/getGrades';
  248. that.leftTable.loading = true;
  249. that.axios.get(url)
  250. .then(function (res) {
  251. if (res.code === '0') {
  252. that.leftTable.tableData.arr = res.data;
  253. }
  254. that.leftTable.loading = false;
  255. }).catch(function () {
  256. that.leftTable.loading = false;
  257. });
  258. },
  259. // 获取wms规格
  260. getWMSSpecifications () {
  261. let that = this, obj = {};
  262. let url = 'pass/product/v1/emssteel/getSpecifications/?type=' + '高线';
  263. that.centerTable.loading = true;
  264. that.axios.get(url)
  265. .then(function (res) {
  266. if (res.code === '0') {
  267. that.centerTable.tableData.arr = res.data;
  268. }
  269. that.centerTable.loading = false;
  270. }).catch(function () {
  271. that.centerTable.loading = false;
  272. });
  273. },
  274. // 获取炼钢规格
  275. getLgMESSpecifications () {
  276. let that = this, obj = {};
  277. let url = 'pass/product/v1/emsvqcmbasespecbillet/getbasespecbillet';
  278. that.rightTable.loading = true;
  279. that.axios.get(url)
  280. .then(function (res) {
  281. if (res.code === '0') {
  282. that.rightTable.tableData.arr = res.data;
  283. }
  284. that.rightTable.loading = false;
  285. }).catch(function () {
  286. that.rightTable.loading = false;
  287. });
  288. },
  289. // 改变表格显示条数
  290. leftTableSizeChange (val) {
  291. let that = this;
  292. that.rightTable.pageSize = val;
  293. },
  294. // 改变表格显示条数
  295. centerTableSizeChange (val) {
  296. let that = this;
  297. that.rightTable.pageSize = val;
  298. },
  299. // 改变表格显示条数
  300. rightTableSizeChange (val) {
  301. let that = this;
  302. that.rightTable.pageSize = val;
  303. },
  304. // 重置搜索
  305. tableDataCancel () {
  306. let that = this;
  307. that.filterForm.data.steelName = '';
  308. that.filterForm.data.specName = '';
  309. that.filterForm.data.name = '';
  310. },
  311. rounding (row, column) {
  312. return parseFloat(row[column.property]).toFixed(2)
  313. }
  314. }
  315. }
  316. </script>
  317. <style lang="less">
  318. .getGradesAndSpecifications {
  319. min-width: 700px;
  320. height: 100%;
  321. .box {
  322. height: 100%;
  323. padding: 15px 15px 0 15px;
  324. .box-left {
  325. float: left;
  326. width: 200px;
  327. height: calc(100% - 3px);
  328. overflow: auto;
  329. .box-left-bt {
  330. line-height: 35px;
  331. font-size: 16px;
  332. border-bottom: 1px solid #ccc;
  333. }
  334. .box-left-tree {
  335. height: calc(100% - 50px);
  336. overflow: auto;
  337. padding: 7px 7px 0 0;
  338. .tree-row-on {
  339. color: #3279e8;
  340. font-weight: 600;
  341. }
  342. }
  343. }
  344. .box-top {
  345. .box-top-form {
  346. padding-left: 7px;
  347. .el-form-item {
  348. margin-bottom: 7px;
  349. }
  350. }
  351. .box-top-gjl {
  352. overflow: hidden;
  353. padding: 7px 0 7px 7px;
  354. border-top: 1px solid #ccc;
  355. }
  356. }
  357. .box-bottom {
  358. padding-left: 7px;
  359. }
  360. .el-table .el-table__row {
  361. height: 35px;
  362. }
  363. .el-table__body .el-form-item--mini.el-form-item {
  364. margin: 0px;
  365. .error {
  366. overflow: hidden;
  367. color: #f56c6c;
  368. font-size: 12px;
  369. line-height: 1;
  370. }
  371. }
  372. }
  373. .color_no {
  374. color: #7a7a7a;
  375. }
  376. .color_yes {
  377. color: #1a9f17;
  378. }
  379. }
  380. </style>