From b6a27b9ca71d636a1598751f8114c36a5d7007fe Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期一, 15 四月 2024 16:52:36 +0800
Subject: [PATCH] 修改

---
 src/views/warehouse/components/addStock.vue     |   91 +++++++++++++++++++++++-------
 src/views/warehouse/stockManage.vue             |    3 
 src/views/warehouse/stockAnalyse.vue            |   27 ++++++---
 src/api/warehouse.js                            |    1 
 src/views/license/licenseInfo/index.vue         |   12 +--
 src/views/warehouse/components/stockRecords.vue |    2 
 src/views/warehouse/stockSupervision.vue        |    5 +
 7 files changed, 99 insertions(+), 42 deletions(-)

diff --git a/src/api/warehouse.js b/src/api/warehouse.js
index c9aad12..6228389 100644
--- a/src/api/warehouse.js
+++ b/src/api/warehouse.js
@@ -151,7 +151,6 @@
     })
 }
 
-
 // 监管
 export function getSupervisionStatistics(data) {
     return request({
diff --git a/src/views/license/licenseInfo/index.vue b/src/views/license/licenseInfo/index.vue
index 35b6339..37ebacd 100644
--- a/src/views/license/licenseInfo/index.vue
+++ b/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) {
diff --git a/src/views/warehouse/components/addStock.vue b/src/views/warehouse/components/addStock.vue
index b07eca3..506cfe3 100644
--- a/src/views/warehouse/components/addStock.vue
+++ b/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')
             }
         }
     }
diff --git a/src/views/warehouse/components/stockRecords.vue b/src/views/warehouse/components/stockRecords.vue
index 7f1c350..2dcd59d 100644
--- a/src/views/warehouse/components/stockRecords.vue
+++ b/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()
diff --git a/src/views/warehouse/stockAnalyse.vue b/src/views/warehouse/stockAnalyse.vue
index 7ab0b52..b4b21f5 100644
--- a/src/views/warehouse/stockAnalyse.vue
+++ b/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){
diff --git a/src/views/warehouse/stockManage.vue b/src/views/warehouse/stockManage.vue
index 1ac57e4..c862528 100644
--- a/src/views/warehouse/stockManage.vue
+++ b/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
diff --git a/src/views/warehouse/stockSupervision.vue b/src/views/warehouse/stockSupervision.vue
index 055d90a..6a554e7 100644
--- a/src/views/warehouse/stockSupervision.vue
+++ b/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,

--
Gitblit v1.9.2