Bladeren bron

物资-库存详情里添加报损记录

huangguoce 3 dagen geleden
bovenliggende
commit
323bc7fab1
1 gewijzigde bestanden met toevoegingen van 143 en 38 verwijderingen
  1. 143 38
      src/views/psiManagement/wareHouseSummary/WareHouseHistory.vue

+ 143 - 38
src/views/psiManagement/wareHouseSummary/WareHouseHistory.vue

@@ -6,8 +6,7 @@
 				<el-tab-pane label="入库记录" name="wareHouse">
 					<div style="height: calc(100% - 80px);">
 						<el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm"
-							@keyup.enter.native="refreshList()" @submit.native.prevent>
-							<!-- 搜索框-->
+							@keyup.enter.native="list()" @submit.native.prevent>
 							<el-form-item label="入库编号" prop="wareHouseNumber">
 								<el-input v-model="searchForm.wareHouseNumber" placeholder="请输入入库编号"
 									clearable></el-input>
@@ -29,15 +28,14 @@
 							ref="projectTable" show-header-overflow show-overflow highlight-hover-row :menu-config="{}"
 							:print-config="{}" :sort-config="{ remote: true }" :data="dataList"
 							:row-config="{ isCurrent: true }" :radio-config="{ trigger: 'row' }">
-							<!--              <vxe-column type="seq" width="60" title="序号"></vxe-column>-->
 							<vxe-column min-width="160" align="center" title="入库编号"
 								field="wareHouseNumber"></vxe-column>
 							<vxe-column min-width="160" align="center" title="入库名称" field="wareHouseName">
 								<template #default="scope">
 									<el-link type="primary" :underline="false" v-if="hasPermission('psi:list')"
-										@click="view(scope.row.wareHouseId)">{{ scope.row.wareHouseName }}</el-link>
-									<el-link type="primary" :underline="false" v-else-if="hasPermission('psi:list')"
-										@click="view(scope.row.wareHouseId,)">{{ scope.row.wareHouseName }}</el-link>
+										@click="view(scope.row.wareHouseId)">
+										{{ scope.row.wareHouseName }}
+									</el-link>
 									<span v-else>{{ scope.row.wareHouseName }}</span>
 								</template>
 							</vxe-column>
@@ -53,12 +51,16 @@
 								</template>
 							</vxe-column>
 							<vxe-column min-width="160" align="center" title="到期时间" field="expireDate">
-								<!-- 需要写个方法,根据生产日期和保质期计算 -->
 								<template #default="scope">
 									<span
 										v-if="scope.row.produceDate && scope.row.shelfLife && scope.row.shelfLifeUnit">
-										{{ calculateExpireDate(scope.row.produceDate, scope.row.shelfLife,
-											scope.row.shelfLifeUnit) }}
+										{{
+											calculateExpireDate(
+												scope.row.produceDate,
+												scope.row.shelfLife,
+												scope.row.shelfLifeUnit
+											)
+										}}
 									</span>
 								</template>
 							</vxe-column>
@@ -67,7 +69,6 @@
 							<vxe-column min-width="160" align="center" title="经办人部门"
 								field="wareHouseHandledByOff"></vxe-column>
 							<vxe-column min-width="160" align="center" title="入库时间" field="wareHouseDate"></vxe-column>
-
 						</vxe-table>
 						<vxe-pager background :current-page="tablePage.currentPage" :page-size="tablePage.pageSize"
 							:total="tablePage.total"
@@ -80,8 +81,7 @@
 				<el-tab-pane label="领用记录" name="collect">
 					<div style="height: calc(100% - 80px);">
 						<el-form :inline="true" class="query-form" ref="searchForm2" :model="searchForm2"
-							@keyup.enter.native="refreshList()" @submit.native.prevent>
-							<!-- 搜索框-->
+							@keyup.enter.native="list2()" @submit.native.prevent>
 							<el-form-item label="领用编号" prop="collectNo">
 								<el-input v-model="searchForm2.collectNo" placeholder="请输入领用编号" clearable></el-input>
 							</el-form-item>
