add设备管理页面

This commit is contained in:
2022-07-01 14:23:52 +08:00
parent 91f376cb59
commit ad4674f2a6
6 changed files with 559 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
<template>
<section>
<nav-bar title="运行记录填报"></nav-bar>
<section class="content mgt186">
<div class="filter-wraper">
<search-box
label="设备"
v-model="val1"
@handleChange="handleChange"
></search-box>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">日期</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.turnout_struct_code" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">工作时间</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.storagevehicle_code" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">准备时间</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.material_code" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">故障时间</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.pcsn" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">工装调整时间</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.bucket_out" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">生产总量</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.out_qty" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">不合格量</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.out_qty" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">综合效率</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.out_qty" disabled>
</div>
</div>
</div>
</section>
<section class="submit-bar">
<button class="btn submit-button" :disabled="disabled1" :class="{'btn-disabled': (JSON.stringify(robj) == '{}') }" @click="_confirmPlate">计算</button>
<button class="btn submit-button" :disabled="disabled1" :class="{'btn-disabled': (JSON.stringify(robj) == '{}') }" @click="save">保存</button>
</section>
</section>
</template>
<script>
import {queryPlate, confirmPlate} from '@config/getData1.js'
import NavBar from '@components/NavBar.vue'
import SearchBox from '@components/SearchBox.vue'
export default {
name: 'RunLogFill',
components: {
NavBar,
SearchBox
},
data () {
return {
val1: '',
robj: {},
disabled1: false
}
},
methods: {
handleChange (e, type) {
if (type) {
this._queryPlate()
}
},
async _queryPlate () {
let res = await queryPlate(this.val1)
if (res.code === '1') {
this.robj = res.plate_jo
} else {
this.Dialog(res.desc)
}
},
async _confirmPlate () {
this.disabled1 = true
try {
let res = await confirmPlate(this.robj)
if (res.code === '1') {
this.toast(res.desc)
this.val1 = ''
this.robj = {}
} else {
this.Dialog(res.desc)
}
this.disabled1 = false
} catch (error) {
this.disabled1 = false
}
},
save () {
console.log(111)
}
}
}
</script>

View File

@@ -0,0 +1,136 @@
<template>
<section>
<nav-bar :inner="true" title="扫码入库"></nav-bar>
<section class="content mgt186">
<div class="filter-wraper">
<search-box
label="备品备件"
v-model="val1"
@handleChange="handleChange1"
></search-box>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">入库单</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" placeholder="" v-model="val2">
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">物料</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" placeholder="" v-model="val3">
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">采购数量</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" placeholder="" v-model="val4">
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">入库数量</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" placeholder="" v-model="val5">
</div>
</div>
</div>
<div class="grid-wraper">
<div class="slide">
<table class="layout-t">
<tr>
<th>备件唯一编码</th>
<th>备件名称</th>
<th>数量</th>
</tr>
<tr v-for="e in dataList" :key="e.maint_dtl_id" @click="toCheck(e)" :class="{'checked': e.maint_dtl_id === pkId}">
<td>{{e.maint_item_name}}</td>
<td>{{e.item_level}}</td>
<td>{{e.contents}}</td>
</tr>
</table>
</div>
</div>
</section>
<section class="submit-bar">
<button class="btn submit-button" :class="{'btn-disabled': dataList.length === 0}" :disabled="disabled1" @click="toSure1">删除</button>
<button class="btn submit-button" :class="{'btn-disabled': dataList.length === 0}" :disabled="disabled2" @click="toSure2">确认</button>
</section>
</section>
</template>
<script>
import NavBar from '@components/NavBar.vue'
import SearchBox from '@components/SearchBox.vue'
import {queryMaintenanceDtl, dtlConfirm} from '@config/getData2.js'
export default {
name: 'ScanInStore',
components: {
NavBar,
SearchBox
},
data () {
return {
val1: '',
val2: '',
val3: '',
val4: '',
val5: '',
dataList: [],
pkId: '',
pkObj: {},
disabled1: false,
disabled2: false
}
},
methods: {
handleChange1 (e, type) {
if (type) {
console.log(e)
}
},
toCheck (e) {
this.pkId = this.pkId === e.maint_dtl_id ? '' : e.maint_dtl_id
this.pkObj = this.pkId === e.maint_dtl_id ? e : {}
},
/** 明细查询 */
async _queryMaintenanceDtl () {
let res = await queryMaintenanceDtl(this.$store.getters.materObj)
if (res.code === '1') {
this.dataList = [...res.content.rows]
} else {
this.Dialog(res.desc)
}
},
async _dtlConfirm () {
try {
let res = await dtlConfirm(this.dataList)
if (res.code === '1') {
this.toast(res.desc)
} else {
this.Dialog(res.desc)
}
this.disabled1 = false
this.disabled2 = false
} catch (e) {
this.disabled1 = false
this.disabled2 = false
}
},
toSure1 () {
this.disabled1 = true
if (!this.dataList.length) {
this.disabled1 = false
return
}
this._dtlConfirm()
},
toSure2 () {
this.disabled2 = true
if (!this.dataList.length) {
this.disabled2 = false
return
}
this._dtlConfirm()
}
}
}
</script>

