马宇豪
2024-04-15 b6a27b9ca71d636a1598751f8114c36a5d7007fe
修改
已修改7个文件
141 ■■■■ 文件已修改
src/api/warehouse.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/license/licenseInfo/index.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouse/components/addStock.vue 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouse/components/stockRecords.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouse/stockAnalyse.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouse/stockManage.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouse/stockSupervision.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/warehouse.js
@@ -151,7 +151,6 @@
    })
}
// 监管
export function getSupervisionStatistics(data) {
    return request({
src/views/license/licenseInfo/index.vue
@@ -933,10 +933,10 @@
                } else if (val.type === 3 || val.type === 4) {
                    this.area = val.dealingarea
                    this.powder = val.reservekg
                    if (val.licensetype === 2) {
                        this.licensetype = '临时零售'
                    } else {
                    if (val.licensetype === 1) {
                        this.licensetype = '长期零售'
                    } else{
                        this.licensetype = '短期零售'
                    }
                    if (val.dealingtype === 2 || val.dealingtype === 4) {
                        this.dealingtype = '专店'
@@ -996,11 +996,9 @@
                } else if (val.type === 3 || val.type === 4) {
                    this.area = val.dealingarea
                    this.powder = val.reservekg
                    if (val.licensetype === 2) {
                        this.licensetype = '临时'
                    } else if(val.licensetype === 3){
                    if (val.licensetype === 1) {
                        this.licensetype = '长期'
                    }else{
                    } else{
                        this.licensetype = '短期'
                    }
                    if (val.dealingtype === 2 || val.dealingtype === 4) {
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){
                this.dataForm.storehouseInfos.splice(index,1);
                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')
            }
        }
    }
src/views/warehouse/components/stockRecords.vue
@@ -146,7 +146,7 @@
        methods:{
            open(row){
                this.listQuery.pageIndex = 1
                this.listQuery.filter.storehouseId = row.storehouseId
                this.listQuery.filter.storehouseId = row.storehouseId || row.id
                this.initValidTime()
                if(this.tableStatus){
                    this.getOutbound()
src/views/warehouse/stockAnalyse.vue
@@ -1,7 +1,7 @@
<template>
    <div class="app-container">
        <div class="filter-container">
            <div style="display: block;">
            <div style="display: block;" v-show="disable == false">
<!--                <div class="basic_search">-->
<!--                    <span>区域:</span>-->
<!--                    <el-select v-model="listQuery.province" clearable filterable @change="changeArea('province')">-->
@@ -67,7 +67,7 @@
                <el-table-column label="库区" prop="reserveName" align="center">
                    <template slot-scope="scope">
                        <span v-if="scope.row.reserveName =='合计'">{{scope.row.reserveName}}</span>
                        <el-link v-else type="primary" @click="openStock('edit',scope.row)">{{scope.row.reserveName}}</el-link>
                        <el-link v-else type="primary" @click="openStock('view',scope.row)">{{scope.row.reserveName}}</el-link>
                    </template>
                </el-table-column>
                <el-table-column label="库区总库存" prop="gName" align="center"></el-table-column>
@@ -150,14 +150,16 @@
    },
    created() {
        const t = this
        t.getList()
        t.getProvince()
        const roles = JSON.parse(Cookies.get('roles'))
        if(roles.find(i=>i.name == '管理员'|| i.name == '监管部门')){
            this.disable = false
            t.listQuery.enterpriseName = ''
        }else{
            this.disable = true
            t.listQuery.enterpriseName = Cookies.get('company')
        }
        t.getList()
        t.getProvince()
    },
    mounted() {
    },
@@ -180,14 +182,21 @@
                                content['gName'] = item.enterpriseName
                                // 重点!赋值合并的行数数值,只需要取子循环的第一个数赋值待合并的行数即可
                                if(subIndex == 0){
                                    content['gNum'] = item.reserves.length
                                    let gNum = 0
                                    for(let i of item.reserves){
                                        if(i.storehouse && i.storehouse.warehouses && Array.isArray(i.storehouse.warehouses)){
                                            gNum= gNum + i.storehouse.warehouses.length + 1
                                        }else{
                                            gNum = gNum + 0
                                        }
                                    }
                                    content['gNum'] = gNum
                                }
                                gData.push(content)
                            })
                        }
                    })
                }
                if(Array.isArray(gData)){
                    gData.map(item=>{
                        if(Array.isArray(item.storehouse.warehouses) && item.storehouse.whTotal){
@@ -215,6 +224,7 @@
                                content2['gId'] = item.gId
                                content2['ggId'] = item.enterpriseId
                                content2['gStock'] = item.gStock
                                content2['enterpriseName'] = item.enteripriseName
                                content2['gName'] = item.gName
                                content2['gNum'] = item.gNum || null
                                content2['topId'] = item.reserveId
@@ -262,7 +272,6 @@
                    }
                    this.stateStockData.push(totalObj)
                }
                console.log(this.stateStockData,'G')
            }else{
                this.$message({
                    type:'warning',
@@ -376,8 +385,8 @@
            // columnIndex 代表列数,从0开始计数,我们要合并的字段属于第一列,取0
            if(columnIndex ==0 || columnIndex ==1){
                return {
                    rowspan: row.gNum * row.rowNum, // 待合并行数 -- 合并的行数长度就等于之前赋值的子数据的长度;未赋值的即表示0,不显示
                    colspan: row.gNum>0?1:0  // 待合并列数 -- 合并的列数自身占一列,被合并的要返回0,表示不显示
                    rowspan: row.gNum, // 待合并行数 -- 合并的行数长度就等于之前赋值的子数据的长度;未赋值的即表示0,不显示
                    colspan: row.rowNum>0?1:0  // 待合并列数 -- 合并的列数自身占一列,被合并的要返回0,表示不显示
                };
            }
            if(columnIndex >1 && columnIndex < 7){
src/views/warehouse/stockManage.vue
@@ -43,6 +43,7 @@
                <el-table-column label="库容量/箱" prop="approvedReserves" align="center"></el-table-column>
                <el-table-column label="核药量/kg" prop="nuclearDose" align="center"></el-table-column>
                <el-table-column label="当前总库存" prop="totalInventory" align="center"></el-table-column>
                <el-table-column label="存药量" prop="drugContent" align="center"></el-table-column>
                <el-table-column label="本公司库存" prop="inventoryOfTheCompany" align="center"></el-table-column>
                <el-table-column label="爆竹类(箱)" prop="firecracker" align="center"></el-table-column>
                <el-table-column label="喷花类(箱)" prop="spray" align="center"></el-table-column>
@@ -161,7 +162,7 @@
        },
        openRecord(row){
            const t = this
            t.$refs.stockRecords.open()
            t.$refs.stockRecords.open(row)
        },
        showEnterprises(row){
            const t = this
src/views/warehouse/stockSupervision.vue
@@ -84,9 +84,10 @@
                <el-table-column label="库房面积/㎡" prop="square" align="center"></el-table-column>
                <el-table-column label="有效存储面积/㎡" prop="storageSquare" align="center"></el-table-column>
                <el-table-column label="库容量/箱" prop="approvedReserves" align="center"></el-table-column>
                <el-table-column label="存药量/箱" prop="approvedReserves" align="center"></el-table-column>
                <el-table-column label="核药量/kg" prop="nuclearDose" align="center"></el-table-column>
                <el-table-column label="当前总库存" prop="totalStock" align="center"></el-table-column>
<!--                <el-table-column label="存药量" prop="totalStock" align="center"></el-table-column>-->
                <el-table-column label="存药量" prop="drugContent" align="center"></el-table-column>
                <el-table-column label="爆竹类(箱)" prop="firecracker" align="center"></el-table-column>
                <el-table-column label="喷花类(箱)" prop="spray" align="center"></el-table-column>
                <el-table-column label="旋转类(箱)" prop="rotation" align="center"></el-table-column>
@@ -191,6 +192,7 @@
                                storehouseId: null,
                                storehouseName: item.storehouse.whTotal.wname,
                                totalStock: item.storehouse.whTotal.wtotalStock,
                                drugContent: item.storehouse.whTotal.wtotalDrugContent,
                                toy: item.storehouse.whTotal.wtotalToy,
                            }
                            item.storehouse.warehouses.push(obj)
@@ -233,6 +235,7 @@
                        rotation: total.totalRotation,
                        spray: total.totalSpray,
                        totalStock: total.totalStock,
                        drugContent: total.totalDrugContent,
                        toy: total.totalToy,
                        approvedReserves: total.whTotalApprovedReserves,
                        square: total.whTotalSquare,