소스 검색

数据采集

dengrui 10 달 전
부모
커밋
5585bbab2c

+ 6 - 21
src/api/prosteps/screwdriver.ts

@@ -1,25 +1,10 @@
 import request from "@/utils/request";
-//获取列表
-export function getScrewdriverData(data: any) {
+import { AxiosPromise } from "axios";
+import { DeviceContainer, ResData } from "./screwdriverTypes";
+//获取数据采集data
+export function getScrewdriverData(): AxiosPromise<ResData> {
   return request({
-    url: `/api/v1/process/screwdriver/acquisition/page`,
-    method: "post",
-    data,
-  });
-}
-//开始测试
-export function startData(data: any) {
-  return request({
-    url: "/api/v1/process/screwdriver/acquisition/start",
-    method: "post",
-    data: data,
-  });
-}
-//结束测试
-export function endData(data: any) {
-  return request({
-    url: "/api/v1/process/screwdriver/acquisition/end",
-    method: "post",
-    data: data,
+    url: `/api/v1/process/data/acquisition/device/list`,
+    method: "get",
   });
 }

+ 44 - 0
src/api/prosteps/screwdriverTypes.ts

@@ -0,0 +1,44 @@
+export interface DeviceInfo {
+  brand?: string; // 设备品牌
+  collect?: string; // 收集信息
+  collectState?: string; // 收集状态
+  created?: string; // 创建时间(可能是日期字符串)
+  creator?: string; // 创建者
+  deleted?: number; // 删除标志,可能是一个布尔值的数字表示(0 或 1)
+  deptId?: string; // 部门ID
+  deviceName?: string; // 设备名称
+  deviceNo?: string; // 设备编号
+  devicePic?: string; // 设备图片URL
+  devicePosition?: string; // 设备位置
+  deviceType?: string; // 设备类型标识
+  deviceTypeStr?: string; // 设备类型的描述字符串
+  head?: string; // 可能是负责人或其他相关信息
+  id?: string; // 主键ID,可能是UUID或其他唯一标识符
+  manufacturer?: string; // 生产商
+  meteringDate?: string; // 计量日期(可能是日期字符串)
+  onlineState?: string; // 在线状态
+  orgId?: string; // 组织ID
+  specifications?: string; // 规格
+  state?: string; // 设备状态
+  station?: string; // 工位
+  terminal?: string; // 可能是指终端设备或其他相关信息
+  updated?: string; // 更新时间(可能是日期字符串)
+  updator?: string; // 更新者
+  workshop?: string; // 车间
+}
+export interface DeviceContainer {
+  created?: string; // 创建时间(可能是日期字符串)
+  creator?: string; // 创建者
+  deptId?: string; // 部门ID
+  deviceInfoList?: DeviceInfo[]; // 设备信息列表
+  deviceType?: string; // 设备类型标识
+  id?: string; // 主键ID,可能是UUID或其他唯一标识符
+  orgId?: string; // 组织ID
+  updated?: string; // 更新时间(可能是日期字符串)
+  updator?: string; // 更新者
+}
+export interface ResData {
+  code: string;
+  data: Array<DeviceContainer>;
+  msg: string;
+}

+ 1 - 0
src/store/modules/dictionary.ts

@@ -16,6 +16,7 @@ export const useDictionaryStore = defineStore("dictionaryStore", () => {
     "disposal_measures_type",
     "escalation_fault_state",
     "station_task_state",
+    "device_type",
   ];
   const dicts = ref<{ [key: string]: any[] }>({});
 

+ 0 - 1
src/utils/common.ts

@@ -9,7 +9,6 @@ enum EventsNames {
   PROCESS_STEPINDEX = "PROCESS_STEPINDEX",
   //通知procee界面重新加载数据
   PROCESS_REDER = "PROCESS_REDER",
-  //websocket 通知电动螺丝界面获取最新信息
   GET_Screwdriver = "GET_Screwdriver",
 }
 

+ 1 - 1
src/utils/request.ts

@@ -79,7 +79,7 @@ const myRequest = (config: AxiosRequestConfig, extra?: ExtraConfig) => {
   if (extra?.loadingKey) {
     map?.set(extra?.loadingKey, true);
   }
-  return new Promise((resolve, reject) => {
+  return new Promise<any>((resolve, reject) => {
     service(config)
       .then((response) => {
         resolve(response);

+ 116 - 142
src/views/pro-steps/components/screwdriver.vue

@@ -1,163 +1,137 @@
 <template>
-  <div>
-    <div class="btns">
-      <el-button type="success" class="btn" @click="begin">开始测试</el-button>
-      <el-button type="danger" class="btn" @click="stop">停止测试</el-button>
-    </div>
-    <div>
-      <el-table :data="tableData" class="tableView">
-        <el-table-column prop="taskNo" label="当前任务号" align="center" />
-        <el-table-column
-          prop="tightenResult"
-          label="最终拧紧结果"
-          align="center"
-        />
-        <el-table-column
-          prop="tightenTorqueMax"
-          label="拧紧过程中最大扭力值"
-          align="center"
-        />
-        <el-table-column
-          prop="torquetarget"
-          label="当前任务目标扭力"
-          align="center"
-        />
-        <el-table-column prop="totalCycles" label="总圈数" align="center" />
-        <el-table-column prop="warning" label="警报" align="center" />
-        <!-- <el-table-column prop="writeData" align="center" label="是否已填报">
-          <template #default="scope">
-            <span
-              :class="{
-                'red-text': scope.row.writeData === '',
-                'green-text': scope.row.writeData !== '',
-              }"
-            >
-              {{ scope.row.writeData === "" ? "否" : "是" }}
-            </span>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" fixed="right" width="200">
-          <template #default="scope">
-            <el-button
-              link
-              v-if="scope.row.writeData !== ''"
-              class="btnText"
-              type="primary"
-              @click="handleLook(scope.row)"
-            >
-              查看
-            </el-button>
-            <el-button
-              link
-              class="btnText"
-              type="primary"
-              @click="handleEdit(scope.row)"
-            >
-              编辑
-            </el-button>
-
-            <el-popconfirm
-              v-if="scope.row.writeData !== ''"
-              :visible="scope.row.dialogVisible"
-              title="您确认重置吗?(重置此操作不可逆)"
-              width="200"
-              @cancel="scope.row.dialogVisible = false"
-              @confirm="reset(scope.row)"
-            >
-              <el-button> 取消 </el-button>
-              <el-button type="primary"> 确认 </el-button>
-              <template #reference>
-                <el-button
-                  link
-                  class="btnText"
-                  type="primary"
-                  @click="scope.row.dialogVisible = true"
-                  >重置</el-button
-                >
-              </template>
-            </el-popconfirm>
-          </template>
-        </el-table-column> -->
-      </el-table>
-      <Pagination
-        v-model:limit="page.pageSize"
-        v-model:page="page.pageNo"
-        :total="page.total"
-        size="large"
-        @pagination="getData"
-        position="right"
-      />
-    </div>
+  <div class="containerBox">
+    <el-collapse accordion v-model="activeNames">
+      <el-collapse-item
+        v-for="(item, index) in materialsData"
+        :key="index"
+        :name="index"
+      >
+        <template #title>
+          {{
+            dictS.getLableByValue("device_type", item.deviceType)
+          }}&nbsp;&nbsp;&nbsp;<span
+            :class="item.state ? 'round green' : 'round'"
+          ></span
+          >&nbsp; &nbsp;
+          <span
+            @click.stop="aa"
+            class="opear"
+            style="font-size: 18px; color: rgb(10, 89, 247); font-weight: 600"
+            >新增数据</span
+          ></template
+        >
+        <el-table :data="item.children" border>
+          <el-table-column prop="a" label="设备编号">
+            <template #default="scope" v-if="!item.updateStatus">
+              {{ scope.row.a }}
+            </template>
+            <template #default v-else>
+              <el-input v-model="item.equitType" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="b" label="设备名称">
+            <template #default="scope" v-if="!item.updateStatus">
+              {{ scope.row.b }}
+            </template>
+            <template #default v-else>
+              <el-input v-model="item.equitType" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="equitType" label="高度">
+            <template #default="scope" v-if="!item.updateStatus">
+              {{ scope.row.c }}
+            </template>
+            <template #default v-else>
+              <el-input v-model="item.equitType" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="equitType" label="宽度">
+            <template #default="scope" v-if="!item.updateStatus">
+              {{ scope.row.d }}
+            </template>
+            <template #default v-else>
+              <el-input v-model="item.equitType" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="equitType" label="采集时间">
+            <template #default="scope" v-if="!item.updateStatus">
+              {{ scope.row.e }}
+            </template>
+            <template #default v-else>
+              <el-input v-model="item.equitType" />
+            </template>
+          </el-table-column>
+          <el-table-column label="操作">
+            <template #default="scope">
+              <!-- <span class="opear">完成</span> -->
+              <span class="opear">删除</span>
+              <!-- <span class="opear">取消</span> -->
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-collapse-item>
+    </el-collapse>
   </div>
 </template>
 
-<script setup>
-import {
-  getScrewdriverData,
-  startData,
-  endData,
-} from "@/api/prosteps/screwdriver";
+<script setup lang="ts">
+import { getScrewdriverData } from "@/api/prosteps/screwdriver";
 import { useProcessStore } from "@/store";
-import { emitter, EventsNames } from "@/utils/common";
+import { useDictionaryStore } from "@/store";
+import { DeviceContainer, ResData } from "@/api/prosteps/screwdriverTypes";
+const dictS = useDictionaryStore();
 const store = useProcessStore();
+const activeNames = ref([0]);
+const materialsData = ref<DeviceContainer[]>([]);
+const getData = async () => {
+  const res: ResData = await getScrewdriverData();
+  materialsData.value = res.data;
+};
+const aa = () => {
+  console.log("111");
+};
 const page = reactive({
   pageSize: 10,
   pageNo: 1,
   total: 0,
 });
-const tableData = ref([]);
-const getData = async () => {
-  const { data, code } = await getScrewdriverData({
-    pageSize: page.pageSize,
-    pageNo: page.pageNo,
-  });
-  tableData.value = data.records;
-  page.total = data.totalCount;
-};
-const begin = async () => {
-  const { code } = await startData({
-    workOrderCode: store.odersData.workOrderCode,
-    seqNo: store.useSeqNo,
-    operationId: store.odersData.operationId,
-    operationName: store.processInfo.operationName,
-  });
-  if (code == "200") {
-    ElMessage.success("操作成功");
-  }
-};
-const stop = async () => {
-  const { code } = await endData();
-  if (code == "200") {
-    ElMessage.success("操作成功");
-  }
-};
-const setSearch = () => {
-  page.pageNo = 1;
-};
 onMounted(() => {
-  emitter.on(EventsNames.GET_Screwdriver, () => {
-    setSearch();
-    getData();
-  });
   getData();
 });
 </script>
 
 <style lang="scss" scoped>
-.btns {
-  width: 100%;
-  height: 60px;
-  display: flex;
-  align-items: center;
-  .btn {
-    height: 40px;
-    font-size: 20px;
+//生产履历表格公共样式
+:deep(.el-collapse-item__header) {
+  background-color: white !important;
+  padding: 0 20px;
+  height: 80px;
+}
+:deep(.el-badge) {
+  font-size: $f24;
+}
+:deep(.el-collapse-item__header) {
+  font-size: $f24;
+}
+:deep(.el-pagination) {
+  span {
+    font-weight: 600 !important;
   }
 }
-.tableView {
-  width: 100%;
-  height: calc(100vh - 380px);
-  padding: 20px 0px;
-  border-radius: 16px;
+:deep(.el-collapse-item__wrap) {
+  padding: 20px;
+}
+.opear {
+  font-size: 16px;
+  margin-right: 5px;
+}
+.round {
+  width: 20px;
+  height: 20px;
+  border-radius: 10px;
+  background-color: red;
+}
+.green {
+  background-color: green;
 }
 </style>

+ 1 - 1
src/views/pro-steps/index.vue

@@ -168,7 +168,7 @@ const defaultComponents = [
     name: "Excel",
   },
   {
-    compentName: "电动螺丝刀",
+    compentName: "数据采集",
     iconName: "mingpai",
     path: "screwdriver",
     name: "Screwdriver",