马宇豪
2024-04-15 b6a27b9ca71d636a1598751f8114c36a5d7007fe
src/views/warehouse/components/addStock.vue
@@ -10,7 +10,7 @@
                <el-row :gutter="20">
                    <el-col :span="12">
                        <el-form-item label="库区名称:" prop="reserveName" >
                            <el-input v-model.trim="dataForm.reserveName"/>
                            <el-input v-model.trim="dataForm.reserveName" :readonly="isDisabled"/>
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
@@ -22,7 +22,7 @@
                <el-row :gutter="20">
                    <el-col :span="10">
                        <el-form-item label="所属省份:" prop="province">
                            <el-select v-model="dataForm.province" clearable @change="changeArea('province')" style="width: 100%;">
                            <el-select v-model="dataForm.province" clearable @change="changeArea('province')" style="width: 100%;" :disabled="isDisabled">
                                <el-option
                                    v-for="item in provinceList"
                                    :key="item.id"
@@ -35,7 +35,7 @@
                    </el-col>
                    <el-col :span="6">
                        <el-form-item prop="city" class="selector">
                            <el-select v-model="dataForm.city" prop="city" clearable @change="changeArea('city')" style="width: 100%;">
                            <el-select v-model="dataForm.city" prop="city" clearable @change="changeArea('city')" style="width: 100%;" :disabled="isDisabled">
                                <el-option
                                    v-for="item in cityList"
                                    :key="item.id"
@@ -48,7 +48,7 @@
                    </el-col>
                    <el-col :span="6">
                        <el-form-item prop="area" class="selector">
                            <el-select v-model="dataForm.area" clearable filterable @change="changeArea('district')" style="width: 100%;">
                            <el-select v-model="dataForm.area" clearable filterable @change="changeArea('district')" style="width: 100%;" :disabled="isDisabled">
                                <el-option
                                    v-for="item in districtList"
                                    :key="item.id"
@@ -63,31 +63,31 @@
                <el-row>
                    <el-col :span="22">
                        <el-form-item label="库区地址:" prop="reserveAddress" >
                            <el-input v-model.trim="dataForm.reserveAddress"/>
                            <el-input v-model.trim="dataForm.reserveAddress" :readonly="isDisabled"/>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="20">
                    <el-col :span="11">
                        <el-form-item label="库区总面积:" prop="square" class="numInput">
                            <el-input type="number" v-model.number="dataForm.square"><template slot="append">㎡</template></el-input>
                            <el-input type="number" v-model.number="dataForm.square" :readonly="isDisabled"><template slot="append">㎡</template></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="11">
                        <el-form-item label="有效仓储面积:" prop="effectiveStorageSquare" class="numInput">
                            <el-input type="number" v-model.number="dataForm.effectiveStorageSquare"><template slot="append">㎡</template></el-input>
                            <el-input type="number" v-model.number="dataForm.effectiveStorageSquare" :readonly="isDisabled"><template slot="append">㎡</template></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="20">
                    <el-col :span="11">
                        <el-form-item label="核定储量:" prop="approvedReserves" class="numInput">
                            <el-input type="number" v-model.number="dataForm.approvedReserves"><template slot="append">箱</template></el-input>
                            <el-input type="number" v-model.number="dataForm.approvedReserves" :readonly="isDisabled"><template slot="append">箱</template></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="11">
                        <el-form-item label="核药量:" prop="nuclearDose" class="numInput">
                            <el-input type="number" v-model.number="dataForm.nuclearDose"><template slot="append">kg</template></el-input>
                            <el-input type="number" v-model.number="dataForm.nuclearDose" :readonly="isDisabled"><template slot="append">kg</template></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
