乐天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.

372 lines
12 KiB

4 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 3px;margin-left: 2px" >
  4. <el-form-item label="栈板编码">
  5. <el-input v-model="searchData.palletNo" style="width: 120px"></el-input>
  6. </el-form-item>
  7. <el-form-item label="录入日期">
  8. <el-date-picker
  9. style="width: 120px"
  10. v-model="searchData.date1"
  11. type="date"
  12. value-format="yyyy-MM-dd"
  13. placeholder="选择日期">
  14. </el-date-picker>
  15. </el-form-item>
  16. <el-form-item label="至">
  17. <el-date-picker
  18. style="width: 120px"
  19. v-model="searchData.date2"
  20. type="date"
  21. value-format="yyyy-MM-dd"
  22. placeholder="选择日期">
  23. </el-date-picker>
  24. </el-form-item>
  25. <el-form-item >
  26. <span slot="label" style="" @click="getBaseList(22)"><a herf="#">当前位置</a></span>
  27. <el-input v-model="searchData.locationName" style="width: 120px"></el-input>
  28. </el-form-item>
  29. <el-form-item label="是否可用">
  30. <el-select filterable v-model="searchData.status" style="width: 120px">
  31. <el-option label="是" value="('空置','已装货')"></el-option>
  32. <el-option label="否" value="('已入库','已出库','报废')"></el-option>
  33. <el-option label="全部" value=""></el-option>
  34. </el-select>
  35. <el-button type="primary" @click="getPalletData()">查询</el-button>
  36. <!-- <el-button type="primary" @click="newPallet()">新增</el-button>-->
  37. <!-- <el-button type="primary" @click="prints()">批量打印</el-button>-->
  38. </el-form-item>
  39. </el-form>
  40. <el-table
  41. :height="height"
  42. :data="palletList"
  43. border
  44. @selection-change="selectionChangeHandle"
  45. style="width: 100%">
  46. <el-table-column
  47. prop=""
  48. header-align="center"
  49. align="center"
  50. width="120"
  51. label="操作">
  52. <template slot-scope="scope" class="foo_container">
  53. <a type="text" size="small" @click="editModal(scope.row)">编辑</a>
  54. </template>
  55. </el-table-column>
  56. <el-table-column
  57. type="selection"
  58. align="center"
  59. width="30">
  60. </el-table-column>
  61. <el-table-column
  62. prop="palletNo"
  63. header-align="center"
  64. align="left"
  65. min-width="100"
  66. label="栈板编码">
  67. </el-table-column>
  68. <el-table-column
  69. prop="palletDesc"
  70. header-align="center"
  71. align="left"
  72. min-width="100"
  73. label="栈板名称">
  74. </el-table-column>
  75. <el-table-column
  76. prop="status"
  77. header-align="center"
  78. align="left"
  79. min-width="100"
  80. label="状态">
  81. </el-table-column>
  82. <el-table-column
  83. prop="area"
  84. header-align="center"
  85. align="left"
  86. min-width="100"
  87. label="所属区域">
  88. </el-table-column>
  89. <el-table-column
  90. prop="currentLocation"
  91. header-align="center"
  92. align="left"
  93. min-width="100"
  94. label="当前位置">
  95. </el-table-column>
  96. <el-table-column
  97. prop="createdDate"
  98. header-align="center"
  99. align="left"
  100. min-width="100"
  101. label="录入日期">
  102. </el-table-column>
  103. <el-table-column
  104. prop="createdBy"
  105. header-align="center"
  106. align="left"
  107. min-width="100"
  108. label="录入人">
  109. </el-table-column>
  110. </el-table>
  111. <el-dialog title="维护栈板" :close-on-click-modal="false" v-drag :visible.sync="palletModalFlag" width="300px">
  112. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  113. <el-form-item label="栈板编码">
  114. <el-input v-model="palletData.palletNo" disabled style="width: 120px"></el-input>
  115. </el-form-item>
  116. <el-form-item label="栈板名称">
  117. <el-input v-model="palletData.palletDesc" style="width: 120px"></el-input>
  118. </el-form-item>
  119. <el-form-item label="栈板状态">
  120. <el-select filterable v-model="palletData.status" :disabled="palletSelectFlag" style="width: 120px">
  121. <el-option label="空置" value="空置"></el-option>
  122. <el-option label="已装货" value="已装货"></el-option>
  123. <el-option label="已入库" value="已入库"></el-option>
  124. <el-option label="已出库" value="已出库"></el-option>
  125. <el-option label="报废" value="报废"></el-option>
  126. </el-select>
  127. </el-form-item>
  128. <el-form-item label="区域">
  129. <el-input v-model="palletData.area" style="width: 120px"></el-input>
  130. </el-form-item>
  131. </el-form>
  132. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  133. <el-button type="primary" @click="savePallet">保存</el-button>
  134. <el-button type="primary" @click="addsModal" v-if="palletSelectFlag">批量新增</el-button>
  135. <el-button type="primary" @click="palletModalFlag = false">关闭</el-button>
  136. </el-footer>
  137. </el-dialog>
  138. <el-dialog title="新增数量" :close-on-click-modal="false" v-drag :visible.sync="addsModalFlag" width="200px">
  139. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  140. <el-form-item style="margin-left: 16px;margin-top: 15px">
  141. <el-input v-model="addQty" type="number" style="width: 120px" onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')"></el-input>
  142. </el-form-item>
  143. </el-form>
  144. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  145. <el-button type="primary" @click="saveAdds">保存</el-button>
  146. <el-button type="primary" @click="addsModalFlag = false">关闭</el-button>
  147. </el-footer>
  148. </el-dialog>
  149. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  150. </div>
  151. </template>
  152. <script>
  153. import {savePallet,
  154. getPalletData,
  155. savePalletAdds,
  156. printPallet,
  157. } from '@/api/production/pallet.js'
  158. /*打印标签专用的js*/
  159. import Chooselist from '@/views/modules/common/Chooselist'
  160. import {
  161. printMaterialLabel,
  162. } from "@/views/modules/pallet/print_pallet_label.js"
  163. export default {
  164. name: "palletAdmin",
  165. components: {
  166. Chooselist
  167. },
  168. data() {
  169. return {
  170. height: 200,
  171. searchData:{
  172. palletNo:'',
  173. status:"('空置','已装货')",
  174. date1:'',
  175. date2:'',
  176. locationName:'',
  177. },
  178. dataListSelections:'',
  179. addStatus:'',
  180. palletData:{
  181. palletNo:'',
  182. palletDesc:'',
  183. status:'',
  184. id:'',
  185. site:'',
  186. area:'',
  187. createdBy:'',
  188. updateBy:'',
  189. },
  190. palletList:[],
  191. palletSelectFlag:false,
  192. palletInputFlag:false,
  193. palletModalFlag:false,
  194. addsModalFlag:false,
  195. addQty:'',
  196. }
  197. },
  198. mounted() {
  199. this.$nextTick(() => {
  200. this.height = window.innerHeight - 240;
  201. })
  202. },
  203. methods: {
  204. getBaseData(val){
  205. if (this.tagNo === 22){
  206. this.searchData.locationName = val.LocationName
  207. }
  208. },
  209. // 获取基础数据列表
  210. getBaseList(val){
  211. this.tagNo = val
  212. this.$nextTick(() => {
  213. let strVal = "";
  214. if (val === 22){
  215. strVal = this.searchData.locationName
  216. }
  217. this.$refs.baseList.init(val,strVal)
  218. })
  219. },
  220. selectionChangeHandle (val) {
  221. this.dataListSelections = val
  222. },
  223. newPallet(){
  224. this.palletData.palletNo='系统自动生成';
  225. this.palletData.palletDesc='';
  226. this.palletData.status='空置';
  227. this.palletData.id=0;
  228. this.palletData.site=this.$store.state.user.site;
  229. this.palletData.area='';
  230. this.palletData.createdBy=this.$store.state.user.name;
  231. this.palletSelectFlag=true;
  232. this.palletInputFlag=false;
  233. this.palletModalFlag=true;
  234. },
  235. editModal(row){
  236. this.palletData.palletNo=row.palletNo;
  237. this.palletData.palletDesc=row.palletDesc;
  238. this.palletData.status=row.status;
  239. this.palletData.id=row.id;
  240. this.palletData.site=this.$store.state.user.site;
  241. this.palletData.updateBy=this.$store.state.user.name;
  242. this.palletData.area=row.area;
  243. if(row.status!='报废'){
  244. this.addStatus=row.status;
  245. }else {
  246. this.addStatus='空置';
  247. }
  248. this.palletSelectFlag=false;
  249. this.palletInputFlag=true;
  250. this.palletModalFlag=true;
  251. },
  252. savePallet(){
  253. if(this.palletData.palletDesc==""||this.palletData.palletDesc==null){
  254. this.$alert('栈板名称不能为空!', '错误', {
  255. confirmButtonText: '确定'
  256. })
  257. return false
  258. }
  259. savePallet(this.palletData).then(({data}) => {
  260. if(data.code===0){
  261. this.getPalletData();
  262. this.palletModalFlag=false;
  263. this.$message({
  264. message: '保存成功',
  265. type: 'success',
  266. duration: 1500,
  267. onClose: () => {
  268. }
  269. })
  270. }else {
  271. this.$alert(data.msg, '错误', {
  272. confirmButtonText: '确定'
  273. })
  274. }
  275. })
  276. },
  277. getPalletData(){
  278. getPalletData(this.searchData).then(({data}) => {
  279. if(data.code===0){
  280. this.palletList=data.rows;
  281. }else {
  282. this.$alert(data.msg, '错误', {
  283. confirmButtonText: '确定'
  284. })
  285. }
  286. })
  287. },
  288. addsModal(){
  289. if(this.palletData.palletDesc==""||this.palletData.palletDesc==null){
  290. this.$alert('栈板名称不能为空!', '错误', {
  291. confirmButtonText: '确定'
  292. })
  293. return false
  294. }
  295. this.addQty='';
  296. this.addsModalFlag=true;
  297. },
  298. saveAdds(){
  299. if(this.addQty==""||this.addQty==null){
  300. this.$alert('请输入数量!', '错误', {
  301. confirmButtonText: '确定'
  302. })
  303. return false
  304. }
  305. if(this.addQty>200){
  306. this.$alert('批量新增数量上限为200!', '错误', {
  307. confirmButtonText: '确定'
  308. })
  309. return false
  310. }
  311. let inData={
  312. qty:this.addQty,
  313. area:this.palletData.area,
  314. palletDesc:this.palletData.palletDesc,
  315. status:this.palletData.status,
  316. id:this.palletData.id,
  317. site:this.palletData.site,
  318. createdBy:this.palletData.createdBy,
  319. }
  320. savePalletAdds(inData).then(({data}) => {
  321. if(data.code===0){
  322. this.getPalletData();
  323. this.addsModalFlag=false;
  324. this.palletModalFlag=false;
  325. this.$message({
  326. message: '保存成功',
  327. type: 'success',
  328. duration: 1500,
  329. onClose: () => {
  330. }
  331. })
  332. }else {
  333. this.$alert(data.msg, '错误', {
  334. confirmButtonText: '确定'
  335. })
  336. }
  337. })
  338. },
  339. print(row){
  340. let array=[];
  341. let data={palletNo:row.palletNo}
  342. array.push(data);
  343. printMaterialLabel(array);
  344. },
  345. prints(){
  346. if(this.dataListSelections.length==0){
  347. this.$alert('请勾选需要打印的栈板!','错误',{
  348. confirmButtonText: '确定'
  349. })
  350. return false;
  351. }
  352. let array=[];
  353. for (let i = 0; i <this.dataListSelections.length ; i++) {
  354. let data={palletNo:this.dataListSelections[i].palletNo}
  355. array.push(data);
  356. }
  357. printMaterialLabel(array);
  358. }
  359. },
  360. created() {
  361. this.getPalletData();
  362. }
  363. }
  364. </script>
  365. <style scoped>
  366. </style>