This commit is contained in:
2021-09-13 14:56:28 +08:00
commit ac0d6e9083
777 changed files with 90286 additions and 0 deletions

View File

@@ -0,0 +1,216 @@
<template>
<div>
<el-dialog v-bind="$attrs" :title="$t('module.equipmentManager.sparepart.addDialogTtile')" v-on="$listeners" @open="onOpen" @close="onClose">
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="150px">
<!-- <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="$t('module.equipmentManager.sparepart.sparepart')" prop="basicSparePartId">
<el-select v-model="formData.basicSparePartId" filterable :placeholder="$t('module.equipmentManager.sparepart.placeholdersparepart')" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in dict.sparepart"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item :label="$t('module.equipmentManager.sparepart.model')" prop="model">
<el-input
v-model="formData.model"
:placeholder="$t('module.equipmentManager.sparepart.placeholdermodel')"
clearable
:style="{width: '100%'}"
/>
</el-form-item> -->
<el-form-item :label="$t('module.equipmentManager.sparepart.externalCode')" prop="externalCode">
<el-input
v-model="formData.externalCode"
:placeholder="$t('module.equipmentManager.sparepart.placeholderexternalCode')"
clearable
:style="{width: '100%'}"
/>
</el-form-item>
<!-- <el-form-item :label="$t('module.equipmentManager.sparepart.unit')" prop="accessoryUnit">
<el-select v-model="formData.accessoryUnit" :placeholder="$t('module.equipmentManager.sparepart.placeholderunit')" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in dict.unit"
:key="index"
:label="item.dataName"
:value="item.dataName"
/>
</el-select>
</el-form-item> -->
<el-form-item :label="$t('module.equipmentManager.sparepart.batchNumber')" prop="batchNumber">
<el-input v-model="formData.batchNumber" :placeholder="$t('module.equipmentManager.sparepart.placeholderbatchNumber')" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item :label="$t('module.equipmentManager.sparepart.number')" prop="accessoryNumber">
<el-input v-model="formData.accessoryNumber" type="number" :placeholder="$t('module.equipmentManager.sparepart.placeholdernumber')" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item :label="$t('module.equipmentManager.sparepart.entryTime')" prop="entryTime">
<el-date-picker
v-model="formData.entryTime"
format="yyyy-MM-dd"
:style="{width: '100%'}"
:placeholder="$t('module.equipmentManager.sparepart.placeholderentryTime')"
clearable
/>
</el-form-item>
<el-form-item :label="$t('module.equipmentManager.sparepart.supplier')" prop="supplierId">
<el-select v-model="formData.supplierId" :placeholder="$t('module.equipmentManager.sparepart.placeholdersupplier')" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in dict.supplier"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.equipmentManager.sparepart.receiver')" prop="receiver">
<el-select v-model="formData.receiver" :placeholder="$t('module.equipmentManager.sparepart.placeholderreceiver')" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in dict.worker"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.equipmentManager.sparepart.remark')" prop="remark">
<el-input v-model="formData.remark" :placeholder="$t('module.equipmentManager.sparepart.placeholderremark')" 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'
import { getDictUnit, getDictSupplier, getDictSparepart, getDictWorker } from '@/api/dict'
import i18n from '@/lang'
export default {
components: {},
inheritAttrs: false,
props: [],
data() {
return {
formData: {
code: undefined,
name: undefined,
// model: undefined,
// accessoryUnit: undefined,
batchNumber: undefined,
accessoryNumber: undefined,
entryTime: null,
supplierId: undefined,
receiver: undefined,
remark: undefined,
externalCode: undefined
},
rules: {
basicSparePartId: [{
required: true,
message: i18n.t('module.equipmentManager.sparepart.placeholdersparepart'),
trigger: 'blur'
}],
model: [{
required: false,
message: i18n.t('module.equipmentManager.sparepart.placeholdermodel'),
trigger: 'blur'
}],
accessoryUnit: [{
required: false,
message: i18n.t('module.equipmentManager.sparepart.placeholderunit'),
trigger: 'change'
}],
batchNumber: [{
required: false,
message: i18n.t('module.equipmentManager.sparepart.placeholderbatchNumber'),
trigger: 'blur'
}],
accessoryNumber: [{
required: false,
message: i18n.t('module.equipmentManager.sparepart.placeholdernumber'),
trigger: 'blur'
}],
entryTime: [{
required: true,
message: i18n.t('module.equipmentManager.sparepart.placeholderentryTime'),
trigger: 'change'
}],
supplierId: [{
required: true,
message: i18n.t('module.equipmentManager.sparepart.placeholdersupplier'),
trigger: 'change'
}],
receiver: [{
required: true,
message: i18n.t('module.equipmentManager.sparepart.placeholderreceiver'),
trigger: 'blur'
}],
remark: [{
required: false,
message: i18n.t('module.equipmentManager.sparepart.placeholderremark'),
trigger: 'blur'
}]
},
dict: {
unit: [],
supplier: [],
sparepart: []
}
}
},
computed: {},
watch: {},
created() {},
mounted() {
this.getDict()
},
methods: {
onOpen() {
this.$refs['elForm'].resetFields()
this.getDict()
},
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()
}
})
},
async getDict() {
const result = await getDictUnit()
this.dict.unit = result
const result2 = await getDictSupplier()
this.dict.supplier = result2
const result3 = await getDictSparepart()
this.dict.sparepart = result3
const result4 = await getDictWorker()
this.dict.worker = result4
}
}
}
</script>
<style>
</style>

