wanghao преди 2 месеца
родител
ревизия
d573b066dc

+ 27 - 0
src/api/braze/index.ts

@@ -0,0 +1,27 @@
+import request from "@/utils/request";
+
+/**
+ * 修改钎焊基础信息
+ *
+ * @param data
+ */
+export function updateBraze(data: any) {
+  return request({
+    url: "/api/v1/baseBraze/update",
+    method: "post",
+    data: data,
+  });
+}
+
+/**
+ * 查询钎焊基础信息列表
+ *
+ * @param data
+ */
+export function baseBrazeList(data: any) {
+  return request({
+    url: "/api/v1/baseBraze/list",
+    method: "post",
+    data
+  });
+}

+ 39 - 0
src/api/craft/process/index.ts

@@ -73,3 +73,42 @@ export function getRouteMaxVersion(routeId: string) {
     method: "get",
   });
 }
+
+
+/**
+ * 获取工序钎焊绑定信息,传入工序id
+ * @param id 
+ * @returns 
+ */
+export function operationBraze(operationId: string | number) {
+  return request({
+    url: `/api/v1/operationBraze/query/${operationId}`,
+    method: "get",
+  });
+}
+
+/**
+ * 绑定工序钎焊绑定信息
+ * @param data
+ * @returns 
+ */
+export function operationBrazeAdd(data: any) {
+  return request({
+    url: `/api/v1//operationBraze/add`,
+    method: "post",
+    data
+  });
+}
+
+/**
+ * 删除工序钎焊绑定信息
+ * @param data
+ * @returns 
+ */
+export function operationBrazeDel(data: any) {
+  return request({
+    url: `/api/v1//operationBraze/del`,
+    method: "post",
+    data
+  });
+}

+ 188 - 0
src/views/base/braze/bindBraze/index.vue

@@ -0,0 +1,188 @@
+<template>
+  <div class="mainContentBox">
+    <avue-crud
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="addRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
+    >
+      <template #viewPath-form="scope">
+        <FilesUpload
+            v-model:src="fileUrl"
+            v-model:file-name-list="fileNameList"
+            :limit="1"
+            @finished="testFiles"
+          />
+      </template>
+      <template #menu="{ row, index, type }">
+        <PDFView
+          :need-to-show-pdf="true"
+          content-type="button"
+          :is-link="true"
+          :pdf-source="filePath + row.pdfPath"
+        />
+        <el-button
+          @click="deleteRecord(row, index, done)"
+          text
+          icon="el-icon-delete"
+          type="primary"
+          >删除</el-button
+        >
+      </template>
+    </avue-crud>
+
+    <ExcelUpload ref="uploadRef" @finished="uploadFinished" />
+  </div>
+</template>
+<script setup>
+import { ref } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import PDFView from "@/components/PDFView/index.vue";
+// 数据字典相关
+const fileUrl = ref(""); //单文件
+const fileNameList = ref([]);
+const testFiles = () => {
+  form.value.viewPath = fileUrl.value;
+  form.value.viewName = fileNameList.value[0];
+};
+const filePath = import.meta.env.VITE_APP_UPLOAD_URL;
+
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/baseBrazeBind",
+  });
+const {
+  dataEditList,
+  createRow,
+  updateRow,
+  deleteRow,
+  searchChange,
+  dataList,
+  resetChange,
+} = Methords; //增删改查
+const { selectionChange } = Methords; //选中和批量删除事件
+
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+const route = useRoute();
+search.value['brazeId'] = route.params.id
+onMounted?.(() => {
+  // console.log("crudRef", crudRef)
+  dataEditList();
+});
+const addRow = (form2, done) => {
+  form.value.brazeId = route.params.id
+  createRow(form, done, done);
+  fileUrl.value = "";
+  fileNameList.value = [];
+};
+/**
+ * 上传excel相关
+ */
+const uploadRef = ref(null);
+const uploadFinished = () => {
+  // 上传完成后的刷新操作
+  page.currentPage = 1;
+  dataEditList();
+};
+
+// 设置表格列或者其他自定义的option
+option.value = Object.assign(option.value, {
+  selection: false,
+  viewBtn: false,
+  editBtn: true,
+  delBtn: false,
+  menu: true,
+  column: [
+    {
+      label: "起始段",
+      prop: "lineStart",
+      width: 150,
+      search: true,
+      overHidden: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写起始段",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "结束端",
+      prop: "lineEnd",
+      width: 150,
+      overHidden: true,
+      search: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写结束端",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "线径",
+      prop: "wireDiameter",
+      width: 150,
+      overHidden: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写线径",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "长度",
+      prop: "length",
+      type: "number",
+      width: 180,
+      overHidden: true,
+    },
+    {
+      label: "颜色",
+      prop: "lineColor",
+    },
+    {
+      label: "文件",
+      prop: "viewPath",
+      span: 24,
+      slot: true,
+      hide: true,
+    },
+    {
+      label: "文件名称",
+      prop: "viewName",
+      span: 24,
+      width: 120,
+      overHidden: true,
+      display: false,
+    },
+    {
+      label: "创建时间",
+      prop: "created",
+      width: 120,
+      overHidden: true,
+      display: false,
+    }
+  ],
+});
+
+const deleteRecord = (row, index, done) => {
+  deleteRow(row, index, done);
+  dataEditList();
+};
+</script>

