Browse Source

检点列表

chrislee 6 months ago
parent
commit
330a4c71ba

+ 1 - 0
src/icons/svg/icon-dianjian.svg

@@ -0,0 +1 @@
+<svg t="1733899659153" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4455" width="200" height="200"><path d="M556.2 792.6c-3-19.8-3-40.2 0-60H185.6c-30.2 0-54.8-24.6-54.8-54.8V204c0-30.2 24.6-54.8 54.8-54.8h643.4c30.2 0 54.8 24.6 54.8 54.8v393.6c7.8 5.8 15.2 12.2 22.4 19.4 15.6 15.6 28.2 33 37.6 51.6V204c0-63.2-51.4-114.8-114.8-114.8H185.6c-63.2 0-114.8 51.4-114.8 114.8v473.8c0 63.2 51.4 114.8 114.8 114.8h370.6zM614.4 908.4c-14.4-14.4-26-30.2-35.2-47.2H175.6v60h453c-4.8-4-9.6-8.2-14.2-12.8z" p-id="4456"></path><path d="M466.4 559.8c-7.8 0-15.4-3-21.2-8.8l-104.2-104.2 42.4-42.4 84.4 84.4L671.2 314l39.2 45.4L486 552.4c-5.6 4.8-12.6 7.4-19.6 7.4zM950.8 910.8l-52.6-52.6c45.4-65.4 39-156.2-19.2-214.4-65.6-65.6-172-65.6-237.6 0s-65.6 172 0 237.6c32.8 32.8 75.8 49.2 118.8 49.2 33.6 0 67-10 95.6-29.8l52.6 52.6 42.4-42.6z m-267-71.8c-42.2-42.2-42.2-110.6 0-152.8 21-21 48.8-31.6 76.4-31.6s55.4 10.6 76.4 31.6c42.2 42.2 42.2 110.6 0 152.8-42.2 42-110.6 42-152.8 0z" p-id="4457"></path></svg>

+ 7 - 7
src/views/modules/device/device-history.vue

@@ -183,7 +183,7 @@
       <el-table-column
       <el-table-column
         header-align="center"
         header-align="center"
         align="center"
         align="center"
-        min-width="90"
+        min-width="100"
         label="上电时间">
         label="上电时间">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <span v-for="item in scope.row.points" v-if="item.name==='KeepAliveTime'">{{ formatTime(item.value) }}</span>
           <span v-for="item in scope.row.points" v-if="item.name==='KeepAliveTime'">{{ formatTime(item.value) }}</span>
@@ -192,7 +192,7 @@
       <el-table-column
       <el-table-column
         header-align="center"
         header-align="center"
         align="center"
         align="center"
-        min-width="90"
+        min-width="100"
         label="系统日期">
         label="系统日期">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <span v-for="item in scope.row.points" v-if="item.name==='SystemDate'">{{ formatDate(item.value) }}</span>
           <span v-for="item in scope.row.points" v-if="item.name==='SystemDate'">{{ formatDate(item.value) }}</span>
@@ -314,7 +314,7 @@
       <el-table-column
       <el-table-column
         header-align="center"
         header-align="center"
         align="center"
         align="center"
-        min-width="90"
+        min-width="100"
         label="主轴负载">
         label="主轴负载">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <span v-for="item in scope.row.points" v-if="item.name==='SpindleLoad'">{{ item.value }}</span>
           <span v-for="item in scope.row.points" v-if="item.name==='SpindleLoad'">{{ item.value }}</span>
@@ -332,7 +332,7 @@
       <el-table-column
       <el-table-column
         header-align="center"
         header-align="center"
         align="center"
         align="center"
-        min-width="90"
+        min-width="100"
         label="第二轴伺服轴负载">
         label="第二轴伺服轴负载">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <span v-for="item in scope.row.points" v-if="item.name==='ServoLoad2'">{{ item.value }}</span>
           <span v-for="item in scope.row.points" v-if="item.name==='ServoLoad2'">{{ item.value }}</span>
@@ -341,7 +341,7 @@
       <el-table-column
       <el-table-column
         header-align="center"
         header-align="center"
         align="center"
         align="center"
-        min-width="90"
+        min-width="100"
         label="第三轴伺服轴负载">
         label="第三轴伺服轴负载">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <span v-for="item in scope.row.points" v-if="item.name==='ServoLoad3'">{{ item.value }}</span>
           <span v-for="item in scope.row.points" v-if="item.name==='ServoLoad3'">{{ item.value }}</span>
