Commit 4ad2494c by T

快速出库、装备统计报表新需求及其它bug修复

parent 2dec3035
File deleted
......@@ -36,11 +36,14 @@
"lodash": "^4.17.21",
"mavon-editor": "^2.7.0",
"moment": "^2.25.3",
"mux.js": "^6.3.0",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"screenfull": "3.3.3",
"vbt-table": "^1.0.5",
"video.js": "^8.0.4",
"videojs-contrib-hls": "^5.15.0",
"viser-vue": "^2.4.8",
"vue-count-to": "1.0.13",
"vue-native-websocket": "^2.0.14",
......@@ -100,8 +103,8 @@
"url-loader": "1.0.1",
"vue": "^2.6.14",
"vue-loader": "^15.9.7",
"vue-template-compiler": "^2.6.14",
"vue-style-loader": "4.1.2",
"vue-template-compiler": "^2.6.14",
"webpack": "^4.41.2",
"webpack-bundle-analyzer": "^3.6.0",
"webpack-cli": "^3.3.9",
......
......@@ -54,6 +54,15 @@ export function getAllFixs(data) {
data: transform(data)
})
}
//快速出库单据创建(借用,领用,报废)
export function quickAddOut(data) {
return request({
url: window._CONFIG['serviceURL'] + '/api/QuickOrder/QuickAddOrder',
method: 'post',
data: transform(data)
})
}
// 查看维修报废明细
export function getByID(data) {
......
......@@ -23,9 +23,13 @@ import '@/assets/fonts/screen/iconfont.css'
import Viser from 'viser-vue'
//import "video.js/dist/video-js.css"; // 引入video.js的css
//import hls from "videojs-contrib-hls"; // 播放hls流需要的插件
window.eventBus = new Vue();
//Vue.use(hls)
Vue.use(Viser)
Vue.use(mavonEditor)
Vue.use(permission)
......
......@@ -85,6 +85,19 @@ export const constantRouterMap = [
meta: { title: '库房监控', icon: 'user' }
}
]
},
{
path: '/videoHstory',
hidden: true,
component: Layout,
children: [
{
path: 'list',
component: () => import('@/views/base/houseBaseInfo/videoHstory'),
name: '库房监控视频记录',
meta: { title: '库房监控视频记录', icon: 'user' }
}
]
}
// { path: '*', redirect: '/404', hidden: true }
]
......
......@@ -137,8 +137,9 @@
</tr>
<tr style="border-bottom:1px solid #e8e8e8;">
<th class="textHeader">操作</th>
<td class="textContent" style="margin-top:-10px;"><el-button type="primary" size="small"
@click="setHumidity" style="margin-top:-10px;margin-bottom:-10px;">设置</el-button></td>
<td class="textContent" style="margin-top:-10px;">
<el-button type="primary" size="small" @click="setHumidity" style="margin-top:-10px;margin-bottom:-10px;">设置</el-button>
</td>
</tr>
</tbody>
</table>
......@@ -420,11 +421,13 @@ export default {
radioChange(value) {
if (value == '库存状态') {
this.dataSource = this.pieList.tjList
this.guideOpts.content = '装备总数'
}
if (value == '装备库存') {
this.dataSource = this.pieList.typeList
this.guideOpts.content = '在库总数'
}
this.guideOpts.content = '装备总数'
//this.guideOpts.content = '装备总数'
this.guideOpts1.content = this.dataSource.map(item => item.count).reduce((total, num) => total + num)
},
humidityChange() {
......
......@@ -103,11 +103,13 @@ export default {
radioChange(value) {
if (value == '库存状态') {
this.dataSource = this.pieList.tjList
this.guideOpts.content = '装备总数'
}
if (value == '装备库存') {
this.dataSource = this.pieList.typeList
this.guideOpts.content = '在库总数'
}
this.guideOpts.content = '装备总数'
//this.guideOpts.content = '装备总数'
this.guideOpts1.content = this.dataSource.map(item => item.count).reduce((total, num) => total + num)
},
itemTplLegend: function itemTpl(value, color, checked, index) {
......
......@@ -4,51 +4,59 @@
<span>快速开始 / 便捷导航</span>
</div>
<div class="item-group">
<el-row>
<el-row >
<el-col :span="8">
<el-badge :value="cqwhCount"><el-button type="text" style="font-size: 15px;" @click="$router.push('/notice/index?type=1&processType=overtime')">超期提醒</el-button></el-badge>
<el-badge :value="cqwhCount"><el-button type="text" style="font-size: 15px; " @click="$router.push('/notice/index?type=1&processType=overtime')">超期提醒</el-button></el-badge>
</el-col>
<el-col :span="8">
<el-badge :value="ycqCount" ><el-button type="text" style="font-size: 15px;" @click="$router.push('/notice/index?type=1&processType=scrapwarn')">报废提醒</el-button></el-badge>
<el-badge :value="ycqCount" ><el-button type="text" style="font-size: 15px; " @click="$router.push('/notice/index?type=1&processType=scrapwarn')">报废提醒</el-button></el-badge>
</el-col>
<el-col :span="8">
<el-button type="text" style=" font-size: 15px;" @click="$router.push('/houseBaseInfo/index')">仓库管理</el-button>
<el-button type="text" style="font-size: 15px; " @click="$router.push('/houseBaseInfo/index')">仓库管理</el-button>
</el-col>
<el-col :span="8">
<el-button type="text" style=" font-size: 15px;" @click="$router.push('/warehouse/inAndOut')">出入库记录</el-button>
<el-button type="text" style="font-size: 15px; " @click="$router.push('/warehouse/maintenance')">装备维护</el-button>
</el-col>
<el-col :span="8">
<el-button type="text" style="font-size: 15px; " @click="$router.push('/warehouse/sysPanKu')">盘库列表</el-button>
</el-col>
<el-col :span="8">
<el-button type="text" style=" font-size: 15px;" @click="$router.push('/warehouse/stock')">本库装备列表</el-button>
<el-button type="text" style="font-size: 15px;" @click="$router.push('/warehouse/threshold')">库存阈值</el-button>
</el-col>
<el-col :span="8">
<el-button type="text" style=" font-size: 15px;" @click="$router.push('/warehouse/maintenance')">装备维护</el-button>
<el-button v-if="$store.state.user.user.roleIds.includes(2)" type="text" style="font-size: 15px; " @click="qoApply()">快速出库</el-button>
</el-col>
<el-col :span="8">
<el-button type="text" style=" font-size: 15px;" @click="$router.push('/warehouse/sysPanKu')">盘库列表</el-button>
<el-col :span="8">
<el-button type="text" style="font-size: 15px; " @click="$router.push('/warehouse/inAndOut')">出入库记录</el-button>
</el-col>
<el-col :span="8">
<el-button type="text" style=" font-size: 15px;" @click="$router.push('/warehouse/threshold')">库存阈值</el-button>
<el-button type="text" style="font-size: 15px; " @click="$router.push('/warehouse/stock')">本库装备列表</el-button>
</el-col>
<el-col :span="8">
<el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" style=" font-size: 15px;" @click="$router.push('/data/reportForm')">类型统计报表</el-button>
<el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" style="font-size: 15px; " @click="$router.push('/data/reportForm')">类型统计报表</el-button>
</el-col>
<el-col :span="8">
<el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" style=" font-size: 15px;" @click="$router.push('/data/finance')">财务统计报表</el-button>
<el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" style="font-size: 15px; " @click="$router.push('/data/finance')">财务统计报表</el-button>
</el-col>
<el-col :span="8">
<el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" style=" font-size: 15px;" @click="$router.push('/data/usingReport')">使用统计报表</el-button>
<el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" style="font-size: 15px; " @click="$router.push('/data/usingReport')">使用统计报表</el-button>
</el-col>
<el-col :span="8">
<el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" style=" font-size: 15px;" @click="$router.push('/data/inventorySupEquiReport')">供应商装备报表</el-button>
<el-button v-if="$store.state.user.user.roleIds.includes(3)" type="text" style="font-size: 15px; " @click="$router.push('/data/inventorySupEquiReport')">供应商装备报表</el-button>
</el-col>
</el-row>
</div>
<!--表单组件-->
<apply-form ref="applyForm" @ok="handleRefresh"/>
</el-card>
</template>
<script>
import { getCountOrg } from '@/api/view'
import applyForm from './addQoAppy'
export default {
components: { applyForm },
data() {
return {
cqwhCount: 0,
......@@ -69,7 +77,18 @@ export default {
this.$message.error(res.msg)
}
})
}
},
qoApply(){
// this.isAdd = true
this.$refs.applyForm.getListOrgWarehouse()
this.$refs.applyForm.getPolicemans()
this.$refs.applyForm.dialog = true
this.$refs.applyForm.form.qoOutTpyId= '0'
this.$refs.applyForm.getProcess('borrowMy')
},
handleRefresh(){
},
}
}
</script>
......
<template >
<router-view />
</template>
<template>
<div class="dashboard-editor-container">
<el-card>
<el-tabs v-model="activeName" tab-position="left" style="padding: 5px;" @tab-click="handleClick">
<el-tab-pane name="0" v-if="$store.state.user.user.roleIds.includes(2)">
<span slot="label"><i class="el-icon-date"></i> 出库申请</span>
<repair-common :warehouseList="warehouseList" :activeName="activeName" ref="first"/>
</el-tab-pane>
<el-tab-pane name="1" v-if="$store.state.user.user.roleIds.includes(3)">
<span slot="label"><i class="el-icon-date"></i> 出库审批</span>
<repair-common :warehouseList="warehouseList" :activeName="activeName" ref="second"/>
</el-tab-pane>
<el-tab-pane name="2">
<span slot="label"><i class="el-icon-date"></i> 出库列表</span>
<repair-common :warehouseList="warehouseList" :activeName="activeName" ref="third"/>
</el-tab-pane>
</el-tabs>
</el-card>
</div>
</template>
<script>
import RepairCommon from './common'
import { getListOrgWarehouse } from '@/api/warehouse'
export default {
name: 'Repair',
components: { RepairCommon },
data() {
return {
activeName: '0',
warehouseList: []
}
},
mounted() {
this.init()
},
methods: {
init() {
getListOrgWarehouse({ orgizationId: this.$store.state.user.user.baseJpOrganization.id }).then(res => {
this.warehouseList = res.data
})
this.activeName = this.$store.state.user.user.roleIds.includes(2) ? '0' : '1'
if (this.activeName === '0') { this.$refs.first.tabChange() }
else if (this.activeName === '1') { this.$refs.second.tabChange() }
},
handleClick(pObject) {
pObject.$children[0].tabChange()
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.dashboard-editor-container {
padding: 10px 12px 12px 12px;
background-color: rgb(240, 242, 245);
}
</style>
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!-- 搜索 -->
<el-input v-model="orderCode" clearable placeholder="输入报修单号搜索" style="width: 250px;" class="filter-item" @keyup.enter.native="toPostQuery"/>
<el-select v-model="approveType" clearable placeholder="--审批状态--" class="filter-item" style="width: 130px" @change="toPostQuery">
<el-option v-for="item in approvalTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toPostQuery">搜索</el-button>
<!-- 新增 -->
<div v-permission="['admin']" style="display: inline-block;margin: 0px 2px;">
<el-button
class="filter-item"
size="mini"
type="primary"
icon="el-icon-plus"
@click="add">申请维修</el-button>
</div>
</div>
<!--表单组件-->
<eForm ref="form" :is-add="isAdd"/>
<eListForm ref="eListForm" :is-add="isAdd"/>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;" stripe border >
<el-table-column type="index" label="序号" width="50"/>
<el-table-column prop="orderCode" label="报修单号"/>
<el-table-column prop="warehouseName" label="仓库"/>
<el-table-column prop="applyName" label="申请人"/>
<el-table-column prop="createTime" label="申请时间"/>
<el-table-column prop="flowState" label="审批状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.flowState" type="success">已通过</el-tag>
<el-tag v-else-if="!scope.row.flowState && scope.row.userInfo !== ''" type="warning">待审批</el-tag>
<el-tag v-else-if="!scope.row.flowState && scope.row.actionResult === '0'" type="danger">撤销</el-tag>
<el-tag v-else-if="!scope.row.flowState && scope.row.userInfo === ''" type="danger">已驳回</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="200px" align="center" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="warning" @click="edit(scope.row)" v-if="!scope.row.flowState && scope.row.userInfo === ''">编辑</el-button>
<el-button size="mini" type="primary" @click="show(scope.row)">查看</el-button>
<el-button size="mini" type="danger" :loading="loading" v-if="!scope.row.flowState && scope.row.userInfo !== ''" @click="back(scope.row)">撤销</el-button>
</template>
</el-table-column>
</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"/>
</div>
</template>
<script>
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { deleteOrder } from '@/api/fixReceiveApply'
import { parseTime, downloadFile } from '@/utils/index'
import eForm from './form'
import eListForm from '../qoList/form'
import { approveOrder } from '@/api/fixReceiveApply'
import { getProcess } from '@/api/process'
export default {
name: 'Job',
components: { eForm, eListForm },
mixins: [initData],
data() {
return {
orderCode : null,
approveType : '',
form: '',
loading: false,
orgId : this.$store.state.user.user.baseJpOrganization.id,
approvalTypeOptions:[
{ key: '0', display_name: '待审批' },
{ key: '1', display_name: '已通过' },
{ key: '2', display_name: '已驳回/撤销' }
],
purchasesList : []
}
},
created() {
this.$nextTick(() => {
this.initPost()
})
},
methods: {
parseTime,
checkPermission,
beforeInit() {
this.url = window._CONFIG['serviceURL'] + '/api/FixReceiveApply/GetAllFixs'
this.params = { page: this.page, size: this.size, action : 'repair', applyId: this.$store.state.user.user.id }
//const query = this.query
const orderCode = this.orderCode//订单号
const approveType = this.approveType//0待审批,1已审批,2已驳回
if (orderCode) { this.params['orderCode'] = orderCode }
if (approveType !== '' && approveType !== null) { this.params['approveType'] = approveType }
return true
},
add() {
//console.log(this.$store.state.user.user.baseJpOrganization.code.substring(0,6));
this.isAdd = true
this.$refs.form.getListOrgWarehouse()
this.$refs.form.getProcess()
this.$refs.form.dialog = true
},
edit(data) {
this.isAdd = false
this.editWarehouseId = data.warehouseId
this.$refs.form.getListOrgWarehouse()
// this.$refs.form.getOrgUser()
const _this = this.$refs.form
_this.form = data
this.$refs.form.getProcess(data.nextStepId)
_this.dialog = true
},
show(data) {
this.isAdd = false
const _this = this.$refs.eListForm
_this.form = data
_this.getSteps(data.orgId)
_this.dialog = true
},
back(row) {
this.$confirm('是否确认撤销?', '确认操作', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.loading = true
this.approve(row)
})
},
// 审批
async approve(row) {
const _this = this
_this.loading = true
var data = {
code: row.flowType,
orgId: row.orgId,
stepId: row.nextStepId,
flowGateway: "撤销"
}
await getProcess(data).then(res => {
_this.form = {
id: row.id,
detailList: row.detailList,
orgId : _this.$store.state.user.user.baseJpOrganization.id,
flowState : res.data.flowState,
approvalMsg : data.approvalMsg ? data.approvalMsg : "撤销",
warehouseId: data.warehouseId,
userType: res.data.userType,
userInfo: res.data.userInfo,
dataScope: res.data.dataScope,
nextStepId: res.data.nextStepId,
currentStepName: res.data.currentStepName,
auditUser: _this.$store.state.user.user.id,
auditUserName: _this.$store.state.user.user.nickName
}
})
await approveOrder(_this.form).then(res => {
if (res.code === "10000") {
this.$notify({
title: '撤销成功',
type: 'success',
duration: 2500
})
this.loading = false
this.initPost()
}else{
this.$notify({
title: res.msg,
type: 'danger',
duration: 2500
})
this.loading = false
}
}).catch(err => {
this.loading = false
console.log(err)
})
}
}
}
</script>
<style scoped>
</style>
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!-- 搜索 -->
<!-- <el-button class="filter-item" size="mini" type="primary" icon="el-icon-check" @click="approvalAll()">一键通过</el-button> -->
<el-input v-model="orderCode" clearable placeholder="输入报修单号搜索" style="width: 250px;" class="filter-item" @keyup.enter.native="toPostQuery"/>
<el-select v-model="approveType" clearable placeholder="--审批状态--" class="filter-item" style="width: 130px" @change="toPostQuery">
<el-option v-for="item in approvalTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toPostQuery">搜索</el-button>
</div>
<!--表单组件-->
<eForm ref="form" :is-add="isAdd"/>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;" stripe border>
<!-- <el-table-column type="selection" width="55"/> -->
<el-table-column type="index" label="序号" width="50"/>
<el-table-column prop="orderCode" label="报修单号"/>
<el-table-column prop="warehouseName" label="仓库"/>
<el-table-column prop="applyName" label="申请人"/>
<el-table-column prop="createTime" label="申请时间"/>
<el-table-column prop="flowState" label="审批状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.flowState" type="success">已通过</el-tag>
<el-tag v-else-if="!scope.row.flowState && scope.row.userInfo !== ''" type="warning">待审批</el-tag>
<el-tag v-else-if="!scope.row.flowState && scope.row.userInfo === ''" type="danger">已驳回</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="130px" align="center" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="warning" @click="approval(scope.row)">审批</el-button>
</template>
</el-table-column>
</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"/>
</div>
</template>
<script>
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { deleteOrder,approveOrder} from '@/api/fixReceiveApply'
import { parseTime, downloadFile } from '@/utils/index'
import eForm from './form'
export default {
name: 'Job',
components: { eForm },
mixins: [initData],
// 设置数据字典
data() {
return {
orderCode : null,
approveType : '',
testUrl : global.testUrl,
delLoading: false,
orgId : this.$store.state.user.user.baseJpOrganization.id,
approvalTypeOptions:[
{ key: '0', display_name: '待审批' },
{ key: '1', display_name: '已通过' },
{ key: '2', display_name: '已驳回/撤销' }
],
purchasesList : []
}
},
created() {
this.$nextTick(() => {
this.initPost()
})
},
methods: {
parseTime,
checkPermission,
beforeInit() {
this.url = window._CONFIG['serviceURL'] + '/api/Process/GetPageProcessList'
this.params = {
page: this.page,
size: this.size,
orgId: this.$store.state.user.user.baseJpOrganization.id,
flowType: 'repair',
userId: this.$store.state.user.user.id,
roleIds: this.$store.state.user.user.roleIds,
}
const orderCode = this.orderCode//订单号
const approveType = this.approveType//0待审批,1已审批,2已驳回
if (orderCode) { this.params['orderCode'] = orderCode }
if (approveType !== '' && approveType !== null) { this.params['approveType'] = approveType }
return true
},
approval(data) {
this.isAdd = false
const _this = this.$refs.form
_this.form = data
_this.getSteps(data.orgId)
_this.dialog = true
},
subDelete(id) {
console.log("id"+id)
this.delLoading = true
const params = {id:id,orgId:this.orgId}
deleteOrder(params).then(res => {
this.delLoading = false
this.$refs[id].doClose()
if(res.code === "10000"){
this.$notify({
title: '删除成功',
type: 'success',
duration: 2500
})
this.dleChangePage()
this.initPost()
}else{
this.$notify({
title: '删除失败',
type: 'danger',
duration: 2500
})
}
}).catch(err => {
this.delLoading = false
this.$refs[id].doClose()
console.log(err.response)
})
},
add() {
this.isAdd = true
this.$refs.form.dialog = true
},
edit(data) {
this.isAdd = false
const _this = this.$refs.form
_this.form = {
id: data.id,
applyReason : data.applyReason,
orgId : this.orgizationId,
applyId : data.applyId,
title: data.title,
warehouseId : data.warehouseId,
warehouseName : data.warehouseName,
detailList: data.detailList,
approvalResult : data.approvalResult
}
_this.dialog = true
}
}
}
</script>
<style scoped>
</style>
<template>
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" title="查看详情" width="1200px">
<el-form ref="form" :model="form" :inline="true" size="small" label-width="80px">
<el-tabs v-model="activeName" tab-position="left">
<el-tab-pane name="first" style="margin-left: 20px">
<span slot="label"><i class="el-icon-document"></i>&nbsp;出库信息</span>
<el-card style="margin-bottom: 15px">
<div slot="header" class="clearfix">
<span>基本信息</span>
</div>
<div style="border:1px solid #e8e8e8;">
<table style="table-layout:auto; width:100%;border-collapse:collapse;box-sizing:border-box;">
<tbody>
<tr style="border-bottom:1px solid #e8e8e8;">
<th class="textHeader">出库单号</th>
<td class="textContent">{{form.orderCode}}</td>
<th class="textHeader">目标仓库</th>
<td class="textContent">
{{form.warehouseName}}
</td>
<th class="textHeader">订单状态</th>
<td class="textContentLast" style="padding-top:8px;padding-bottom:8px;">
<el-tag v-if="form.flowState" type="success">已通过</el-tag>
<el-tag v-else-if="!form.flowState && form.userInfo !== ''" type="warning">待审批</el-tag>
<el-tag v-else-if="!form.flowState && form.actionResult === '0' && form.nextStepId === ''" type="primary">暂存</el-tag>
<el-tag v-else-if="!form.flowState && form.actionResult === '0'" type="danger">撤销</el-tag>
<el-tag v-else-if="!form.flowState && form.userInfo === ''" type="danger">已驳回</el-tag>
</td>
</tr>
<tr style="border-bottom:1px solid #e8e8e8;">
<th class="textHeader">申请人</th>
<td class="textContent">{{form.applyName}}</td>
<th class="textHeader">申请时间</th>
<td class="textContent">{{form.applyTime}}</td>
<th class="textHeader">更新时间</th>
<td class="textContentLast">{{form.updateTime}}</td>
</tr>
<tr>
<th class="textHeader">申请理由</th>
<td colspan="5" class="textContentLast">{{form.note}}</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<el-card style="margin-bottom: 15px">
<div slot="header" class="clearfix">
<span>装备信息</span>
</div>
<el-table :data="form.detailList" style="width: 100%" border>
<el-table-column type="index" label="序号" align="center" width="50"/>
<el-table-column align="center" label="装备名称">
<template slot-scope="scope">
<el-link type="primary" @click="toInventoryList(scope.row.equipmentName)">{{ scope.row.equipmentName }}</el-link>
</template>
</el-table-column>
<el-table-column prop="equipmentSizeName" align="center" label="装备型号名称"/>
<el-table-column prop="supplierName" align="center" label="供应商" />
<el-table-column prop="quantity" align="center" label="装备数量" />
</el-table>
</el-card>
</el-tab-pane>
<el-tab-pane name="second" style="margin-left: 20px">
<span slot="label"><i class="el-icon-tickets"></i>&nbsp;流程信息</span>
<el-card style="margin-bottom: 15px">
<div slot="header" class="clearfix">
<span>流程图</span>
</div>
<el-steps :active="form.flowState ? steps.length-1 : steps.findIndex(i => i === form.currentStepName)"
finish-status="wait" process-status="success" align-center>
<el-step v-for="(step, index) in steps" :key="index" :title="step"/>
</el-steps>
</el-card>
<el-card>
<div slot="header" class="clearfix">
<span>审核详情</span>
</div>
<el-table :data="historyArray" style="width: 100%" border>
<el-table-column type="index" label="序号" align="center" width="50"/>
<el-table-column prop="stepName" align="center" label="步骤名称"/>
<el-table-column prop="auditUserName" align="center" label="审核人"/>
<el-table-column prop="updateTime" align="center" label="操作时间"/>
<el-table-column prop="auditMind" align="center" :show-overflow-tooltip="true" label="审核意见" />
</el-table>
<el-pagination style="margin-top: 8px;" layout="prev, pager, next" :total="historyTotal" :page-size="5" :current-page="historyCurrentPage" @current-change="handleCurrentChang"></el-pagination>
</el-card>
</el-tab-pane>
<!-- <el-tab-pane name="third" style="margin-left: 20px">
<span slot="label"><i class="el-icon-tickets"></i>&nbsp;通道信息</span>
<el-card style="margin-bottom: 15px">
<div slot="header" class="clearfix">
<span>查看装备出入库状态</span>
</div>
<el-table :data="inOutdetailList" style="width: 100%" border>
<el-table-column type="index" label="序号" align="center" width="50"/>
<el-table-column prop="equipmentDetailName" align="center" label="装备名称"/>
<el-table-column prop="warehouseName" label="发出仓库" align="center" v-if="[0, 4, 7, 8].includes(form.type)"/>
<el-table-column prop="supplierName" label="供应商" align="center" v-if="[1, 5, 6].includes(form.type)"/>
<el-table-column prop="equipmentCount" align="center" label="计划数量"/>
<el-table-column prop="realCount" align="center" label="实际数量"/>
<el-table-column prop="state" label="出入库状态" align="center">
<template slot-scope="scope">
<el-tag v-if="scope.row.equipmentCount == scope.row.realCount" type="success">已完成</el-tag>
<el-tag v-else type="warning">未完成</el-tag>
</template>
</el-table-column>
</el-table>
</el-card>
</el-tab-pane> -->
</el-tabs>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel" type="info" plain>关闭</el-button>
</div>
</el-dialog>
</template>
<script>
import { getAllProcess } from '@/api/process'
import { getInOutDetail } from '@/api/inventory'
export default {
data() {
return {
loading: false, dialog: false, warehouseId: null,
activeName: 'first', steps: [],
historyArray: [], historyTotal: 0, historyCurrentPage: 1,
orgizationId:this.$store.state.user.user.baseJpOrganization.id,
form: {
id: "",
applyReason : "",
orgId : this.$store.state.user.user.baseJpOrganization.id,
orgCode : this.$store.state.user.user.baseJpOrganization.code.substring(0,6),
policeId : "",
title: "",
warehouseId : "",
detailList: [],
approvalResult : 0
},
inOutdetailList: []
}
},
methods: {
cancel() {
this.resetForm()
},
toInventoryList(name) {
this.$router.push({
path: '/warehouse/inventoryList',
query: {
type: '维修数量',
level: '本级及下级',
name: name
}
})
},
getSteps(flowType, orgId) {
this.historyArray = this.form.historyList.slice(0, 5)
this.historyTotal = this.form.historyList.length
var data = {
code: flowType,
orgId: orgId
}
getAllProcess(data).then(res => {
this.steps = res.data
})
getInOutDetail({id: this.form.id, type: this.form.type}).then(res => {
if(res.code == '10000') {
this.inOutdetailList = res.data
} else {
this.$message.error(res.msg)
}
})
},
resetForm() {
this.dialog = false
},
handleCurrentChang(currentPage) {
this.historyCurrentPage = currentPage
this.historyArray = this.form.historyList.slice((this.historyCurrentPage-1)*5, this.historyCurrentPage*5)
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
/deep/ .el-input-number .el-input__inner {
text-align: left;
}
/deep/.el-card .el-card__header{
background:#ffffff;
color:#000000;
font-size: 16px;
}
.textHeader{
background-color:#fafafa;
padding:16px 24px;
border-right:1px solid #e8e8e8;
text-align:center;
}
.textContent{
background-color:#ffffff;
padding:16px 24px;
border-right:1px solid #e8e8e8;
text-align:left;
}
.textContentLast{
background-color:#ffffff;
padding:16px 24px;
text-align:left;
}
</style>
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!-- 搜索 -->
<el-input v-model="orderCode" clearable placeholder="输入报修单号搜索" style="width: 250px;" class="filter-item" @keyup.enter.native="toPostQuery"/>
<el-select v-model="approveType" clearable placeholder="--审批状态--" class="filter-item" style="width: 130px" @change="toPostQuery">
<el-option v-for="item in approvalTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toPostQuery">搜索</el-button>
</div>
<!--表单组件-->
<eForm ref="form" :is-add="isAdd"/>
<eListForm ref="eListForm" :is-add="isAdd"/>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;" stripe border >
<el-table-column type="index" label="序号" width="50"/>
<el-table-column prop="orderCode" label="报修单号"/>
<el-table-column prop="warehouseName" label="仓库"/>
<el-table-column prop="applyName" label="申请人"/>
<el-table-column prop="createTime" label="申请时间"/>
<el-table-column prop="approvalResult" label="审批状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.flowState" type="success">已通过</el-tag>
<el-tag v-else-if="!scope.row.flowState && scope.row.userInfo !== ''" type="warning">待审批</el-tag>
<el-tag v-else-if="!scope.row.flowState && scope.row.actionResult === '0'" type="danger">撤销</el-tag>
<el-tag v-else-if="!scope.row.flowState && scope.row.userInfo === ''" type="danger">已驳回</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="200px" align="center" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="warning" v-if="scope.row.currentState" @click="approval(scope.row)">审批</el-button>
<el-button size="mini" type="primary" @click="show(scope.row)">查看</el-button>
</template>
</el-table-column>
</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"/>
</div>
</template>
<script>
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { deleteOrder } from '@/api/fixReceiveApply'
import { parseTime, downloadFile } from '@/utils/index'
import eForm from './form'
import eListForm from '../qoApproval/form'
export default {
name: 'Job',
components: { eForm, eListForm },
mixins: [initData],
data() {
return {
orderCode : null,
approveType : '',
testUrl : global.testUrl,
delLoading: false,
orgId : this.$store.state.user.user.baseJpOrganization.id,
approvalTypeOptions:[
{ key: '0', display_name: '待审批' },
{ key: '1', display_name: '已通过' },
{ key: '2', display_name: '已驳回/撤销' }
],
purchasesList : []
}
},
created() {
this.query.orderId = this.$route.query.orderId
this.$nextTick(() => {
this.initPost()
})
},
methods: {
parseTime,
checkPermission,
beforeInit() {
this.url = window._CONFIG['serviceURL'] + '/api/Process/GetPageHistoryProcessList'
this.params = { page: this.page, size: this.size,userId: this.$store.state.user.user.id, flowType: "repair",
orgId: this.$store.state.user.user.baseJpOrganization.id,
roleIds: this.$store.state.user.user.roleIds }
const orderCode = this.orderCode//订单号
const approveType = this.approveType//0待审批,1已审批,2已驳回
const orderId = this.query.orderId
if (orderCode) { this.params['orderCode'] = orderCode }
if (approveType !== '' && approveType !== null) { this.params['approveType'] = approveType }
if (orderId !== '' && orderId !== null) { this.params['orderId'] = orderId }
return true
},
subDelete(id) {
console.log("id"+id)
this.delLoading = true
const params = { id:id,orgId:this.orgId }
deleteOrder(params).then(res => {
this.delLoading = false
this.$refs[id].doClose()
if(res.code === "10000"){
this.$notify({
title: '删除成功',
type: 'success',
duration: 2500
})
this.dleChangePage()
this.initPost()
}else{
this.$notify({
title: '删除失败',
type: 'danger',
duration: 2500
})
}
}).catch(err => {
this.delLoading = false
this.$refs[id].doClose()
console.log(err.response)
})
},
add() {
this.isAdd = true
this.$refs.form.dialog = true
},
show(data) {
const _this = this.$refs.form
_this.form = data
_this.getSteps(data.orgId)
_this.initRoles()
_this.dialog = true
},
approval(data) {
const _this = this.$refs.eListForm
_this.form = data
_this.getSteps(data.orgId)
_this.dialog = true
},
}
}
</script>
<style scoped>
</style>
......@@ -38,6 +38,8 @@
start-placeholder="开始日期"
end-placeholder="结束日期"/>
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="toPostQuery">搜索</el-button>
<el-button type="warning" icon="el-icon-plus" class="filter-item" style="float: right" v-if="activeName == 0" @click="qoApply('2')">快速出库</el-button>
<el-button type="primary" icon="el-icon-plus" class="filter-item" style="float: right" v-if="activeName == 0" @click="add">申请报废</el-button>
</div>
<!--表单组件-->
......@@ -71,6 +73,8 @@
</template>
</el-table-column>
</el-table>
<!--表单组件-->
<addQoAppy ref="addQoAppy" @ok="handleRefresh"/>
<!--分页组件-->
<el-pagination
:total="total"
......@@ -88,11 +92,12 @@ import approvalForm from '../scrapApproval/form'
import listForm from '../scrapList/form'
import { getProcess } from '@/api/process'
import { approveOrder, getByID } from '@/api/fixReceiveApply'
import addQoAppy from '@/views/dashboard/addQoAppy'
export default {
name: 'RepairCommon',
mixins: [initData],
props: ['warehouseList', 'activeName'],
components: { applyForm, listForm, approvalForm },
components: { applyForm, listForm, approvalForm, addQoAppy },
data() {
return {
loading: false,
......@@ -151,6 +156,18 @@ export default {
}
return true
},
qoApply(){
// this.isAdd = true
this.$refs.addQoAppy.getListOrgWarehouse()
this.$refs.addQoAppy.getPolicemans()
let code ='scrap'
this.$refs.addQoAppy.getProcess(code)
this.$refs.addQoAppy.dialog = true
this.$refs.addQoAppy.form.qoOutTpyId= '2'
},
handleRefresh(){
this.initPost()
},
add() {
this.isAdd = true
this.$refs.applyForm.getListOrgWarehouse(this.isAdd)
......
......@@ -248,6 +248,7 @@ export default {
},
cancel() {
this.resetForm()
this.$parent.initPost()
},
doSubmit() {
this.form.orgCode = this.$store.state.user.user.baseJpOrganization.code.substring(0,6)
......
......@@ -37,7 +37,7 @@
</tr>
<tr style="border-bottom:1px solid #e8e8e8;">
<th class="textHeader">借用警员</th>
<td class="textContent">{{form.policeName}}</td>
<td class="textContent">{{form.policeNote}}</td>
<th class="textHeader">拟还时间</th>
<td class="textContent" style="padding-top:8px;padding-bottom:8px;"><el-tag type="warning">{{form.expectedTime}}</el-tag></td>
<th class="textHeader">申请理由</th>
......
......@@ -42,10 +42,13 @@
start-placeholder="开始日期"
end-placeholder="结束日期"/>
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="toPostQuery">搜索</el-button>
<el-button type="primary" class="filter-item" style="float: right" v-if="activeName == 0 && actionType == '0'" @click="add">借用申请</el-button>
<el-button type="primary" class="filter-item" style="float: right" v-if="activeName == 0 && actionType == '1'" @click="addLY">领用申请</el-button>
<el-button type="warning" class="filter-item" icon="el-icon-plus" style="float: right" v-if="activeName == 0 && actionType == '0'" @click="qoApply(1)">快速出库</el-button>
<el-button type="warning" class="filter-item" icon="el-icon-plus" style="float: right" v-if="activeName == 0&& actionType == '1'" @click="qoApply(2)">快速出库</el-button>
<el-button type="primary" class="filter-item" icon="el-icon-plus" style="float: right" v-if="activeName == 0 && actionType == '0'" @click="add">借用申请</el-button>
<el-button type="primary" class="filter-item" icon="el-icon-plus" style="float: right" v-if="activeName == 0 && actionType == '1'" @click="addLY">领用申请</el-button>
</div>
<!--表单组件-->
<addQoAppy ref="addQoAppy" @ok="handleRefresh"/>
<apply-form ref="applyForm" :is-add="isAdd" />
<list-form ref="listForm" />
<approval-form ref="approvalForm"/>
......@@ -116,11 +119,12 @@ import applyLyForm from '../../receive/apply/form'
import listLyForm from '../../receive/apply/detailForm'
import { getProcess } from '@/api/process'
import { approveOrder, getByID, deleteOrder } from '@/api/borrow'
import addQoAppy from '@/views/dashboard/addQoAppy'
export default {
name: 'TransferCommon',
mixins: [initData],
props: ['warehouseList', 'activeName'],
components: { applyForm, listForm, approvalForm, applyLyForm, listLyForm },
components: { applyForm, listForm, approvalForm, applyLyForm, listLyForm, addQoAppy},
data() {
return {
loading: false,
......@@ -183,6 +187,26 @@ export default {
}
return true
},
qoApply(a){
// this.isAdd = true
this.$refs.addQoAppy.getListOrgWarehouse()
this.$refs.addQoAppy.getPolicemans()
this.$refs.addQoAppy.dialog = true
if(a==1){
console.log('000')
this.$refs.addQoAppy.form.qoOutTpyId= '0'
let code ='borrowMy'
this.$refs.addQoAppy.getProcess(code)
}else{
console.log('111')
this.$refs.addQoAppy.form.qoOutTpyId= '1'
let code ='collect'
this.$refs.addQoAppy.getProcess(code)
}
},
handleRefresh(){
this.initPost()
},
add() {
this.isAdd = true
const _this = this.$refs.applyForm
......
......@@ -40,9 +40,10 @@ export default {
}
},
methods: {
initTable(equipmentId, findCode, orgCode, code) {
this.url = window._CONFIG['serviceURL'] + '/api/Inventory/GetListEquByFindCode'
this.params = { findCode: findCode, equipmentId: equipmentId, orgCode: orgCode.substring(6,8) === '00' ? (orgCode === code ? orgCode: '') : orgCode } // 先判断是不是 派出所还是上级,派出所直接传orgCode,上级会包含本级及下级的,相等的话传本级
initTable(equipmentId, sizeId, findCode, orgCode, code) {
this.url = window._CONFIG['serviceURL'] + '/api/Inventory/GetListEquByequipmentSizecode'
this.params = { findCode: findCode, equipmentId: equipmentId,equipmentSizecode:sizeId, orgCode: orgCode.substring(6,8) === '00' ? (orgCode === code ? orgCode: '') : orgCode } // 先判断是不是 派出所还是上级,派出所直接传orgCode,上级会包含本级及下级的,相等的话传本级
//this.params = { findCode: findCode, equipmentId: equipmentId,equipmentSizecode:sizeId }
this.initPost()
},
getRowKeys(row) {
......
......@@ -53,14 +53,15 @@
<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="name" label="装备类型名称" align="center"/>
<el-table-column prop="name" label="装备名称" align="center"/>
<el-table-column prop="sizeName" label="装备号型" align="center"/>
<el-table-column prop="zsCount" 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="bfCount" label="今年报废数" sortable 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.id, props.row.findCode, props.row.orgCode)">查看</el-button>
<el-button size="mini" type="primary" @click="show(scope.row.id, scope.row.sizeId, props.row.findCode, props.row.orgCode)">查看</el-button>
</template>
</el-table-column>
</el-table>
......@@ -149,7 +150,7 @@ export default {
},
methods: {
beforeInit() {
this.url = window._CONFIG['serviceURL'] + '/api/Tj/GetPageOrgTj'
this.url = window._CONFIG['serviceURL'] + '/api/Tj/GetPageOrgEqmTj'
this.params = { page: this.page, size: this.size, orgId: this.orgId || this.$store.state.user.user.baseJpOrganization.id }
const typeId = this.typeId
const equipmentCode = this.equipmentCode
......@@ -257,8 +258,8 @@ export default {
if(res.code == '10000') {
list = res.data.content
import('@/utils/Export2Excel').then(excel => {
const tHeader = ['装备名称', '总数', '今年入库数', '今年出库数', '今年报废数']
const filterVal = ['name', 'zsCount', 'zkCount', 'ckCount', 'bfCount']
const tHeader = ['装备名称','装备号型', '总数', '今年入库数', '今年出库数', '今年报废数']
const filterVal = ['name','sizeName', 'zsCount', 'zkCount', 'ckCount', 'bfCount']
for (let org of list) {
result.push({
sheetTitle: org.orgName,
......@@ -269,7 +270,7 @@ export default {
excel.export_json_to_excel({
// header: tHeader,
data: result,
filename: this.excelName || '库存统计报表',
filename: this.excelName || '装备统计报表',
autoWidth: true,
bookType: 'xlsx'
})
......@@ -312,9 +313,9 @@ export default {
return sums;
},
show(equipmentId, findCode, orgCode) {
show(equipmentId, sizeId, findCode, orgCode) {
const _this = this.$refs.form
_this.initTable(equipmentId, findCode, orgCode, this.code)
_this.initTable(equipmentId, sizeId, findCode, orgCode, this.code)
_this.dialog = true
}
}
......
......@@ -11,7 +11,6 @@
class="filter-item"
:filterable="true"
clearable
:filter-method="dataFilterV2"
placeholder="请选择供应商"
@change="initPost"
>
......@@ -22,7 +21,6 @@
class="filter-item"
:filterable="true"
clearable
:filter-method="dataFilter"
placeholder="请选择装备"
@change="getListEquipmentSize"
ref="select">
......
......@@ -148,7 +148,8 @@ export default {
page: '0',
size: '999',
orgizationCode: this.orgId || this.$store.state.user.user.baseJpOrganization.id,
level: '本级'
//level: '本级'
level:this.level
}
getPagePoliceman(params).then(res => {
if (res.code == '10000') {
......
......@@ -27,7 +27,7 @@
</tr>
<tr>
<th class="textHeader">领用警员</th>
<td class="textContent">{{form.policeName}}</td>
<td class="textContent">{{form.policeNote}}</td>
<th class="textHeader">领用原因</th>
<td colspan="3" class="textContentLast">{{form.note}}</td>
</tr>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论