@@ -102,32 +102,30 @@
 							ref="projectTable" show-header-overflow show-overflow highlight-hover-row :menu-config="{}"
 							:print-config="{}" :sort-config="{ remote: true }" :data="collectList"
 							:row-config="{ isCurrent: true }" :radio-config="{ trigger: 'row' }">
-							<!--              <vxe-column type="seq" width="60" title="序号"></vxe-column>-->
 							<vxe-column min-width="160" align="center" title="领用编号" field="collectNo"></vxe-column>
 							<vxe-column min-width="160" align="center" title="领用物品名称" field="goodsName">
 								<template #default="scope">
 									<el-link type="primary" :underline="false" v-if="hasPermission('psi:list')"
-										@click="view2(scope.row.collectId)">{{ scope.row.goodsName }}</el-link>
-									<el-link type="primary" :underline="false" v-else-if="hasPermission('psi:list')"
-										@click="view2(scope.row.collectId,)">{{ scope.row.goodsName }}</el-link>
+										@click="view2(scope.row.collectId)">
+										{{ scope.row.goodsName }}
+									</el-link>
 									<span v-else>{{ scope.row.goodsName }}</span>
 								</template>
 							</vxe-column>
 							<vxe-column min-width="160" align="center" title="领用数量" field="collectNumber">
 								<template #default="scope">
-									<span v-if="scope.row.notSurplusStock && scope.row.spec">{{
-										scope.row.notSurplusStock / scope.row.spec
-									}}</span>
+									<span v-if="scope.row.notSurplusStock && scope.row.spec">
+										{{ scope.row.notSurplusStock / scope.row.spec }}
+									</span>
 									<span v-else>--</span>
 								</template>
 							</vxe-column>
-							<vxe-column min-width="160" align="center" title="当前库存" field="currentInventory">
-							</vxe-column>
+							<vxe-column min-width="160" align="center" title="当前库存"
+								field="currentInventory"></vxe-column>
 							<vxe-column min-width="160" align="center" title="经办人" field="collectHandleBy"></vxe-column>
 							<vxe-column min-width="160" align="center" title="经办人部门"
 								field="collectHandleByOff"></vxe-column>
 							<vxe-column min-width="160" align="center" title="领用时间" field="collectDate"></vxe-column>
-
 						</vxe-table>
 						<vxe-pager background :current-page="tablePage2.currentPage" :page-size="tablePage2.pageSize"
 							:total="tablePage2.total"
@@ -137,6 +135,54 @@
 						</vxe-pager>
 					</div>
 				</el-tab-pane>
