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