Commit 6d33be0c by T

新增装备供应商报表、快速报废及bug修复

parent dd83ebf5
...@@ -11,15 +11,6 @@ module.exports = { ...@@ -11,15 +11,6 @@ module.exports = {
assetsPublicPath: '/', assetsPublicPath: '/',
// 配置代理 // 配置代理
proxyTable: { proxyTable: {
'/auth': {
// 测试环境
target: base_url,
secure: true,
changeOrigin: true,
pathRewrite: {
'^/auth': 'auth'
}
},
'/api': { '/api': {
// 测试环境 // 测试环境
target: base_url, target: base_url,
......
...@@ -9,14 +9,9 @@ ...@@ -9,14 +9,9 @@
<!-- 全局配置 --> <!-- 全局配置 -->
<script> <script>
window._CONFIG = {}; window._CONFIG = {};
//自建平台
// window._CONFIG['serviceURL'] = 'http://192.168.2.105:8848';
// window._CONFIG['userURL'] = 'http://192.168.2.105:10005';
//总平台 //总平台
window._CONFIG['serviceURL'] = 'http://192.168.2.105:5000'; window._CONFIG['serviceURL'] = 'http://192.168.3.189:8848';
window._CONFIG['userURL'] = 'http://192.168.2.105:10004'; window._CONFIG['userURL'] = 'http://192.168.3.189:10005';
// window._CONFIG['serviceURL'] = 'http://41.190.20.132:5000';
// window._CONFIG['userURL'] = 'http://41.190.20.132:10004';
</script> </script>
<script type="text/javascript" src="http://jzpt.gat.zj:10001/web_jznew/js/jquery/jquery-1.8.3.js"></script> <script type="text/javascript" src="http://jzpt.gat.zj:10001/web_jznew/js/jquery/jquery-1.8.3.js"></script>
</head> </head>
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
"bpmn-js": "^5.1.2", "bpmn-js": "^5.1.2",
"bpmn-moddle": "^6.0.0", "bpmn-moddle": "^6.0.0",
"clipboard": "1.7.1", "clipboard": "1.7.1",
"cnchar": "^2.2.4", "cnchar": "^3.2.2",
"codemirror": "^5.38.0", "codemirror": "^5.38.0",
"connect": "3.6.6", "connect": "3.6.6",
"echarts": "^4.1.0", "echarts": "^4.1.0",
......
...@@ -47,6 +47,14 @@ export function getAllFixs(data) { ...@@ -47,6 +47,14 @@ export function getAllFixs(data) {
}) })
} }
export function quickAddFixed(data) {
return request({
url: window._CONFIG['serviceURL'] + '/api/FixReceiveApply/QuickAddFixed',
method: 'post',
data: transform(data)
})
}
// 查看维修报废明细 // 查看维修报废明细
export function getByID(data) { export function getByID(data) {
return request({ return request({
......
...@@ -142,6 +142,15 @@ export function getOrgListEquipmentDetail(data) { ...@@ -142,6 +142,15 @@ export function getOrgListEquipmentDetail(data) {
}) })
} }
// 获取本组织机构物资信息(供应商聚合)
export function getListEquipmentByOrgGroupBySupplier(data) {
return request({
url: window._CONFIG['serviceURL'] + '/api/Inventory/GetListEquipmentByOrgGroupBySupplier',
method: 'post',
data: transform(data)
})
}
export function getAllInOutTop10History(data) { export function getAllInOutTop10History(data) {
return request({ return request({
url: window._CONFIG['serviceURL'] + '/api/Inventory/GetAllInOutTop10History', url: window._CONFIG['serviceURL'] + '/api/Inventory/GetAllInOutTop10History',
......
...@@ -173,12 +173,12 @@ ...@@ -173,12 +173,12 @@
*/ */
export function transform(data) { export function transform(data) {
let k = { let k = {
appKey: 'odykzzWm1GASj15K1AGxwQ==', appKey: 'N1JOsoM/x25Mj1VUaJATBw==',
orgId: '', orgId: '',
version: '1.0', version: '1.0',
timestamp: parseInt(new Date().getTime()/1000), timestamp: parseInt(new Date().getTime()/1000),
body: escape(JSON.stringify(data)), body: escape(JSON.stringify(data)),
sign: md5('a1dca4cf35a6d460128f5e4ad401b1c1'+parseInt(new Date().getTime()/1000)+'1.0'+escape(JSON.stringify(data))) sign: md5('37524eb2833fc76e4c8f555468901307'+parseInt(new Date().getTime()/1000)+'1.0'+escape(JSON.stringify(data)))
} }
return k; return k;
// let k = { // let k = {
......
...@@ -3,6 +3,7 @@ import router from '@/router/routers' ...@@ -3,6 +3,7 @@ import router from '@/router/routers'
import { Notification, MessageBox } from 'element-ui' import { Notification, MessageBox } from 'element-ui'
import store from '../store' import store from '../store'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import Config from '@/config' import Config from '@/config'
......
...@@ -52,8 +52,8 @@ ...@@ -52,8 +52,8 @@
<el-tag v-else-if="scope.row.actionState == 6" type="danger">维修</el-tag> <el-tag v-else-if="scope.row.actionState == 6" type="danger">维修</el-tag>
<el-tag v-else-if="scope.row.actionState == 7" type="info">报废</el-tag> <el-tag v-else-if="scope.row.actionState == 7" type="info">报废</el-tag>
<el-tag v-else-if="scope.row.actionState == 13 || scope.row.actionState == 14" type="success">本仓库借用</el-tag> <el-tag v-else-if="scope.row.actionState == 13 || scope.row.actionState == 14" type="success">本仓库借用</el-tag>
<el-tag v-else-if="scope.row.actionState == 15 || scope.row.actionState == 16" type="success">跨仓库借用</el-tag> <!-- <el-tag v-else-if="scope.row.actionState == 15 || scope.row.actionState == 16" type="success">跨仓库借用</el-tag>
<el-tag v-else-if="scope.row.actionState == 17 || scope.row.actionState == 18" type="success">跨仓库归还</el-tag> <el-tag v-else-if="scope.row.actionState == 17 || scope.row.actionState == 18" type="success">跨仓库归还</el-tag> -->
<el-tag v-else-if="scope.row.actionState == 19" type="success">装备回库</el-tag> <el-tag v-else-if="scope.row.actionState == 19" type="success">装备回库</el-tag>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
<el-tag v-else-if="scope.row.actionState == 6" type="primary">维修</el-tag> <el-tag v-else-if="scope.row.actionState == 6" type="primary">维修</el-tag>
<el-tag v-else-if="scope.row.actionState == 7" type="danger">报废</el-tag> <el-tag v-else-if="scope.row.actionState == 7" type="danger">报废</el-tag>
<el-tag v-else-if="scope.row.actionState == 13 || scope.row.actionState == 14" type="success">本仓库借用</el-tag> <el-tag v-else-if="scope.row.actionState == 13 || scope.row.actionState == 14" type="success">本仓库借用</el-tag>
<el-tag v-else-if="scope.row.actionState == 15 || scope.row.actionState == 16" type="success">跨仓库借用</el-tag> <!-- <el-tag v-else-if="scope.row.actionState == 15 || scope.row.actionState == 16" type="success">跨仓库借用</el-tag>
<el-tag v-else-if="scope.row.actionState == 17 || scope.row.actionState == 18" type="success">跨仓库归还</el-tag> <el-tag v-else-if="scope.row.actionState == 17 || scope.row.actionState == 18" type="success">跨仓库归还</el-tag> -->
<el-tag v-else-if="scope.row.actionState == 19" type="success">装备回库</el-tag> <el-tag v-else-if="scope.row.actionState == 19" type="success">装备回库</el-tag>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</template> </template>
<script> <script>
import { getSyPOrg } from '@/api/view' // import { getSyPOrg } from '@/api/view'
import { getWxPOrg } from '@/api/view' import { getWxPOrg } from '@/api/view'
import { getBfPOrg } from '@/api/view' import { getBfPOrg } from '@/api/view'
import DataSet from '@antv/data-set' import DataSet from '@antv/data-set'
...@@ -54,41 +54,41 @@ export default { ...@@ -54,41 +54,41 @@ export default {
methods: { methods: {
init(orgId) { init(orgId) {
this.orgId = orgId || this.$store.state.user.user.baseJpOrganization.id this.orgId = orgId || this.$store.state.user.user.baseJpOrganization.id
getSyPOrg({orgId: this.orgId}).then(res => { // getSyPOrg({orgId: this.orgId}).then(res => {
if (res.code == "10000") { // if (res.code == "10000") {
this.dataSource = res.data // this.dataSource = res.data
let dv = new DataSet.View().source(this.dataSource) // let dv = new DataSet.View().source(this.dataSource)
dv.transform({ // dv.transform({
type: 'fold', // type: 'fold',
fields: ['近七天使用次数', '近三十天使用次数'], // fields: ['近七天使用次数', '近三十天使用次数'],
key: '装备类型', // key: '装备类型',
value: '使用量', // value: '使用量',
}); // });
this.chartData = dv // this.chartData = dv
this.position = '装备类型*使用量' // this.position = '装备类型*使用量'
} else { // } else {
this.$message.error(res.msg) // this.$message.error(res.msg)
} // }
}) // })
}, },
radioChange(value) { radioChange(value) {
if (value == '使用次数') { if (value == '使用次数') {
getSyPOrg({orgId: this.orgId}).then(res => { // getSyPOrg({orgId: this.orgId}).then(res => {
if (res.code == "10000") { // if (res.code == "10000") {
this.dataSource = res.data // this.dataSource = res.data
let dv = new DataSet.View().source(this.dataSource) // let dv = new DataSet.View().source(this.dataSource)
dv.transform({ // dv.transform({
type: 'fold', // type: 'fold',
fields: ['近七天使用次数', '近三十天使用次数'], // fields: ['近七天使用次数', '近三十天使用次数'],
key: '装备类型', // key: '装备类型',
value: '使用量', // value: '使用量',
}); // });
this.chartData = dv // this.chartData = dv
this.position = '装备类型*使用量' // this.position = '装备类型*使用量'
} else { // } else {
this.$message.error(res.msg) // this.$message.error(res.msg)
} // }
}) // })
} else if (value == '维修次数') { } else if (value == '维修次数') {
getWxPOrg({orgId: this.orgId}).then(res => { getWxPOrg({orgId: this.orgId}).then(res => {
if (res.code == "10000") { if (res.code == "10000") {
......
...@@ -295,7 +295,7 @@ export default { ...@@ -295,7 +295,7 @@ export default {
// this.$message.error(res.msg) // this.$message.error(res.msg)
// } // }
// }) // })
getPageAllOrderListHZ({ getPageAllOrderList({
page: this.page, page: this.page,
size: this.size, size: this.size,
orgId: this.orgId, orgId: this.orgId,
...@@ -379,13 +379,13 @@ export default { ...@@ -379,13 +379,13 @@ export default {
// if (data.flowType == 'borrowOther') { params.type = '跨库借用' } // if (data.flowType == 'borrowOther') { params.type = '跨库借用' }
// if (data.flowType == 'returnOther') { params.type = '跨库归还' } // if (data.flowType == 'returnOther') { params.type = '跨库归还' }
var fsdata = { var fsdata = {
appKey: "odykzzWm1GASj15K1AGxwQ==", appKey: "N1JOsoM/x25Mj1VUaJATBw==",
orgId: "", orgId: "",
version: "1.0", version: "1.0",
timestamp: parseInt(new Date().getTime() / 1000), timestamp: parseInt(new Date().getTime() / 1000),
body: escape(JSON.stringify(params)), body: escape(JSON.stringify(params)),
sign: md5( sign: md5(
"a1dca4cf35a6d460128f5e4ad401b1c1" + "37524eb2833fc76e4c8f555468901307" +
parseInt(new Date().getTime() / 1000) + parseInt(new Date().getTime() / 1000) +
"1.0" + "1.0" +
escape(JSON.stringify(params)) escape(JSON.stringify(params))
...@@ -416,13 +416,13 @@ export default { ...@@ -416,13 +416,13 @@ export default {
// if (data.flowType == 'borrowOther') { params.type = '跨库借用' } // if (data.flowType == 'borrowOther') { params.type = '跨库借用' }
// if (data.flowType == 'returnOther') { params.type = '跨库归还' } // if (data.flowType == 'returnOther') { params.type = '跨库归还' }
var fsdata = { var fsdata = {
appKey: "odykzzWm1GASj15K1AGxwQ==", appKey: "N1JOsoM/x25Mj1VUaJATBw==",
orgId: "", orgId: "",
version: "1.0", version: "1.0",
timestamp: parseInt(new Date().getTime() / 1000), timestamp: parseInt(new Date().getTime() / 1000),
body: escape(JSON.stringify(params)), body: escape(JSON.stringify(params)),
sign: md5( sign: md5(
"a1dca4cf35a6d460128f5e4ad401b1c1" + "37524eb2833fc76e4c8f555468901307" +
parseInt(new Date().getTime() / 1000) + parseInt(new Date().getTime() / 1000) +
"1.0" + "1.0" +
escape(JSON.stringify(params)) escape(JSON.stringify(params))
......
<template> <template>
<el-row :gutter="15" class="panel-group"> <el-row :gutter="20" class="panel-group">
<el-col :xs="12" :sm="12" :lg="{span: '3-4'}" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="{span: 6}" class="card-panel-col">
<div class="card-panel" @click="nextpage('装备总数')"> <div class="card-panel" @click="nextpagejn()">
<div class="card-panel-icon-wrapper icon-people"> <div class="card-panel-icon-wrapper icon-people">
<svg-icon icon-class="total" class-name="card-panel-icon" /> <svg-icon icon-class="total" class-name="card-panel-icon" />
</div> </div>
...@@ -12,52 +12,8 @@ ...@@ -12,52 +12,8 @@
</div> </div>
</el-col> </el-col>
<!-- <el-col :xs="12" :sm="12" :lg="{span: '3-4'}" class="card-panel-col">
<div class="card-panel" @click="nextpage('在库数量')">
<div class="card-panel-icon-wrapper icon-money">
<svg-icon icon-class="zaiku" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">在库数量</div>
<count-to :start-val="0" :end-val="count.zkCount" :duration="2600" class="card-panel-num"/>
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="{span: '3-4'}" class="card-panel-col">
<div class="card-panel" @click="nextpage('调拨数量')">
<div class="card-panel-icon-wrapper icon-message">
<svg-icon icon-class="available" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">调拨中</div>
<count-to :start-val="0" :end-val="count.houseCount" :duration="2600" class="card-panel-num"/>
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="{span: '3-4'}" class="card-panel-col">
<div class="card-panel" @click="nextpage('领用数量')">
<div class="card-panel-icon-wrapper icon-shopping">
<svg-icon icon-class="collecting" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">使用中</div>
<count-to :start-val="0" :end-val="count.lyCount" :duration="2600" class="card-panel-num"/>
</div>
</div>
</el-col> -->
<!-- <el-col :xs="12" :sm="12" :lg="{span: '3-4'}" class="card-panel-col">
<div class="card-panel" @click="nextpage('维修数量')">
<div class="card-panel-icon-wrapper icon-people">
<svg-icon icon-class="维修" class-name="card-panel-icon1"/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">维修数量</div>
<count-to :start-val="0" :end-val="count.wxCount" :duration="2600" class="card-panel-num"/>
</div>
</div>
</el-col> -->
<el-col :xs="12" :sm="12" :lg="{span: '3-4'}" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="{span: 6}" class="card-panel-col">
<div class="card-panel" @click="nextpage('即将报废数量')"> <div class="card-panel" @click="nextpage('即将报废数量')">
<div class="card-panel-icon-wrapper icon-people"> <div class="card-panel-icon-wrapper icon-people">
<svg-icon icon-class="30天" class-name="card-panel-icon"/> <svg-icon icon-class="30天" class-name="card-panel-icon"/>
...@@ -79,8 +35,8 @@ ...@@ -79,8 +35,8 @@
</div> </div>
</div> </div>
</el-col> --> </el-col> -->
<el-col :xs="12" :sm="12" :lg="{span: '3-4'}" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="{span: 6}" class="card-panel-col">
<div class="card-panel" > <div class="card-panel" @click="nextpagejn()">
<div class="card-panel-icon-wrapper icon-money"> <div class="card-panel-icon-wrapper icon-money">
<svg-icon icon-class="collecting" class-name="card-panel-icon" /> <svg-icon icon-class="collecting" class-name="card-panel-icon" />
</div> </div>
...@@ -90,8 +46,8 @@ ...@@ -90,8 +46,8 @@
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :xs="12" :sm="12" :lg="{span: '3-4'}" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="{span: 6}" class="card-panel-col">
<div class="card-panel" > <div class="card-panel" @click="nextpagejn()">
<div class="card-panel-icon-wrapper icon-people"> <div class="card-panel-icon-wrapper icon-people">
<svg-icon icon-class="garbage" class-name="card-panel-icon" /> <svg-icon icon-class="garbage" class-name="card-panel-icon" />
</div> </div>
...@@ -107,7 +63,7 @@ ...@@ -107,7 +63,7 @@
<script> <script>
import CountTo from 'vue-count-to' import CountTo from 'vue-count-to'
// import { getCountOrg, getCount } from '@/api/view' // import { getCountOrg, getCount } from '@/api/view'
import { getCountOrgHZ, getCount } from '@/api/view' import { getCountOrg, getCount } from '@/api/view'
export default { export default {
components: { components: {
CountTo CountTo
...@@ -143,7 +99,7 @@ export default { ...@@ -143,7 +99,7 @@ export default {
} }
}) })
} else { } else {
getCountOrgHZ({orgId: this.orgId}).then(res => { getCountOrg({orgId: this.orgId}).then(res => {
if (res.code === '10000') { if (res.code === '10000') {
this.count.zkTopCount = res.data.zkTopCount this.count.zkTopCount = res.data.zkTopCount
this.count.zkCount = res.data.zkCount this.count.zkCount = res.data.zkCount
...@@ -171,8 +127,8 @@ export default { ...@@ -171,8 +127,8 @@ export default {
orgId: this.orgId orgId: this.orgId
} }
}) })
}
} else { else {
this.$router.push({ this.$router.push({
path: '/warehouse/inventoryList', path: '/warehouse/inventoryList',
query: { query: {
...@@ -181,8 +137,12 @@ export default { ...@@ -181,8 +137,12 @@ export default {
} }
}) })
} }
} },
nextpagejn() {
this.$router.push({
path: '/data/inventoryStatistics',
})
}
} }
} }
</script> </script>
...@@ -201,7 +161,6 @@ export default { ...@@ -201,7 +161,6 @@ export default {
// } // }
.card-panel-col{ .card-panel-col{
margin-bottom: 20px; margin-bottom: 20px;
margin-left: 65px;
} }
.card-panel { .card-panel {
height: 108px; height: 108px;
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
<el-button type="text" @click="$router.push('/warehouse/maintenance')">装备维护</el-button> <el-button type="text" @click="$router.push('/warehouse/maintenance')">装备维护</el-button>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" @click="$router.push('/data/equipmentall')">装备统计报表</el-button> <el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" @click="$router.push('/data/inventoryStatistics')">装备统计报表</el-button>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" @click="$router.push('/data/reportForm')">类型统计报表</el-button> <el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" @click="$router.push('/data/reportForm')">类型统计报表</el-button>
......
...@@ -140,16 +140,7 @@ export default { ...@@ -140,16 +140,7 @@ export default {
} }
this.$store.dispatch('Login', user).then(() => { this.$store.dispatch('Login', user).then(() => {
this.loading = false this.loading = false
// if (decrypt(user.password) === '123456') { this.$router.push({ path: this.redirect || '/' })
// this.$router.push({ path: '/user/center', query: {
// changePassword: true
// } })
// setTimeout(() => {
// this.$message.warning('应省厅整改要求, 您目前的密码过于简单, 请及时修改')
// }, 1500)
// } else {
this.$router.push({ path: this.redirect || '/' })
// }
setTimeout(this.purchaseAlert , 2000) setTimeout(this.purchaseAlert , 2000)
this.getOrgList() this.getOrgList()
}).catch((err) => { }).catch((err) => {
......
...@@ -29,12 +29,12 @@ ...@@ -29,12 +29,12 @@
<el-tab-pane label="报废" name="7"> <el-tab-pane label="报废" name="7">
<warehouse-log :orgList="orgList" :warehouseList="warehouseList" :actionState="selectedOrder" @changeOrg="changeOrg"/> <warehouse-log :orgList="orgList" :warehouseList="warehouseList" :actionState="selectedOrder" @changeOrg="changeOrg"/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="跨库借用" name="15"> <!-- <el-tab-pane label="跨库借用" name="15">
<warehouse-log :orgList="orgList" :warehouseList="warehouseList" :actionState="selectedOrder" @changeOrg="changeOrg"/> <warehouse-log :orgList="orgList" :warehouseList="warehouseList" :actionState="selectedOrder" @changeOrg="changeOrg"/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="跨库归还" name="17"> <el-tab-pane label="跨库归还" name="17">
<warehouse-log :orgList="orgList" :warehouseList="warehouseList" :actionState="selectedOrder" @changeOrg="changeOrg"/> <warehouse-log :orgList="orgList" :warehouseList="warehouseList" :actionState="selectedOrder" @changeOrg="changeOrg"/>
</el-tab-pane> </el-tab-pane> -->
</el-tabs> </el-tabs>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="1" v-if="djg"> <el-tab-pane name="1" v-if="djg">
......
...@@ -30,14 +30,14 @@ ...@@ -30,14 +30,14 @@
<span slot="label"><i class="el-icon-date"></i> 报废</span> <span slot="label"><i class="el-icon-date"></i> 报废</span>
<common :warehouseList="warehouseList" :activeName="activeName"/> <common :warehouseList="warehouseList" :activeName="activeName"/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="7"> <!-- <el-tab-pane name="7">
<span slot="label"><i class="el-icon-date"></i> 跨库借用</span> <span slot="label"><i class="el-icon-date"></i> 跨库借用</span>
<common :warehouseList="warehouseList" :activeName="activeName"/> <common :warehouseList="warehouseList" :activeName="activeName"/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="9"> <el-tab-pane name="9">
<span slot="label"><i class="el-icon-date"></i> 跨库归还</span> <span slot="label"><i class="el-icon-date"></i> 跨库归还</span>
<common :warehouseList="warehouseList" :activeName="activeName"/> <common :warehouseList="warehouseList" :activeName="activeName"/>
</el-tab-pane> </el-tab-pane> -->
</el-tabs> </el-tabs>
</el-card> </el-card>
</div> </div>
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<el-table-column prop="zsCount" label="装备总数" align="center"/> <el-table-column prop="zsCount" label="装备总数" align="center"/>
<el-table-column prop="zkCount" label="今年入库数" align="center"/> <el-table-column prop="zkCount" label="今年入库数" align="center"/>
<el-table-column prop="ckCount" label="今年出库数" align="center"/> <el-table-column prop="ckCount" label="今年出库数" align="center"/>
<el-table-column prop="bfCount" label="报废数" align="center"/> <el-table-column prop="bfCount" label="今年报废数" align="center"/>
</el-table> </el-table>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="info" plain @click="cancel">关闭</el-button> <el-button type="info" plain @click="cancel">关闭</el-button>
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
<el-table-column prop="zsCount" label="总数" sortable align="center"/> <el-table-column prop="zsCount" label="总数" sortable align="center"/>
<el-table-column prop="zkCount" label="今年入库数" sortable align="center"/> <el-table-column prop="zkCount" label="今年入库数" sortable align="center"/>
<el-table-column prop="ckCount" label="今年出库数" sortable align="center"/> <el-table-column prop="ckCount" label="今年出库数" sortable align="center"/>
<el-table-column prop="bfCount" label="报废数" sortable align="center"/> <el-table-column prop="bfCount" label="今年报废数" sortable align="center"/>
<el-table-column label="操作" width="80" align="center" fixed="right"> <el-table-column label="操作" width="80" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="primary" @click="show(scope.row.id, props.row.findCode, props.row.orgCode)">查看</el-button> <el-button size="mini" type="primary" @click="show(scope.row.id, props.row.findCode, props.row.orgCode)">查看</el-button>
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
<el-table-column prop="zsCount" label="总数" sortable align="center"/> <el-table-column prop="zsCount" label="总数" sortable align="center"/>
<el-table-column prop="zkCount" label="今年入库数" sortable align="center"/> <el-table-column prop="zkCount" label="今年入库数" sortable align="center"/>
<el-table-column prop="ckCount" label="今年出库数" sortable align="center"/> <el-table-column prop="ckCount" label="今年出库数" sortable align="center"/>
<el-table-column prop="bfCount" label="报废数" sortable align="center"/> <el-table-column prop="bfCount" label="今年报废数" sortable align="center"/>
</el-table> </el-table>
<!--分页组件--> <!--分页组件-->
<el-pagination <el-pagination
...@@ -101,7 +101,7 @@ import md5 from 'js-md5' ...@@ -101,7 +101,7 @@ import md5 from 'js-md5'
import cnchar from "cnchar"; import cnchar from "cnchar";
import eForm from './form' import eForm from './form'
export default { export default {
name: 'Equipmentall', name: 'InventoryStatistics',
mixins: [initData], mixins: [initData],
components:{ components:{
eForm eForm
...@@ -122,7 +122,7 @@ export default { ...@@ -122,7 +122,7 @@ export default {
downloadLoading: false, downloadLoading: false,
excelName: '', excelName: '',
sheetNameArray: [],// 导出sheet表名称 sheetNameArray: [],// 导出sheet表名称
openEdData: {} // 展开的数据列 openEdData: {}, // 展开的数据列
} }
}, },
created() { created() {
...@@ -257,7 +257,7 @@ export default { ...@@ -257,7 +257,7 @@ export default {
if(res.code == '10000') { if(res.code == '10000') {
list = res.data.content list = res.data.content
import('@/utils/Export2Excel').then(excel => { import('@/utils/Export2Excel').then(excel => {
const tHeader = ['装备名称', '总数', '今年入库数', '今年出库数', '报废数'] const tHeader = ['装备名称', '总数', '今年入库数', '今年出库数', '今年报废数']
const filterVal = ['name', 'zsCount', 'zkCount', 'ckCount', 'bfCount'] const filterVal = ['name', 'zsCount', 'zkCount', 'ckCount', 'bfCount']
for (let org of list) { for (let org of list) {
result.push({ result.push({
......
<template>
<div class="dashboard-editor-container">
<el-card>
<!-- 搜索 -->
<div class="head-container">
<el-cascader v-model="orgId" :options="orgList"
:props="{ value: 'id', label: 'name', checkStrictly: true, emitPath: false }" filterable
clearable :show-all-levels="false" class="filter-item" style="width: 300px;margin-left:0px" placeholder="请选择本级或下级的组织机构" @change="orgChange"/>
<el-select v-model="supplierId"
style="width:280px"
class="filter-item"
:filterable="true"
clearable
:filter-method="dataFilter"
placeholder="请选择供应商"
@change="initPost"
>
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"/>
</el-select>
<el-select v-model="equipmentId"
style="width:200px"
class="filter-item"
:filterable="true"
clearable
:filter-method="dataFilter"
placeholder="请选择装备"
@change="getListEquipmentSize"
ref="select">
<el-option v-for="item in equipmentList" :key="item.id" :label="item.name" :value="item.id"/>
</el-select>
<el-select v-model="equipmentSizeId"
style="width:200px"
clearable
class="filter-item"
:filterable="true"
placeholder="请选择装备型号"
@change="initPost">
<el-option v-for="item in equipmentSizeList" :key="item.id" :label="item.sizeName" :value="item.id"/>
</el-select>
<el-select v-model="sort"
style="width:140px"
clearable
class="filter-item"
:filterable="true"
placeholder="按质保期排序"
@change="initPost">
<el-option v-for="item in sortList" :key="item.id" :label="item.name" :value="item.value"/>
</el-select>
<el-button :loading="downloadLoading" class="filter-item" type="warning" icon="el-icon-download" style="float: right" @click="download">导出</el-button>
</div>
<!--表格渲染-->
<el-table ref="table" show-summary :summary-method="getSummaries" v-loading="loading" :data="data" stripe border style="width: 100%;">
<!-- <el-table-column type="expand" width="50">
<template slot-scope="props">
<el-table :data="props.row.children" stripe border style="width: 94%;margin:auto;">
<el-table-column type="expand" width="50">
<template slot-scope="props">
<el-table :data="props.row.children" stripe border style="width: 94%;margin:auto;">
<el-table-column type="index" label="序号" align="center" width="50"/>
<el-table-column prop="zsCount" label="供应商" align="center"/>
<el-table-column prop="zkCount" label="装备名称" align="center"/>
<el-table-column prop="ckCount" label="装备号型" align="center"/>
<el-table-column prop="bfCount" label="数量" align="center"/>
<el-table-column label="操作" width="80" align="center" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="show(scope.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column type="index" label="序号" align="center" width="50"/>
<el-table-column prop="zsCount" label="供应商" align="center"/>
<el-table-column prop="zkCount" label="装备名称" align="center"/>
<el-table-column prop="ckCount" label="装备号型" align="center"/>
<el-table-column prop="bfCount" label="数量" align="center"/>
</el-table>
</template>
</el-table-column> -->
<el-table-column type="index" label="序号" align="center" width="50"/>
<el-table-column prop="warehouseName" label="仓库名称" align="center"/>
<el-table-column prop="equipmentName" label="装备名称" align="center"/>
<el-table-column prop="equipmentSizeName" label="装备号型" align="center"/>
<el-table-column prop="supplierName" label="供应商" align="center"/>
<el-table-column prop="warrantyCycle" label="质保周期(月)" sortable align="center"/>
<el-table-column prop="sumCount" label="数量" sortable align="center"/>
</el-table>
<!--分页组件-->
<el-pagination
:total="total"
:current-page="page + 1"
style="margin-top: 8px;"
layout="total, prev, pager, next, sizes"
@size-change="postSizeChange"
@current-change="postPageChange"/>
</el-card>
<!-- <eForm ref="form"/> -->
</div>
</template>
<script>
import { getListOrg, getOrgById } from '@/api/org'
import { getListOrgWarehouse } from '@/api/warehouse'
import { getListSupplier } from '@/api/supplier'
import { getListEquipmentSize } from '@/api/equipmentSize'
import { getListEquipmentDetail } from '@/api/equipmentDetail'
import initData from '@/mixins/initData'
import { initPdata } from '@/api/data'
export default {
name: 'inventorySupEquiReport',
mixins: [initData],
data() {
return {
downloadLoading: false,
orgId: this.$store.state.user.user.baseJpOrganization.id,
orgList: [],
warehouseList: [],
warehouseId: null,
supplierList:[],
supplierId: '',
// shelfList: [],
// shelfId: null,
// rangeList: [],
// range: '',
// rowList: [],
// row: '',
// columnList: [],
// column: '',
equipmentList: [],
copy: [],
equipmentName:'',
equipmentId: null,
equipmentSizeList: [],
equipmentSizeId: null,
roleIds: this.$store.state.user.user.roleIds,
clickRow: null ,
sortList: [
{name:"升序",value: 'asc'},
{name:"降序",value: 'desc'}
],
sort:''
}
},
created() {
this.initOrgList()
this.getListWarehouse()
this.getEquipmentList()
this.getListSupplier()
//获取装备
this.$nextTick(() => {
this.initPost()
const columns = []
this.$refs['table'].columns.forEach((e, index) => {
if (!e.property || e.type !== 'default') {
return
}
e.__index = index
columns.push({
property: e.property,
index,
label: e.label,
visible: true
})
})
this.columns = columns
})
},
methods: {
beforeInit() {
this.url = window._CONFIG['serviceURL'] + '/api/Inventory/GetListEquipmentByOrgGroupBySupplier'
this.params = { page: this.page, size: this.size, orgId: this.$store.state.user.user.baseJpOrganization.id }
// console.log(orgId)
const orgId = this.orgId
//const warehouseId = this.warehouseId
const supplierId = this.supplierId
const equipmentId = this.equipmentId
const equipmentSizeId = this.equipmentSizeId
const sort = this.sort
if (orgId) { this.params['orgId'] = orgId }
//if (warehouseId) { this.params['warehouseId'] = warehouseId }
if (supplierId) { this.params['supplierId'] = supplierId }
if (equipmentId) { this.params['equipmentId'] = equipmentId }
if (equipmentSizeId) { this.params['equipmentSizeId'] = equipmentSizeId }
if (sort) { this.params['sort'] = sort }
return true
},
initOrgList() {
getListOrg({id: this.orgId}).then(res => {
this.orgList = res.data
})
},
orgChange(id) {
getOrgById({id:id}).then(res => {
this.orgName = res.data.name
this.code = res.data.code
this.initPost()
})
},
//获取仓库列表
getListWarehouse() {
getListOrgWarehouse({ orgizationId: this.$store.state.user.user.baseJpOrganization.id }).then(res => {
this.warehouseList = res.data
})
},
//获取供应商列表
getListSupplier() {
getListSupplier({ orgizationId: this.$store.state.user.user.baseJpOrganization.id }).then(res => {
this.supplierList = res.data
})
},
//获取装备
getEquipmentList() {
getListEquipmentDetail({}).then(res => {
this.equipmentList = res.data
//保留数据源
this.copy = Object.assign(this.equipmentList)
})
},
//选择装备,根据装备获取装备型号名称
getListEquipmentSize(data) {
this.equipmentSizeList = []
this.equipmentSizeId = null
getListEquipmentSize({detailId : this.equipmentId}).then(res => {
this.equipmentSizeList = res.data
this.toPostQuery();
})
},
dataFilter(v) {
//对绑定数据赋值
this.equipmentList = this.copy.filter((item) => {
//如果直接包含输入值直接返回true
if (item.name.indexOf(v) !== -1) return true;
//将label拆散成小写拼音数组
let arr = item.name.spell('array','first','low');
//拼接成完整label的拼音
let spell = arr.join('');
//lengths 是label完整拼音 中每个汉字第一个拼音字母的index值的数组
let lengths = [0];
for (var i = 0; i < arr.length - 1; i++) {
lengths.push(lengths[i] + arr[i].length);
};
//判断label完整拼音 中 输入值的 index 是不是等于某个汉字第一个拼音字母的index值
return lengths.indexOf(spell.indexOf(v)) !== -1;
})
},
changeWarehouse() {
if (this.warehouseId) {
this.initShelfList()
}
this.toPostQuery()
},
getListEquipmentByOrgGroupBySupplier(){
},
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 1) {
sums[index] = '本页合计';
return;
}
if (index === 3) {
sums[index] = '';
return;
}
if (index === 5) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += '';
} else {
sums[index] = '';
}
});
return sums;
},
download() {
this.downloadLoading = true
var params = { page: this.page, size: 9999, orgId: this.orgId || this.$store.state.user.user.baseJpOrganization.id }
let list = []
let result = []
initPdata(this.url, params).then(res => {
if(res.code == '10000') {
list = res.data.content
import('@/utils/Export2Excel备份').then(excel => {
const tHeader = ['仓库名称', '装备名称', '号型名称', '供应商', '质保周期(月)', '数量']
const filterVal = ['warehouseName', 'equipmentName', 'equipmentSizeName', 'supplierName', 'warrantyCycle','sumCount']
result = this.formatJson(filterVal, list)
excel.export_json_to_excel({
header: tHeader,
data: result,
filename: this.excelName || '供应商-装备统计表',
autoWidth: true,
bookType: 'xlsx'
})
this.downloadLoading = false
})
} else {
this.$message.error(res.msg)
}
})
},
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => { return v[j] }))
},
}
}
</script>
<style scoped>
</style>
<style rel="stylesheet/scss" lang="scss" scoped>
.dashboard-editor-container {
padding: 10px 12px 12px 12px;
background-color: rgb(240, 242, 245);
}
</style>
...@@ -24,7 +24,8 @@ ...@@ -24,7 +24,8 @@
<el-table v-loading="loading" :data="data" style="width: 100%;" show-summary :summary-method="getSummaries" stripe border ref="table" @row-click="rowClick"> <el-table v-loading="loading" :data="data" style="width: 100%;" show-summary :summary-method="getSummaries" stripe border ref="table" @row-click="rowClick">
<el-table-column type="expand" width="50"> <el-table-column type="expand" width="50">
<template slot-scope="props"> <template slot-scope="props">
<el-table :data="props.row.children" stripe border style="width: 94%;margin:auto;"> <el-table :data="props.row.children" stripe border style="width: 94%;margin:auto;" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="40"></el-table-column>
<el-table-column type="index" label="序号" align="center" width="50"/> <el-table-column type="index" label="序号" align="center" width="50"/>
<el-table-column prop="equName" label="装备名称" align="center"/> <el-table-column prop="equName" label="装备名称" align="center"/>
<el-table-column prop="sizeName" label="装备型号名称" align="center"/> <el-table-column prop="sizeName" label="装备型号名称" align="center"/>
...@@ -48,7 +49,11 @@ ...@@ -48,7 +49,11 @@
<el-table-column prop="equName" label="装备名称" align="center"/> <el-table-column prop="equName" label="装备名称" align="center"/>
<el-table-column prop="sizeName" label="装备型号名称" align="center"/> <el-table-column prop="sizeName" label="装备型号名称" align="center"/>
<el-table-column prop="count" label="数量" align="center"/> <el-table-column prop="count" label="数量" align="center"/>
<el-table-column label="操作" width="150px" align="center">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="quickScrap(scope.row)">报废</el-button>
</template>
</el-table-column>
</el-table> </el-table>
<!--分页组件--> <!--分页组件-->
<el-pagination <el-pagination
...@@ -71,6 +76,7 @@ import { getInfoByID } from '@/api/inventory' ...@@ -71,6 +76,7 @@ import { getInfoByID } from '@/api/inventory'
import { getListOrg } from '@/api/org' import { getListOrg } from '@/api/org'
import { initPdata } from '@/api/data' import { initPdata } from '@/api/data'
import { transform } from '@/utils/index' import { transform } from '@/utils/index'
import { quickAddFixed } from '@/api/fixReceiveApply'
export default { export default {
mixins: [initData], mixins: [initData],
data() { data() {
...@@ -79,7 +85,19 @@ export default { ...@@ -79,7 +85,19 @@ export default {
scrap: true, scrap: true,
orgList: [], orgList: [],
orgId: this.$store.state.user.user.baseJpOrganization.id, orgId: this.$store.state.user.user.baseJpOrganization.id,
downloadLoading: false orgCode: this.$store.state.user.user.baseJpOrganization.code,
downloadLoading: false,
form: {
id: '',
warehouseId : '',
action: 1,
orgId : this.$store.state.user.user.baseJpOrganization.id,
orgCode: this.$store.state.user.user.baseJpOrganization.code.substring(0,6),
note : '',
applyId: this.$store.state.user.user.id,
applyName: this.$store.state.user.user.nickName,
detailList: []
},
} }
}, },
components: { equInfoDetail }, components: { equInfoDetail },
...@@ -184,6 +202,38 @@ export default { ...@@ -184,6 +202,38 @@ export default {
formatJson(filterVal, jsonData) { formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => { return v[j] })) return jsonData.map(v => filterVal.map(j => { return v[j] }))
}, },
handleSelectionChange(val) {
this.detailList = val
console.log(val)
},
quickScrap(row){
// console.log(row)
this.form.warehouseId = row.warehouseId
console.log(this.form.warehouseId)
this.form.flowType = 'scrap'
this.form.detailList = []
this.detailList.forEach(element => {
this.form.detailList.push({
equipmentId: element.equId,
equipmentSizeId: element.sizeId,
supplierId: element.supplierId,
epc: element.epc,
quantity: 1,
unitPrice: element.unitPrice,
price: element.unitPrice * 1
})
})
if (this.form.detailList.length == 0) {
return this.$message.warning('至少报废一件')
}
quickAddFixed(this.form).then(res => {
if (res.code === '10000') {
this.initPost()
} else {
this.$message.error(res.msg)
}
})
}
} }
} }
</script> </script>
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
end-placeholder="结束日期"/> end-placeholder="结束日期"/>
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="toPostQuery">搜索</el-button> <el-button class="filter-item" type="primary" icon="el-icon-search" @click="toPostQuery">搜索</el-button>
<el-button type="primary" icon="el-icon-bottom" class="filter-item" style="float: right" v-if="activeName == 0" @click="addDown">调拨下发</el-button> <el-button type="primary" icon="el-icon-bottom" class="filter-item" style="float: right" v-if="activeName == 0" @click="addDown">调拨下发</el-button>
<el-button type="primary" icon="el-icon-top" class="filter-item" style="float: right" v-if="activeName == 0 && $store.state.user.user.baseJpOrganization.code !== '330200000000'" @click="addUp">调拨申请</el-button> <el-button type="primary" icon="el-icon-top" class="filter-item" style="float: right" v-if="activeName == 0 && $store.state.user.user.baseJpOrganization.code !== '330100000000'" @click="addUp">调拨申请</el-button>
</div> </div>
<!--表单组件--> <!--表单组件-->
<apply-form ref="applyForm" :is-add="isAdd" /> <apply-form ref="applyForm" :is-add="isAdd" />
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论