warehouse.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import { warehouseCascadeList } from '@/api/warehouse'
  2. const Warehouse = {
  3. template: `
  4. <a-cascader
  5. :size="size"
  6. @change="handleChange"
  7. :value="defaultVal"
  8. expand-trigger="hover"
  9. :allowClear="allowClear"
  10. :options="warehouseCascadeData"
  11. :fieldNames="{ label: 'name', value: 'sn', children: 'warehouseLocationList' }"
  12. :id="id"
  13. placeholder="请选择仓库仓位"
  14. style="width: 100%;" />
  15. `,
  16. props: {
  17. value: {
  18. type: Array,
  19. default: function () {
  20. return []
  21. }
  22. },
  23. id: {
  24. type: String,
  25. default: ''
  26. },
  27. allowClear: {
  28. type: Boolean,
  29. default: true
  30. },
  31. size: {
  32. type: String,
  33. default: 'default'
  34. }
  35. },
  36. data () {
  37. return {
  38. defaultVal: this.value,
  39. warehouseCascadeData: [],
  40. defaultWarehouseCascade:[]
  41. }
  42. },
  43. watch: {
  44. value (newValue, oldValue) {
  45. this.defaultVal = newValue
  46. },
  47. },
  48. mounted () {
  49. this.getWarehouseCascade()
  50. },
  51. methods: {
  52. handleChange (value, selectedOptions) {
  53. this.defaultVal = value
  54. this.$emit('change', this.defaultVal, selectedOptions)
  55. this.$emit('input', this.defaultVal)
  56. },
  57. // 仓库仓位 级联 列表
  58. getWarehouseCascade () {
  59. const _this = this
  60. warehouseCascadeList({}).then(res => {
  61. if (res.status == 200) {
  62. res.data.filter(item => {
  63. // 过滤默认仓库
  64. if (item.defaultFlag == 1 && item.wasteFlag == 0) { // defaultFlag为1,且不是废品仓
  65. _this.defaultWarehouseCascade[0] = item.warehouseSn
  66. // 过滤默认仓位
  67. item.warehouseLocationList.filter(subItem => {
  68. if (subItem.defaultFlag == 1 && subItem.wasteFlag == 0) {
  69. _this.defaultWarehouseCascade[1] = subItem.warehouseLocationSn
  70. }
  71. })
  72. }
  73. })
  74. res.data.map(item => {
  75. item.sn = item.warehouseSn
  76. if (item.warehouseLocationList) {
  77. item.warehouseLocationList.map(subItem => {
  78. subItem.sn = subItem.warehouseLocationSn
  79. })
  80. }
  81. })
  82. this.warehouseCascadeData = res.data
  83. if(this.defaultVal.length==0){
  84. this.handleChange(_this.defaultWarehouseCascade)
  85. }
  86. } else {
  87. this.warehouseCascadeData = []
  88. }
  89. })
  90. },
  91. setDefaultVal(){
  92. if(this.defaultVal.length==0){
  93. this.handleChange(this.defaultWarehouseCascade)
  94. }
  95. }
  96. }
  97. }
  98. export default Warehouse