warehouse.js 2.8 KB

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