+ 139 - 0
src/views/base/braze/index.vue

@@ -0,0 +1,139 @@
+<template>
+  <div class="mainContentBox">
+    <avue-crud
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
+    >
+      <template #menu-left="{ size }">
+        <el-button
+          :disabled="toDeleteIds.length < 1"
+          type="danger"
+          icon="el-icon-delete"
+          :size="size"
+          @click="multipleDelete"
+          >删除</el-button
+        >
+      </template>
+      <template #enable="scope">
+        <el-switch
+          :active-value="0"
+          :inactive-value="1"
+          inline-prompt
+          active-text="启用"
+          inactive-text="禁用"
+          v-model="scope.row.enable"
+          @click="changeItem(scope.row)"
+          class="ml-2"
+          style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
+        />
+      </template>
+      <template #menu="{ row, index, type }">
+        <el-button
+          type="primary"
+          link
+          icon="el-icon-link"
+          @click="bindProcess(row)"
+          >绑定</el-button>
+      </template>
+    </avue-crud>
+  </div>
+</template>
+<script setup>
+import { ref } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import { updateBraze } from "@/api/braze";
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords } =
+  useCrud({
+    src: "/api/v1/baseBraze",
+  });
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+onMounted(() => {
+  dataList();
+});
+
+option.value = Object.assign(option.value, {
+  selection: true,
+  labelWidth: 110,
+  searchLabelWidth: 110,
+  column: [
+    {
+      label: "钎焊编码",
+      prop: "brazeCode",
+      search: true,
+      clearable: false,
+      rules: [
+        {
+          required: true,
+          message: "钎焊编码不能为空",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "钎焊名称",
+      prop: "brazeName",
+      search: true,
+      clearable: false,
+      rules: [
+        {
+          required: true,
+          message: "钎焊名称不能为空",
+          trigger: "blur",
+        },
+      ]
+    },
+    {
+      label: "版本号",
+      prop: "brazeVersion",
+      clearable: false,
+      rules: [
+        {
+          required: true,
+          message: "版本号不能为空",
+          trigger: "blur",
+        },
+      ]
+    },
+    {
+      label: "启用状态",
+      slot: true,
+      headerAlign: "center",
+      prop: "enable",
+      width: 100,
+      addDisplay: false,
+      editDisplay: false
+    }
+  ],
+});
+const router = useRouter();
+
+const bindProcess = (row) => {
+  router.push({
+    path: `/base/bindBraze/${row.id}`
+  });
+}
+   
+const changeItem = (row) => {
+  updateBraze(row).then(res => {
+    ElMessage.success("操作成功");
+    dataList();
+  })
+};
+</script>

+ 96 - 0
src/views/base/craftManagement/route/components/brazeTable.vue

@@ -0,0 +1,96 @@
+<template>
+  <el-button
+      type="primary"
+      @click="toChooseData"
+      style="margin-bottom: 15px"
+      >新增</el-button
+    >
+  <avue-crud :data="data" :option="option" >
+    <template #menu="{ row }">
+        <el-button type="danger" @click="rowDelete(row)">删除</el-button>
+      </template>
+  </avue-crud>
+
+  <!-- 钎焊选择 -->
+  <el-dialog v-model="dialogVisible" :title="tableTitle" width="800px">
+    <avue-crud :data="chooseData"  :option="option">
+      <template #menu="{ row }">
+        <el-button type="primary" @click="confirmSelection(row)">选择</el-button>
+      </template>
+    </avue-crud>
+    <template #footer>
+      <el-button @click="dialogVisible = false">取消</el-button>
+    </template>
+  </el-dialog>
+</template>
+
+<script setup>
+import {baseBrazeList} from "@/api/braze"
+import {operationBrazeAdd, operationBraze, operationBrazeDel} from "@/api/craft/process"
+  const tableTitle = "选择钎焊"
+  const dialogVisible = ref(false)
+  const chooseData = ref([])
+  const data = ref([])
+  const column = [
+        {
+          label: "钎焊编码",
+          prop: "brazeCode",
+          display: false,
+          hide: true,
+        },
+        { label: "钎焊名称", prop: "brazeName", addDisabled: true, editDisabled: true },
+        { label: "版本号", prop: "brazeVersion" }
+      ]
+  const option = {
+    selection: false,
+    viewBtn: false,
+    editBtn: false,
+    addBtn: false,
+    delBtn: false,
+    column: [
+        {
+          label: "钎焊编码",
+          prop: "brazeCode",
+        },
+        { label: "钎焊名称", prop: "brazeName" },
+        { label: "版本号", prop: "brazeVersion" }
+      ]
+  }
+  const toChooseData = () => {
+    dialogVisible.value = true
+    baseBrazeList({}).then(res => {
+      chooseData.value = res.data
+    })
+  }
+  const route = useRoute()
+  const confirmSelection = async (row) => {
+    const data = {
+      brazeId: row.id,
+      operationId: route.params.id
+    }
+    await operationBrazeAdd(data)
+    ElMessage.success("操作成功,钎焊已添加。")
+    getList()
+  }
+
+  const getList = () => {
+    operationBraze(route.params.id).then(res => {
+      data.value = res.data
+    })
+  }
+
+  const rowDelete = async (row) => {
+    const data = {
+      id: row.id,
+    }
+    await operationBrazeDel(data)
+    ElMessage.success("操作成功,钎焊已删除。")
+    getList()
+  }
+
+  getList()
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 5 - 1
src/views/base/craftManagement/route/components/configs.ts

@@ -285,7 +285,7 @@ export const getTableConfig = (id: string) => {
           editDisabled: true,
         },
       ],
-    },
+    }
   };
 };
 
