| | |
| | | <template> |
| | | <div> |
| | | <basic-container> |
| | | <el-form :model="queryParams" ref="queryForm" label-width="72px" class="special-form"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | label-width="72px" |
| | | class="special-form" |
| | | > |
| | | <el-row :gutter="24"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="编码" prop="code"> |
| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="种类" prop="meterType"> |
| | | <el-select v-model="queryParams.meterType" placeholder="请选择种类" clearable size="small" style="width: 100%"> |
| | | <el-select |
| | | v-model="queryParams.meterType" |
| | | placeholder="请选择种类" |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="dict in meterTypeOptions" |
| | | :key="dict.dictValue" |
| | |
| | | <!-- </el-col>--> |
| | | <el-col :span="6"> |
| | | <el-form-item class="operation"> |
| | | <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="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="handleQuery" |
| | | >搜索</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" |
| | | >重置</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table v-loading="loading" :data="implementList" :height="height" @selection-change="handleSelectionChange"> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="implementList" |
| | | :height="height" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55" align="center"/> |
| | | <el-table-column label="编码" align="center" prop="code" show-overflow-tooltip/> |
| | | <el-table-column label="器具名称" align="center" prop="meterName" show-overflow-tooltip/> |
| | | <el-table-column label="种类" align="center" prop="meterType" :formatter="meterTypeFormat" show-overflow-tooltip/> |
| | | <el-table-column label="规格型号" align="center" prop="modelNumber" show-overflow-tooltip/> |
| | | <el-table-column label="测量范围" align="center" prop="measureRange" show-overflow-tooltip/> |
| | | <el-table-column label="生产厂商" align="center" prop="manufacturer" show-overflow-tooltip/> |
| | | <el-table-column label="安装位置" align="center" prop="installactionLocation" show-overflow-tooltip/> |
| | | <el-table-column label="状态" align="center" prop="meterStatus" :formatter="meterStatusFormat" show-overflow-tooltip/> |
| | | <el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width"> |
| | | <el-table-column |
| | | label="编码" |
| | | align="center" |
| | | prop="code" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | label="器具名称" |
| | | align="center" |
| | | prop="meterName" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | label="种类" |
| | | align="center" |
| | | prop="meterType" |
| | | :formatter="meterTypeFormat" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | label="规格型号" |
| | | align="center" |
| | | prop="modelNumber" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | label="测量范围" |
| | | align="center" |
| | | prop="measureRange" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | label="生产厂商" |
| | | align="center" |
| | | prop="manufacturer" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | label="安装位置" |
| | | align="center" |
| | | prop="installactionLocation" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | label="状态" |
| | | align="center" |
| | | prop="meterStatus" |
| | | :formatter="meterStatusFormat" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | width="240" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | |
| | | /> |
| | | </basic-container> |
| | | <!-- 添加或修改计量器具档案维护对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="820px" class="dialog-form-row"> |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="open" |
| | | width="820px" |
| | | class="dialog-form-row" |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="8"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="规格型号" prop="modelNumber" label-width="110px"> |
| | | <el-input v-model="form.modelNumber" placeholder="请输入规格型号"/> |
| | | <el-form-item |
| | | label="规格型号" |
| | | prop="modelNumber" |
| | | label-width="110px" |
| | | > |
| | | <el-input |
| | | v-model="form.modelNumber" |
| | | placeholder="请输入规格型号" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="测量范围" prop="measureRange"> |
| | | <el-input v-model="form.measureRange" placeholder="请输入测量范围"/> |
| | | <el-input |
| | | v-model="form.measureRange" |
| | | placeholder="请输入测量范围" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="生产厂商" prop="manufacturer"> |
| | | <el-input v-model="form.manufacturer" placeholder="请输入生产厂商"/> |
| | | <el-input |
| | | v-model="form.manufacturer" |
| | | placeholder="请输入生产厂商" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="负责人" prop="personCharge" label-width="110px"> |
| | | <el-input v-model="form.personCharge" placeholder="请输入负责人"/> |
| | | <el-form-item |
| | | label="负责人" |
| | | prop="personCharge" |
| | | label-width="110px" |
| | | > |
| | | <el-input |
| | | v-model="form.personCharge" |
| | | placeholder="请输入负责人" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="安装位置" prop="installactionLocation"> |
| | | <el-input v-model="form.installactionLocation" placeholder="请输入安装位置"/> |
| | | <el-input |
| | | v-model="form.installactionLocation" |
| | | placeholder="请输入安装位置" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="起始时间" prop="startTime"> |
| | | <el-date-picker clearable size="small" style="width: 100%" |
| | | <el-date-picker |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | v-model="form.startTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择起始时间"> |
| | | placeholder="选择起始时间" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="检定周期(天)" prop="checkCycle" label-width="110px"> |
| | | <el-input v-model="form.checkCycle" placeholder="请输入检定周期" |
| | | oninput="if(value.length>4)value=value.slice(0,4)"/> |
| | | <el-form-item |
| | | label="检定周期(天)" |
| | | prop="checkCycle" |
| | | label-width="110px" |
| | | > |
| | | <el-input |
| | | v-model="form.checkCycle" |
| | | placeholder="请输入检定周期" |
| | | oninput="if(value.length>4)value=value.slice(0,4)" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="投运时间" prop="putrunTime"> |
| | | <el-date-picker clearable size="small" style="width: 100%" |
| | | <el-date-picker |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | v-model="form.putrunTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择投运时间"> |
| | | placeholder="选择投运时间" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="提醒周期(天)" prop="reminderCycle" label-width="110px"> |
| | | <el-input v-model="form.reminderCycle" placeholder="请输入提醒周期" |
| | | oninput="if(value.length>4)value=value.slice(0,4)"/> |
| | | <el-form-item |
| | | label="提醒周期(天)" |
| | | prop="reminderCycle" |
| | | label-width="110px" |
| | | > |
| | | <el-input |
| | | v-model="form.reminderCycle" |
| | | placeholder="请输入提醒周期" |
| | | oninput="if(value.length>4)value=value.slice(0,4)" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注" prop="remark" label-width="110px"> |
| | | <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input> |
| | | <el-input |
| | | v-model="form.remark" |
| | | type="textarea" |
| | | placeholder="请输入内容" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-dialog> |
| | | |
| | | <!-- 计量器具档案 导入对话框 --> |
| | | <el-dialog :title="upload.title" :visible.sync="upload.open" :destroy-on-close="true" width="400px"> |
| | | <el-dialog |
| | | :title="upload.title" |
| | | :visible.sync="upload.open" |
| | | :destroy-on-close="true" |
| | | width="400px" |
| | | > |
| | | <el-upload |
| | | ref="upload" |
| | | :limit="1" |
| | |
| | | <em>点击上传</em> |
| | | </div> |
| | | <div class="el-upload__tip" slot="tip"> |
| | | <el-link type="info" style="font-size:12px;color:blue;" @click="importTemplate">下载模板</el-link> |
| | | <el-link |
| | | type="info" |
| | | style="font-size:12px;color:blue;" |
| | | @click="importTemplate" |
| | | >下载模板</el-link |
| | | > |
| | | </div> |
| | | <div class="el-upload__tip" style="color:red" slot="tip"> |
| | | 导入提示:<br>1、新增导入,仅允许导入“xls”或“xlsx”格式文件! |
| | | <br>2、编码必须唯一,重复数据无法导入 |
| | | <br>3、种类和状态填写错误的数据无法导入 |
| | | <br>4、检定周期、提醒周期大于0正整数,填写错误则默认为1 |
| | | <br>5、起始时间填写错误或不填则默认为空 |
| | | 导入提示:<br />1、新增导入,仅允许导入“xls”或“xlsx”格式文件! |
| | | <br />2、编码必须唯一,重复数据无法导入 |
| | | <br />3、种类和状态填写错误的数据无法导入 |
| | | <br />4、检定周期、提醒周期大于0正整数,填写错误则默认为1 |
| | | <br />5、起始时间填写错误或不填则默认为空 |
| | | </div> |
| | | |
| | | </el-upload> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitFileForm">确 定</el-button> |
| | |
| | | <importFileTable ref="importFile" @ok="handleFjQuery"/> |
| | | |
| | | <importIndexTable ref="importIndex" @ok="handleFjQuery"/> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | meterType: undefined, |
| | | measureRange: undefined, |
| | | manufacturer: undefined, |
| | | installactionLocation: undefined, |
| | | installactionLocation: undefined |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | code: [ |
| | | {required: true, message: "编码不能为空", trigger: "blur"} |
| | | ], |
| | | code: [{ required: true, message: "编码不能为空", trigger: "blur" }], |
| | | meterName: [ |
| | | {required: true, message: "器具名称不能为空", trigger: "blur"} |
| | | ], |
| | |
| | | {required: true, message: "投运时间不能为空", trigger: "blur"} |
| | | ], |
| | | checkCycle: [ |
| | | {required: true, pattern: /^\+?[1-9]\d*$/, message: "检定周期必须是大于0的正整数", trigger: "blur"} |
| | | { |
| | | required: true, |
| | | pattern: /^\+?[1-9]\d*$/, |
| | | message: "检定周期必须是大于0的正整数", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | reminderCycle: [ |
| | | {required: true, pattern: /^\+?[1-9]\d*$/, message: "提醒周期必须是大于0的正整数", trigger: "blur"} |
| | | ], |
| | | { |
| | | required: true, |
| | | pattern: /^\+?[1-9]\d*$/, |
| | | message: "提醒周期必须是大于0的正整数", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | } |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getDicts("sys_device_type").then(response => { |
| | | |
| | | for (let i = 0; i < response.data.length; i++) { |
| | | if (response.data[i].isDefault == "Y") { |
| | | this.myType = response.data[i].dictValue; |
| | |
| | | for (let i = 0; i < response.data.length; i++) { |
| | | if (response.data[i].isDefault == "Y") { |
| | | this.mystatus = response.data[i].dictValue; |
| | | |
| | | } |
| | | } |
| | | this.meterStatusOptions = response.data; |
| | |
| | | methods: { |
| | | setCharts() { |
| | | this.bodyStyle = { |
| | | height: window.innerHeight - 210 + 'px', |
| | | overflow: 'hidden' |
| | | } |
| | | this.height = window.innerHeight - 370; |
| | | height: window.innerHeight - 224 + "px", |
| | | overflow: "hidden" |
| | | }; |
| | | this.height = window.innerHeight - 360; |
| | | }, |
| | | /** 查询计量器具档案维护列表 */ |
| | | getList() { |
| | |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.codes = selection.map(item => item.code) |
| | | this.single = selection.length != 1 |
| | | this.multiple = !selection.length |
| | | this.ids = selection.map(item => item.id); |
| | | this.codes = selection.map(item => item.code); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | const id = row.id || this.ids |
| | | const id = row.id || this.ids; |
| | | getImplement(id).then(response => { |
| | | this.form = response.data; |
| | | this.open = true; |
| | |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | const codes = row.code || this.codes; |
| | | this.$confirm('是否确认删除计量器具档案维护编号为"' + codes + '"的计量器具档案?', "警告", { |
| | | this.$confirm( |
| | | '是否确认删除计量器具档案维护编号为"' + codes + '"的计量器具档案?', |
| | | "警告", |
| | | { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(function () { |
| | | } |
| | | ) |
| | | .then(function() { |
| | | return delImplement(ids); |
| | | }).then(() => { |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.msgSuccess("删除成功"); |
| | | }).catch(function () { |
| | | }); |
| | | }) |
| | | .catch(function() {}); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | const queryParams = this.queryParams; |
| | | this.$confirm('是否确认导出所有计量器具档案维护数据项?', "警告", { |
| | | this.$confirm("是否确认导出所有计量器具档案维护数据项?", "警告", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(function () { |
| | | }) |
| | | .then(function() { |
| | | return exportImplement(queryParams); |
| | | }).then(response => { |
| | | }) |
| | | .then(response => { |
| | | this.download(response.msg); |
| | | }).catch(function () { |
| | | }); |
| | | }) |
| | | .catch(function() {}); |
| | | }, |
| | | /** 导入按钮操作 */ |
| | | handleImport() { |
| | | //this.$refs.upload.clearFiles(); |
| | | this.upload.title = "计量器具档案导入"; |
| | | this.upload.accept = ".xlsx, .xls"; |
| | | this.upload.url = process.env.VUE_APP_BASE_API + "/meter/implement/importData?updateSupport=0"; |
| | | this.upload.url = |
| | | process.env.VUE_APP_BASE_API + |
| | | "/meter/implement/importData?updateSupport=0"; |
| | | this.upload.open = true; |
| | | }, |
| | | /** 下载模板操作 */ |