View File

@@ -0,0 +1,69 @@
<template>
<section>
<nav-bar title="备件入库"></nav-bar>
<section class="content mgt186">
<div class="grid-wraper">
<div class="left_fixed">
<table class="layout-t left_layout_t">
<tr>
<th>入库单号</th>
</tr>
<tr v-for="e in dataList" :key="e.worktask_id" @click="toCheck(e)" :class="{'checked': e.worktask_id === pkId}">
<td>{{e.device_code}}</td>
</tr>
</table>
</div>
<div class="slide">
<table class="layout-t">
<tr>
<th>备件名称</th>
<th>数量</th>
<th>入库数量</th>
<th>单位</th>
</tr>
<tr v-for="e in dataList" :key="e.worktask_id" @click="toCheck(e)" :class="{'checked': e.worktask_id === pkId}">
<td>{{e.workorder_code}}</td>
<td>{{e.material_code}}</td>
<td>{{e.pcsn}}</td>
<td>{{e.pcsn}}</td>
</tr>
</table>
</div>
</div>
</section>
<section class="submit-bar">
<button class="btn submit-button">扫码入库</button>
</section>
</section>
</template>
<script>
import NavBar from '@components/NavBar.vue'
import SearchBox from '@components/SearchBox.vue'
export default {
name: 'SparePartInstore',
components: {
NavBar,
SearchBox
},
data () {
return {
val1: '',
dataList: [],
pkId: '',
pkObj: {}
}
},
methods: {
handleChange1 (e, type) {
if (type) {
console.log(e)
}
},
toCheck (e) {
this.pkId = this.pkId === e.worktask_id ? '' : e.worktask_id
this.pkObj = this.pkId === e.worktask_id ? e : {}
}
}
}
</script>

View File

@@ -0,0 +1,104 @@
<template>
<section>
<nav-bar title="备件出库"></nav-bar>
<section class="content mgt186">
<div class="filter-wraper">
<search-box
label="备品备件"
v-model="val1"
@handleChange="handleChange1"
></search-box>
</div>
<div class="grid-wraper">
<div class="left_fixed">
<table class="layout-t left_layout_t">
<tr>
<th>出库单号</th>
</tr>
<tr v-for="e in dataList" :key="e.worktask_id" @click="toCheck(e)" :class="{'checked': e.worktask_id === pkId}">
<td>{{e.device_code}}</td>
</tr>
</table>
</div>
<div class="slide">
<table class="layout-t">
<tr>
<th>物料编码</th>
<th>物料名称</th>
<th>数量</th>
</tr>
<tr v-for="e in dataList" :key="e.worktask_id" @click="toCheck(e)" :class="{'checked': e.worktask_id === pkId}">
<td>{{e.workorder_code}}</td>
<td>{{e.material_code}}</td>
<td>{{e.pcsn}}</td>
</tr>
</table>
</div>
</div>
</section>
<section class="content mgt186">
<div class="grid-wraper">
<div class="left_fixed">
<table class="layout-t left_layout_t">
<tr>
<th>备件唯一码</th>
</tr>
<tr v-for="e in dataList" :key="e.worktask_id" @click="toCheck(e)" :class="{'checked': e.worktask_id === pkId}">
<td>{{e.device_code}}</td>
</tr>
</table>
</div>
<div class="slide">
<table class="layout-t">
<tr>
<th>物料编码</th>
<th>物料名称</th>
<th>数量</th>
</tr>
<tr v-for="e in dataList" :key="e.worktask_id" @click="toCheck(e)" :class="{'checked': e.worktask_id === pkId}">
<td>{{e.workorder_code}}</td>
<td>{{e.material_code}}</td>
<td>{{e.pcsn}}</td>
</tr>
</table>
</div>
</div>
</section>
<section class="submit-bar">
<button class="btn submit-button">查询</button>
<button class="btn submit-button">删除</button>
<button class="btn submit-button">确认</button>
</section>
</section>
</template>
<script>
import NavBar from '@components/NavBar.vue'
import SearchBox from '@components/SearchBox.vue'
export default {
name: 'SparePartOutstore',
components: {
NavBar,
SearchBox
},
data () {
return {
val1: '',
dataList: [],
pkId: '',
pkObj: {}
}
},
methods: {
handleChange1 (e, type) {
if (type) {
console.log(e)
}
},
toCheck (e) {
this.pkId = this.pkId === e.worktask_id ? '' : e.worktask_id
this.pkObj = this.pkId === e.worktask_id ? e : {}
}
}
}
</script>

