This commit is contained in:
parent
309be71670
commit
54c0409ac7
|
|
@ -113,3 +113,12 @@ export function getGadgetList(query) {
|
|||
params: query,
|
||||
})
|
||||
}
|
||||
|
||||
// 小工具编码信息列表--新增
|
||||
export function addWsMaInfoData(data) {
|
||||
return request({
|
||||
url: '/material/wsMaInfo/addWsMaInfoData',
|
||||
method: 'post',
|
||||
data: data,
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
|
||||
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
|
@ -50,11 +52,123 @@
|
|||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 新增/编辑弹窗 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="设备类型" prop="deviceTypeId">
|
||||
<el-select
|
||||
v-model="form.deviceTypeId"
|
||||
placeholder="请选择设备类型"
|
||||
filterable
|
||||
@change="handleDeviceTypeChange"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in deviceTypeOptions"
|
||||
:key="item.typeId"
|
||||
:label="item.typeName"
|
||||
:value="item.typeId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="设备型号" prop="deviceModelId">
|
||||
<el-select
|
||||
v-model="form.deviceModelId"
|
||||
placeholder="请选择设备型号"
|
||||
filterable
|
||||
style="width: 100%"
|
||||
:disabled="!form.deviceTypeId"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in deviceModelOptions"
|
||||
:key="item.typeId"
|
||||
:label="item.typeName"
|
||||
:value="item.typeId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="设备编码" prop="deviceCode">
|
||||
<el-input v-model="form.deviceCode" placeholder="请输入设备编码" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="本次检验" prop="thisCheckDate">
|
||||
<el-date-picker
|
||||
v-model="form.thisCheckDate"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
:picker-options="thisCheckDateOptions"
|
||||
@change="handleThisCheckDateChange"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="下次检验">
|
||||
<el-input
|
||||
v-model="form.nextCheckDate"
|
||||
readonly
|
||||
class="next-check-date"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="检验员" prop="checkMan">
|
||||
<el-input v-model="form.checkMan" placeholder="请输入检验员姓名" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="维修员" prop="repairMan">
|
||||
<el-input v-model="form.repairMan" placeholder="请输入维修员姓名" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系电话" prop="phone">
|
||||
<el-input v-model="form.phone" placeholder="请输入联系电话" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="检验结论" prop="conclusion">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
v-model="form.conclusion"
|
||||
placeholder="请输入检验结论"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getGadgetList
|
||||
import {
|
||||
addWsMaInfoData,
|
||||
getDeviceType, getGadgetList
|
||||
} from '@/api/ma/device'
|
||||
|
||||
export default {
|
||||
|
|
@ -90,11 +204,65 @@ export default {
|
|||
sex: undefined,
|
||||
teamId: undefined
|
||||
},
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 表单参数
|
||||
form: {
|
||||
deviceTypeId: null,
|
||||
deviceModelId: null,
|
||||
deviceCode: '',
|
||||
thisCheckDate: '',
|
||||
nextCheckDate: '',
|
||||
checkMan: '',
|
||||
repairMan: '',
|
||||
phone: '',
|
||||
conclusion: ''
|
||||
},
|
||||
// 表单校验
|
||||
rules: {
|
||||
deviceTypeId: [
|
||||
{ required: true, message: "设备类型不能为空", trigger: "change" }
|
||||
],
|
||||
deviceModelId: [
|
||||
{ required: true, message: "设备型号不能为空", trigger: "change" }
|
||||
],
|
||||
deviceCode: [
|
||||
{ required: true, message: "设备编码不能为空", trigger: "blur" }
|
||||
],
|
||||
thisCheckDate: [
|
||||
{ required: true, message: "本次检验日期不能为空", trigger: "change" }
|
||||
],
|
||||
checkMan: [
|
||||
{ required: true, message: "检验员不能为空", trigger: "blur" }
|
||||
],
|
||||
repairMan: [
|
||||
{ required: true, message: "维修员不能为空", trigger: "blur" }
|
||||
],
|
||||
phone: [
|
||||
{ required: true, message: "联系电话不能为空", trigger: "blur" }
|
||||
],
|
||||
conclusion: [
|
||||
{ required: true, message: "检验结论不能为空", trigger: "blur" }
|
||||
]
|
||||
},
|
||||
// 设备类型选项
|
||||
deviceTypeOptions: [],
|
||||
// 设备型号选项
|
||||
deviceModelOptions: [],
|
||||
// 本次检验日期选项
|
||||
thisCheckDateOptions: {
|
||||
disabledDate(time) {
|
||||
return time.getTime() > Date.now();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
this.getDeviceTypeOptions();
|
||||
},
|
||||
methods: {
|
||||
/** 查询列表 */
|
||||
|
|
@ -108,17 +276,49 @@ export default {
|
|||
this.loading = false
|
||||
})
|
||||
},
|
||||
/** 获取设备类型选项 */
|
||||
getDeviceTypeOptions() {
|
||||
// 这里替换为您的实际API调用
|
||||
getDeviceType({ level: 3, skipPermission: 1 }).then(response => {
|
||||
this.deviceTypeOptions = response.data;
|
||||
});
|
||||
},
|
||||
/** 设备类型变化时获取设备型号 */
|
||||
handleDeviceTypeChange(value) {
|
||||
this.form.deviceModelId = null;
|
||||
if (value) {
|
||||
// 这里替换为您的实际API调用
|
||||
getDeviceType({typeId:value}).then(response => {
|
||||
this.deviceModelOptions = response.data;
|
||||
});
|
||||
} else {
|
||||
this.deviceModelOptions = [];
|
||||
}
|
||||
},
|
||||
/** 本次检验日期变化时计算下次检验日期 */
|
||||
handleThisCheckDateChange(date) {
|
||||
if (date) {
|
||||
const thisDate = new Date(date);
|
||||
const nextDate = new Date(thisDate);
|
||||
nextDate.setFullYear(nextDate.getFullYear() + 1);
|
||||
nextDate.setDate(nextDate.getDate() - 1);
|
||||
|
||||
// 格式化日期为yyyy-MM-dd
|
||||
const year = nextDate.getFullYear();
|
||||
const month = (nextDate.getMonth() + 1).toString().padStart(2, '0');
|
||||
const day = nextDate.getDate().toString().padStart(2, '0');
|
||||
|
||||
this.form.nextCheckDate = `${year}-${month}-${day}`;
|
||||
} else {
|
||||
this.form.nextCheckDate = '';
|
||||
}
|
||||
},
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {}
|
||||
this.resetForm('form')
|
||||
},
|
||||
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
|
|
@ -127,39 +327,146 @@ export default {
|
|||
this.dateRange=[]
|
||||
this.handleQuery()
|
||||
},
|
||||
handleExport() {
|
||||
const formatTime = (date) => {
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
const hours = String(date.getHours()).padStart(2, '0');
|
||||
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||
const seconds = String(date.getSeconds()).padStart(2, '0');
|
||||
return `${year}${month}${day}_${hours}${minutes}${seconds}`;
|
||||
};
|
||||
|
||||
const currentTime = formatTime(new Date());
|
||||
this.download(
|
||||
"/material/wsMaInfo/exportGadgetList",
|
||||
{keyWord: this.queryParams.keyWord,startTime: this.dateRange && this.dateRange[0],endTime: this.dateRange && this.dateRange[1]},
|
||||
`领料出库报表_${currentTime}.xlsx`
|
||||
);
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加设备检验信息";
|
||||
},
|
||||
/** 编辑按钮操作 */
|
||||
handleEdit(row) {
|
||||
this.reset();
|
||||
// 这里替换为您的实际API调用
|
||||
getDeviceInfo(row.maId).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改设备检验信息";
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
this.$confirm('是否确认删除设备检验信息编号为"' + row.maId + '"的数据项?', "警告", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(function() {
|
||||
// 这里替换为您的实际API调用
|
||||
return deleteDeviceInfo(row.maId);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$message.success("删除成功");
|
||||
})
|
||||
},
|
||||
/** 提交表单 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.maId) {
|
||||
// 这里替换为您的实际API调用
|
||||
updateDeviceInfo(this.form).then(response => {
|
||||
this.$message.success("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
const data = { ...this.form };
|
||||
// 获取设备类型名称
|
||||
const deviceType = this.deviceTypeOptions.find(item => item.typeId === data.deviceTypeId);
|
||||
if (deviceType) {
|
||||
data.maName = deviceType.typeName; // 添加设备类型名称
|
||||
}
|
||||
|
||||
// 获取设备型号名称
|
||||
const deviceModel = this.deviceModelOptions.find(item => item.typeId === data.deviceModelId);
|
||||
if (deviceModel) {
|
||||
data.maModel = deviceModel.typeName; // 添加设备型号名称
|
||||
}
|
||||
const params = {
|
||||
maName: data.maName,
|
||||
maModel:data.maModel,
|
||||
modelId:this.form.deviceModelId,
|
||||
maCode:this.form.deviceCode,
|
||||
thisCheckTime:this.form.thisCheckDate,
|
||||
nextCheckTime:this.form.nextCheckDate,
|
||||
repairMan: this.form.repairMan,
|
||||
checkMan: this.form.checkMan,
|
||||
phone: this.form.phone,
|
||||
result:this.form.conclusion,
|
||||
}
|
||||
// 这里替换为您的实际API调用
|
||||
addWsMaInfoData(params).then(response => {
|
||||
this.$message.success("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 取消按钮 */
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
/** 表单重置 */
|
||||
reset() {
|
||||
this.form = {
|
||||
maId: null,
|
||||
deviceTypeId: null,
|
||||
deviceModelId: null,
|
||||
deviceCode: '',
|
||||
thisCheckDate: '',
|
||||
nextCheckDate: '',
|
||||
checkMan: '',
|
||||
repairMan: '',
|
||||
phone: '',
|
||||
conclusion: ''
|
||||
};
|
||||
this.deviceModelOptions = [];
|
||||
this.resetForm("form");
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep.el-table .fixed-width .el-button--mini {
|
||||
width: 60px !important;
|
||||
margin-bottom: 10px;
|
||||
.app-container {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
//隐藏图片上传框的css
|
||||
::v-deep.disabled {
|
||||
.el-upload--picture-card {
|
||||
display: none;
|
||||
}
|
||||
.el-form-item {
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
|
||||
.uploadImg {
|
||||
padding-top: 20px;
|
||||
.el-date-editor.el-input, .el-date-editor.el-input__inner {
|
||||
width: 100%;
|
||||
}
|
||||
.next-check-date {
|
||||
background-color: #f5f7fa;
|
||||
}
|
||||
.table-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.boxCode {
|
||||
margin-top: 10px;
|
||||
padding-bottom: 20px;
|
||||
font-size: 33px;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.qrcode-container img {
|
||||
width: 100px; /* 设置二维码的大小,调整为你需要的尺寸 */
|
||||
height: 100px;
|
||||
.pagination-container {
|
||||
margin-top: 20px;
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
Loading…
Reference in New Issue