+				<el-tab-pane label="报损记录" name="loss">
+					<div style="height: calc(100% - 80px);">
+						<el-form :inline="true" class="query-form" ref="searchForm3" :model="searchForm3"
+							@keyup.enter.native="list3()" @submit.native.prevent>
+							<el-form-item label="报损编号" prop="lossNo">
+								<el-input v-model="searchForm3.lossNo" placeholder="请输入报损编号" clearable></el-input>
+							</el-form-item>
+							<el-form-item label="报损时间" prop="lossDates">
+								<el-date-picker placement="bottom-start" format="YYYY-MM-DD HH:mm:ss"
+									value-format="YYYY-MM-DD HH:mm:ss" v-model="searchForm3.lossDates"
+									type="datetimerange" range-separator="至" start-placeholder="开始日期"
+									end-placeholder="结束日期">
+								</el-date-picker>
+							</el-form-item>
+
+							<el-form-item>
+								<el-button type="primary" @click="list3()" icon="el-icon-search">查询</el-button>
+								<el-button @click="resetSearch3()" icon="el-icon-refresh-right">重置</el-button>
+							</el-form-item>
+						</el-form>
+						<vxe-table border="inner" auto-resize resizable height="400px" :loading="loading"
+							ref="projectTable" show-header-overflow show-overflow highlight-hover-row :menu-config="{}"
+							:print-config="{}" :sort-config="{ remote: true }" :data="lossList"
+							:row-config="{ isCurrent: true }" :radio-config="{ trigger: 'row' }">
+							<vxe-column min-width="160" align="center" title="报损编号" field="lossNo"></vxe-column>
+							<vxe-column min-width="160" align="center" title="报损物品名称" field="goodsName">
+								<template #default="scope">
+									<el-link type="primary" :underline="false" v-if="hasPermission('psi:loss:list')"
+										@click="view3(scope.row.id)">
+										{{ scope.row.goodsName }}
+									</el-link>
+									<span v-else>{{ scope.row.goodsName }}</span>
+								</template>
+							</vxe-column>
+							<vxe-column min-width="160" align="center" title="报损数量" field="lossNumber"></vxe-column>
+							<vxe-column min-width="160" align="center" title="经办人" field="handledByName"></vxe-column>
+							<vxe-column min-width="160" align="center" title="经办人部门"
+								field="handledByOfficeName"></vxe-column>
+							<vxe-column min-width="160" align="center" title="报损时间" field="createTime"></vxe-column>
+						</vxe-table>
+						<vxe-pager background :current-page="tablePage3.currentPage" :page-size="tablePage3.pageSize"
+							:total="tablePage3.total"
+							:page-sizes="[10, 20, 100, 1000, { label: '全量数据', value: 1000000 }]"
+							:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+							@page-change="currentChangeHandle3">
+						</vxe-pager>
+					</div>
+				</el-tab-pane>
 			</el-tabs>
 			<template #footer>
 				<span class="dialog-footer">
@@ -146,14 +192,17 @@
 		</el-dialog>
 		<WareHouseAddForm ref="wareHouseAddForm"></WareHouseAddForm>
 		<UpdateCollectInfoForm ref="updateCollectInfoForm"></UpdateCollectInfoForm>
+		<UpdateLossInfoForm ref="updateLossInfoForm"></UpdateLossInfoForm>
 	</div>
 </template>
 
 <script>
 import WareHouseAddForm from '../wareHouse/WareHouseAddForm'
-// import ProjectRecordsService from '@/api/cw/projectRecords/ProjectRecordsService'
 import WareHouseService from '@/api/psi/WareHouseService'
+import LossService from '@/api/psi/LossService'
 import UpdateCollectInfoForm from '../collect/UpdateCollectInfoForm'