View File

@@ -0,0 +1,104 @@
<template>
<section>
<nav-bar title="领用还回"></nav-bar>
<section class="content mgt186">
<div class="filter-wraper">
<search-box
label="备品备件"
v-model="val1"
@handleChange="handleChange"
></search-box>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">备件名称</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.turnout_struct_code" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify"> </div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.storagevehicle_code" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">技术规格</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.material_code" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify"> </div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.pcsn" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">出库单号</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.bucket_out" disabled>
</div>
</div>
<div class="bottom-filter-tip">
<div class="filter-label txtjustify">关联设备</div>
<div class="fxcol mgl20">
<input type="text" class="filter-input filter-scan-input" v-model="robj.out_qty" disabled>
</div>
</div>
</div>
</section>
<section class="submit-bar">
<button class="btn submit-button" :disabled="disabled1" :class="{'btn-disabled': (JSON.stringify(robj) == '{}') }" @click="_confirmPlate">确认</button>
</section>
</section>
</template>
<script>
import {queryPlate, confirmPlate} from '@config/getData1.js'
import NavBar from '@components/NavBar.vue'
import SearchBox from '@components/SearchBox.vue'
export default {
name: 'UseReturn',
components: {
NavBar,
SearchBox
},
data () {
return {
val1: '',
robj: {},
disabled1: false
}
},
methods: {
handleChange (e, type) {
if (type) {
this._queryPlate()
}
},
async _queryPlate () {
let res = await queryPlate(this.val1)
if (res.code === '1') {
this.robj = res.plate_jo
} else {
this.Dialog(res.desc)
}
},
async _confirmPlate () {
this.disabled1 = true
try {
let res = await confirmPlate(this.robj)
if (res.code === '1') {
this.toast(res.desc)
this.val1 = ''
this.robj = {}
} else {
this.Dialog(res.desc)
}
this.disabled1 = false
} catch (error) {
this.disabled1 = false
}
}
}
}
</script>

View File

@@ -96,6 +96,12 @@ const EquipRepair = r => require.ensure([], () => r(require('../pages/xinrui/equ
const EquipRepairExecute = r => require.ensure([], () => r(require('../pages/xinrui/equipment/EquipRepairExecute')), 'EquipRepairExecute')
const MaintainResultFill = r => require.ensure([], () => r(require('../pages/xinrui/equipment/MaintainResultFill')), 'MaintainResultFill')
const EquipRepairConfirm = r => require.ensure([], () => r(require('../pages/xinrui/equipment/EquipRepairConfirm')), 'EquipRepairConfirm')
const SparePartInstore = r => require.ensure([], () => r(require('../pages/xinrui/equipment/SparePartInstore')), 'SparePartInstore')
const ScanInStore = r => require.ensure([], () => r(require('../pages/xinrui/equipment/ScanInStore')), 'ScanInStore')
const SparePartOutstore = r => require.ensure([], () => r(require('../pages/xinrui/equipment/SparePartOutstore')), 'SparePartOutstore')
const UseReturn = r => require.ensure([], () => r(require('../pages/xinrui/equipment/UseReturn')), 'UseReturn')
const RunLogFill = r => require.ensure([], () => r(require('../pages/xinrui/equipment/RunLogFill')), 'RunLogFill')
// 公用
const EquipSearchRadio = r => require.ensure([], () => r(require('../pages/xinrui/common/EquipSearchRadio')), 'common')
const EquipSearchCheckbox = r => require.ensure([], () => r(require('../pages/xinrui/common/EquipSearchCheckbox')), 'common')
@@ -472,6 +478,26 @@ export default new Router({
{
path: '/EquipRepairConfirm', // 设备维修确认
component: EquipRepairConfirm
},
{
path: '/SparePartInstore', // 备件入库
component: SparePartInstore
},
{
path: '/ScanInStore', // 扫码入库
component: ScanInStore
},
{
path: '/SparePartOutstore', // 备件出库
component: SparePartOutstore
},
{
path: '/UseReturn', // 领用还回
component: UseReturn
},
{
path: '/RunLogFill', // 运行记录填报
component: RunLogFill
}
],
scrollBehavior (to, from, savedPosition) {