add设备管理页面
This commit is contained in:
120
src/pages/xinrui/equipment/RunLogFill.vue
Normal file
120
src/pages/xinrui/equipment/RunLogFill.vue
Normal 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>
|
||||
136
src/pages/xinrui/equipment/ScanInStore.vue
Normal file
136
src/pages/xinrui/equipment/ScanInStore.vue
Normal 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>
|
||||
69
src/pages/xinrui/equipment/SparePartInstore.vue
Normal file
69
src/pages/xinrui/equipment/SparePartInstore.vue
Normal 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>
|
||||
104
src/pages/xinrui/equipment/SparePartOutstore.vue
Normal file
104
src/pages/xinrui/equipment/SparePartOutstore.vue
Normal 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>
|
||||
104
src/pages/xinrui/equipment/UseReturn.vue
Normal file
104
src/pages/xinrui/equipment/UseReturn.vue
Normal 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>
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user