+import UpdateLossInfoForm from '../loss/UpdateLossInfoForm'
+
 export default {
 	data() {
 		return {
@@ -173,9 +222,16 @@ export default {
 				pageSize: 10,
 				orders: []
 			},
+			tablePage3: {
+				total: 0,
+				currentPage: 1,
+				pageSize: 10,
+				orders: []
+			},
 			tableKey: '',
 			dataList: [],
 			collectList: [],
+			lossList: [],
 			searchForm: {
 				tradeName: '',
 				wareHouseNumber: '',
@@ -186,34 +242,44 @@ export default {
 				collectNo: '',
 				collectDates: []
 			},
+			searchForm3: {
+				goodsName: '',
+				lossNo: '',
+				lossDates: []
+			},
 			activeNameTop: 'wareHouse',
+			tradeName: '',
 			detailId: ''
 		}
 	},
-	// projectRecordsService: null,
 	wareHouseService: null,
+	lossService: null,
 	created() {
-		// this.projectRecordsService = new ProjectRecordsService()
 		this.wareHouseService = new WareHouseService()
+		this.lossService = new LossService()
 	},
 	components: {
 		WareHouseAddForm,
-		UpdateCollectInfoForm
+		UpdateCollectInfoForm,
+		UpdateLossInfoForm
 	},
 	methods: {
-		// 查看
 		view(id) {
 			this.$refs.wareHouseAddForm.init('view', id)
 		},
-		// 查看2
 		view2(id) {
 			this.$refs.updateCollectInfoForm.init('view', id)
 		},
+		view3(id) {
+			this.$refs.updateLossInfoForm.init('view', id)
+		},
 		init(tradeName, detailId) {
 			this.activeNameTop = 'wareHouse'
 			this.visible = true
+			this.tradeName = tradeName
 			this.searchForm.tradeName = tradeName
 			this.searchForm2.tradeName = tradeName
+			this.searchForm3.goodsName = tradeName
 			if (this.commonJS.isNotEmpty(detailId)) {
 				this.detailId = detailId
 			} else {
@@ -221,33 +287,51 @@ export default {
 			}
 			this.list()
 			this.list2()
+			this.list3()
 		},
 		list() {
 			this.loading = true
-			// this.searchForm.createId = this.$store.state.user.id
 			this.wareHouseService.wareHouseHistoryList({
-				'detailId': this.detailId,
+				current: this.tablePage.currentPage,
+				size: this.tablePage.pageSize,
+				detailId: this.detailId,
 				...this.searchForm
 			}).then((data) => {
 				this.dataList = data.records
-				// this.collectList = data.collectList
 				this.tablePage.total = data.total
 				this.tableKey = Math.random()
+			}).finally(() => {
 				this.loading = false
 			})
 		},
 		list2() {
+			this.loading = true
 			this.wareHouseService.collectHistoryList({
+				current: this.tablePage2.currentPage,
+				size: this.tablePage2.pageSize,
 				...this.searchForm2
 			}).then((data) => {
 				this.collectList = data.records
-				// this.collectList = data.collectList
 				this.tablePage2.total = data.total
 				this.tableKey = Math.random()
+			}).finally(() => {
+				this.loading = false
+			})
+		},
+		list3() {
+			this.loading = true
+			this.lossService.getLossByTradeName({
+				current: this.tablePage3.currentPage,
+				size: this.tablePage3.pageSize,
+				...this.searchForm3
+			}).then((data) => {
+				this.lossList = data.records
+				this.tablePage3.total = data.total
+				this.tableKey = Math.random()
+			}).finally(() => {
 				this.loading = false
 			})
 		},
-		// 当前页
 		currentChangeHandle({ currentPage, pageSize }) {
 			this.tablePage.currentPage = currentPage
 			this.tablePage.pageSize = pageSize
@@ -258,23 +342,43 @@ export default {
 			this.tablePage2.pageSize = pageSize
 			this.list2()
 		},
+		currentChangeHandle3({ currentPage, pageSize }) {
+			this.tablePage3.currentPage = currentPage
+			this.tablePage3.pageSize = pageSize
+			this.list3()
+		},
 		resetSearch() {
 			this.$refs.searchForm.resetFields()
+			this.tablePage.currentPage = 1
+			this.searchForm.tradeName = this.tradeName
 			this.list()
 		},
 		resetSearch2() {
 			this.$refs.searchForm2.resetFields()
+			this.tablePage2.currentPage = 1
+			this.searchForm2.tradeName = this.tradeName
 			this.list2()
 		},
+		resetSearch3() {
+			this.$refs.searchForm3.resetFields()
+			this.tablePage3.currentPage = 1
+			this.searchForm3.goodsName = this.tradeName
+			this.list3()
+		},
 		close() {
 			this.visible = false
-			this.$refs.searchForm.resetFields()
-			this.$refs.searchForm2.resetFields()
+			this.tradeName = ''
+			this.safeResetForm('searchForm')
+			this.safeResetForm('searchForm2')
+			this.safeResetForm('searchForm3')
 		},
-		tabHandleClickTop(event) {
-			// console.log(event)
+		safeResetForm(refName) {
+			if (this.$refs[refName]) {
+				this.$refs[refName].resetFields()
+			}
+		},
+		tabHandleClickTop() {
 		},
-		// 计算到期时间
 		calculateExpireDate(produceDate, shelfLife, shelfLifeUnit) {
 			if (!produceDate || !shelfLife || !shelfLifeUnit) {
 				return ''
@@ -293,6 +397,7 @@ export default {
 	}
 }
 </script>
+
 <style scoped>
 /deep/ .el-dialog__body {
 	padding-top: 0px;