二级库代码提交

This commit is contained in:
BianLzhaoMin 2025-01-14 13:26:49 +08:00
parent 7dc5130ff6
commit 268ddebb2d
8 changed files with 663 additions and 20 deletions

View File

@ -8,3 +8,11 @@ export function addTeamsApi(data) {
data, data,
}) })
} }
// 获取编码设备接口
export function getMaStatusByMaIdApi(data) {
return request({
url: '/material/secondaryWarehouse/getMaStatusByMaId',
method: 'get',
params: data,
})
}

View File

@ -0,0 +1,138 @@
<template>
<div>
<PageHeader :pageContent="pageContent" @goBack="goBack" />
<el-form
ref="queryForm"
size="small"
:inline="true"
:model="queryParams"
>
<el-form-item prop="keyword" label="二级库">
<el-select placeholder="请选择二级库" clearable>
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item prop="keyword" label="规格型号">
<el-select placeholder="请选择规格型号" clearable>
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form>
<el-row :gutter="8" class="mb8">
<el-col :span="1.5" :key="index">
<el-button
plain
size="mini"
type="primary"
@click="onHandleOutbound"
>
提交
</el-button>
</el-col>
</el-row>
<el-table border :data="tableList">
<el-table-column
align="center"
label="序号"
type="index"
:index="
indexContinuation(queryParams.pageNum, queryParams.pageSize)
"
/>
<el-table-column
prop="name"
align="center"
label="机具名称"
show-overflow-tooltip
/>
<el-table-column
label="规格型号"
align="center"
prop="unitName"
show-overflow-tooltip
/>
<el-table-column
label="设备编码"
align="center"
prop="unitName"
show-overflow-tooltip
/>
<el-table-column
label="计量单位"
align="center"
prop="unitName"
show-overflow-tooltip
/>
<el-table-column
label="库存数量"
align="center"
prop="unitName"
show-overflow-tooltip
/>
<el-table-column
label="报废数量"
align="center"
prop="unitName"
show-overflow-tooltip
/>
<el-table-column
label="报废原因"
align="center"
prop="unitName"
show-overflow-tooltip
/>
</el-table>
</div>
</template>
<script>
import PageHeader from '@/components/pageHeader'
export default {
components: { PageHeader },
props: {
isHandleType: {
type: Number,
default: () => 1,
},
},
data() {
return {
unitList: [],
typeList: [],
tableList: [],
pageContent: '报废申请',
queryParams: {
pageNum: 1,
pageSize: 10,
},
}
},
methods: {
goBack() {
this.$emit('goBack')
},
//
onHandleOutbound() {
this.$confirm('是否确认提交?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(async () => {})
.catch(() => {})
},
},
}
</script>

View File

@ -0,0 +1,239 @@
<template>
<div>
<el-form
ref="queryForm"
size="small"
:inline="true"
:model="queryParams"
>
<el-row>
<el-col :span="4">
<el-form-item prop="unitId">
<el-select
v-model="queryParams.unitId"
placeholder="请选择二级库"
clearable
>
<el-option
v-for="item in unitList"
filterable
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item prop="keyword">
<el-input
v-model="queryParams.keyword"
placeholder="请输入报废单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
<el-button
type="primary"
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-col>
</el-row>
</el-form>
<el-row :gutter="8" class="mb8">
<el-col :span="1.5">
<el-button
plain
size="mini"
type="primary"
@click="onClickSecond()"
>
报废申请
</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="deviceList" border>
<el-table-column
align="center"
key="1"
label="序号"
type="index"
:index="
indexContinuation(queryParams.pageNum, queryParams.pageSize)
"
/>
<el-table-column
label="机具名称"
align="center"
key="4"
prop="typeName"
show-overflow-tooltip
/>
<el-table-column
label="规格型号"
align="center"
key="5"
prop="modelName"
show-overflow-tooltip
/>
<el-table-column
label="计量单位"
align="center"
key="6"
prop="nuitName"
show-overflow-tooltip
/>
<el-table-column
label="库存总量"
align="center"
key="7"
prop="num"
show-overflow-tooltip
/>
<el-table-column
label="库存剩余量"
align="center"
key="8"
prop="stockNum"
show-overflow-tooltip
/>
<el-table-column
label="已领用数量"
align="center"
key="9"
prop="receiveNum"
show-overflow-tooltip
/>
</el-table>
<pagination
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList()"
/>
</div>
</template>
<script>
import { getUnitData, getProData } from '@/api/claimAndRefund/receive.js'
import { secondaryWarehouseList } from '@/api/claimAndRefund/secondStore'
import { getTypeList } from '@/api/store/warehousing'
import { equipmentTypeTree } from '@/api/store/tools'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
components: { Treeselect },
data() {
return {
total: 0,
loading: false,
types: '变电二级库',
unitList: [],
proList: [],
typeList: [],
equipmentTypeList: [],
deviceList: [],
handleBtnList: [
{ btn_title: '班组出库', btn_type: 1 },
{ btn_title: '班组退库', btn_type: 2 },
{ btn_title: '二级库归还', btn_type: 3 },
],
queryParams: {
pageNum: 1,
pageSize: 10,
keyword: '',
unitId: undefined,
modelId: undefined,
typeId: undefined,
},
}
},
methods: {
getList() {
this.loading = true
secondaryWarehouseList(this.queryParams).then((res) => {
this.deviceList = res.rows
this.total = res.total
this.loading = false
})
},
handleQuery() {},
resetQuery() {},
//
getUnitList() {
getUnitData().then((res) => {
this.unitList = res.data
})
},
//
getProList() {
getProData().then((response) => {
this.proList = response.data
})
},
//
getTypeList() {
getTypeList({ level: '3' }).then((response) => {
this.typeList = response.data
})
},
//
equipmentType() {
equipmentTypeTree().then((response) => {
this.equipmentTypeList = response.data
this.equipmentTypeList.forEach((item, index) => {
if (item.children && item.children.length > 0) {
item.children.forEach((item2, index2) => {
if (item2.children && item2.children.length > 0) {
item2.children.forEach((item3) => {
if (
item3.children &&
item3.children.length > 0
) {
item3.children.forEach((item4) => {
item4.machineTypeName =
item3.typeName
item4.specificationType =
item4.typeName
this.$set(item4, 'purchasePrice', 0)
this.$set(item4, 'purchaseNum', 1)
})
}
})
}
})
}
})
})
},
//
onClickSecond() {
this.$emit('onClickSecond')
},
},
created() {},
}
</script>
<style></style>