@@ -350,7 +350,7 @@
       <el-table-column
       <el-table-column
         header-align="center"
         header-align="center"
         align="center"
         align="center"
-        min-width="90"
+        min-width="100"
         label="第四轴伺服轴负载">
         label="第四轴伺服轴负载">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <span v-for="item in scope.row.points" v-if="item.name==='ServoLoad4'">{{ item.value }}</span>
           <span v-for="item in scope.row.points" v-if="item.name==='ServoLoad4'">{{ item.value }}</span>
@@ -359,7 +359,7 @@
       <el-table-column
       <el-table-column
         header-align="center"
         header-align="center"
         align="center"
         align="center"
-        min-width="90"
+        min-width="100"
         label="第五轴伺服轴负载">
         label="第五轴伺服轴负载">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <span v-for="item in scope.row.points" v-if="item.name==='ServoLoad5'">{{ item.value }}</span>
           <span v-for="item in scope.row.points" v-if="item.name==='ServoLoad5'">{{ item.value }}</span>

+ 1 - 1
src/views/modules/device/device-inspection.vue

@@ -67,7 +67,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import {dateTimeToString} from "@/api/util";
+import {dateTimeToString} from '@/api/util'
 
 
 export default {
 export default {
   name: 'device-inspection',
   name: 'device-inspection',

+ 465 - 0
src/views/modules/device/inspection-list.vue

@@ -0,0 +1,465 @@
+<template>
+  <div class="device">
+    <template v-if="!addOrUpdateVisible && !detailVisible && !historyVisible && !damageVisible && !checkVisible && !inspectionVisible">
+      <!-- 查询、新增操作 -->
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="search()">
+        <el-form-item label="名称/编号">
+          <el-input v-model="dataForm.name" placeholder="名称/编号" clearable/>
+        </el-form-item>
+        <el-form-item label="设备状态">
+          <el-select
+            v-model="dataForm.state"
+            remote
+            placeholder="请选择">
+            <el-option
+              v-for="item in optionsState"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="search()">查询</el-button>
+          <el-button v-if="isAuth('prod:equipment:save')" type="primary" @click="addOrUpdateHandle(0)">新增</el-button>
+        </el-form-item>
+      </el-form>
+      <!-- 数据表格 -->
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="code"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-overflow-tooltip="true"
+          label="网关编码">
+        </el-table-column>
+        <el-table-column
+          prop="codeNumber"
+          header-align="center"
+          align="center"
+          min-width="100"
+          :show-overflow-tooltip="true"
+          label="设备编号">
+        </el-table-column>
+        <el-table-column
+          prop="online"
+          header-align="center"
+          align="center"
+          min-width="80"
+          :show-overflow-tooltip="true"
+          label="是否在线">
+          <template slot-scope="scope">
+            <el-tag v-if="Number(scope.row.online) === 0" type="danger">离线</el-tag>
+            <el-tag v-else type="success">在线</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="spindleActualSpeed"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-overflow-tooltip="true"
+          label="设备主轴转速">
+        </el-table-column>
+        <el-table-column
+          prop="name"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-overflow-tooltip="true"
+          label="设备名称">
+        </el-table-column>
+        <el-table-column
+          prop="model"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-overflow-tooltip="true"
+          label="设备型号">
+        </el-table-column>
+        <el-table-column
+          prop="specifications"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-overflow-tooltip="true"
+          label="设备规格">
+        </el-table-column>
+        <el-table-column
+          prop="useFor"
+          header-align="center"
+          align="center"
+          min-width="100"
+          :show-overflow-tooltip="true"
+          label="设备用途">
+        </el-table-column>
+        <el-table-column
+          prop="accuracy"
+          header-align="center"
+          align="center"
+          min-width="100"
+          :show-overflow-tooltip="true"
+          label="设备精度">
+        </el-table-column>
+        <el-table-column
+          prop="manufacturers"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-overflow-tooltip="true"
+          label="制造厂家">
+        </el-table-column>
+        <el-table-column
+          prop="manufacturingNumber"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-overflow-tooltip="true"
+          label="设备出厂编号">
+        </el-table-column>
+        <el-table-column
+          prop="leaveFactoryDate"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-overflow-tooltip="true"
+          label="设备出厂日期">
+        </el-table-column>
+        <el-table-column
+          prop="verificationDate"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-overflow-tooltip="true"
+          label="检定日期">
+        </el-table-column>
+        <el-table-column
+          prop="validityDate"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-overflow-tooltip="true"
+          label="检定有效期(止)">
+        </el-table-column>
+        <el-table-column
+          prop="attachList"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-overflow-tooltip="true"
+          label="操作说明书">
+          <template slot-scope="scope">
+            <div v-for="(item, index) in scope.row.attachList" style="display: inline">
+              <span v-if="index > 0">,</span>
+              <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="notes"
+          header-align="center"
+          align="center"
+          min-width="180"
+          :show-overflow-tooltip="true"
+          label="备注">
+        </el-table-column>
+        <el-table-column
+          prop="responsibilityUserName"
+          header-align="center"
+          align="center"
+          min-width="80"
+          :show-overflow-tooltip="true"
+          label="责任人">
+        </el-table-column>
+        <el-table-column
+          prop="userOfName"
+          header-align="center"
+          align="center"
+          min-width="100"
+          :show-overflow-tooltip="true"
+          label="当前使用人">
+        </el-table-column>
+        <el-table-column
+          prop="breakageCause"
+          header-align="center"
+          align="center"
+          min-width="180"
+          :show-overflow-tooltip="true"
+          label="损坏原因">
+        </el-table-column>
+        <el-table-column
+          prop="attachListBreakage"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-overflow-tooltip="true"
+          label="报损附件">
+          <template slot-scope="scope">
+            <div v-for="(item, index) in scope.row.attachListBreakage" style="display: inline">
+              <span v-if="index > 0">,</span>
+              <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="attachListVerification"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-overflow-tooltip="true"
+          label="检定报告附件">
+          <template slot-scope="scope">
+            <div v-for="(item, index) in scope.row.attachListVerification" style="display: inline">
+              <span v-if="index > 0">,</span>
+              <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="state"
+          fixed="right"
+          header-align="center"
+          align="center"
+          min-width="100"
+          :show-overflow-tooltip="true"
+          label="状态">
+          <template slot-scope="scope">
+            {{optionsState.find(t => t.value === scope.row.state).label}}
+          </template>
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="230"
+          label="操作">
+          <template slot-scope="scope">
+<!--            <el-button v-if="isAuth('prod:equipment:info')" type="text" size="small" @click="detailHandle(scope.row.id)">查看</el-button>-->
+            <el-button v-if="isAuth('prod:equipment:info')" type="text" size="small" @click="historyHandle(scope.row)">历史数据</el-button>
+            <el-button v-if="isAuth('prod:equipment:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">编辑</el-button>
+            <el-button v-if="isAuth('prod:updateVerification:update')" type="text" size="small" @click="checkHandle(scope.row)">检定</el-button>
+            <el-button v-if="isAuth('prod:updateBreakage:update')" type="text" size="small" @click="damageHandle(scope.row)">报损</el-button>
+            <el-button v-if="isAuth('prod:equipmentCheckRecord:updateCheck')" type="text" size="small" @click="inspectionHandle(scope.row)">点检</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+    </template>
+    <!-- 弹窗, 新增 / 修改 -->
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" @onChose="onChose"></add-or-update>
+    <detail v-if="detailVisible" ref="detail" @onChose="onChose"></detail>
+    <device-history v-if="historyVisible" ref="history" @onChose="onChose"></device-history>
+    <preview-component v-if="previewVisible" ref="preview" @onChose="onChose"></preview-component>
+    <device-damage v-if="damageVisible" ref="damage" @onChose="onChose" @refreshDataList="getDataList"></device-damage>
+    <device-check v-if="checkVisible" ref="check" @onChose="onChose" @refreshDataList="getDataList"></device-check>
+    <device-inspection v-if="inspectionVisible" ref="inspection" @onChose="onChose" @refreshDataList="getDataList"></device-inspection>
+  </div>
+</template>
+
+<script>
+import AddOrUpdate from './device-add-or-update'
+import Detail from './temp-detail'
+import History from './temp-history'
+import OrgComponent from '../common/org-component'
+import UserComponent from '../common/user-component'
+import {optionsEquipmentState} from '@/utils/enums'
+import {isAuth} from '@/utils'
+import PreviewComponent from '@/views/modules/common/preview-component.vue'
+import DeviceHistory from '@/views/modules/device/device-history.vue'
+import DeviceDamage from '@/views/modules/device/device-damage.vue'
+import DeviceCheck from '@/views/modules/device/device-check.vue'
+import DeviceInspection from '@/views/modules/device/device-inspection.vue'
+export default {
+  name: 'inspection-list',
+  components: {
+    DeviceInspection,
+    DeviceCheck,
+    DeviceDamage,
+    DeviceHistory,
+    PreviewComponent,
+    Detail,
+    History,
+    AddOrUpdate,
+    UserComponent,
+    OrgComponent
+  },
+  data () {
+    return {
+      addOrUpdateVisible: false,
+      detailVisible: false,
+      historyVisible: false,
+      previewVisible: false,
+      damageVisible: false,
+      checkVisible: false,
+      inspectionVisible: false,
+      dataForm: {},
+      dataList: [],
+      pageIndex: 1,
+      pageSize: 10,
+      totalPage: 0,
+      dataListLoading: false,
+      dataListSelections: [],
+      optionsState: optionsEquipmentState
+    }
+  },
+  created () {
+    this.getDataList()
+  },
+  methods: {
+    isAuth,
+    onChose () {
+      this.addOrUpdateVisible = false
+      this.detailVisible = false
+      this.historyVisible = false
+      this.damageVisible = false
+      this.checkVisible = false
+      this.inspectionVisible = false
+    },
+    // 查询
+    search () {
+      this.pageIndex = 1
+      this.getDataList()
+    },
+    // 获取数据列表
+    getDataList () {
+      this.dataListLoading = true
+      this.addOrUpdateVisible = false
+      this.$http({
+        url: this.$http.adornUrl('/biz-service/equipment/list'),
+        method: 'get',
+        params: this.$http.adornParams({
+          'current': this.pageIndex,
+          'size': this.pageSize,
+          'name': this.dataForm.name ? this.dataForm.name : null,
+          'state': this.dataForm.state ? this.dataForm.state : null
+        })
+      }).then(({data}) => {
+        if (data && data.code === '200') {
+          this.dataList = data.data.records
+          this.totalPage = Number(data.data.total)
+        } else {
+          this.dataList = []
+          this.totalPage = 0
+        }
+        this.dataListLoading = false
+      })
+    },
+    // 每页数
+    sizeChangeHandle (val) {
+      this.pageSize = val
+      this.pageIndex = 1
+      this.getDataList()
+    },
+    // 当前页
+    currentChangeHandle (val) {
+      this.pageIndex = val
+      this.getDataList()
+    },
+    // 多选
+    selectionChangeHandle (val) {
+      this.dataListSelections = val
+    },
+    // 新增 / 修改
+    addOrUpdateHandle (id, disable) {
+      this.addOrUpdateVisible = true
+      this.$nextTick(() => {
+        this.$refs.addOrUpdate.init(id, disable)
+      })
+    },
+    detailHandle (id) {
+      this.detailVisible = true
+      this.$nextTick(() => {
+        this.$refs.detail.init(id)
+      })
+    },
+    // 预览
+    previewFile (fileName, url) {
+      this.previewVisible = true
+      this.$nextTick(() => {
+        this.$refs.preview.init(fileName, url)
+      })
+    },
+    // 历史记录
+    historyHandle (row) {
+      this.historyVisible = true
+      this.$nextTick(() => {
+        this.$refs.history.init(row.codeNumber)
+      })
+    },
+    // 报损
+    damageHandle (row) {
+      this.damageVisible = true
+      this.$nextTick(() => {
+        this.$refs.damage.init(row)
+      })
+    },
+    // 检定
+    checkHandle (row) {
+      this.checkVisible = true
+      this.$nextTick(() => {
+        this.$refs.check.init(row)
+      })
+    },
+    // 点检
+    inspectionHandle (row) {
+      this.inspectionVisible = true
+      this.$nextTick(() => {
+        this.$refs.inspection.init(row)
+      })
+    },
+    // 删除
+    deleteHandle (id) {
+      if (!id) return
+      let ids = []
+      ids.push(id)
+      this.$confirm(`确定删除?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.$http({
+          url: this.$http.adornUrl(`/iot-platform/temp/delete`),
+          method: 'DELETE',
+          data: ids
+        }).then(({data}) => {
+          if (data && data.code === '200') {
+            this.$message({
+              message: '操作成功',
+              type: 'success',
+              duration: 1500,
+              onClose: () => {
+                this.getDataList()
+              }
+            })
+          } else {
+            this.$message.error(data.msg)
+          }
+        })
+      }).catch(() => {})
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>