This commit is contained in:
gtz
2022-11-07 08:45:49 +08:00
commit 4d1231adc2
1222 changed files with 194552 additions and 0 deletions

View File

@@ -0,0 +1,203 @@
<template>
<div>
<el-dialog v-bind="$attrs" title="添加备品备件" v-on="$listeners" @open="onOpen" @close="onClose">
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
<el-form-item label="备件编码" prop="name">
<el-input v-model="formData.code" placeholder="请输入备件编码" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item label="备件名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入备件名称" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item label="备件型号" prop="sparePartModel">
<el-input
v-model="formData.sparePartModel"
placeholder="请输入备件型号"
clearable
:style="{width: '100%'}"
/>
</el-form-item>
<el-form-item label="外部编码" prop="externalCode">
<el-input
v-model="formData.externalCode"
placeholder="请输入备件型号"
clearable
:style="{width: '100%'}"
/>
</el-form-item>
<el-form-item label="单位" prop="accessoryUnit">
<el-select v-model="formData.accessoryUnit" placeholder="请选择单位" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in accessoryUnitOptions"
:key="index"
:label="item.label"
:value="item.value"
:disabled="item.disabled"
/>
</el-select>
</el-form-item>
<el-form-item label="批次号" prop="batchNumber">
<el-input v-model="formData.batchNumber" type="number" placeholder="请输入批次号" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item label="数量" prop="accessoryNumber">
<el-input v-model="formData.accessoryNumber" type="number" placeholder="请输入数量" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item label="进厂时间" prop="entryTime">
<el-date-picker
v-model="formData.entryTime"
format="yyyy-MM-dd"
:style="{width: '100%'}"
placeholder="请选择进厂时间"
clearable
/>
</el-form-item>
<el-form-item label="供应商" prop="supplierId">
<el-select v-model="formData.supplierId" placeholder="请选择供应商" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in supplierIdOptions"
:key="index"
:label="item.label"
:value="item.value"
:disabled="item.disabled"
/>
</el-select>
</el-form-item>
<el-form-item label="接收人" prop="receiver">
<el-input v-model="formData.receiver" placeholder="请输入接收人" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" clearable :style="{width: '100%'}" />
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="close">{{ 'btn.cancel' | i18nFilter }}</el-button>
<el-button type="primary" @click="handelConfirm">{{ 'btn.confirm' | i18nFilter }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { addSapre } from '@/api/equipment/spare'
export default {
components: {},
inheritAttrs: false,
props: [],
data() {
return {
formData: {
code: undefined,
name: undefined,
sparePartModel: undefined,
accessoryUnit: undefined,
batchNumber: undefined,
accessoryNumber: undefined,
entryTime: null,
supplierId: undefined,
receiver: undefined,
remark: undefined,
externalCode: undefined
},
rules: {
code: [{
required: false,
message: '请输入备件编码',
trigger: 'blur'
}],
name: [{
required: true,
message: '请输入备件名称',
trigger: 'blur'
}],
sparePartModel: [{
required: true,
message: '请输入备件型号',
trigger: 'blur'
}],
accessoryUnit: [{
required: true,
message: '请选择单位',
trigger: 'change'
}],
externalCode: [{
required: true,
message: '请输入外部编码',
trigger: 'blur'
}],
batchNumber: [{
required: true,
message: '请输入批次号',
trigger: 'blur'
}],
accessoryNumber: [{
required: true,
message: '请输入数量',
trigger: 'blur'
}],
entryTime: [{
required: true,
message: '请选择进厂时间',
trigger: 'change'
}],
supplierId: [{
required: true,
message: '请选择供应商',
trigger: 'change'
}],
receiver: [{
required: true,
message: '请输入接收人',
trigger: 'blur'
}],
remark: [{
required: false,
message: '请输入备注',
trigger: 'blur'
}]
},
accessoryUnitOptions: [{
'label': '选项一',
'value': 1
}, {
'label': '选项二',
'value': 2
}],
supplierIdOptions: [{
'label': '选项一',
'value': 1
}, {
'label': '选项二',
'value': 2
}]
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
onOpen() {},
onClose() {
this.$refs['elForm'].resetFields()
},
close() {
this.$emit('update:visible', false)
},
handelConfirm() {
this.$refs['elForm'].validate(async valid => {
if (!valid) return
const result = await addSapre(this.formData)
if (result.code === 0) {
this.$message({
type: 'success',
message: '添加成功!'
})
this.$emit('done')
this.close()
}
})
}
}
}
</script>
<style>
</style>

View File

@@ -0,0 +1,222 @@
<template>
<div>
<el-dialog v-bind="$attrs" title="编辑备品备件" v-on="$listeners" @open="onOpen" @close="onClose">
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
<el-form-item label="备件编码" prop="name">
<el-input v-model="formData.code" placeholder="请输入备件编码" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item label="备件名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入备件名称" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item label="备件型号" prop="sparePartModel">
<el-input
v-model="formData.sparePartModel"
placeholder="请输入备件型号"
clearable
:style="{width: '100%'}"
/>
</el-form-item>
<el-form-item label="外部编码" prop="externalCode">
<el-input
v-model="formData.externalCode"
placeholder="请输入备件型号"
clearable
:style="{width: '100%'}"
/>
</el-form-item>
<el-form-item label="单位" prop="accessoryUnit">
<el-select v-model="formData.accessoryUnit" placeholder="请选择单位" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in accessoryUnitOptions"
:key="index"
:label="item.label"
:value="item.value"
:disabled="item.disabled"
/>
</el-select>
</el-form-item>
<el-form-item label="批次号" prop="batchNumber">
<el-input v-model="formData.batchNumber" type="number" placeholder="请输入批次号" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item label="数量" prop="accessoryNumber">
<el-input v-model="formData.accessoryNumber" type="number" placeholder="请输入数量" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item label="进厂时间" prop="entryTime">
<el-date-picker
v-model="formData.entryTime"
format="yyyy-MM-dd"
:style="{width: '100%'}"
placeholder="请选择进厂时间"
clearable
/>
</el-form-item>
<el-form-item label="供应商" prop="supplierId">
<el-select v-model="formData.supplierId" placeholder="请选择供应商" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in supplierIdOptions"
:key="index"
:label="item.label"
:value="item.value"
:disabled="item.disabled"
/>
</el-select>
</el-form-item>
<el-form-item label="接收人" prop="receiver">
<el-input v-model="formData.receiver" placeholder="请输入接收人" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" clearable :style="{width: '100%'}" />
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="close">{{ 'btn.cancel' | i18nFilter }}</el-button>
<el-button type="primary" @click="handelConfirm">{{ 'btn.confirm' | i18nFilter }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getSpareInfo, editSpare } from '@/api/equipment/spare'
export default {
components: {},
inheritAttrs: false,
props: {
targetInfo: {
type: Object,
default: () => ({})
}
},
data() {
return {
formData: {
code: undefined,
name: undefined,
sparePartModel: undefined,
accessoryUnit: undefined,
batchNumber: undefined,
accessoryNumber: undefined,
entryTime: null,
supplierId: undefined,
receiver: undefined,
remark: undefined,
externalCode: undefined
},
rules: {
code: [{
required: true,
message: '请输入备件编码',
trigger: 'blur'
}],
externalCode: [{
required: true,
message: '请输入外部编码',
trigger: 'blur'
}],
name: [{
required: true,
message: '请输入备件名称',
trigger: 'blur'
}],
sparePartModel: [{
required: true,
message: '请输入备件型号',
trigger: 'blur'
}],
accessoryUnit: [{
required: true,
message: '请选择单位',
trigger: 'change'
}],
batchNumber: [{
required: true,
message: '请输入批次号',
trigger: 'blur'
}],
accessoryNumber: [{
required: true,
message: '请输入数量',
trigger: 'blur'
}],
entryTime: [{
required: true,
message: '请选择进厂时间',
trigger: 'change'
}],
supplierId: [{
required: true,
message: '请选择供应商',
trigger: 'change'
}],
receiver: [{
required: true,
message: '请输入接收人',
trigger: 'blur'
}],
remark: [{
required: false,
message: '请输入备注',
trigger: 'blur'
}]
},
accessoryUnitOptions: [{
'label': '选项一',
'value': 1
}, {
'label': '选项二',
'value': 2
}],
supplierIdOptions: [{
'label': '选项一',
'value': 1
}, {
'label': '选项二',
'value': 2
}]
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
onOpen() {
this.getDetail()
},
onClose() {
this.$refs['elForm'].resetFields()
},
close() {
this.$emit('update:visible', false)
},
handelConfirm() {
this.$refs['elForm'].validate(async valid => {
if (!valid) return
const result = await editSpare({
...this.formData,
id: this.targetInfo?.id
})
if (result.code === 0) {
this.$message({
type: 'success',
message: '修改成功!'
})
this.$emit('done')
this.close()
}
})
},
async getDetail() {
const result = await getSpareInfo({
id: this.targetInfo?.id
})
if (result.code === 0) {
this.formData = result.data
// console.log(result)
}
}
}
}
</script>
<style>
</style>

View File

@@ -0,0 +1,167 @@
<!--
* @Date: 2020-12-15 15:36:52
* @LastEditors: guo
* @LastEditTime: 2021-03-20 17:51:55
* @FilePath: \basic-admin\src\views\EquipmentManager\DeviceMonitoring\index.vue
* @Description:
-->
<template>
<div class="usermanager-container">
<div class="method-btn-area">
<el-input v-model="listQuery.keywords" :placeholder="$t('module.equipmentManager.monitoring.searchPlaceholder')" style="width: 200px;" clearable />
<el-button @click="getList">{{ 'btn.search' | i18nFilter }}</el-button>
<!-- <el-button type="primary" @click="showDialog = true">{{ 'btn.add' | i18nFilter }}</el-button> -->
</div>
<base-table :table-config="tableProps" :table-data="list" :is-loading="listLoading" :page="listQuery.current" :limit="listQuery.size">
<method-btn slot="handleBtn" :method-list="tableBtn" @clickBtn="handleClick" />
</base-table>
<pagination v-show="total > listQuery.size" :total="total" :page.sync="listQuery.current" :limit.sync="listQuery.size" @pagination="getList" />
<add-form :visible.sync="showDialog" @done="getList" />
<edit-form :visible.sync="showEditDialog" :target-info="{id: curEditId}" @done="getList" />
</div>
</template>
<script>
// import dataDict from '@/filters/DataDict'
// edit here
import { timeFormatter } from '@/filters'
const statusTableFilter = value => {
const table = {
'0': 'productive',
'1': 'standby',
'2': 'unscheduled downtime',
'3': 'scheduled downtime',
'4': 'engineering',
'5': 'non-scheduled'
}
return table[value] ? table[value] : value
}
const tableBtn = [{
type: 'detail',
btnName: 'btn.detail'
}]
const tableProps = [{
prop: 'code',
label: i18n.t('module.equipmentManager.monitoring.code'),
align: 'center'
}, {
prop: 'name',
label: i18n.t('module.equipmentManager.monitoring.name'),
align: 'center'
}, {
prop: 'status',
label: i18n.t('module.equipmentManager.monitoring.status'),
align: 'center',
filter: statusTableFilter
}, {
prop: 'startTime',
label: i18n.t('module.equipmentManager.monitoring.startTime'),
align: 'center',
filter: timeFormatter
// filter: dataDict('enableState')
}, {
prop: 'totalCount',
label: i18n.t('module.equipmentManager.monitoring.totalCount'),
align: 'center'
}, {
prop: 'repairTime',
label: i18n.t('module.equipmentManager.monitoring.repairTime'),
align: 'center',
filter: timeFormatter
}]
import AddForm from './AddForm'
import EditForm from './EditForm'
import BaseTable from '@/components/BaseTable'
// edit here
import { getDeviceMonitoringList } from '@/api/equipment/monitoring'
import { getDictSupplier } from '@/api/dict/index'
import { dictChange, dictFilter } from '@/utils'
import Pagination from '@/components/Pagination'
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import i18n from '@/lang'
export default {
name: 'OrgManager',
components: { Pagination, BaseTable, MethodBtn, AddForm, EditForm },
props: {},
data() {
return {
tableBtn,
tableProps: [],
list: [],
total: 0,
listLoading: true,
showDialog: false,
curEditId: null,
showEditDialog: false,
listQuery: {
current: 1,
size: 10,
keywords: ''
},
dict: {
supplier: []
}
}
},
async created() {
await this.getDict()
await this.preprocess()
await this.getList()
// this.listLoading = false
},
mounted() {},
methods: {
handleClick(raw) {
console.log(raw)
switch (raw.type) {
case 'detail':
// this.showEditDialog = true
this.curEditId = raw.data.id
break
}
},
async getList() {
this.listLoading = true
// edit here
const res = await getDeviceMonitoringList(this.listQuery)
if (res.code === 0) {
this.list = res.data
this.total = res.data.total
this.listLoading = false
}
},
async getDict() {
const result = await getDictSupplier()
this.dict.supplier = result.data
},
async preprocess() {
this.tableProps = tableProps.map(item => {
if (this.dict[item.prop]) {
console.log(dictChange(this.dict[item.prop], { key: 'id', value: 'name' }))
item.filter = dictFilter(dictChange(this.dict[item.prop], { key: 'id', value: 'name' }))
}
return item
})
}
}
}
</script>
<style lang="scss" scoped>
.usermanager-container {
padding: 20px;
.method-btn-area {
padding: 15px 30px;
margin: 10px 0 20px 0;
border: 1px solid #dfe6ec;
}
}
.edit-input {
padding-right: 100px;
}
.cancel-btn {
position: absolute;
right: 15px;
top: 10px;
}
</style>