View File

@@ -0,0 +1,231 @@
<template>
<div>
<el-dialog v-bind="$attrs" :title="$t('module.equipmentManager.sparepart.editDialogTtile')" v-on="$listeners" @open="onOpen" @close="onClose">
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="150px">
<!-- <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="$t('module.equipmentManager.sparepart.sparepart')" prop="basicSparePartId">
<el-select v-model="formData.basicSparePartId" :placeholder="$t('module.equipmentManager.sparepart.placeholdersparepart')" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in dict.sparepart"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item :label="$t('module.equipmentManager.sparepart.model')" prop="sparePartModel">
<el-input
v-model="formData.model"
:placeholder="$t('module.equipmentManager.sparepart.placeholdermodel')"
clearable
:style="{width: '100%'}"
/>
</el-form-item> -->
<el-form-item :label="$t('module.equipmentManager.sparepart.externalCode')" prop="externalCode">
<el-input
v-model="formData.externalCode"
:placeholder="$t('module.equipmentManager.sparepart.placeholderexternalCode')"
clearable
:style="{width: '100%'}"
/>
</el-form-item>
<!-- <el-form-item :label="$t('module.equipmentManager.sparepart.unit')" prop="accessoryUnit">
<el-select v-model="formData.accessoryUnit" :placeholder="$t('module.equipmentManager.sparepart.placeholderunit')" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in dict.unit"
:key="index"
:label="item.dataName"
:value="item.dataName"
/>
</el-select>
</el-form-item> -->
<el-form-item :label="$t('module.equipmentManager.sparepart.batchNumber')" prop="batchNumber">
<el-input v-model="formData.batchNumber" :placeholder="$t('module.equipmentManager.sparepart.placeholderbatchNumber')" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item :label="$t('module.equipmentManager.sparepart.number')" prop="accessoryNumber">
<el-input v-model="formData.accessoryNumber" type="number" :placeholder="$t('module.equipmentManager.sparepart.placeholdernumber')" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item :label="$t('module.equipmentManager.sparepart.entryTime')" prop="entryTime">
<el-date-picker
v-model="formData.entryTime"
format="yyyy-MM-dd"
:style="{width: '100%'}"
:placeholder="$t('module.equipmentManager.sparepart.placeholderentryTime')"
clearable
/>
</el-form-item>
<el-form-item :label="$t('module.equipmentManager.sparepart.supplier')" prop="supplierId">
<el-select v-model="formData.supplierId" :placeholder="$t('module.equipmentManager.sparepart.placeholdersupplier')" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in dict.supplier"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.equipmentManager.sparepart.receiver')" prop="receiver">
<el-select v-model="formData.receiver" :placeholder="$t('module.equipmentManager.sparepart.placeholderreceiver')" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in dict.worker"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.equipmentManager.sparepart.remark')" prop="remark">
<el-input v-model="formData.remark" :placeholder="$t('module.equipmentManager.sparepart.placeholderremark')" 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'
import { getDictUnit, getDictSupplier, getDictSparepart, getDictWorker } from '@/api/dict'
import i18n from '@/lang'
export default {
components: {},
inheritAttrs: false,
props: {
targetInfo: {
type: Object,
default: () => ({})
}
},
data() {
return {
formData: {
basicSparePartId: undefined,
// model: undefined,
// accessoryUnit: undefined,
batchNumber: undefined,
accessoryNumber: undefined,
entryTime: null,
supplierId: undefined,
receiver: undefined,
remark: undefined,
externalCode: undefined
},
rules: {
basicSparePartId: [{
required: true,
message: i18n.t('module.equipmentManager.sparepart.placeholdersparepart'),
trigger: 'blur'
}],
sparePartModel: [{
required: false,
message: i18n.t('module.equipmentManager.sparepart.placeholdermodel'),
trigger: 'blur'
}],
accessoryUnit: [{
required: false,
message: i18n.t('module.equipmentManager.sparepart.placeholderunit'),
trigger: 'change'
}],
batchNumber: [{
required: false,
message: i18n.t('module.equipmentManager.sparepart.placeholderbatchNumber'),
trigger: 'blur'
}],
accessoryNumber: [{
required: false,
message: i18n.t('module.equipmentManager.sparepart.placeholdernumber'),
trigger: 'blur'
}],
entryTime: [{
required: true,
message: i18n.t('module.equipmentManager.sparepart.placeholderentryTime'),
trigger: 'change'
}],
supplierId: [{
required: true,
message: i18n.t('module.equipmentManager.sparepart.placeholdersupplier'),
trigger: 'change'
}],
receiver: [{
required: true,
message: i18n.t('module.equipmentManager.sparepart.placeholderreceiver'),
trigger: 'blur'
}],
remark: [{
required: false,
message: i18n.t('module.equipmentManager.sparepart.placeholderremark'),
trigger: 'blur'
}]
},
dict: {
unit: [],
supplier: [],
sparepart: [],
worker: []
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
onOpen() {
this.getDict()
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)
}
},
async getDict() {
const result = await getDictUnit()
this.dict.unit = result
const result2 = await getDictSupplier()
this.dict.supplier = result2
const result3 = await getDictSparepart()
this.dict.sparepart = result3
const result4 = await getDictWorker()
this.dict.worker = result4
}
}
}
</script>
<style>
</style>

