Merge remote-tracking branch 'origin/dev-cq-bug' into dev-cq-bug

This commit is contained in:
15856 2024-04-28 16:23:50 +08:00
commit 0c77aa4e46
1 changed files with 538 additions and 784 deletions

View File

@ -1,13 +1,6 @@
<template> <template>
<div class="app-container" id="secondStore"> <div class="app-container" id="secondStore">
<el-form <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="80px"
>
<el-form-item label="关键字" prop="keyword"> <el-form-item label="关键字" prop="keyword">
<el-input <el-input
v-model="queryParams.keyword" v-model="queryParams.keyword"
@ -18,43 +11,17 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="单位名称" prop="unitId"> <el-form-item label="单位名称" prop="unitId">
<el-select <el-select v-model="queryParams.unitId" placeholder="请选择单位名称" clearable>
v-model="queryParams.unitId" <el-option v-for="item in unitList" filterable :key="item.id" :label="item.name" :value="item.id"></el-option>
placeholder="请选择单位名称"
clearable
>
<el-option
v-for="item in unitList"
filterable
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="工程名称" prop="proId"> <el-form-item label="工程名称" prop="proId">
<el-select <el-select v-model="queryParams.proId" placeholder="请选择工程名称" clearable>
v-model="queryParams.proId" <el-option v-for="item in proList" filterable :key="item.id" :label="item.name" :value="item.id"></el-option>
placeholder="请选择工程名称"
clearable
>
<el-option
v-for="item in proList"
filterable
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="类型名称" prop="typeId"> <el-form-item label="类型名称" prop="typeId">
<el-select <el-select v-model="queryParams.typeId" placeholder="请选择类型名称" clearable filterable style="width: 240px">
v-model="queryParams.typeId"
placeholder="请选择类型名称"
clearable
filterable
style="width: 240px"
>
<el-option <el-option
v-for="typeItem in typeList" v-for="typeItem in typeList"
:key="typeItem.typeId" :key="typeItem.typeId"
@ -78,164 +45,68 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
icon="el-icon-search"
size="mini"
@click="handleQuery"
>查询</el-button
>
<el-button
icon="el-icon-refresh"
size="mini"
@click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button
>
</el-col> </el-col>
<right-toolbar <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row> </el-row>
<el-table <el-table v-loading="loading" :data="deviceList" @selection-change="handleSelectionChange">
v-loading="loading"
:data="deviceList"
@selection-change="handleSelectionChange"
>
<!-- <el-table-column type="selection" width="55" align="center" /> --> <!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" align="center" width="80" type="index"> <el-table-column label="序号" align="center" width="80" type="index">
<template scope="scope"> <template scope="scope">
<span>{{ (queryParams.pageNum - 1) * 10 + scope.$index + 1 }}</span> <span>{{ (queryParams.pageNum - 1) * 10 + scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="单位名称" align="center" prop="unitName" :show-overflow-tooltip="true" />
label="单位名称" <el-table-column label="工程名称" align="center" prop="proName" :show-overflow-tooltip="true" />
align="center" <el-table-column label="类型名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
prop="unitName" <el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
:show-overflow-tooltip="true" <el-table-column label="进场数量" align="center" prop="jcNum" :show-overflow-tooltip="true">
/>
<el-table-column
label="工程名称"
align="center"
prop="proName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="类型名称"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格型号"
align="center"
prop="modelName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="进场数量"
align="center"
prop="jcNum"
:show-overflow-tooltip="true"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span <span class="clickText" @click="openRecords(scope.row, 1)">{{ scope.row.jcNum }}</span>
class="clickText"
@click="openRecords(scope.row, 1)"
>{{ scope.row.jcNum }}</span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="退场数量" align="center" prop="tcNUm" :show-overflow-tooltip="true">
label="退场数量"
align="center"
prop="tcNUm"
:show-overflow-tooltip="true"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span <span class="clickText" @click="openRecords(scope.row, 2)">{{ scope.row.tcNUm }}</span>
class="clickText"
@click="openRecords(scope.row, 2)"
>{{ scope.row.tcNUm }}</span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="场内库存量" align="center" prop="kcNum" :show-overflow-tooltip="true" />
label="场内库存量"
align="center"
prop="kcNum"
:show-overflow-tooltip="true"
/>
<!-- <template slot-scope="scope">--> <!-- <template slot-scope="scope">-->
<!-- <span class="clickText" @click="openRecords(scope.row,3)">{{scope.row.kcNum}}</span>--> <!-- <span class="clickText" @click="openRecords(scope.row,3)">{{scope.row.kcNum}}</span>-->
<!-- </template>--> <!-- </template>-->
<!-- </el-table-column>--> <!-- </el-table-column>-->
<el-table-column <el-table-column label="已出库数量" align="center" prop="ckNum" :show-overflow-tooltip="true">
label="已出库数量"
align="center"
prop="ckNum"
:show-overflow-tooltip="true"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span <span class="clickText" @click="openRecords(scope.row, 4)">{{ scope.row.ckNum }}</span>
class="clickText"
@click="openRecords(scope.row, 4)"
>{{ scope.row.ckNum }}</span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="已退库数量" align="center" prop="zkNum" :show-overflow-tooltip="true">
label="已退库数量"
align="center"
prop="zkNum"
:show-overflow-tooltip="true"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span <span class="clickText" @click="openRecords(scope.row, 5)">{{ scope.row.zkNum }}</span>
class="clickText"
@click="openRecords(scope.row, 5)"
>{{ scope.row.zkNum }}</span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="计量单位" align="center" prop="nuitName" :show-overflow-tooltip="true" />
label="计量单位" <el-table-column label="操作" align="center" width="150">
align="center"
prop="nuitName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="primary" @click="handleOut(scope.row)" v-if="parseInt(scope.row.kcNum) > 0">
size="mini" 出库
type="primary" </el-button>
@click="handleOut(scope.row)"
>出库</el-button
>
<el-button <el-button
size="mini" size="mini"
type="warning" type="warning"
@click="handleIn(scope.row)" @click="handleIn(scope.row)"
>退库</el-button v-if="parseInt(scope.row.ckNum) > 0 && parseInt(scope.row.zkNum) < parseInt(scope.row.ckNum)"
> >
退库
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -249,153 +120,82 @@
/> />
<!-- 出库弹窗 --> <!-- 出库弹窗 -->
<el-dialog <el-dialog :title="title" :visible.sync="openOut" width="600px" append-to-body :close-on-click-modal="false">
:title="title" <el-form ref="form" :model="form" :rules="rules" label-width="120px">
:visible.sync="openOut"
width="600px"
append-to-body
:close-on-click-modal="false"
>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="120px"
>
<el-form-item label="类型名称:" prop="typeName"> <el-form-item label="类型名称:" prop="typeName">
<el-input <el-input v-model="form.typeName" placeholder="请输入类型名称" disabled />
v-model="form.typeName"
placeholder="请输入类型名称"
disabled
/>
</el-form-item> </el-form-item>
<el-form-item label="规格型号" prop="modelName"> <el-form-item label="规格型号" prop="modelName">
<el-input <el-input v-model="form.modelName" placeholder="请输入规格型号" disabled />
v-model="form.modelName"
placeholder="请输入规格型号"
disabled
/>
</el-form-item> </el-form-item>
<el-form-item label="在库数量" prop="kcNum"> <el-form-item label="在库数量" prop="kcNum">
<el-input <el-input v-model="form.kcNum" placeholder="请输入在库数量" disabled />
v-model="form.kcNum"
placeholder="请输入在库数量"
disabled
/>
</el-form-item> </el-form-item>
<el-form-item label="出库数量" prop="num"> <el-form-item label="出库数量" prop="num">
<el-input v-model="form.num" placeholder="请输入出库数量" /> <el-input v-model="form.num" placeholder="请输入出库数量" />
</el-form-item> </el-form-item>
<el-form-item label="班组名称" prop="teamName"> <el-form-item label="班组名称" prop="teamName">
<el-input <el-input v-model="form.teamName" placeholder="请输入班组名称" maxlength="50" />
v-model="form.teamName"
placeholder="请输入班组名称"
maxlength="50"
/>
</el-form-item> </el-form-item>
<el-form-item label="领用人员" prop="leaseMan"> <el-form-item label="领用人员" prop="leaseMan">
<el-input <el-input v-model="form.leaseMan" placeholder="请输入领用人员" maxlength="50" />
v-model="form.leaseMan"
placeholder="请输入领用人员"
maxlength="50"
/>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" prop="phone"> <el-form-item label="联系电话" prop="phone">
<el-input <el-input
v-model="form.phone" v-model="form.phone"
placeholder="请输入联系电话" placeholder="请输入联系电话"
maxlength="11" onkeyup="this.value = this.value.replace(/[^\d]/g,'');" maxlength="11"
onkeyup="this.value = this.value.replace(/[^\d]/g,'');"
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer" style="text-align: center"> <div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="submitForm(1)" <el-button type="primary" @click="submitForm(1)"> </el-button>
> </el-button
>
<el-button @click="openOut = false"> </el-button> <el-button @click="openOut = false"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 进库弹窗 --> <!-- 进库弹窗 -->
<el-dialog <el-dialog :title="title" :visible.sync="openIn" width="600px" append-to-body :close-on-click-modal="false">
:title="title" <el-form ref="nform" :model="nform" :rules="nrules" label-width="120px">
:visible.sync="openIn"
width="600px"
append-to-body
:close-on-click-modal="false"
>
<el-form
ref="nform"
:model="nform"
:rules="nrules"
label-width="120px"
>
<el-form-item label="类型名称:" prop="typeName"> <el-form-item label="类型名称:" prop="typeName">
<el-input <el-input v-model="nform.typeName" placeholder="请输入类型名称" disabled />
v-model="nform.typeName"
placeholder="请输入类型名称"
disabled
/>
</el-form-item> </el-form-item>
<el-form-item label="规格型号" prop="modelName"> <el-form-item label="规格型号" prop="modelName">
<el-input <el-input v-model="nform.modelName" placeholder="请输入规格型号" disabled />
v-model="nform.modelName" </el-form-item>
placeholder="请输入规格型号" <el-form-item label="已出库数量" prop="ckNum">
disabled <el-input v-model="nform.ckNum" disabled />
/>
</el-form-item> </el-form-item>
<el-form-item label="退库数量" prop="num"> <el-form-item label="退库数量" prop="num">
<el-input <el-input v-model="nform.num" placeholder="请输入退库数量" maxlength="50" />
v-model="nform.num"
placeholder="请输入退库数量"
/>
</el-form-item> </el-form-item>
<el-form-item label="班组名称" prop="teamName"> <el-form-item label="班组名称" prop="teamName">
<el-input <el-input v-model="nform.teamName" placeholder="请输入班组名称" maxlength="50" />
v-model="nform.teamName"
placeholder="请输入班组名称"
maxlength="50"
/>
</el-form-item> </el-form-item>
<el-form-item label="退库人员" prop="leaseMan"> <el-form-item label="退库人员" prop="leaseMan">
<el-input <el-input v-model="nform.leaseMan" placeholder="请输入退库人员" maxlength="50" />
v-model="nform.leaseMan"
placeholder="请输入退库人员"
maxlength="50"
/>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" prop="phone"> <el-form-item label="联系电话" prop="phone">
<el-input <el-input
v-model="nform.phone" v-model="nform.phone"
placeholder="请输入联系电话" placeholder="请输入联系电话"
maxlength="11" onkeyup="this.value = this.value.replace(/[^\d]/g,'');" maxlength="11"
onkeyup="this.value = this.value.replace(/[^\d]/g,'');"
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer" style="text-align: center"> <div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="submitForm(2)" <el-button type="primary" @click="submitForm(2)"> </el-button>
> </el-button
>
<el-button @click="openIn = false"> </el-button> <el-button @click="openIn = false"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 记录弹窗 --> <!-- 记录弹窗 -->
<el-dialog <el-dialog :title="title" :visible.sync="openRecord" width="1200px" append-to-body>
:title="title" <el-form :model="dialogQuery" ref="dialogQuery" size="small" :inline="true" label-width="80px">
:visible.sync="openRecord"
width="1200px"
append-to-body
>
<el-form
:model="dialogQuery"
ref="dialogQuery"
size="small"
:inline="true"
label-width="80px"
>
<el-form-item label="记录时间" prop="startTime"> <el-form-item label="记录时间" prop="startTime">
<el-date-picker <el-date-picker
v-model="dialogQuery.startTime" v-model="dialogQuery.startTime"
@ -413,19 +213,8 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleDialogQuery">查询</el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetDialogQuery">重置</el-button>
icon="el-icon-search"
size="mini"
@click="handleDialogQuery"
>查询</el-button
>
<el-button
icon="el-icon-refresh"
size="mini"
@click="resetDialogQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -435,36 +224,11 @@
<span>{{ (dialogQuery.pageNum - 1) * 10 + scope.$index + 1 }}</span> <span>{{ (dialogQuery.pageNum - 1) * 10 + scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="类型名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
label="类型名称" <el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
align="center" <el-table-column label="数量" align="center" prop="num" :show-overflow-tooltip="true" />
prop="typeName" <el-table-column label="记录时间" align="center" prop="startTime" :show-overflow-tooltip="true" />
:show-overflow-tooltip="true" <el-table-column label="操作类型" align="center" prop="" :show-overflow-tooltip="true" />
/>
<el-table-column
label="规格型号"
align="center"
prop="modelName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="数量"
align="center"
prop="num"
:show-overflow-tooltip="true"
/>
<el-table-column
label="记录时间"
align="center"
prop="startTime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作类型"
align="center"
prop=""
:show-overflow-tooltip="true"
/>
</el-table> </el-table>
<pagination <pagination
@ -479,11 +243,7 @@
</template> </template>
<script> <script>
import { import { secondaryWarehouseList, operate, getRecords } from '@/api/claimAndRefund/secondStore'
secondaryWarehouseList,
operate,
getRecords,
} from '@/api/claimAndRefund/secondStore'
import { getUnitData, getProData } from '@/api/claimAndRefund/receive.js' import { getUnitData, getProData } from '@/api/claimAndRefund/receive.js'
import { getTypeList } from '@/api/store/warehousing' import { getTypeList } from '@/api/store/warehousing'
import { equipmentTypeTree } from '@/api/store/tools' import { equipmentTypeTree } from '@/api/store/tools'
@ -594,52 +354,36 @@
methods: { methods: {
// //
getUnitList() { getUnitList() {
getUnitData().then((response) => { getUnitData().then(response => {
this.unitList = response.data this.unitList = response.data
}) })
}, },
// //
getProList() { getProList() {
getProData().then((response) => { getProData().then(response => {
this.proList = response.data this.proList = response.data
}) })
}, },
getTypeList() { getTypeList() {
getTypeList({ level: '3' }).then((response) => { getTypeList({ level: '3' }).then(response => {
this.typeList = response.data this.typeList = response.data
}) })
}, },
// //
equipmentType() { equipmentType() {
equipmentTypeTree().then((response) => { equipmentTypeTree().then(response => {
this.equipmentTypeList = response.data this.equipmentTypeList = response.data
this.equipmentTypeList.forEach((item, index) => { this.equipmentTypeList.forEach((item, index) => {
if (item.children && item.children.length > 0) { if (item.children && item.children.length > 0) {
item.children.forEach((item2, index2) => { item.children.forEach((item2, index2) => {
if ( if (item2.children && item2.children.length > 0) {
item2.children && item2.children.forEach(item3 => {
item2.children.length > 0 if (item3.children && item3.children.length > 0) {
) { item3.children.forEach(item4 => {
item2.children.forEach((item3) => { item4.machineTypeName = item3.typeName
if ( item4.specificationType = item4.typeName
item3.children && this.$set(item4, 'purchasePrice', 0)
item3.children.length > 0 this.$set(item4, 'purchaseNum', 1)
) {
item3.children.forEach((item4) => {
item4.machineTypeName =
item3.typeName
item4.specificationType =
item4.typeName
this.$set(
item4,
'purchasePrice',
0,
)
this.$set(
item4,
'purchaseNum',
1,
)
}) })
} }
}) })
@ -652,7 +396,7 @@
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true this.loading = true
secondaryWarehouseList(this.queryParams).then((response) => { secondaryWarehouseList(this.queryParams).then(response => {
this.deviceList = response.rows this.deviceList = response.rows
this.total = response.total this.total = response.total
this.loading = false this.loading = false
@ -691,7 +435,7 @@
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map((item) => item.dictId) this.ids = selection.map(item => item.dictId)
this.single = selection.length != 1 this.single = selection.length != 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
@ -723,18 +467,24 @@
this.$set(this.nform, 'unitName', row.unitName) this.$set(this.nform, 'unitName', row.unitName)
this.$set(this.nform, 'typeName', row.typeName) this.$set(this.nform, 'typeName', row.typeName)
this.$set(this.nform, 'modelName', row.modelName) this.$set(this.nform, 'modelName', row.modelName)
this.$set(this.nform, 'ckNum', row.ckNum)
this.openIn = true this.openIn = true
this.title = '退库' this.title = '退库'
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function (type) { submitForm: function (type) {
if (type == 1) { if (type == 1) {
this.$refs['form'].validate((valid) => { this.$refs['form'].validate(valid => {
if (valid) { if (valid) {
if (parseInt(this.form.num) > parseInt(this.form.kcNum)) {
this.$message.error('出库数量不可大于在库数量')
return
}
let param = {} let param = {}
param = this.form param = this.form
param.type = 1 param.type = 1
operate(param).then((response) => { operate(param).then(response => {
this.$modal.msgSuccess('操作成功') this.$modal.msgSuccess('操作成功')
this.openOut = false this.openOut = false
this.getList() this.getList()
@ -743,12 +493,16 @@
}) })
} }
if (type == 2) { if (type == 2) {
this.$refs['nform'].validate((valid) => { this.$refs['nform'].validate(valid => {
if (valid) { if (valid) {
if (parseInt(this.nform.num) > parseInt(this.nform.ckNum)) {
this.$message.error('退库数量不可大于出库数量')
return
}
let param = {} let param = {}
param = this.nform param = this.nform
param.type = 2 param.type = 2
operate(param).then((response) => { operate(param).then(response => {
this.$modal.msgSuccess('操作成功') this.$modal.msgSuccess('操作成功')
this.openIn = false this.openIn = false
this.getList() this.getList()
@ -773,7 +527,7 @@
/** 查询列表 */ /** 查询列表 */
getDialogList() { getDialogList() {
this.dialogQuery.queryType = this.queryType this.dialogQuery.queryType = this.queryType
getRecords(this.dialogQuery).then((response) => { getRecords(this.dialogQuery).then(response => {
this.dialogList = response.rows this.dialogList = response.rows
this.dialogTotal = response.total this.dialogTotal = response.total
}) })
@ -783,7 +537,7 @@
this.downloadJson( this.downloadJson(
'material/secondaryWarehouse/exportList', 'material/secondaryWarehouse/exportList',
JSON.stringify(this.queryParams), JSON.stringify(this.queryParams),
`二级库_${new Date().getTime()}.xlsx`, `二级库_${new Date().getTime()}.xlsx`
) )
}, },
}, },