View File

@ -0,0 +1,34 @@
<template>
<!-- 二级库 管理 -->
<div class="app-container">
<transition name="el-fade-in-linear">
<HomePages @onClickSecond="onClickSecond" v-if="isShowHome" />
<HandlePages @goBack="goBack" v-else />
</transition>
</div>
</template>
<script>
import HomePages from './components/home-pages'
import HandlePages from './components/handle-pages'
export default {
components: {
HomePages,
HandlePages,
},
data() {
return {
isShowHome: true,
isHandleType: 1,
}
},
methods: {
onClickSecond() {
this.isShowHome = false
},
goBack() {
this.isShowHome = true
},
},
}
</script>

View File

@ -14,7 +14,7 @@
> >
<el-select placeholder="请选择领用班组" clearable> <el-select placeholder="请选择领用班组" clearable>
<el-option <el-option
v-for="item in unitList" v-for="item in teamsList"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"
@ -28,7 +28,7 @@
> >
<el-select placeholder="请选择退库班组" clearable> <el-select placeholder="请选择退库班组" clearable>
<el-option <el-option
v-for="item in unitList" v-for="item in teamsList"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"
@ -62,7 +62,7 @@
<el-form-item prop="proId" label="联系电话"> <el-form-item prop="proId" label="联系电话">
<el-input placeholder="请输入联系电话" clearable /> <el-input placeholder="请输入联系电话" clearable />
</el-form-item> </el-form-item>
<el-form-item <!-- <el-form-item
prop="typeId" prop="typeId"
label="规格型号" label="规格型号"
v-if="isHandleType === 1 || isHandleType === 3" v-if="isHandleType === 1 || isHandleType === 3"
@ -75,7 +75,7 @@
:value="typeItem.typeId" :value="typeItem.typeId"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item> -->
</el-form> </el-form>
<el-row :gutter="8" class="mb8"> <el-row :gutter="8" class="mb8">
@ -120,7 +120,7 @@
" "
/> />
<el-table-column <el-table-column
prop="name" prop="typeName"
align="center" align="center"
label="机具名称" label="机具名称"
show-overflow-tooltip show-overflow-tooltip
@ -128,33 +128,160 @@
<el-table-column <el-table-column
label="规格型号" label="规格型号"
align="center" align="center"
prop="unitName" prop="modelName"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column <el-table-column
label="计量单位" label="计量单位"
align="center" align="center"
prop="unitName" prop="nuitName"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column label="机具类型" align="center">
<template slot-scope="{ row }">
{{ row.manageType == 0 ? '编码设备' : '数量设备' }}
</template>
</el-table-column>
<el-table-column <el-table-column
label="库存数量" label="库存数量"
align="center" align="center"
prop="unitName" prop="stockNum"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column label="操作" align="center" key="11" width="150"> <el-table-column label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="primary"> 编码选择 </el-button> <el-button
size="mini"
type="primary"
v-if="row.manageType == 0"
@click="onViewCode(scope.row.maIds, $scope.index)"
>
编码选择
</el-button>
<el-input placeholder="输入数量" v-else />
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-dialog
width="70%"
append-to-body
title="编码设备选择"
:close-on-click-modal="false"
:visible.sync="selectCodeVisible"
>
<el-form :model="queryCodeParams" inline ref="addAndEditFormRef">
<el-form-item label="设备编码:" prop="maCode">
<el-input
v-model="queryCodeParams.maCode"
placeholder="请输入班组名称"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
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>
<el-table
border
:data="codeList"
@selection-change="handleSelectionChange"
>
<el-table-column
align="center"
label="序号"
type="index"
:index="
indexContinuation(
queryParams.pageNum,
queryParams.pageSize,
)
"
/>
<el-table-column
align="center"
width="55"
type="selection"
:selectable="
(row) => {
return row.maStatus == 16
}
"
/>
<el-table-column
prop="typeName"
align="center"
label="类型名称"
show-overflow-tooltip
/>
<el-table-column
label="规格型号"
align="center"
prop="modelName"
show-overflow-tooltip
/>
<el-table-column
label="设备编码"
align="center"
prop="maCode"
show-overflow-tooltip
/>
<el-table-column label="设备状态" align="center">
<template slot-scope="{ row }">
<el-tag
v-if="row.maStatus == 16"
type="success"
size="mini"
>
在库
</el-tag>
<el-tag
v-if="row.maStatus == 132"
type="warning"
size="mini"
>
在用
</el-tag>
</template>
</el-table-column>
</el-table>
<pagination
:total="dialogTotal"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList()"
/>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="submitSelectCode()">
</el-button>
<el-button @click="selectCodeVisible = false"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import PageHeader from '@/components/pageHeader' import PageHeader from '@/components/pageHeader'
import { secondaryWarehouseList } from '@/api/claimAndRefund/secondStore'
import { getMaStatusByMaIdApi } from '@/api/claimAndRefund/second-manage.js'
import { getTeamsListApi } from '@/api/claimAndRefund/teams-manage.js'
export default { export default {
components: { PageHeader }, components: { PageHeader },
props: { props: {
@ -165,9 +292,22 @@ export default {
}, },
data() { data() {
return { return {
selectCodeVisible: false,
unitList: [], unitList: [],
typeList: [], typeList: [],
tableList: [], tableList: [],
codeList: [],
selectList: [],
teamsList: [],
dialogTotal: 0,
currentIndex: 0,
queryCodeParams: {
maCode: '',
maIds: '',
type: 1,
pageNum: 1,
pageSize: 10,
},
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
@ -178,6 +318,21 @@ export default {
goBack() { goBack() {
this.$emit('goBack') this.$emit('goBack')
}, },
getList() {
secondaryWarehouseList(this.queryParams).then((res) => {
this.tableList = res.rows
// this.tableList = this.tableList.map((e) => {})
})
},
//
async getTeamsList() {
const { data: res } = await getTeamsListApi({
pageNum: 1,
pageSize: 999,
})
this.teamsList = res.rows
},
// //
onHandleOutbound() { onHandleOutbound() {
this.$confirm('是否确认出库?', '提示', { this.$confirm('是否确认出库?', '提示', {
@ -208,6 +363,39 @@ export default {
.then(async () => {}) .then(async () => {})
.catch(() => {}) .catch(() => {})
}, },
//
onViewCode(maIds, index) {
this.queryCodeParams.maIds = maIds
this.currentIndex = index
this.getMaStatusByMaIdData()
this.queryCodeParams.maCode = ''
this.selectCodeVisible = true
},
async getMaStatusByMaIdData() {
const res = await getMaStatusByMaIdApi(this.queryCodeParams)
this.codeList = res.rows
this.dialogTotal = res.total
},
handleSelectionChange(list) {
this.selectList = list
},
handleQuery() {
this.getMaStatusByMaIdData()
},
resetQuery() {
this.queryCodeParams.pageNum = 1
this.queryCodeParams.pageSize = 10
this.queryCodeParams.maCode = ''
this.getMaStatusByMaIdData()
},
submitSelectCode() {
if (this.selectList.length < 1) {
this.$modal.msgError('请选择需要出库的编码设备')
return
}
this.selectCodeVisible = false
},
}, },
computed: { computed: {
pageContent() { pageContent() {
@ -216,5 +404,9 @@ export default {
if (this.isHandleType === 3) return '二级库归还' if (this.isHandleType === 3) return '二级库归还'
}, },
}, },
created() {
this.getTeamsList()
this.getList()
},
} }
</script> </script>

View File

@ -1,10 +1,21 @@
<template> <template>
<div> <div>
<el-radio-group v-model="types" size="small" style="margin-bottom: 8px"> <el-radio-group
<el-radio-button label="变电二级库">变电二级库</el-radio-button> size="small"
<el-radio-button label="机具二级库">机具二级库</el-radio-button> v-model="queryParams.unitId"
style="margin-bottom: 8px"
@change="onChangeRadio"
>
<el-radio-button
:key="item.id"
:label="item.unitId"
v-for="item in secondList"
>
{{ item.name }}
</el-radio-button>
<!-- <el-radio-button label="机具二级库">机具二级库</el-radio-button>
<el-radio-button label="输电二级库">输电二级库</el-radio-button> <el-radio-button label="输电二级库">输电二级库</el-radio-button>
<el-radio-button label="揽电二级库">揽电二级库</el-radio-button> <el-radio-button label="揽电二级库">揽电二级库</el-radio-button> -->
</el-radio-group> </el-radio-group>
<el-form <el-form
@ -24,7 +35,7 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <!-- <el-col :span="4">
<el-form-item prop="unitId"> <el-form-item prop="unitId">
<el-select <el-select
v-model="queryParams.unitId" v-model="queryParams.unitId"
@ -57,7 +68,7 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="typeId"> <el-form-item prop="typeId">
<el-select <el-select
@ -197,6 +208,7 @@ import { getUnitData, getProData } from '@/api/claimAndRefund/receive.js'
import { secondaryWarehouseList } from '@/api/claimAndRefund/secondStore' import { secondaryWarehouseList } from '@/api/claimAndRefund/secondStore'
import { getTypeList } from '@/api/store/warehousing' import { getTypeList } from '@/api/store/warehousing'
import { equipmentTypeTree } from '@/api/store/tools' import { equipmentTypeTree } from '@/api/store/tools'
import { getConfigListApi } from '@/api/claimAndRefund/config-pages.js'
import Treeselect from '@riophae/vue-treeselect' import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default { export default {
@ -205,11 +217,12 @@ export default {
return { return {
total: 0, total: 0,
loading: false, loading: false,
types: '变电二级库', types: '',
unitList: [], unitList: [],
proList: [], proList: [],
typeList: [], typeList: [],
equipmentTypeList: [], equipmentTypeList: [],
secondList: [],
deviceList: [], deviceList: [],
handleBtnList: [ handleBtnList: [
{ btn_title: '班组出库', btn_type: 1 }, { btn_title: '班组出库', btn_type: 1 },
@ -235,8 +248,22 @@ export default {
this.loading = false this.loading = false
}) })
}, },
async getSecondList() {
const { data: res } = await getConfigListApi({
pageNum: 1,
pageSize: 999,
})
this.secondList = res.rows
},
onChangeRadio() {
this.getList()
},
handleQuery() {}, handleQuery() {},
resetQuery() {}, resetQuery() {
this.resetForm('queryForm')
this.queryParams.unitId = ''
this.getList()
},
// //
getUnitList() { getUnitList() {
getUnitData().then((res) => { getUnitData().then((res) => {
@ -287,11 +314,16 @@ export default {
// //
onClickSecond(type) { onClickSecond(type) {
if (!this.queryParams.unitId) {
this.$modal.msgError('请先选择需要操作的二级库!')
return
}
this.$emit('onClickSecond', type) this.$emit('onClickSecond', type)
}, },
}, },
created() { created() {
this.getList() this.getList()
this.getSecondList()
this.getUnitList() this.getUnitList()
this.getProList() this.getProList()
this.getTypeList() this.getTypeList()

View File

@ -1,5 +1,5 @@
<template> <template>
<!-- 二级库 管理 --> <!-- 二级库 报废申请 -->
<div class="app-container"> <div class="app-container">
<transition name="el-fade-in-linear"> <transition name="el-fade-in-linear">
<HomePages @onClickSecond="onClickSecond" v-if="isShowHome" /> <HomePages @onClickSecond="onClickSecond" v-if="isShowHome" />

View File

@ -42,7 +42,7 @@ module.exports = {
// target: `https://test-cc.zhgkxt.com`,//线上环境-南网 // target: `https://test-cc.zhgkxt.com`,//线上环境-南网
// target: `https://z.csgmall.com.cn`, // target: `https://z.csgmall.com.cn`,
target: `http://192.168.2.123:39080`, //超 target: `http://192.168.2.125:39080`, //超
// target: `http://192.168.2.74:49080`, //旭/ // target: `http://192.168.2.74:49080`, //旭/
// target: `http://192.168.2.17:39080`, //帅 // target: `http://192.168.2.17:39080`, //帅