@@ -104,41 +104,41 @@
                <td>核定储量(箱)</td>
                <td>等级</td>
                <td>核药量</td>
                <td>操作</td>
                <td v-if="isDisabled == false">操作</td>
            </tr>
            <tr v-for="(item,index) in dataForm.storehouseInfos" :key="index">
                <td class="w-12">
                    {{ index + 1 }}
                </td>
                <td class="w-20">
                    <el-input v-model="item.storehouseName"></el-input>
                    <el-input v-model="item.storehouseName" :readonly="isDisabled"></el-input>
                </td>
                <td>
                    <el-input type="number" v-model.number="item.square"><template slot="append">㎡</template></el-input>
                    <el-input type="number" v-model.number="item.square" :readonly="isDisabled"><template slot="append">㎡</template></el-input>
                </td>
                <td>
                    <el-input type="number" v-model.number="item.effectiveStorageSquare"><template slot="append">㎡</template></el-input>
                    <el-input type="number" v-model.number="item.effectiveStorageSquare" :readonly="isDisabled"><template slot="append">㎡</template></el-input>
                </td>
                <td>
                    <el-input type="number" v-model.number="item.approvedReserves"><template slot="append">箱</template></el-input>
                    <el-input type="number" v-model.number="item.approvedReserves" :readonly="isDisabled"><template slot="append">箱</template></el-input>
                </td>
                <td>
                    <el-select v-model="item.storehouseLevel" clearable filterable>
                    <el-select v-model="item.storehouseLevel" clearable filterable :disabled="isDisabled">
                        <el-option label="1.1" :value="1.1"></el-option>
                        <el-option label="1.3" :value="1.3"></el-option>
                    </el-select>
                </td>
                <td>
                    <el-input type="number" v-model.number="item.nuclearDose"><template slot="append">kg</template></el-input>
                    <el-input type="number" v-model.number="item.nuclearDose" :readonly="isDisabled"><template slot="append">kg</template></el-input>
                </td>
                <td>
                <td v-if="isDisabled == false">
                    <el-button type="danger" @click="delItem(item,index)">删除</el-button>
                </td>
            </tr>
            <el-button type="primary" style="margin-top: 20px" @click="addItem()">新增仓库</el-button>
            <el-button type="primary" style="margin-top: 20px" @click="addItem()" v-if="isDisabled == false">新增仓库</el-button>
        </el-form>
        <br>
        <span slot="footer" class="dialog-footer">
        <span slot="footer" class="dialog-footer" v-if="isDisabled == false">
            <el-button @click="dialogVisible = false">取 消</el-button>
            <el-button type="primary" @click="handleSubmit">保 存</el-button>
        </span>
@@ -148,8 +148,9 @@
<script>
    import {mapGetters} from "vuex";
    import {getCityListData, getProvinceListData} from "../../../api/area";
    import {saveReserveInfo, getInfoById, editReserveInfo} from '../../../api/warehouse'
    import {saveReserveInfo, getInfoById, editReserveInfo, delStore} from '../../../api/warehouse'
    import Cookies from 'js-cookie'
    import {MessageBox} from "_element-ui@2.14.1@element-ui";
    export default {
        name: "addStock",
        data() {
@@ -186,6 +187,7 @@
                    approvedReserves:[{ required: true, message: '请填写库区核定储量', trigger: 'blur' }],
                    nuclearDose:[{ required: true, message: '请填写库区核药量', trigger: 'blur' }]
                },
                isDisabled: false
            }
        },
        created() {
@@ -203,7 +205,8 @@
                if(type == 'add'){
                    this.dataForm.company = Cookies.get('company')
                    this.dialogTitle = '新增库区'
                }else{
                    this.isDisabled = false
                }else if(type == 'edit'){
                    this.dialogTitle = '编辑库区'
                    getInfoById({id: data.topId}).then((res)=>{
                        if(res.data.code == 200){
@@ -224,6 +227,29 @@
                    }).catch((res)=>{
                        this.$message.warning(res.data.message)
                    })
                    this.isDisabled = false
                }else{
                    this.dialogTitle = '查看库区'
                    getInfoById({id: data.topId}).then((res)=>{
                        if(res.data.code == 200){
                            if(res.data.result){
                                for(let i in this.dataForm){
                                    if(this.isKey(i,res.data.result)){
                                        this.dataForm[i] = res.data.result[i]
                                    }
                                }
                            }
                            this.dataForm['storehouseInfos'] = res.data.result.storehouseInfo.map((i)=>{
                                const{reserveId,...data} = i
                                return data
                            })
                            this.dataForm['company'] = data.enterpriseName
                            this.dataForm['enterpriseId'] = res.data.result.enterpriseId
                        }
                    }).catch((res)=>{
                        this.$message.warning(res.data.message)
                    })
                    this.isDisabled = true
                }
                this.dialogVisible = true
            },
@@ -232,7 +258,27 @@
            },
            delItem(item,index){
                MessageBox.confirm('确定删除信息', '确定删除', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(async () => {
                    const res = await delStore({id: item.id})
                    if(res.data.code == 200){
                        this.$message({
                            type:'success',
                            message: '删除成功'
                        })
                this.dataForm.storehouseInfos.splice(index,1);
                    }else{
                        this.$message({
                            type:'warning',
                            message: res.data.message
                        })
                    }
                }).catch(() => {
                    console.log('已取消删除')
                })
            },
            addItem(){
              const obj = {
@@ -316,6 +362,7 @@
            reset(){
                this.$refs.dataForm.resetFields()
                this.$refs.dataForm.clearValidate()
                this.$emit('refresh')
            }
        }
    }