<template>
|
<div>
|
<el-dialog top="94px" :title="!dataForm.id ? '新建' : '编辑'" width="100%" @close="cancel" :close-on-click-modal="false"
|
:visible.sync="addVisible">
|
<!-- 添加内容-->
|
<el-form :model="dataForm" label-width="100px" ref="dataForm">
|
<el-row :gutter="20">
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="设备名称" prop="machineName">
|
<el-input v-model="dataForm.machineName" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
<!--
|
<el-col :xs="24":sm="6":md="6":lg="6":xl="6">
|
<el-form-item label="机床ip" prop="machineIp">
|
<el-input v-model="dataForm.machineIp" placeholder="机床ip" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24":sm="6":md="6":lg="6":xl="6">
|
<el-form-item label="车间名" prop="workshop">
|
<el-select v-model="dataForm.workshop" placeholder="请选择" clearable @change="workshopchange">
|
<el-option
|
v-for="item in workshoplist"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24":sm="6":md="6":lg="6":xl="6">
|
<el-form-item label="工段名" prop="section">
|
<el-select v-model="dataForm.section" placeholder="请选择" clearable>
|
<el-option
|
v-for="item in sectionlist"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col> -->
|
|
<!-- <el-col :xs="24":sm="6":md="6":lg="6":xl="6">
|
<el-form-item label="用户名" prop="userName">
|
<el-select filterable v-model="dataForm.userName">
|
<el-option
|
v-for="item in userNamelist"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col> -->
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="统一编号" prop="uuid">
|
<el-input v-model="dataForm.uuid" placeholder="统一编号" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
|
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="设备规格" prop="specification">
|
<el-input v-model="dataForm.specification" placeholder="设备规格" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="设备型号" prop="type">
|
<el-input v-model="dataForm.type" placeholder="设备型号" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="设备类型" prop="deviceTypeId">
|
<el-select v-model="dataForm.deviceTypeId" placeholder="请选择" clearable>
|
<el-option v-for="item in deviceTypeIds" :key="item.id" :label="item.name" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="加工类型" prop="category">
|
<el-select v-model="dataForm.category" placeholder="请选择" clearable>
|
<el-option v-for="item in deviceType" :key="item.value" :label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="账务属性" prop="accountingAttribute">
|
<el-select v-model="dataForm.accountingAttribute" placeholder="请选择" clearable>
|
<el-option v-for="item in financePro" :key="item.value" :label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- <el-col :xs="24":sm="6":md="6":lg="6":xl="6">
|
<el-form-item label="安装地址" prop="location">
|
<el-input v-model="dataForm.location" placeholder="安装地址" clearable></el-input>
|
</el-form-item>
|
</el-col> -->
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="使用部门" prop="department">
|
<el-select v-model="dataForm.department" clearable>
|
<el-option v-for="item in departmentlist" :key="item.value" :label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- <el-col :xs="24":sm="6":md="6":lg="6":xl="6">
|
<el-form-item label="设备状态" prop="state">
|
<el-select v-model="dataForm.state" placeholder="请选择">
|
<el-option
|
v-for="item in deviceStatus"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col> -->
|
|
<!-- <el-col :xs="24":sm="6":md="6":lg="6":xl="6">
|
<el-form-item label="是否关键设备" prop="isCritical">
|
<el-select v-model="dataForm.isCritical">
|
<el-option
|
v-for="item in isselectlist"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24":sm="6":md="6":lg="6":xl="6">
|
<el-form-item label="是否精密设备" prop="isPrecision">
|
<el-select v-model="dataForm.isPrecision">
|
<el-option
|
v-for="item in isselectlist"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col> -->
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="电气复杂系数" prop="elecCompFactor">
|
<el-input v-model="dataForm.elecCompFactor" placeholder="电气复杂系数" :change="checkAmount('elecCompFactor')" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="机械复杂系数" prop="mechCompFactor">
|
<el-input v-model="dataForm.mechCompFactor" placeholder="机械复杂系数" :change="checkAmount('mechCompFactor')" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="国别" prop="country">
|
<!--
|
<el-input v-model="dataForm.country" placeholder="国别" clearable></el-input>
|
-->
|
<el-select v-model="dataForm.country" clearable>
|
<el-option v-for="item in countrylist" :key="item.label" :label="item.label"
|
:value="item.label">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="设备管理分类" prop="manageType">
|
<el-select v-model="dataForm.manageType" placeholder="" clearable>
|
<el-option value="A">A</el-option>
|
<el-option value="B">B</el-option>
|
<el-option value="C">C</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!--
|
<el-col :xs="24":sm="6":md="6":lg="6":xl="6">
|
<el-form-item label="班次" prop="classes">
|
<el-select v-model="dataForm.classes" placeholder="请选择">
|
<el-option value="一班">一班</el-option>
|
<el-option value="二班">二班</el-option>
|
<el-option value="三班">三班</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
-->
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="生产厂家" prop="manufacturer">
|
<el-input v-model="dataForm.manufacturer" placeholder="生产厂家" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="投产日期" prop="productionDate">
|
<el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="dataForm.productionDate"
|
type="date" clearable placeholder="选择日期"></el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="设备原值(元)" prop="originalValue">
|
<el-input v-model="dataForm.originalValue" :change="checkAmount('originalValue')"
|
placeholder="设备原值" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="设备净现值(元)" prop="presentValue">
|
<el-input v-model="dataForm.presentValue" :change="checkAmount('presentValue')"
|
placeholder="设备净现值" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="设备重量(千克)" prop="weight" :rules="[
|
{ type: 'number', message: '设备重量需为数字' }
|
]">
|
<el-input v-model.number="dataForm.weight" placeholder="设备重量" clearable></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-form-item label="备注" prop="remark">
|
<el-input type="textarea" :rows="2" v-model="dataForm.remark" placeholder="备注"
|
clearable></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<!-- 上传 -->
|
<el-row :gutter="20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
<el-form-item label="上传设备图片" prop="pic">
|
<el-upload class="avatar-uploader" action="/mdc/account/uploadPic" :show-file-list="false"
|
accept=".jpg, .png"
|
:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
|
<img v-if="dataForm.pic" :src="dataForm.pic" class="avatar">
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
</el-upload>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
</el-form>
|
<!-- 按钮 -->
|
<span slot="footer" class="dialog-footer">
|
<!-- <el-button type="ghost" size="mini" style="width: 150px" @click="cancel">取消</el-button> -->
|
<el-button size="mini" type="primary" style="width: 150px" @click="dataFormSubmit()">保存</el-button>
|
</span>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import { accountUpdate, accountCreate } from '@/api/Api'
|
export default {
|
props: ['addVisible', 'deviceType', 'departmentlist', 'row', 'isselectlist', 'deviceStatus', 'financePro', 'deviceTypeIds','countrylist'],
|
data() {
|
return {
|
visible: false,
|
dataForm: {
|
manageType: '',
|
id: '', // title显示新增还是修改
|
machineName: '', // 机床名
|
machineIp: '', // 机床ip
|
workshop: '', // 车间名
|
section: '', // 工段名
|
userName: '', // 用户名
|
uuid: '', // 统一编码
|
specification: '', // 设备规格
|
type: '', // 设备型号
|
category: '', // 设备类别
|
accountingAttribute: '', // 财务属性
|
location: '', // 安装地址
|
department: '', // 使用部门
|
state: '', // 设备状态
|
isCritical: '', // 是否关键设备
|
isPrecision: '', // 是否精密设备
|
elecCompFactor: '', // 电气复杂系数
|
mechCompFactor: '', // 机械复杂系数
|
country: '', // 国别
|
classes: '', // 班次
|
manufacturer: '', // 生产厂家
|
productionDate: '', // 投产日期
|
originalValue: '', // 设备原值
|
presentValue: '', // 设备净现值
|
weight: '', // 设备重量
|
remark: '',// 备注
|
deviceTypeId: '',
|
pic: ''
|
},
|
machineNamelist: [], // 机床下拉
|
workshoplist: [], // 车间list
|
oldworkshoplist: [],
|
sectionlist: [], // 工段
|
userNamelist: [], // 用户list
|
imageUrl: '', // 图片
|
fileList: [],// 文档上传list
|
rules: {
|
date1: [
|
{ type: 'date', required: true, message: '请选择日期', trigger: 'change' }
|
],
|
}
|
}
|
},
|
watch: {
|
addVisible: {
|
handler(val) {
|
if (val) {
|
this.init(this.row)
|
}
|
},
|
immediate: true
|
}
|
},
|
created() {
|
// this.init(this.row)
|
},
|
methods: {
|
checkAmount(key) {
|
let checkPlan = '' + this.dataForm[key]
|
|
checkPlan = checkPlan
|
|
.replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符
|
|
.replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的
|
|
.replace(/^\./g, '') // 保证第一个为数字而不是.
|
|
.replace('.', '$#$')
|
|
.replace(/\./g, '')
|
|
.replace('$#$', '.')
|
|
if (checkPlan.indexOf('.') < 0 && checkPlan !== '') {
|
|
// 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
|
|
checkPlan = parseFloat(checkPlan) + ''
|
|
} else if (checkPlan.indexOf('.') >= 0) {
|
|
checkPlan = checkPlan
|
|
.replace(/^()*(\d+)\.(\d\d).*$/, '$1$2.$3') // 只能输入两个小数
|
|
}
|
|
this.dataForm[key] = checkPlan
|
|
},
|
init(row) {
|
if (this.$refs['dataForm']) {
|
this.$refs['dataForm'].resetFields()
|
}
|
if (Object.keys(row).length > 0) {
|
Object.keys(row).forEach(key => {
|
this.dataForm[key] = row[key]
|
})
|
} else {
|
Object.keys(row).forEach(key => {
|
this.dataForm[key] = ''
|
})
|
}
|
},
|
/* 查询使用部门*/
|
cancel() {
|
this.$emit('close')
|
},
|
beforeAvatarUpload(file) {
|
const types = ['image/jpeg','image/jpg','image/png']
|
const isJPG = file.type;
|
console.log(isJPG)
|
if (!types.includes(isJPG)) {
|
this.$message.error('上传文件必须为图片');
|
}
|
return types.includes(isJPG);
|
// const typeArry = ['.jpg', '.png', '.JPG', '.PNG'];
|
// const type = file.name.substring(file.name.lastIndexOf('.'));
|
// const isImage = typeArry.indexOf(type) > -1;
|
// if (!isImage) {
|
// this.$message.error('上传文件必须为图片');
|
// }
|
// return isImage;
|
|
},
|
handleAvatarSuccess(res) {
|
if (res.result === 'SUCCESS') {
|
this.dataForm.pic = res.data;
|
} else {
|
this.$message({
|
type: 'error',
|
message: '上传失败'
|
})
|
}
|
},
|
/* 提交*/
|
dataFormSubmit() {
|
this.$refs.dataForm.validate((valid) => {
|
console.log(valid)
|
if (valid) {
|
if (!this.dataForm.id) { // 新增
|
accountCreate(this.dataForm).then(res => {
|
this.$message({
|
message: '新增成功',
|
type: 'success',
|
duration: 1500,
|
onClose: () => {
|
this.$emit('confirm')
|
this.visible = false
|
}
|
})
|
})
|
} else {
|
accountUpdate(this.dataForm).then(res => {
|
this.$message({
|
message: '修改成功',
|
type: 'success',
|
duration: 1500,
|
onClose: () => {
|
this.$emit('confirm')
|
this.visible = false
|
}
|
})
|
})
|
}
|
} else {
|
this.$message({
|
type: 'error',
|
message: '验证失败'
|
})
|
}
|
})
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
.el-form-item__content {
|
|
.el-select,
|
.el-input {
|
width: 100%;
|
|
}
|
|
.el-input__inner {
|
color: #000;
|
}
|
}
|
|
.el-dialog__body {
|
overflow: hidden;
|
}
|
|
.avatar-uploader .el-upload {
|
border: 1px dashed #d9d9d9;
|
border-radius: 6px;
|
cursor: pointer;
|
position: relative;
|
overflow: hidden;
|
}
|
|
.avatar-uploader .el-upload:hover {
|
border-color: #409EFF;
|
}
|
|
.avatar-uploader-icon {
|
font-size: 28px;
|
color: #8c939d;
|
width: 178px;
|
height: 178px;
|
line-height: 178px;
|
text-align: center;
|
}
|
|
.avatar {
|
width: 178px;
|
height: 178px;
|
display: block;
|
}
|
</style>
|