设备管理模块
This commit is contained in:
@@ -30,7 +30,7 @@ export const authority = () => {
|
||||
]
|
||||
},
|
||||
{menu_id: '4',
|
||||
path: 'RF04',
|
||||
path: 'RF13',
|
||||
name: '刻字管理',
|
||||
sonTree: [
|
||||
{menu_id: '1', name: '刻字工序', path: '/letteringprocess'},
|
||||
@@ -46,18 +46,28 @@ export const authority = () => {
|
||||
]
|
||||
},
|
||||
{menu_id: '6',
|
||||
path: 'RF06',
|
||||
path: 'RF07',
|
||||
name: '专机管理',
|
||||
sonTree: [
|
||||
{menu_id: '1', name: '人工倒料', path: '/manpouring'}
|
||||
]
|
||||
},
|
||||
{menu_id: '7',
|
||||
path: 'RF07',
|
||||
path: 'RF06',
|
||||
name: '暂存区管理',
|
||||
sonTree: [
|
||||
{menu_id: '1', name: '包装机选择', path: '/bzjselect'}
|
||||
]
|
||||
},
|
||||
{menu_id: '8',
|
||||
path: 'RF04',
|
||||
name: '设备管理',
|
||||
sonTree: [
|
||||
{menu_id: '1', name: '维修单管理', path: '/repairorder'},
|
||||
{menu_id: '2', name: '保养单管理', path: '/maintainorder'},
|
||||
{menu_id: '3', name: '点检单管理', path: '/checkorder'},
|
||||
{menu_id: '4', name: '润滑单管理', path: '/lubricorder'}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ axios.interceptors.response.use(
|
||||
case 400:
|
||||
break
|
||||
case 401:
|
||||
store.dispatch('setSignOut')
|
||||
store.dispatch('delUserInfo')
|
||||
router.push('/login')
|
||||
break
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
src/images/menu/RF11.png
Normal file
BIN
src/images/menu/RF11.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
BIN
src/images/menu/RF12.png
Normal file
BIN
src/images/menu/RF12.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
BIN
src/images/menu/RF13.png
Normal file
BIN
src/images/menu/RF13.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
@@ -107,18 +107,17 @@ export default {
|
||||
_font(12px,22px,#fff,,right)
|
||||
padding-left 5px
|
||||
.zd_wrapper
|
||||
// _wh(calc(100% - 30px),calc(100% - 152px)) /** 42+80+15+15 */
|
||||
height 100%
|
||||
padding 35px 5%
|
||||
// background-color #fff
|
||||
// border-radius 12px
|
||||
// margin 0 auto 15px auto
|
||||
.menu-wrap
|
||||
_fj(flex-start,center,,wrap)
|
||||
flex-wrap wrap
|
||||
align-content center
|
||||
height 100%
|
||||
.menu-item
|
||||
_fj()
|
||||
flex-direction column
|
||||
_wh(30%, auto)
|
||||
_wh(25%, auto)
|
||||
margin-bottom 20px
|
||||
_font(13px, 30px,#e74f1a,,center)
|
||||
::v-deep .menu-img
|
||||
|
||||
0
src/pages/modules/device/check-order-detail.vue
Normal file
0
src/pages/modules/device/check-order-detail.vue
Normal file
0
src/pages/modules/device/check-order.vue
Normal file
0
src/pages/modules/device/check-order.vue
Normal file
63
src/pages/modules/device/index.vue
Normal file
63
src/pages/modules/device/index.vue
Normal file
@@ -0,0 +1,63 @@
|
||||
<template>
|
||||
<div class="content blue" ref="content">
|
||||
<jxHeader
|
||||
:title="title"
|
||||
@switchColor="switchColor"
|
||||
/>
|
||||
<div class="body-container">
|
||||
<div class="main-container">
|
||||
<keep-alive :include="keepAlive" >
|
||||
<router-view/>
|
||||
</keep-alive>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
import jxHeader from '@components/header.vue'
|
||||
export default {
|
||||
components: {
|
||||
jxHeader
|
||||
},
|
||||
data () {
|
||||
return {}
|
||||
},
|
||||
computed: {
|
||||
title () {
|
||||
let res = ['维修单查看', '维修单明细', '保养单查看', '保养单明细', '点检单查看', '点检单明细', '润滑单查看', '润滑单明细'][Number(this.$route.meta.guidePath) - 1]
|
||||
return res
|
||||
},
|
||||
...mapGetters(['keepAlive'])
|
||||
},
|
||||
methods: {
|
||||
switchColor (type) {
|
||||
switch (type) {
|
||||
case 1:
|
||||
this.$refs.content.classList.value = 'content overall_orange'
|
||||
break
|
||||
case 2:
|
||||
this.$refs.content.classList.value = 'content overall_lightgreen'
|
||||
break
|
||||
case 3:
|
||||
this.$refs.content.classList.value = 'content overall_blue'
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
@import '~@style/mixin.styl'
|
||||
.content
|
||||
_wh(100%, 100vh)
|
||||
.body-container
|
||||
_wh(calc(100% - 30px), calc(100% - 55px))
|
||||
margin 0 auto 10px
|
||||
padding 5px
|
||||
border 1px solid #484cce
|
||||
.main-container
|
||||
_wh(100%, 100%)
|
||||
</style>
|
||||
0
src/pages/modules/device/lubric-order-detail.vue
Normal file
0
src/pages/modules/device/lubric-order-detail.vue
Normal file
0
src/pages/modules/device/lubric-order.vue
Normal file
0
src/pages/modules/device/lubric-order.vue
Normal file
0
src/pages/modules/device/maintain-order-detail.vue
Normal file
0
src/pages/modules/device/maintain-order-detail.vue
Normal file
0
src/pages/modules/device/maintain-order.vue
Normal file
0
src/pages/modules/device/maintain-order.vue
Normal file
151
src/pages/modules/device/repair-order-detail.vue
Normal file
151
src/pages/modules/device/repair-order-detail.vue
Normal file
@@ -0,0 +1,151 @@
|
||||
<template>
|
||||
<div class="order-wraper">
|
||||
<div class="search-confirm-wrap">
|
||||
<div class="search-wrap">
|
||||
<div class="search-item">
|
||||
<div class="search-label">单据编码</div>
|
||||
<div class="filter_input_wraper">
|
||||
<input type="text" class="filter-input" v-model="remark">
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-item_2">
|
||||
<button class="button button--primary">关闭</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_wraper">
|
||||
<table class="filter-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>序号</th>
|
||||
<th>项目编码</th>
|
||||
<th>项目名称</th>
|
||||
<th>项目要求</th>
|
||||
<th>项目备注</th>
|
||||
<th>重量(g)</th>
|
||||
<th>单重(g)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="e.struct_name" :class="{'selected_icon': pkId === e.struct_name}" @click="toRadio(e)">
|
||||
<td>{{ i + 1 }}</td>
|
||||
<td>{{ e.sect_name }}</td>
|
||||
<td>{{e.struct_name}}</td>
|
||||
<td>{{e.material_code}}</td>
|
||||
<td>{{e.material_spec}}</td>
|
||||
<td>{{e.canuse_qty | numeric(3)}}</td>
|
||||
<td>{{ e.unit_weight | numeric(3) }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {accMul} from '@config/utils.js'
|
||||
import {checkGetBcpStor, checkCreate} from '@config/getData2.js'
|
||||
export default {
|
||||
name: 'semifinishedcheck',
|
||||
data () {
|
||||
return {
|
||||
options1: [],
|
||||
value1: '',
|
||||
options2: [{device_code: '32', device_name: '临时盘点'}],
|
||||
value2: '32',
|
||||
remark: '',
|
||||
dataList: [],
|
||||
pkId: '',
|
||||
pkObj: {},
|
||||
disabled1: false
|
||||
}
|
||||
},
|
||||
beforeRouteLeave (to, from, next) {
|
||||
if (to.path === '/home' || to.path === '/login') {
|
||||
this.$store.dispatch('setKeepAlive', [])
|
||||
}
|
||||
next()
|
||||
},
|
||||
activated () {
|
||||
if (this.$store.getters.materArr.length > 0) {
|
||||
let arr = this.$store.getters.materArr
|
||||
this.removeRepeat(this.dataList, arr)
|
||||
this.dataList = [...this.dataList, ...arr]
|
||||
this.dataList.map(el => {
|
||||
let res = accMul(el.canuse_qty, el.unit_weight)
|
||||
this.$set(el, 'base_qty', res)
|
||||
})
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this._checkGetBcpStor()
|
||||
},
|
||||
methods: {
|
||||
// 数组去重
|
||||
removeRepeat (arr1, arr2) {
|
||||
for (let i = 0; i < arr1.length; i++) {
|
||||
for (let j = 0; j < arr2.length; j++) {
|
||||
if (arr1[i].struct_name === arr2[j].struct_name) {
|
||||
arr2.splice(j, 1)
|
||||
j--
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
// 仓库下拉框
|
||||
async _checkGetBcpStor () {
|
||||
let res = await checkGetBcpStor()
|
||||
this.options1 = [...res.data]
|
||||
},
|
||||
// 生产盘点单
|
||||
async _checkCreate () {
|
||||
this.disabled1 = true
|
||||
if (this.value1 === '' || this.dataList.length === 0) {
|
||||
this.disabled1 = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let from = {
|
||||
stor_id: this.value1,
|
||||
check_type: '32',
|
||||
remark: this.remark,
|
||||
rows: this.dataList
|
||||
}
|
||||
let res = await checkCreate(from)
|
||||
this.toast(res.message)
|
||||
this.value1 = ''
|
||||
this.remark = ''
|
||||
this.$store.dispatch('setMaterArr', [])
|
||||
this.dataList = []
|
||||
|
||||
this.disabled1 = false
|
||||
} catch (e) {
|
||||
this.disabled1 = false
|
||||
}
|
||||
},
|
||||
searchMater () {
|
||||
this.$store.dispatch('setMaterArr', [])
|
||||
this.$router.push('/structmatersearch')
|
||||
},
|
||||
toJumpSearch () {
|
||||
this.$router.push('/semifinishedchecksearch')
|
||||
},
|
||||
toRadio (e) {
|
||||
this.pkId = this.pkId === e.struct_name ? '' : e.struct_name
|
||||
this.pkObj = this.pkId === e.struct_name ? e : {}
|
||||
},
|
||||
delRow () {
|
||||
if (!this.pkId) {
|
||||
return
|
||||
}
|
||||
this.dataList = this.dataList.filter(el => el.struct_name !== this.pkId)
|
||||
this.$store.dispatch('setMaterArr', this.dataList)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.grid_wraper
|
||||
height calc(100% - 1.1rem)
|
||||
</style>
|
||||
80
src/pages/modules/device/repair-order.vue
Normal file
80
src/pages/modules/device/repair-order.vue
Normal file
@@ -0,0 +1,80 @@
|
||||
<template>
|
||||
<div class="order-wraper">
|
||||
<div class="search-confirm-wrap">
|
||||
<div class="search-wrap">
|
||||
<div class="search-item_3">
|
||||
<button class="button button--primary">查询</button>
|
||||
<button class="button button--primary" :class="{'button--defalut': pkId === ''}" @click="toDetail">查看明细</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_wraper">
|
||||
<table class="filter-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>序号</th>
|
||||
<th>设备号</th>
|
||||
<th>单据编码</th>
|
||||
<th>单据状态</th>
|
||||
<th>计划开始时间</th>
|
||||
<th>单据类型</th>
|
||||
<th>操作人</th>
|
||||
<th>创建人</th>
|
||||
<th>创建时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="e.struct_name" :class="{'selected_icon': pkId === e.struct_name}" @click="toRadio(e)">
|
||||
<td>{{ i + 1 }}</td>
|
||||
<td>{{ e.sect_name }}</td>
|
||||
<td>{{e.struct_name}}</td>
|
||||
<td>{{e.material_code}}</td>
|
||||
<td>{{e.material_spec}}</td>
|
||||
<td>{{e.canuse_qty | numeric(3)}}</td>
|
||||
<td>{{ e.unit_weight | numeric(3) }}</td>
|
||||
<td>{{ e.qty | numeric(3) }}</td>
|
||||
<td>{{ e.storagevehicle_code }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// import {checkGetBcpStor} from '@config/getData2.js'
|
||||
export default {
|
||||
name: 'checkorder.vue',
|
||||
data () {
|
||||
return {
|
||||
dataList: [],
|
||||
pkId: '',
|
||||
pkObj: {}
|
||||
}
|
||||
},
|
||||
beforeRouteLeave (to, from, next) {
|
||||
if (to.path === '/home' || to.path === '/login') {
|
||||
this.$store.dispatch('setKeepAlive', [])
|
||||
}
|
||||
next()
|
||||
},
|
||||
activated () {
|
||||
},
|
||||
created () {
|
||||
},
|
||||
methods: {
|
||||
toDetail () {
|
||||
this.$router.push('/repairorderdetail')
|
||||
},
|
||||
toRadio (e) {
|
||||
this.pkId = this.pkId === e.struct_name ? '' : e.struct_name
|
||||
this.pkObj = this.pkId === e.struct_name ? e : {}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.grid_wraper
|
||||
height calc(100% - 1.1rem)
|
||||
</style>
|
||||
@@ -48,6 +48,16 @@ const bufferIndex = r => require.ensure([], () => r(require('@page/modules/buffe
|
||||
const bzjselect = r => require.ensure([], () => r(require('@page/modules/buffer/bzjselect')), 'buffer')
|
||||
const letterBufferSelect = r => require.ensure([], () => r(require('@page/modules/buffer/letter-buffer-select')), 'buffer')
|
||||
|
||||
const deviceIndex = r => require.ensure([], () => r(require('@page/modules/device/index')), 'device')
|
||||
const repairOrder = r => require.ensure([], () => r(require('@page/modules/device/repair-order')), 'device')
|
||||
const repairOrderDetail = r => require.ensure([], () => r(require('@page/modules/device/repair-order-detail')), 'device')
|
||||
const maintainOrder = r => require.ensure([], () => r(require('@page/modules/device/maintain-order')), 'device')
|
||||
const maintainOrderDetail = r => require.ensure([], () => r(require('@page/modules/device/maintain-order-detail')), 'device')
|
||||
const checkOrder = r => require.ensure([], () => r(require('@page/modules/device/check-order')), 'device')
|
||||
const checkOrderDetail = r => require.ensure([], () => r(require('@page/modules/device/check-order-detail')), 'device')
|
||||
const lubricOrder = r => require.ensure([], () => r(require('@page/modules/device/lubric-order')), 'device')
|
||||
const lubricOrderDetail = r => require.ensure([], () => r(require('@page/modules/device/lubric-order-detail')), 'device')
|
||||
|
||||
const Homeset = r => require.ensure([], () => r(require('@page/homeset/index')), 'Homeset')
|
||||
const Home = r => require.ensure([], () => r(require('@page/homeset/HomePage')), 'HomePage')
|
||||
const IfWork = r => require.ensure([], () => r(require('@page/homeset/IfWork')), 'IfWork')
|
||||
@@ -55,12 +65,11 @@ const Operation = r => require.ensure([], () => r(require('@page/assignment/Oper
|
||||
const Ungraded = r => require.ensure([], () => r(require('@page/assignment/Ungraded')), 'Ungraded')
|
||||
const UngradeRecord = r => require.ensure([], () => r(require('@page/assignment/UngradeRecord')), 'UngradeRecord')
|
||||
const StateSet = r => require.ensure([], () => r(require('@page/assignment/StateSet')), 'StateSet')
|
||||
Vue.use(Router)
|
||||
const OperSearch = r => require.ensure([], () => r(require('@page/assignment/OperSearch')), 'OperSearch')
|
||||
const NotFound = r => require.ensure([], () => r(require('@page/404')), 'NotFound')
|
||||
const ErrorComponent = r => require.ensure([], () => r(require('@page/500')), 'ErrorComponent')
|
||||
Vue.use(Router)
|
||||
const workordermanage = r => require.ensure([], () => r(require('@page/assignment/workordermanage')), 'workordermanage')
|
||||
Vue.use(Router)
|
||||
|
||||
export default new Router({
|
||||
routes: [
|
||||
@@ -212,6 +221,52 @@ export default new Router({
|
||||
meta: {guidePath: '4'}
|
||||
}]
|
||||
},
|
||||
{
|
||||
path: '/deviceindex',
|
||||
component: deviceIndex,
|
||||
children: [
|
||||
{
|
||||
path: '/repairorder',
|
||||
component: repairOrder,
|
||||
meta: {guidePath: '1'}
|
||||
},
|
||||
{
|
||||
path: '/repairorderdetail',
|
||||
component: repairOrderDetail,
|
||||
meta: {guidePath: '2'}
|
||||
},
|
||||
{
|
||||
path: '/maintainorder',
|
||||
component: maintainOrder,
|
||||
meta: {guidePath: '3'}
|
||||
},
|
||||
{
|
||||
path: '/maintainorderdetail',
|
||||
component: maintainOrderDetail,
|
||||
meta: {guidePath: '4'}
|
||||
},
|
||||
{
|
||||
path: '/checkorder',
|
||||
component: checkOrder,
|
||||
meta: {guidePath: '5'}
|
||||
},
|
||||
{
|
||||
path: '/checkorderdetail',
|
||||
component: checkOrderDetail,
|
||||
meta: {guidePath: '6'}
|
||||
},
|
||||
{
|
||||
path: '/lubricorder',
|
||||
component: lubricOrder,
|
||||
meta: {guidePath: '7'}
|
||||
},
|
||||
{
|
||||
path: '/lubricorderdetail',
|
||||
component: lubricOrderDetail,
|
||||
meta: {guidePath: '8'}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/specialindex',
|
||||
component: specialIndex,
|
||||
|
||||
Reference in New Issue
Block a user