zenglf
2023-08-17 7442a435d058bd17d6fc679e1b7956bf3a5d32ae
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<template>
  <j-modal
    :title="title"
    :width="width"
    :height="height"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :validatorRules="validatorRules">
        <a-row>
          <a-col :span="24">
            <a-tabs :defaultActiveKey="defaultActiveKey" @change="changeTabs">
              <a-tab-pane tab="工厂模型" :key="1" >
              <warehouse-factory 
              ref="factoryModel" 
              :enterpriseId="enterpriseId" 
              :mainId="mainId" 
              :originTargetKeys="originTargetKeys"
              :addId="model.id"
              @getAddFactoryIds="getAddFactoryIds" 
              />
              </a-tab-pane>
            </a-tabs>
          </a-col> 
        </a-row>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
 
<script>
  import { httpAction } from '@/api/manage'
  import { validateDuplicateValue } from '@/utils/util'
  import { getAction } from '../../../api/manage'
  import WarehouseFactory from './productionLineWarehouse/WarehouseFactory.vue'
  export default {
    name: "WarehouseClientModal",
    components: {
      WarehouseFactory
    },
    props:{
      mainId:{
        type:String,
        required:false,
        default:''
      },
      enterpriseId:{
        type:String,
        required:false,
        default:''
      },
      originTargetKeys:{
        type:Array,
        required:false
      }
    },
    data () {
      return {
        addDepartIds:[],
        addFactoryIds:[],
        modelMessage:{},
        defaultActiveKey:1,
        title:"操作",
        width:1200,
        height:1400,
        visible: false,
        canISubmmit:false,
        model:{
        },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
 
        confirmLoading: false,
        validatorRules: {
        },
        url: {
          add: "/base/productionLineWarehouse/addProductionLineWarehouseClient",
          edit: "/base/productionLineWarehouse/editProductionLineWarehouseClient",
        }
      }
    },
    created () {
    //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
      add () {
        this.edit(this.modelDefault);
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      close () {
        this.$emit('close');
        this.visible = false;
        this.$refs.form.clearValidate();
      },
      handleOk () {
        const that = this;
        // 触发表单验证
        this.$refs.form.validate(valid => {
          if(!this.addDepartIds[0]&&!this.addFactoryIds[0]){
            this.$message.warning("请至少选择一项再进行添加")
          }else if (valid) {
            that.confirmLoading = true;
            let httpurl = '';
            let method = '';
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
              this.model.warehouseId = this.mainId;
            }else{
              httpurl+=this.url.edit;
              method = 'put';
            }
            this.model.addDepartIds=this.addDepartIds;
            this.model.addFactoryIds = this.addFactoryIds;
            httpAction(httpurl,this.model,method).then((res)=>{
              if(res.success){
                that.$message.success(res.message);
                that.$emit('ok');
              }else{
                that.$message.warning(res.message);
              }
            }).finally(() => {
              that.confirmLoading = false;
              that.close();
            })
          }
         
        })
      },
      handleCancel () {
        this.close()
      },
      getAddDepartIds(val){
        this.addDepartIds=val
        console.log(this.addDepartIds)
      },
      getAddFactoryIds(val){
        this.addFactoryIds=val
        console.log(this.addFactoryIds)
      },
      changeTabs(){
        if(this.$refs.departModel){
          this.$refs.departModel.clearList();
        }
        if(this.$refs.factoryModel){
          this.$refs.factoryModel.clearList();
        } 
      }
    },
  }
</script>