|
@@ -16,7 +16,7 @@
|
|
|
@current-change="dataList"
|
|
|
@selection-change="selectionChange"
|
|
|
>
|
|
|
- <template #menu-left="{ size }">
|
|
|
+<!-- <template #menu-left="{ size }">
|
|
|
<el-button
|
|
|
:disabled="toDeleteIds.length < 1"
|
|
|
type="danger"
|
|
@@ -25,25 +25,13 @@
|
|
|
@click="multipleDelete"
|
|
|
>删除</el-button
|
|
|
>
|
|
|
- </template>
|
|
|
+ </template>-->
|
|
|
<template #menu="{size,row,index}">
|
|
|
<el-button @click="maintenance(row)"
|
|
|
icon="el-icon-setting"
|
|
|
text
|
|
|
- v-if="row.state === 0"
|
|
|
- type="primary"
|
|
|
- :size="size">流程</el-button>
|
|
|
- <el-button disabled
|
|
|
- icon="el-icon-setting"
|
|
|
- text
|
|
|
- v-if="row.state === 1"
|
|
|
type="primary"
|
|
|
- :size="size">流程</el-button>
|
|
|
- <el-button @click="maintenanceList(row)"
|
|
|
- icon="el-icon-fold"
|
|
|
- text
|
|
|
- type="primary"
|
|
|
- :size="size">记录</el-button>
|
|
|
+ :size="size">计量</el-button>
|
|
|
</template>
|
|
|
</avue-crud>
|
|
|
<el-dialog
|
|
@@ -62,7 +50,7 @@
|
|
|
height="80%"
|
|
|
@close="dialog1.visible = false">
|
|
|
<el-timeline style="max-width: 500px;margin-left: 100px">
|
|
|
- <el-timeline-item center color="#0bbd87" type="success" placement="top">
|
|
|
+<!-- <el-timeline-item center color="#0bbd87" type="success" placement="top">
|
|
|
<el-card>
|
|
|
<h4>维护计划</h4>
|
|
|
<p>设备编号: {{maintenanceInfo.deviceNo}}</p>
|
|
@@ -70,15 +58,15 @@
|
|
|
<p>维护内容:{{maintenanceInfo.remark}}</p>
|
|
|
<p>计划时间:{{maintenanceInfo.nextTime}}</p>
|
|
|
</el-card>
|
|
|
- </el-timeline-item>
|
|
|
- <el-timeline-item center placement="top" :type="maintenanceInfo.state === 0 ? 'primary' : 'success'">
|
|
|
+ </el-timeline-item>-->
|
|
|
+<!-- <el-timeline-item center placement="top" :type="maintenanceInfo.state === 0 ? 'primary' : 'success'">-->
|
|
|
<el-card>
|
|
|
- <h4>设备维护</h4>
|
|
|
+ <h4>设备计量</h4>
|
|
|
<el-form ref="maintenanceInfoForm" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules">
|
|
|
- <el-form-item label="维护人员" prop="userName">
|
|
|
+ <el-form-item label="计量人员" prop="userName">
|
|
|
<el-select
|
|
|
v-model="maintenanceInfo.userName"
|
|
|
- placeholder="维护人员"
|
|
|
+ placeholder="计量人员"
|
|
|
size="large"
|
|
|
style="width: 240px">
|
|
|
<el-option
|
|
@@ -89,27 +77,35 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="维护结果">
|
|
|
+ <el-form-item label="计量结果">
|
|
|
<el-radio-group v-model="maintenanceInfo.result" class="ml-4">
|
|
|
- <el-radio :value="0">正常</el-radio>
|
|
|
- <el-radio :value="1">报故</el-radio>
|
|
|
+ <el-radio :value="0">已计量</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="maintenanceInfo.result === 1" label="报故内容">
|
|
|
+<!-- <el-form-item v-if="maintenanceInfo.result === 1" label="报故内容">
|
|
|
<el-input v-model="maintenanceInfo.maintenanceContent" />
|
|
|
+ </el-form-item>-->
|
|
|
+ <el-form-item label="下次计量日期" prop="nextTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="maintenanceInfo.nextTime"
|
|
|
+ type="date"
|
|
|
+ style="width:240px;"
|
|
|
+ :disabled-date="disabledDate"
|
|
|
+ placeholder="请选择时间"
|
|
|
+ format="YYYY-MM-DD"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ />
|
|
|
+<!-- <el-input v-model="maintenanceInfo.nextTime" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>-->
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="maintenanceInfo.result === 0" label="下次维护日期">
|
|
|
- <el-input v-model="maintenanceInfo.nextTime" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item v-if="maintenanceInfo.result === 0" label="下次维护内容">
|
|
|
+<!-- <el-form-item v-if="maintenanceInfo.result === 0" label="下次维护内容">
|
|
|
<el-input v-model="maintenanceInfo.maintenanceContent" />
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item>-->
|
|
|
<el-form-item style="margin-left: 45%">
|
|
|
<el-button type="primary" @click="maintenanceSubmit">保存</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</el-card>
|
|
|
- </el-timeline-item>
|
|
|
+<!-- </el-timeline-item>-->
|
|
|
</el-timeline>
|
|
|
</el-dialog>
|
|
|
|
|
@@ -129,7 +125,7 @@ import { ref, getCurrentInstance } from "vue";
|
|
|
import { useCrud } from "@/hooks/userCrud";
|
|
|
import ButtonPermKeys from "@/common/configs/buttonPermission";
|
|
|
import {getUserList} from "@/api/system/user"
|
|
|
-import {maintenanceUpdate} from "@/api/device/index";
|
|
|
+import {maintenanceUpdate,meteringUpdate} from "@/api/device/index";
|
|
|
import { useCommonStoreHook } from "@/store";
|
|
|
import dictDataUtil from "@/common/configs/dictDataUtil";
|
|
|
import RecordPage from "./components/metering-record.vue";
|
|
@@ -138,7 +134,9 @@ const test = () => {
|
|
|
isShowTable.value = true;
|
|
|
tableType.value = tableType.value == 1 ? 2 : 1;
|
|
|
};
|
|
|
-
|
|
|
+const disabledDate = (time) =>{
|
|
|
+ return time.getTime() < Date.now(); // 8.64e7 毫秒数代表一天
|
|
|
+}
|
|
|
const dialog = reactive({
|
|
|
title: "设备选择",
|
|
|
visible: false,
|
|
@@ -155,7 +153,7 @@ const userList = ref([])
|
|
|
// 传入一个url,后面不带/
|
|
|
const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
|
|
|
useCrud({
|
|
|
- src: "/api/v1/device/metering",
|
|
|
+ src: "/api/v1/device",
|
|
|
});
|
|
|
const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
|
|
|
const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
|
|
@@ -168,7 +166,7 @@ const deviceInfo = (value) => {
|
|
|
const maintenanceInfo = ref(null)
|
|
|
const maintenance = (row)=>{
|
|
|
maintenanceInfo.value = row
|
|
|
- maintenanceInfo.value.maintenanceContent = row.remark
|
|
|
+ maintenanceInfo.value.deviceId = row.id
|
|
|
maintenanceInfo.value.result = 0
|
|
|
dialog1.visible = true
|
|
|
}
|
|
@@ -186,7 +184,7 @@ const maintenanceSubmit =()=>{
|
|
|
//alert(JSON.stringify(maintenanceInfo.value))
|
|
|
maintenanceInfoForm.value.validate((isValid, invalidFields) => {
|
|
|
if (isValid) {
|
|
|
- maintenanceUpdate(maintenanceInfo.value).then((data)=>{
|
|
|
+ meteringUpdate(maintenanceInfo.value).then((data)=>{
|
|
|
ElMessage({
|
|
|
message: data.msg,
|
|
|
type: "success",
|
|
@@ -204,169 +202,160 @@ const rules = reactive({
|
|
|
// trigger触发此条规则校验的时机,有两个值, blur 或 change,默认就是blur和change都会进行校验
|
|
|
// min此字段的最小长度,max此字段的最大长度
|
|
|
// pattern 正则表达式
|
|
|
- { required: true, message: '维护人员不能为空', trigger: 'blur' }
|
|
|
+ { required: true, message: '计量人员不能为空', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ nextTime: [
|
|
|
+ { required: true, message: '计量日期不能为空', trigger: 'blur' }
|
|
|
]
|
|
|
})
|
|
|
// 设置表格列或者其他自定义的option
|
|
|
option.value = Object.assign(option.value, {
|
|
|
delBtn: false,
|
|
|
- selection: true,
|
|
|
+ selection: false,
|
|
|
labelWidth: 150,
|
|
|
+ addBtn: false,
|
|
|
+ editBtn: false,
|
|
|
viewBtn: false,
|
|
|
column: [
|
|
|
{
|
|
|
label: "设备编号",
|
|
|
prop: "deviceNo",
|
|
|
search: true,
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "设备编号不能为空",
|
|
|
- trigger: "trigger",
|
|
|
- },
|
|
|
- ],
|
|
|
- click: ({ value, column }) => {
|
|
|
- if(column.boxType){
|
|
|
- dialog.visible = true
|
|
|
- }
|
|
|
- },
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
},
|
|
|
{
|
|
|
label: "设备名称",
|
|
|
prop: "deviceName",
|
|
|
- display: false,
|
|
|
search: true,
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
},
|
|
|
{
|
|
|
label: "设备类型",
|
|
|
prop: "deviceType",
|
|
|
type: "select",
|
|
|
+ width: 130,
|
|
|
+ overHidden: true,
|
|
|
search: true,
|
|
|
- display: false,
|
|
|
dicUrl:
|
|
|
- dictDataUtil.request_url +
|
|
|
- dictDataUtil.TYPE_CODE.device_type,
|
|
|
+ dictDataUtil.request_url +
|
|
|
+ dictDataUtil.TYPE_CODE.device_type,
|
|
|
props: {
|
|
|
label: "dictLabel",
|
|
|
value: "dictValue",
|
|
|
},
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "设备类型不能为空",
|
|
|
- trigger: "trigger",
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- label: "设备位置",
|
|
|
- prop: "devicePosition",
|
|
|
- display: false,
|
|
|
},
|
|
|
{
|
|
|
- label: "运行状态",
|
|
|
- prop: "runState",
|
|
|
+ label: "设备状态",
|
|
|
+ prop: "state",
|
|
|
type: "select",
|
|
|
- display: false,
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
+ search: true,
|
|
|
dicUrl:
|
|
|
dictDataUtil.request_url +
|
|
|
- dictDataUtil.TYPE_CODE.device_run_status,
|
|
|
+ dictDataUtil.TYPE_CODE.device_status,
|
|
|
props: {
|
|
|
label: "dictLabel",
|
|
|
value: "dictValue",
|
|
|
},
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "运行状态不能为空",
|
|
|
- trigger: "trigger",
|
|
|
- },
|
|
|
- ],
|
|
|
},
|
|
|
{
|
|
|
- label: "计量负责人",
|
|
|
- prop: "meteringUser",
|
|
|
- search: true,
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "计量负责人不能为空",
|
|
|
- trigger: "trigger",
|
|
|
- },
|
|
|
- ],
|
|
|
+ label: "在线状态",
|
|
|
+ prop: "onlineState",
|
|
|
+ width: 100,
|
|
|
+ display: false,
|
|
|
+ html: true,
|
|
|
+ formatter: (val) => {
|
|
|
+ if (val.onlineState === "1") {
|
|
|
+ return '<b class="el-tag el-tag--success el-tag--light">在线</b>';
|
|
|
+ } else {
|
|
|
+ return '<b class="el-tag el-tag--warning el-tag--light">离线</b>';
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
{
|
|
|
- label: "计量单位",
|
|
|
- prop: "meteringUnit",
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "计量单位不能为空",
|
|
|
- trigger: "trigger",
|
|
|
- },
|
|
|
- ],
|
|
|
+ label: "负责人",
|
|
|
+ prop: "head",
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
},
|
|
|
{
|
|
|
- label: "计量周期",
|
|
|
- prop: "cycle",
|
|
|
+ label: "计量有效期",
|
|
|
+ prop: "meteringDate",
|
|
|
+ type: "date",
|
|
|
+ width: 160,
|
|
|
+ format: 'YYYY-MM-DD',
|
|
|
+ valueFormat: 'YYYY-MM-DD',
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "所属PAC",
|
|
|
+ prop: "terminal",
|
|
|
type: "select",
|
|
|
- dicUrl:
|
|
|
- dictDataUtil.request_url +
|
|
|
- dictDataUtil.TYPE_CODE.device_maintenance_cycle,
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
+ dicUrl:import.meta.env.VITE_APP_BASE_API + "/api/v1/device/pacList",
|
|
|
props: {
|
|
|
- label: "dictLabel",
|
|
|
- value: "dictValue",
|
|
|
- },
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "计量周期不能为空",
|
|
|
- trigger: "trigger",
|
|
|
- },
|
|
|
- ],
|
|
|
+ label: "deviceName",
|
|
|
+ value: "deviceNo",
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
- label: "计量状态",
|
|
|
- prop: "state",
|
|
|
- type: "select",
|
|
|
- addDisplay: false,
|
|
|
- dicData: [{label: '待审批',value:0},{label: '带计量',value:1},{label: '已计量',value:2}],
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "计量状态不能为空",
|
|
|
- trigger: "trigger",
|
|
|
- },
|
|
|
- ],
|
|
|
+ label: "供应厂商",
|
|
|
+ prop: "manufacturer",
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
},
|
|
|
{
|
|
|
- label: "计量日期",
|
|
|
- prop: "nextTime",
|
|
|
- type: "date",
|
|
|
- addDisplay: false,
|
|
|
- width: "120",
|
|
|
- format: "YYYY-MM-DD", //前端展示格式
|
|
|
- valueFormat: "YYYY-MM-DD", //设置后端接收的日期格式
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "计量日期不能为空",
|
|
|
- trigger: "trigger",
|
|
|
- },
|
|
|
- ],
|
|
|
+ label: "所属部门",
|
|
|
+ prop: "deptId",
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
+ type: "tree",
|
|
|
+ dicUrl: dictDataUtil.dept_tree_url,
|
|
|
+ props: {
|
|
|
+ label: "deptName",
|
|
|
+ value: "id",
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "所在车间",
|
|
|
+ prop: "workshop",
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "所在工位",
|
|
|
+ prop: "station",
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "设备位置",
|
|
|
+ prop: "devicePosition",
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "规格",
|
|
|
+ prop: "specifications",
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
},
|
|
|
{
|
|
|
- label: "备注",
|
|
|
- prop: "remark",
|
|
|
- minRows: 2, //最小行/最小值
|
|
|
- type: "textarea", //类型为多行文本域框
|
|
|
- maxlength: 512, //最大输入长度
|
|
|
- overHidden: true
|
|
|
+ label: "品牌",
|
|
|
+ width: 160,
|
|
|
+ overHidden: true,
|
|
|
+ prop: "brand",
|
|
|
},
|
|
|
],
|
|
|
});
|
|
|
|
|
|
onMounted(() => {
|
|
|
+ search.value.needMetering = "1"
|
|
|
+ maintenanceInfo.result = "0"
|
|
|
dataList();
|
|
|
queryUserList()
|
|
|
});
|