Browse Source

出入库日志

master
xuhuajiao 1 month ago
parent
commit
43169aaed6
  1. 11
      src/api/asset/index.js
  2. 231
      src/views/assetManage/inOutLog/index.vue
  3. 6
      src/views/assetManage/stocktaking/index.vue

11
src/api/asset/index.js

@ -70,6 +70,14 @@ export function FetchDeleteAssetInfoPhotoById(ids) {
}) })
} }
// 出入库 根据单号查询下面详细资产
export function FetchInOutDetailsByBillNo(params) {
return request({
url: 'api/asset/getInOutDetailsByBillNo',
method: 'get',
params
})
}
export default { export default {
FetchInitAssetInfo, FetchInitAssetInfo,
add, add,
@ -78,5 +86,6 @@ export default {
FetchStockTakeSuperfluousByTaskId, FetchStockTakeSuperfluousByTaskId,
FetchStockSettle, FetchStockSettle,
FetchDeleteStockTake, FetchDeleteStockTake,
FetchDeleteAssetInfoPhotoById
FetchDeleteAssetInfoPhotoById,
FetchInOutDetailsByBillNo
} }

231
src/views/assetManage/inOutLog/index.vue

@ -31,7 +31,8 @@
</div> </div>
<crudOperation :permission="permission"> <crudOperation :permission="permission">
<template v-slot:middle> <template v-slot:middle>
<el-button :loading="crud.downloadLoading" size="mini" :disabled="crud.selections.length === 0" @click="doExport(crud.selections)">
<!-- @click="doExport(crud.selections)" -->
<el-button :loading="crud.downloadLoading" size="mini" :disabled="crud.selections.length === 0">
<i class="iconfont icon-daochu" /> <i class="iconfont icon-daochu" />
导出 导出
</el-button> </el-button>
@ -55,36 +56,41 @@
@row-dblclick="handleRowDblClick" @row-dblclick="handleRowDblClick"
> >
<!-- <el-table-column type="selection" align="center" width="55" /> --> <!-- <el-table-column type="selection" align="center" width="55" /> -->
<el-table-column prop="type" label="类型" />
<el-table-column prop="billNo" label="任务单号" min-width="180px" :show-overflow-tooltip="true" />
<el-table-column prop="warehouseName" label="所属市州" />
<el-table-column prop="stockNum" label="关联单号" />
<el-table-column prop="stockNum" label="申请人" />
<el-table-column prop="stockNum" label="申请部门" />
<el-table-column prop="takeDate" label="创建时间" width="150px">
<el-table-column prop="manageType" label="类型">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.takeDate | parseTime }}</div>
<el-tag v-if="scope.row.manageType === 1">入库</el-tag>
<el-tag v-if="scope.row.manageType === 2" type="success">出库</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="takeStart" label="入库开始时间" width="150px">
<el-table-column prop="mainBillNo" label="任务单号" min-width="180px" :show-overflow-tooltip="true" />
<el-table-column prop="fondsName" label="所属市州" />
<el-table-column prop="branchBillNo" label="关联单号" min-width="180px" :show-overflow-tooltip="true" />
<el-table-column prop="applicantName" label="申请人" />
<el-table-column prop="applicantDeptName" label="申请部门" />
<el-table-column prop="createTime" label="创建时间" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.takeStart | parseTime }}</div>
<div>{{ scope.row.createTime | parseTime }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="takeEnd" label="入库结束时间" width="150px">
<el-table-column prop="checkStartTime" label="入库开始时间" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.takeEnd | parseTime }}</div>
<div>{{ scope.row.checkStartTime | parseTime }}</div>
</template>
</el-table-column>
<el-table-column prop="checkEndTime" label="入库结束时间" width="150px">
<template slot-scope="scope">
<div>{{ scope.row.checkEndTime | parseTime }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="stockNum" label="总金额" /> <el-table-column prop="stockNum" label="总金额" />
<el-table-column prop="stockNum" label="总数量" />
<el-table-column prop="stockNum" label="异常数量" />
<el-table-column prop="inOutCount" label="总数量" align="right" />
<el-table-column prop="exceptionCount" label="异常数量" align="right" />
<el-table-column prop="status" label="状态" align="center" min-width="100px"> <el-table-column prop="status" label="状态" align="center" min-width="100px">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="(scope.row.status || '').toString().trim() === '0'" class="row-state row-lending ">盘点</span>
<span v-if="(scope.row.status || '').toString().trim() === '-1'" class="row-state row-lending state-active">已终止</span>
<span v-if="(scope.row.status || '').toString().trim() === '1'" class="row-state row-warehousing state-active">盘点</span>
<span v-if="(scope.row.status || '').toString().trim() === '2'" class="row-state row-binding state-active">已完成</span>
<span v-if="scope.row.status === 0" class="row-state row-lending ">开始</span>
<span v-if="scope.row.status === -1" class="row-state row-lending state-active">已终止</span>
<span v-if="scope.row.status === 1" class="row-state row-warehousing state-active">进行</span>
<span v-if="scope.row.status === 2" class="row-state row-binding state-active">已完成</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -105,25 +111,30 @@
<div v-if="selectedTask" class="task-detail"> <div v-if="selectedTask" class="task-detail">
<!-- 任务基本信息 --> <!-- 任务基本信息 -->
<el-table class="archives-table" stripe style="width: 100%;" :data="selectedTask"> <el-table class="archives-table" stripe style="width: 100%;" :data="selectedTask">
<el-table-column prop="type" label="类型" />
<el-table-column prop="billNo" label="任务单号" min-width="180px" :show-overflow-tooltip="true" />
<el-table-column prop="warehouseName" label="所属市州" />
<el-table-column prop="stockNum" label="关联单号" />
<el-table-column prop="stockNum" label="申请人" />
<el-table-column prop="stockNum" label="申请部门" />
<el-table-column prop="takeDate" label="创建时间" width="150px">
<el-table-column prop="manageType" label="类型">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.takeDate | parseTime }}</div>
<el-tag v-if="scope.row.manageType === 1">入库</el-tag>
<el-tag v-if="scope.row.manageType === 2" type="success">出库</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="takeStart" label="入库开始时间" width="150px">
<el-table-column prop="mainBillNo" label="任务单号" min-width="180px" :show-overflow-tooltip="true" />
<el-table-column prop="fondsName" label="所属市州" />
<el-table-column prop="branchBillNo" label="关联单号" min-width="180px" :show-overflow-tooltip="true" />
<el-table-column prop="applicantName" label="申请人" />
<el-table-column prop="applicantDeptName" label="申请部门" />
<el-table-column prop="createTime" label="创建时间" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.takeStart | parseTime }}</div>
<div>{{ scope.row.createTime | parseTime }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="takeEnd" label="入库结束时间" width="150px">
<el-table-column prop="checkStartTime" label="入库开始时间" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.takeEnd | parseTime }}</div>
<div>{{ scope.row.checkStartTime | parseTime }}</div>
</template>
</el-table-column>
<el-table-column prop="checkEndTime" label="入库结束时间" width="150px">
<template slot-scope="scope">
<div>{{ scope.row.checkEndTime | parseTime }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="stockNum" label="总金额" /> <el-table-column prop="stockNum" label="总金额" />
@ -150,20 +161,23 @@
</el-table-column> </el-table-column>
<el-table-column prop="taskResult" label="结果"> <el-table-column prop="taskResult" label="结果">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.taskResult === 0">未盘</el-tag>
<el-tag v-if="scope.row.taskResult === 1" type="success">正常</el-tag>
<el-tag v-if="scope.row.taskResult === 2" type="error">盘亏</el-tag>
<el-tag v-if="scope.row.status === 0" type="error">失败</el-tag>
<el-tag v-if="scope.row.status === 1" type="info">未盘</el-tag>
<el-tag v-if="scope.row.status === 2 || scope.row.status === 3" type="success">成功</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="assetMark" label="资产编码" min-width="220px" :show-overflow-tooltip="true" />
<el-table-column prop="assetName" label="资产名称" min-width="180px" :show-overflow-tooltip="true" />
<el-table-column prop="taskRemark" label="盘点备注" min-width="100px" />
<el-table-column prop="capitalStatus" label="资产状态" min-width="100px" />
<el-table-column prop="mark" label="资产编码" min-width="220px" :show-overflow-tooltip="true" />
<el-table-column prop="name" label="资产名称" min-width="180px" :show-overflow-tooltip="true" />
<!-- <el-table-column prop="remark" label="盘点备注" min-width="100px" /> -->
<!-- <el-table-column prop="capitalStatus" label="资产状态" min-width="100px" /> -->
<el-table-column prop="capitaltypename" label="资产类型" min-width="100px" /> <el-table-column prop="capitaltypename" label="资产类型" min-width="100px" />
<el-table-column prop="departmentname" label="使用部门" min-width="260px" :show-overflow-tooltip="true" />
<el-table-column prop="resourcename" label="使用人" min-width="100px" />
<el-table-column prop="departmentname" label="所属部门" min-width="100px" :show-overflow-tooltip="true" />
<!-- <el-table-column prop="resourcename" label="使用人" min-width="100px" /> -->
<el-table-column prop="glrname" label="管理人" min-width="100px" /> <el-table-column prop="glrname" label="管理人" min-width="100px" />
<el-table-column prop="cfd" label="存放地" min-width="260px" :show-overflow-tooltip="true" />
<el-table-column prop="startprice" label="单价" width="80px" align="right" :formatter="(row) => formatMoney(row.startprice)" />
<el-table-column prop="capitalnum" label="数量" align="right" />
<!-- <el-table-column prop="" label="总额" /> -->
<!-- <el-table-column prop="cfd" label="存放地" min-width="260px" :show-overflow-tooltip="true" /> -->
</el-table> </el-table>
<div style="margin-top: 10px; display: flex; justify-content: flex-end;"> <div style="margin-top: 10px; display: flex; justify-content: flex-end;">
<el-pagination <el-pagination
@ -187,12 +201,12 @@
</template> </template>
<script> <script>
import crudAsset, { FetchInitAssetInfo, FetchStockTakeDetailsByTaskId } from '@/api/asset/index'
import crudAsset, { FetchInOutDetailsByBillNo } from '@/api/asset/index'
import CRUD, { presenter, header, form, crud } from '@crud/crud' import CRUD, { presenter, header, form, crud } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
import { exportFile } from '@/utils/index'
import qs from 'qs'
// import { exportFile } from '@/utils/index'
// import qs from 'qs'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
const defaultForm = { } const defaultForm = { }
@ -200,7 +214,7 @@ export default {
name: 'InOutLog', name: 'InOutLog',
components: { pagination, crudOperation }, components: { pagination, crudOperation },
cruds() { cruds() {
return CRUD({ title: '出入库日志', url: 'api/stocktake/initStockTakeBill', crudMethod: { ...crudAsset }, optShow: {
return CRUD({ title: '出入库日志', url: 'api/asset/initInOutBill', crudMethod: { ...crudAsset }, optShow: {
add: false, add: false,
edit: false, edit: false,
del: false, del: false,
@ -217,8 +231,8 @@ export default {
optionVal: '', optionVal: '',
options: [ options: [
{ value: '', label: '全部' }, { value: '', label: '全部' },
{ value: 'billNo', label: '入库' },
{ value: 'departmentname', label: '出库' }
{ value: '1', label: '入库' }, // manageType=1
{ value: '2', label: '出库' } // manageType=2
], ],
fetchLoading: false, fetchLoading: false,
showFilterList: false, showFilterList: false,
@ -234,8 +248,9 @@ export default {
inventoryPageSize: 10, inventoryPageSize: 10,
inventoryTotal: 0, inventoryTotal: 0,
statusOptions: [ statusOptions: [
{ value: 0, label: '未完成' },
{ value: 1, label: '执行中' },
{ value: -1, label: '已终止' },
{ value: 0, label: '未开始' },
{ value: 1, label: '进行中' },
{ value: 2, label: '已完成' } { value: 2, label: '已完成' }
], ],
query: { query: {
@ -256,20 +271,31 @@ export default {
mounted() { mounted() {
}, },
methods: { methods: {
formatMoney(money) {
if (!money && money !== 0) return '——'
return Number(money).toLocaleString('en-US')
},
[CRUD.HOOK.beforeRefresh]() { [CRUD.HOOK.beforeRefresh]() {
//
this.crud.query[this.optionVal] = this.keyWord
// this.crud.params.billNo = this.query.billNo
// this.crud.params.warehouseId = this.query.warehouseId
//
delete this.crud.query.billNo
delete this.crud.query.manageType
// billNo
this.crud.query.billNo = this.keyWord
// manageType
if (this.optionVal) {
this.crud.query.manageType = this.optionVal
}
//
this.crud.params.status = this.query.status this.crud.params.status = this.query.status
//
//
this.originalPage = this.crud.page.page this.originalPage = this.crud.page.page
this.originalSize = this.crud.page.size this.originalSize = this.crud.page.size
// pageNopageSize
this.crud.params.pageNo = this.crud.page.page this.crud.params.pageNo = this.crud.page.page
this.crud.params.pageSize = this.crud.page.size this.crud.params.pageSize = this.crud.page.size
// pagesize
this.crud.params.page = undefined this.crud.params.page = undefined
this.crud.params.size = undefined this.crud.params.size = undefined
}, },
@ -300,19 +326,21 @@ export default {
[CRUD.HOOK.beforeAddCancel](crud) { [CRUD.HOOK.beforeAddCancel](crud) {
}, },
searchChange(val) { searchChange(val) {
if (val) {
this.keyWord = ''
this.options.forEach(option => {
if (option.value !== val) {
this.crud.query[option.value] = null
}
})
}
//
this.keyWord = ''
//
delete this.crud.query.manageType
delete this.crud.query.billNo
}, },
resetQuery() { resetQuery() {
//
this.keyWord = '' this.keyWord = ''
this.crud.query[this.optionVal] = this.keyWord
this.optionVal = ''
this.query.status = '' this.query.status = ''
// crud
delete this.crud.query.billNo
delete this.crud.query.manageType
//
this.crud.toQuery() this.crud.toQuery()
}, },
// //
@ -320,54 +348,25 @@ export default {
this.$refs.table.clearSelection() this.$refs.table.clearSelection()
this.$refs.table.toggleRowSelection(row) this.$refs.table.toggleRowSelection(row)
}, },
doExport(data) {
crud.downloadLoading = true
this.$confirm('此操作将导出所选数据' + '<span>你是否还要继续?</span>', '提示', {
confirmButtonText: '继续',
cancelButtonText: '取消',
type: 'warning',
dangerouslyUseHTMLString: true
}).then(() => {
const ids = []
data.forEach(val => {
ids.push(val.fondsId)
})
const params = {
'fondsIds': ids
}
exportFile(this.baseApi + '/api/fonds/download?' + qs.stringify(params, { indices: false }))
}).catch(() => {
})
},
//
fetchAssetsData(isBtn) {
this.$refs.form.validate((valid) => {
if (valid) {
if (isBtn) {
this.fetchLoading = true
}
this.showFilterList = true
const params = {
'departmentname': this.crud.form.departmentname,
'pageNo': this.currentPage,
'pageSize': this.pageSize
}
FetchInitAssetInfo(params).then(res => {
console.log('res', res)
this.listTable = res.records
this.totalAssets = res.total
this.fetchLoading = false
}).catch(err => {
console.log(err)
this.$message({ message: '获取数据失败', type: 'error', offset: 8 })
this.fetchLoading = false
})
} else {
return false
}
})
},
// doExport(data) {
// crud.downloadLoading = true
// this.$confirm('' + '<span></span>', '', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning',
// dangerouslyUseHTMLString: true
// }).then(() => {
// const ids = []
// data.forEach(val => {
// ids.push(val.fondsId)
// })
// const params = {
// 'fondsIds': ids
// }
// exportFile(this.baseApi + '/api/fonds/download?' + qs.stringify(params, { indices: false }))
// }).catch(() => {
// })
// },
// //
handleRowDblClick(row) { handleRowDblClick(row) {
this.selectedTask = [] this.selectedTask = []
@ -384,12 +383,12 @@ export default {
this.inventoryLoading = true this.inventoryLoading = true
const params = { const params = {
'taskId': this.selectedTask[0].id,
'billNo': this.selectedTask[0].branchBillNo,
'pageNo': this.inventoryPage, 'pageNo': this.inventoryPage,
'pageSize': this.inventoryPageSize 'pageSize': this.inventoryPageSize
} }
FetchStockTakeDetailsByTaskId(params).then(res => {
console.log('FetchStockTakeDetailsByTaskId', res)
FetchInOutDetailsByBillNo(params).then(res => {
console.log('FetchInOutDetailsByBillNo', res)
this.inventoryList = res.records this.inventoryList = res.records
this.inventoryTotal = res.total this.inventoryTotal = res.total
this.inventoryLoading = false this.inventoryLoading = false

6
src/views/assetManage/stocktaking/index.vue

@ -41,10 +41,10 @@
</div> </div>
<crudOperation :permission="permission"> <crudOperation :permission="permission">
<template v-slot:middle> <template v-slot:middle>
<el-button :loading="addLoading" size="mini" @click="addStockTakeBill">
<!-- <el-button :loading="addLoading" size="mini" @click="addStockTakeBill">
<i class="iconfont icon-xinzeng" /> <i class="iconfont icon-xinzeng" />
新增 新增
</el-button>
</el-button> -->
<!-- <el-button slot="reference" size="mini" :loading="crud.delAllLoading" :disabled="crud.selections.length === 0" @click="toDelete(crud.selections)"> <!-- <el-button slot="reference" size="mini" :loading="crud.delAllLoading" :disabled="crud.selections.length === 0" @click="toDelete(crud.selections)">
<i class="iconfont icon-shanchu" /> <i class="iconfont icon-shanchu" />
删除 删除
@ -309,7 +309,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="tabIndex === 0">{{ scope.row.taskRemark }}</span> <span v-if="tabIndex === 0">{{ scope.row.taskRemark }}</span>
<span v-else> <span v-else>
{{ scope.row.assetInfo ? scope.row.assetInfo.capitalStatus : '' }}
{{ scope.row.assetInfo ? scope.row.assetInfo.remark : '' }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>

Loading…
Cancel
Save