View File

@@ -0,0 +1,208 @@
<!--
* @Date: 2020-12-15 15:36:52
* @LastEditors: guo
* @LastEditTime: 2021-03-23 10:20:05
* @FilePath: \basic-admin\src\views\EquipmentManager\sqarepart\index.vue
* @Description:
-->
<template>
<div class="usermanager-container">
<div class="method-btn-area">
<el-input v-model="listQuery.keywords" :placeholder="$t('module.equipmentManager.sparepart.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" :is-fixed="true" @clickBtn="handleClick" />
</base-table>
<pagination :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'
import i18n from '@/lang'
const tableBtn = [{
type: 'edit',
btnName: 'btn.edit'
}, {
type: 'delete',
btnName: 'btn.delete'
}]
const tableProps = [{
prop: 'code',
label: i18n.t('module.equipmentManager.sparepart.code'),
align: 'center',
sortable: true,
width: '200px'
}, {
prop: 'name',
label: i18n.t('module.equipmentManager.sparepart.name'),
align: 'center',
width: '140px'
}, {
prop: 'model',
label: i18n.t('module.equipmentManager.sparepart.model'),
align: 'center',
width: '140px'
}, {
prop: 'batchNumber',
label: i18n.t('module.equipmentManager.sparepart.batchNumber'),
align: 'center',
width: '120px'
// filter: dataDict('enableState')
}, {
prop: 'supplierId',
label: i18n.t('module.equipmentManager.sparepart.supplier'),
align: 'center',
subcomponent: DictFilter,
filter: getDictSupplier,
width: '140px'
}, {
prop: 'accessoryNumber',
label: i18n.t('module.equipmentManager.sparepart.number'),
align: 'center',
width: '120px'
}, {
prop: 'accessoryUnit',
label: i18n.t('module.equipmentManager.sparepart.unit'),
align: 'center',
width: '120px'
}, {
prop: 'entryTime',
label: i18n.t('module.equipmentManager.sparepart.entryTime'),
align: 'center',
filter: timeFormatter,
width: '140px'
}, {
prop: 'receiver',
label: i18n.t('module.equipmentManager.sparepart.receiver'),
align: 'center',
subcomponent: DictFilter,
filter: getDictWorker,
width: '120px'
}, {
prop: 'remark',
label: i18n.t('module.equipmentManager.sparepart.remark'),
align: 'center',
width: '120px'
}]
import AddForm from './AddForm'
import EditForm from './EditForm'
import BaseTable from '@/components/BaseTable'
// edit here
import DictFilter from '@/components/BaseTable/subcomponents/DataDictFilter'
import { getSpareList, delSpare } from '@/api/equipment/spare'
import { getDictSupplier, getDictWorker } from '@/api/dict/index'
import { dictChange, dictFilter } from '@/utils'
import Pagination from '@/components/Pagination'
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
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 'delete':
this.$confirm(i18n.t('deleteMsgBox.content'), i18n.t('deleteMsgBox.hint'), {
confirmButtonText: i18n.t('btn.confirm'),
cancelButtonText: i18n.t('btn.cancel'),
type: 'warning'
}).then(async() => {
// 走接口
const result = await delSpare({
id: raw.data.id
})
if (result.code === 0) {
this.$message({
type: 'success',
message: i18n.t('deleteMsgBox.doneMsg')
})
this.getList()
}
})
break
case 'edit':
this.showEditDialog = true
this.curEditId = raw.data.id
break
}
},
async getList() {
this.listLoading = true
// edit here
const res = await getSpareList(this.listQuery)
if (res.code === 0) {
this.list = res.data.records
this.total = res.data.total
this.listLoading = false
}
},
async getDict() {
const result = await getDictSupplier()
this.dict.supplier = result
},
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>