@@ -343,4 +343,8 @@ export const comTypes: comType[] = [
     compentName: "数据采集",
     compentType: "screwdriver",
   },
+  {
+    compentName: "钎焊采集",
+    compentType: "braze",
+  },
 ];

+ 9 - 0
src/views/base/craftManagement/route/components/processComponent.vue

@@ -57,10 +57,14 @@
     </div>
     <div class="binContainer">
       <div v-if="showCSJL"><TestCom /></div>
+      <div v-else-if="showBraze">
+        <BrazeTable />
+      </div>
       <div v-else>
         <div v-if="isChanged || selectIndex === -1 || isNoneedEdit">
           <el-empty :image-size="200" :description="getTipContent()" />
         </div>
+        
         <div v-else-if="tipTitle !== '编辑工序表单'">
           <div class="tipTitle">{{ tipTitle }}</div>
           <el-button
@@ -92,6 +96,7 @@ import BottomTable from "@/views/base/craftManagement/route/components/bottomTab
 import { comTypes } from "@/views/base/craftManagement/route/components/configs";
 import { saveCompoents, getCompoentsList } from "@/api/craft/process/index";
 import TestCom from "./testCom.vue";
+import BrazeTable from './brazeTable.vue';
 import SetExcel from "./setExcel/index.vue";
 import { useCommonStoreHook, useDictionaryStoreHook } from "@/store";
 import {
@@ -161,8 +166,10 @@ const handleCommand = (item) => {
 
 // 点击某一个改变下面的table
 const showCSJL = ref(false);
+const showBraze = ref(false);
 const clickToolCom = (com, index) => {
   showCSJL.value = false;
+  showBraze.value = false;
   // 如果上方组件更改了,提示先保存组件再操作
   if (isChanged.value) {
     ElMessage.warning("请先保存组件!!!");
@@ -182,6 +189,8 @@ const clickToolCom = (com, index) => {
     isNoneedEdit.value = true;
   } else if (com.compentType === "ceshijilu") {
     showCSJL.value = true;
+  } else if (com.compentType === "braze") {
+    showBraze.value = true;
   } else {
     tableType.value = com.compentType;
     isNoneedEdit.value = false;

+ 1 - 1
src/views/base/information/index.vue

@@ -22,7 +22,7 @@
           v-model:src-list="srcList"
           v-model:pdf-list="pdfUrlList"
           v-model:file-name-list="fileNameList"
-          :limit="100"
+          :limit="1000"
           :generate-pdf="true"
           @finished="testFiles"
         />

+ 18 - 18
src/views/plan/workOrder/index.vue

@@ -779,24 +779,24 @@ option.value = Object.assign(option.value, {
         },
       ],
     },
-    {
-      label: "自动拆单",
-      hide: true,
-      type: "switch",
-      dicData: [
-        {
-          label: "否",
-          value: 0,
-        },
-        {
-          label: "是",
-          value: 1,
-        },
-      ],
-      value: 0,
-      editDisplay: false,
-      prop: "autoGenerate",
-    },
+    // {
+    //   label: "自动拆单",
+    //   hide: true,
+    //   type: "switch",
+    //   dicData: [
+    //     {
+    //       label: "否",
+    //       value: 0,
+    //     },
+    //     {
+    //       label: "是",
+    //       value: 1,
+    //     },
+    //   ],
+    //   value: 0,
+    //   editDisplay: false,
+    //   prop: "autoGenerate",
+    // },
     {
       label: "完成数量",
       width: 85,