Browse Source

生产执行功能板块界面修改

dengrui 1 week ago
parent
commit
7b0259bc9c

+ 2 - 2
.env.development

@@ -8,10 +8,10 @@ VITE_APP_PORT = 3008
 VITE_APP_BASE_API = '/dev-api'
 
 # 上传文件接口地址
-VITE_APP_UPLOAD_URL = 'http://139.155.176.112:19000'
+VITE_APP_UPLOAD_URL = 'http://113.44.0.55:8010'
 
 # 开发接口地址
-VITE_APP_API_URL = 'http://192.168.1.69:7103'
+VITE_APP_API_URL = 'http://113.44.0.55:8031'
 # Websocket地址
 VITE_WEBSOCKET_URL = 'ws://http://192.168.1.69:7103'
 # PDM 文件地址

+ 29 - 10
src/views/pro-operation/appoint-out/index.vue

@@ -1,19 +1,38 @@
 <template>
-  <div class="mainContentBox">
-    <el-row :gutter="20">
-      <el-col :span="10" class="elColClasss">
-        <ApplyFor />
-      </el-col>
-      <el-col :span="14" class="elColClasss">
-        <Record />
-      </el-col>
-    </el-row>
-  </div>
+  <el-drawer
+    v-model="removeVisible"
+    :close-on-click-modal="false"
+    destroy-on-close
+    direction="rtl"
+    size="1200px"
+    style="background-color: #f1f3f5"
+  >
+    <template #header>
+      <div class="drawerTitle">委外</div>
+    </template>
+    <div class="mainContentBox">
+      <el-row :gutter="20">
+        <el-col :span="10" class="elColClasss">
+          <ApplyFor />
+        </el-col>
+        <el-col :span="14" class="elColClasss">
+          <Record />
+        </el-col>
+      </el-row>
+    </div>
+  </el-drawer>
 </template>
 
 <script lang="ts" setup>
 import ApplyFor from "@/views/pro-operation/appoint-out/applyFor.vue";
 import Record from "@/views/pro-operation/appoint-out/record.vue";
+const removeVisible = ref(false);
+const openDrawer = () => {
+  removeVisible.value = true;
+};
+defineExpose({
+  openDrawer,
+});
 </script>
 
 <style lang="scss" scoped></style>

+ 1 - 1
src/views/pro-operation/check-out/first-check.vue

@@ -265,7 +265,7 @@ defineExpose({
 
 .tableView {
   width: 100%;
-  height: calc(100vh - 370px);
+  height: calc(100vh - 420px);
   padding: 20px 0px;
   border-radius: 16px;
 }

+ 89 - 71
src/views/pro-operation/check-out/index.vue

@@ -1,78 +1,90 @@
 <template>
-  <div class="mainContentBox">
-    <div class="header">
-      <ScanCodeInput
-        v-model="inputValueC"
-        placeholder="请扫码或输入当前用户信息,按回车键确认"
-        style="width: 550px"
-        @keyup.enter="handleSubmit"
-      />
-      <div v-if="userInfo" class="info">
-        当前检验用户:{{ userInfo?.userName }}
+  <el-drawer
+    v-model="checkVisible"
+    :close-on-click-modal="false"
+    destroy-on-close
+    direction="rtl"
+    size="990px"
+    style="background-color: #f1f3f5"
+  >
+    <template #header>
+      <div class="drawerTitle">检验</div>
+    </template>
+    <div>
+      <div class="header">
+        <ScanCodeInput
+          v-model="inputValueC"
+          placeholder="请扫码或输入当前用户信息,按回车键确认"
+          style="width: 550px"
+          @keyup.enter="handleSubmit"
+        />
+        <div v-if="userInfo" class="info">
+          当前检验用户:{{ userInfo?.userName }}
+        </div>
       </div>
+      <div class="bottom-container">
+        <el-tabs
+          v-model="activeName"
+          class="demo-tabs"
+          type="card"
+          @tab-click="handleClick"
+        >
+          <el-tab-pane label="首检" name="first"
+            ><el-button
+              type="primary"
+              @click="addOpen(1)"
+              class="titleText"
+              style="
+                width: 260px;
+                height: 50px;
+                border-radius: 16px;
+                margin-bottom: 20px;
+              "
+              >新增
+            </el-button>
+            <FirstCheck
+              ref="firstRef"
+              @edit-open="editOpen"
+              @get-page="getPage1"
+            />
+          </el-tab-pane>
+          <el-tab-pane label="过程检验" name="second"
+            ><el-button
+              type="primary"
+              @click="addOpen(2)"
+              class="titleText"
+              style="
+                width: 260px;
+                height: 50px;
+                border-radius: 16px;
+                margin-bottom: 20px;
+              "
+              >新增
+            </el-button>
+            <RollCheck ref="rollRef" @edit-open="editOpen" />
+          </el-tab-pane>
+        </el-tabs>
+      </div>
+      <Info
+        ref="infoRef"
+        :addStatus
+        :checkType
+        :checkUser="userInfo?.userName"
+        @get-page1="getPage1"
+        @get-page2="getPage2"
+      />
     </div>
-    <div class="bottom-container">
-      <el-tabs
-        v-model="activeName"
-        class="demo-tabs"
-        type="card"
-        @tab-click="handleClick"
-      >
-        <el-tab-pane label="首检" name="first"
-          ><el-button
-            type="primary"
-            @click="addOpen(1)"
-            class="titleText"
-            style="
-              width: 260px;
-              height: 50px;
-              border-radius: 16px;
-              margin-bottom: 20px;
-            "
-            >新增
-          </el-button>
-          <FirstCheck
-            ref="firstRef"
-            @edit-open="editOpen"
-            @get-page="getPage1"
-          />
-        </el-tab-pane>
-        <el-tab-pane label="过程检验" name="second"
-          ><el-button
-            type="primary"
-            @click="addOpen(2)"
-            class="titleText"
-            style="
-              width: 260px;
-              height: 50px;
-              border-radius: 16px;
-              margin-bottom: 20px;
-            "
-            >新增
-          </el-button>
-          <RollCheck ref="rollRef" @edit-open="editOpen" />
-        </el-tab-pane>
-      </el-tabs>
-    </div>
-    <Info
-      ref="infoRef"
-      :addStatus
-      :checkType
-      :checkUser="userInfo?.userName"
-      @get-page1="getPage1"
-      @get-page2="getPage2"
-    />
-  </div>
+  </el-drawer>
 </template>
 
-<script lang="ts" setup>
+<script setup>
 import ScanCodeInput from "@/components/ScanCodeInput/index.vue";
 import { useProcessStore } from "@/store";
 import { checkUserLogin } from "@/api/prosteps/dianjian";
 import FirstCheck from "./first-check.vue";
 import RollCheck from "./roll-check.vue";
 import Info from "./info.vue";
-
+const checkVisible = ref(false);
 const store = useProcessStore();
 const addStatus = ref(true);
 const inputValueC = ref("");
@@ -81,7 +93,7 @@ const infoRef = ref(null);
 const rollRef = ref(null);
 const firstRef = ref(null);
 const rowData = ref({});
-const editOpen = (checkType: any, rowData: any) => {
+const editOpen = (checkType, rowData) => {
   if (checkType == 1) {
     rowData.value = rowData;
     infoRef.value.open();
@@ -101,22 +113,28 @@ const getPage1 = () => {
 const getPage2 = () => {
   rollRef.value.dataList();
 };
-const userInfo = ref<any>(null);
+const userInfo = ref(null);
 const handleSubmit = async () => {
-  let res: any = await checkUserLogin(inputValueC.value);
+  let res = await checkUserLogin(inputValueC.value);
   userInfo.value = res.data;
 };
 
 onMounted(() => {
-  inputValueC.value = "";
-  console.log("mounted");
+  // inputValueC.value = "";
 });
 
 const activeName = ref("first");
 
-const handleClick = (tab: any, event: Event) => {
+const handleClick = (tab, event) => {
   console.log(tab, event);
 };
+const openDrawer = () => {
+  inputValueC.value = "";
+  checkVisible.value = true;
+};
+defineExpose({
+  openDrawer,
+});
 </script>
 
 <style lang="scss" scoped>
@@ -137,7 +155,7 @@ const handleClick = (tab: any, event: Event) => {
 
 .bottom-container {
   margin-top: 10px;
-  height: calc(100% - 70px);
+  height: calc(100% - 200px);
   //border: 1px solid #ccc;
 }
 

+ 1 - 1
src/views/pro-operation/check-out/roll-check.vue

@@ -265,7 +265,7 @@ defineExpose({
 
 .tableView {
   width: 100%;
-  height: calc(100vh - 370px);
+  height: calc(100vh - 420px);
   padding: 20px 0px;
   border-radius: 16px;
 }

+ 172 - 47
src/views/pro-operation/craft-file/index.vue

@@ -1,55 +1,99 @@
 <template>
-  <div style="padding: 0 20px">
-    <el-input
-      ref="inputRef"
-      class="keyInput"
-      v-model="keyword"
-      placeholder="请输入文件名称或文件编码,按回车键查询"
-      clearable="true"
-      @keyup.enter="getDatas"
-      @clear="getDatas"
-    >
-      <template #prefix>
-        <img src="@/assets/icons/search.svg" />
-      </template>
-    </el-input>
-    <el-table :data="fileDatas" class="tableView">
-      <el-table-column prop="craftName" label="文件名称" align="center" />
-      <el-table-column prop="craftCode" label="文档编码" align="center" />
-      <el-table-column prop="craftDeptId" label="发布部门" align="center">
-        <template #default="{ row }">
-          {{ row.craftDeptId == "1" ? "模块电路车间" : "微电子车间" }}
+  <el-drawer
+    v-model="carftVisible"
+    :close-on-click-modal="false"
+    destroy-on-close
+    direction="rtl"
+    size="990px"
+  >
+    <template #header>
+      <div class="drawerTitle">工艺文档</div>
+    </template>
+    <el-scrollbar>
+      <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="{ row, index, type }">
+          <el-button type="primary" link size="small" @click="toShowPDF(row)">
+            预览
+          </el-button>
         </template>
-      </el-table-column>
-      <el-table-column prop="publisherName" label="发布人" align="center" />
-      <el-table-column prop="addType" label="来源类型" align="center">
-        <template #default="{ row }">
-          {{ row.addType == "1" ? "PDM同步" : "手动维护" }}
+      </avue-crud>
+    </el-scrollbar>
+    <!-- <div style="padding: 0 20px">
+      <el-input
+        ref="inputRef"
+        class="keyInput"
+        v-model="keyword"
+        placeholder="请输入文件名称或文件编码,按回车键查询"
+        clearable="true"
+        @keyup.enter="getDatas"
+        @clear="getDatas"
+      >
+        <template #prefix>
+          <img src="@/assets/icons/search.svg" />
         </template>
-      </el-table-column>
-      <el-table-column label="操作" fixed="right" width="200">
-        <template #default="scope">
-          <el-button type="primary" link size="small" @click="toShowPDF(scope.row)"> 预览 </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <Pagination
-      v-model:limit="pageObj.pageSize"
-      v-model:page="pageObj.pageNo"
-      :position="'right'"
-      :total="pageObj.total"
-      @pagination="getDatas"
-    />
-  </div>
-  <PDFDrawerView ref="PDFDrawerViewRef"></PDFDrawerView>
+      </el-input>
+      <el-table :data="fileDatas" class="tableView">
+        <el-table-column prop="craftName" label="文件名称" align="center" />
+        <el-table-column prop="craftCode" label="文档编码" align="center" />
+        <el-table-column prop="craftDeptId" label="发布部门" align="center">
+          <template #default="{ row }">
+            {{ row.craftDeptId == "1" ? "模块电路车间" : "微电子车间" }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="publisherName" label="发布人" align="center" />
+        <el-table-column prop="addType" label="来源类型" align="center">
+          <template #default="{ row }">
+            {{ row.addType == "1" ? "PDM同步" : "手动维护" }}
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="200">
+          <template #default="scope">
+            <el-button
+              type="primary"
+              link
+              size="small"
+              @click="toShowPDF(scope.row)"
+            >
+              预览
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <Pagination
+        v-model:limit="pageObj.pageSize"
+        v-model:page="pageObj.pageNo"
+        :position="'right'"
+        :total="pageObj.total"
+        @pagination="getDatas"
+      />
+    </div> -->
+    <PDFDrawerView ref="PDFDrawerViewRef"></PDFDrawerView>
+  </el-drawer>
 </template>
 <script setup>
 import { getData } from "@/api/prosteps/craftfile.ts";
 import { useProcessStore } from "@/store";
+import { useCrud } from "@/hooks/userCrud";
 
 defineOptions({
   name: "craftfile",
 });
+
 const addKey = ref(false);
 const addStatus = ref(false);
 const srcList = ref([]);
@@ -65,9 +109,9 @@ const setSource = (row) => {
 const testFiles = () => {
   form.value.filePath = srcList.value[0];
 };
-const form = ref({
-  fileName: "",
-});
+// const form = ref({
+//   fileName: "",
+// });
 const formRef = ref(null);
 const rules = reactive({
   filePath: [{ required: true, trigger: "change" }],
@@ -156,9 +200,89 @@ const toShowPDF = (row) => {
   PDFDrawerViewRef.value && PDFDrawerViewRef.value.showPdf(url);
 };
 
-onMounted(() => {
-  getDatas();
+// 抽屉改造
+const carftVisible = ref(false);
+const openDrawer = () => {
+  getListData();
+  carftVisible.value = true;
+};
+
+const getListData = () => {
+  search.value.craftDeptId = 2;
+  dataList();
+};
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/base/craftFile",
+  });
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils;
+option.value = Object.assign(option.value, {
+  selection: false,
+  addBtn: false,
+  delBtn: false,
+  editBtn: false,
+  viewBtn: false,
+  indexWidth: 80,
+  gridSpan: 8,
+  column: [
+    {
+      label: "文件名称",
+      prop: "craftName",
+      search: true,
+      gridRow: true,
+    },
+    {
+      label: "文件编码",
+      prop: "craftCode",
+      gridRow: true,
+    },
+    {
+      label: "发布部门",
+      prop: "craftDeptId",
+      gridRow: true,
+      dicData: [
+        {
+          label: "模块电路车间",
+          value: "1",
+        },
+        {
+          label: "微电子车间",
+          value: "2",
+        },
+      ],
+    },
+    {
+      label: "发布人",
+      prop: "publisherName",
+      gridRow: true,
+    },
+    {
+      label: "来源类型",
+      prop: "addType",
+      gridRow: true,
+      dicData: [
+        {
+          label: "PDM同步",
+          value: "1",
+        },
+        {
+          label: "手动维护",
+          value: "2",
+        },
+      ],
+    },
+  ],
+});
+
+defineExpose({
+  openDrawer,
 });
+// onMounted(() => {
+//   getDatas();
+// });
 </script>
 <style lang="scss" scoped>
 .tableView {
@@ -205,7 +329,8 @@ onMounted(() => {
   color: #00000080;
 
   :deep(.el-input__wrapper) {
-    box-shadow: 0 0 0 0px var(--el-input-border-color, var(--el-border-color)) inset;
+    box-shadow: 0 0 0 0px var(--el-input-border-color, var(--el-border-color))
+      inset;
     cursor: default;
 
     .el-input__inner {

+ 137 - 17
src/views/pro-operation/drawing/index.vue

@@ -1,27 +1,83 @@
 <template>
-  <el-scrollbar>
-    <div class="grid-container">
-      <div v-for="(box, index) in drawingData" :key="index" class="suit-box">
-        <div class="pdf-box" @click="toShowPDF(box)">
-          <el-image class="pdf-box" :src="baseUrl + box.pdfPath + '.jpg'">
+  <el-drawer
+    v-model="drawerVisible"
+    :close-on-click-modal="false"
+    destroy-on-close
+    direction="rtl"
+    size="990px"
+  >
+    <template #header>
+      <div class="drawerTitle">图纸资料</div>
+    </template>
+    <el-scrollbar>
+      <!-- <div class="grid-container">
+        <div v-for="(box, index) in drawingData" :key="index" class="suit-box">
+          <div class="pdf-box" @click="toShowPDF(box)">
+            <el-image class="pdf-box" :src="baseUrl + box.pdfPath + '.jpg'">
+              <template #error>
+                <el-image class="pdf-box" :src="DefaultPDF" fit="cover" />
+              </template>
+            </el-image>
+    
+          </div>
+          <div class="suit-title">{{ box?.drawingTitle }}</div>
+          <div class="suit-desc">{{ box?.created }}</div>
+          <el-button
+            class="download-btn"
+            type="primary"
+            @click="download(box)"
+            :key="box.drawingPath"
+            >下载</el-button
+          >
+        </div>
+      </div> -->
+      <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 #img="{ row }">
+          <el-image class="pdf-box" :src="baseUrl + row.drawingPath">
             <template #error>
               <el-image class="pdf-box" :src="DefaultPDF" fit="cover" />
             </template>
           </el-image>
-          <!--          <PDFView :need-to-show-pdf="true" :pdf-source="baseUrl + box.pdfPath" />-->
-        </div>
-        <div class="suit-title">{{ box?.drawingTitle }}</div>
-        <div class="suit-desc">{{ box?.created }}</div>
-        <el-button class="download-btn" type="primary" @click="download(box)" :key="box.drawingPath">下载</el-button>
-      </div>
-    </div>
-  </el-scrollbar>
-  <PDFDrawerView ref="PDFDrawerViewRef"></PDFDrawerView>
+        </template>
+        <template #menu="{ row, index, type }">
+          <el-button @click="toShowPDF(row)" link type="primary" size="small"
+            >查看</el-button
+          >
+          <el-button
+            class="download-btn"
+            row
+            link
+            type="info"
+            @click="download(row)"
+            :key="row.drawingPath"
+            >下载</el-button
+          >
+        </template>
+      </avue-crud>
+    </el-scrollbar>
+    <PDFDrawerView ref="PDFDrawerViewRef"></PDFDrawerView>
+  </el-drawer>
 </template>
 
 <script lang="ts" setup>
 import { drawingList } from "@/api/process/reportBreak";
 import { useProcessStore } from "@/store/modules/processView";
+import { useCrud } from "@/hooks/userCrud";
 import PDFView from "@/components/PDFView/index.vue";
 import DefaultPDF from "@/assets/images/default-pdf.png";
 
@@ -30,11 +86,72 @@ const drawingData = ref<any>([]);
 
 const baseUrl = import.meta.env.VITE_APP_UPLOAD_URL;
 
-onMounted(() => {
-  drawingList({ materialCode: processStore.scanInfo.materialCode }).then((res) => {
-    drawingData.value = res.data;
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/base/drawing",
   });
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils;
+option.value = Object.assign(option.value, {
+  selection: false,
+  addBtn: false,
+  delBtn: false,
+  editBtn: false,
+  viewBtn: false,
+  indexWidth: 80,
+  grid: true,
+  gridSpan: 8,
+  gridBackground: (row, index) => {
+    if (index === 1) {
+      return "linear-gradient(to right, rgba(255,255,255,255.2), rgba(255,0,0,0.2))";
+    } else {
+      return "linear-gradient(to right, rgba(255,255,255,255.2), rgba(0,255,0,0.2))";
+    }
+  },
+  column: [
+    {
+      label: "编号",
+      prop: "drawingCode",
+      search: true,
+      gridRow: true,
+    },
+    {
+      label: "标题",
+      prop: "drawingTitle",
+      gridRow: true,
+    },
+    {
+      label: "文件名",
+      prop: "fileName",
+      gridRow: true,
+    },
+    {
+      label: "图片",
+      className: "imgbox",
+      prop: "img",
+      align: "center",
+    },
+  ],
 });
+const getListData = () => {
+  search.value.materialCode = processStore.scanInfo.materialCode;
+  dataList();
+};
+onMounted(() => {
+  // drawingList({ materialCode: processStore.scanInfo.materialCode }).then(
+  //   (res) => {
+  //     console.log("res", res);
+  //     drawingData.value = res.data;
+  //   }
+  // );
+});
+const drawerVisible = ref<boolean>(false);
+const openDrawer = () => {
+  getListData();
+  drawerVisible.value = true;
+};
 
 const downloadBtnLoading = ref(false);
 const download = async (row: any) => {
@@ -67,6 +184,9 @@ const toShowPDF = (row) => {
   let url = import.meta.env.VITE_APP_UPLOAD_URL + row.pdfPath;
   PDFDrawerViewRef.value && PDFDrawerViewRef.value.showPdf(url);
 };
+defineExpose({
+  openDrawer,
+});
 </script>
 
 <style lang="scss" scoped>

+ 153 - 33
src/views/pro-operation/pdm-file/index.vue

@@ -1,42 +1,87 @@
 <template>
-  <div style="padding: 0 20px">
-    <el-table :data="fileDatas" class="tableView">
-      <el-table-column prop="fileName" label="文件名称" align="center" />
-      <el-table-column prop="fileCode" label="文档编码" align="center" />
-      <el-table-column prop="materialCode" label="物料编码" align="center" />
-      <el-table-column prop="sourceType" label="来源类型" align="center">
-        <template #default="{ row }">
-          {{ row.sourceType == "1" ? "PDM同步" : "手动维护" }}
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" fixed="right" width="200">
-        <template #default="scope">
-          <PDFView
-            :need-to-show-pdf="true"
-            content-type="button"
-            :is-link="true"
-            :pdf-source="setSource(scope.row)"
-          />
-        </template>
-      </el-table-column>
-    </el-table>
-    <Pagination
-      v-model:limit="pageObj.pageSize"
-      v-model:page="pageObj.pageNo"
-      :position="'right'"
-      :total="pageObj.total"
-      @pagination="getDatas"
-    />
-  </div>
+  <el-drawer
+    v-model="drawerVisible"
+    :close-on-click-modal="false"
+    destroy-on-close
+    direction="rtl"
+    size="990px"
+  >
+    <template #header>
+      <div class="drawerTitle">产品文档</div>
+    </template>
+    <!-- <div style="padding: 0 20px">
+      <el-table :data="fileDatas" class="tableView">
+        <el-table-column prop="fileName" label="文件名称" align="center" />
+        <el-table-column prop="fileCode" label="文档编码" align="center" />
+        <el-table-column prop="materialCode" label="物料编码" align="center" />
+        <el-table-column prop="sourceType" label="来源类型" align="center">
+          <template #default="{ row }">
+            {{ row.sourceType == "1" ? "PDM同步" : "手动维护" }}
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="200">
+          <template #default="scope">
+            <PDFView
+              :need-to-show-pdf="true"
+              content-type="button"
+              :is-link="true"
+              :pdf-source="setSource(scope.row)"
+            />
+          </template>
+        </el-table-column>
+      </el-table>
+      <Pagination
+        v-model:limit="pageObj.pageSize"
+        v-model:page="pageObj.pageNo"
+        :position="'right'"
+        :total="pageObj.total"
+        @pagination="getDatas"
+      />
+    </div> -->
+    <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="{ row, index, type }">
+        <el-button @click="toShowPDF(row)" link type="primary" size="small"
+          >查看</el-button
+        >
+        <!-- <el-button
+          class="download-btn"
+          row
+          link
+          type="info"
+          @click="download(row)"
+          :key="row.drawingPath"
+          >下载</el-button
+        > -->
+      </template>
+    </avue-crud>
+    <PDFDrawerView ref="PDFDrawerViewRef"></PDFDrawerView>
+  </el-drawer>
 </template>
 <script setup>
 import { getData, delData } from "@/api/prosteps/pdmfile.ts";
 import { useProcessStore } from "@/store";
 import { downloadFile } from "@/utils/downLoad";
-
+import { useCrud } from "@/hooks/userCrud";
+import DefaultPDF from "@/assets/images/default-pdf.png";
 defineOptions({
   name: "Gongxuwenjian",
 });
+const drawerVisible = ref(false);
 const addKey = ref(false);
 const addStatus = ref(false);
 const srcList = ref([]);
@@ -49,12 +94,18 @@ const setSource = (row) => {
     return filePath + row.filePath;
   }
 };
+const PDFDrawerViewRef = ref(null);
+const toShowPDF = (row) => {
+  let url = import.meta.env.VITE_APP_UPLOAD_URL + row.filePath;
+  console.log("PDF URL:", url);
+  PDFDrawerViewRef.value.showPdf(url);
+};
 const testFiles = () => {
   form.value.filePath = srcList.value[0];
 };
-const form = ref({
-  fileName: "",
-});
+// const form = ref({
+//   fileName: "",
+// });
 const formRef = ref(null);
 const rules = reactive({
   filePath: [{ required: true, trigger: "change" }],
@@ -133,6 +184,75 @@ const getDatas = async () => {
 onMounted(() => {
   getDatas();
 });
+
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/process/processFile",
+  });
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils;
+option.value = Object.assign(option.value, {
+  selection: false,
+  addBtn: false,
+  delBtn: false,
+  editBtn: false,
+  viewBtn: false,
+  indexWidth: 80,
+
+  gridSpan: 8,
+  gridBackground: (row, index) => {
+    if (index === 1) {
+      return "linear-gradient(to right, rgba(255,255,255,255.2), rgba(255,0,0,0.2))";
+    } else {
+      return "linear-gradient(to right, rgba(255,255,255,255.2), rgba(0,255,0,0.2))";
+    }
+  },
+  column: [
+    {
+      label: "文件名称",
+      prop: "fileName",
+      gridRow: true,
+    },
+    {
+      label: "文档编码",
+      prop: "fileCode",
+      gridRow: true,
+    },
+    {
+      label: "物料编码",
+      prop: "materialCode",
+      gridRow: true,
+    },
+    {
+      label: "来源类型",
+      prop: "sourceType",
+      gridRow: true,
+      dicData: [
+        {
+          label: "PDM同步",
+          value: "1",
+        },
+        {
+          label: "手动维护",
+          value: "2",
+        },
+      ],
+    },
+  ],
+});
+const openDrawer = () => {
+  getListData();
+  drawerVisible.value = true;
+};
+const getListData = () => {
+  search.value.materialCode = store.scanInfo.materialCode;
+  dataList();
+};
+defineExpose({
+  openDrawer,
+});
 </script>
 <style lang="scss" scoped>
 .tableView {

+ 29 - 10
src/views/pro-operation/printing-plate/index.vue

@@ -1,19 +1,38 @@
 <template>
-  <div class="mainContentBox">
-    <el-row :gutter="20">
-      <el-col :span="10" class="elColClasss">
-        <Create />
-      </el-col>
-      <el-col :span="14" class="elColClasss">
-        <Record />
-      </el-col>
-    </el-row>
-  </div>
+  <el-drawer
+    v-model="removeVisible"
+    :close-on-click-modal="false"
+    destroy-on-close
+    direction="rtl"
+    size="1200px"
+    style="background-color: #f1f3f5"
+  >
+    <template #header>
+      <div class="drawerTitle">印刷板</div>
+    </template>
+    <div class="mainContentBox">
+      <el-row :gutter="20">
+        <el-col :span="10" class="elColClasss">
+          <Create />
+        </el-col>
+        <el-col :span="14" class="elColClasss">
+          <Record />
+        </el-col>
+      </el-row>
+    </div>
+  </el-drawer>
 </template>
 
 <script lang="ts" setup>
 import Create from "@/views/pro-operation/printing-plate/create.vue";
 import Record from "@/views/pro-operation/printing-plate/record.vue";
+const removeVisible = ref(false);
+const openDrawer = () => {
+  removeVisible.value = true;
+};
+defineExpose({
+  openDrawer,
+});
 </script>
 
 <style lang="scss" scoped></style>

+ 195 - 140
src/views/pro-operation/remove/index.vue

@@ -1,137 +1,172 @@
 <template>
-  <div class="body">
-    <!-- 剔除 -->
+  <el-drawer
+    v-model="removeVisible"
+    :close-on-click-modal="false"
+    destroy-on-close
+    direction="rtl"
+    size="990px"
+    style="background-color: #f1f3f5"
+  >
+    <template #header>
+      <div class="drawerTitle">剔除</div>
+    </template>
+    <div class="body">
+      <!-- 剔除 -->
 
-    <el-scrollbar class="containerBox">
-      <div style="margin-bottom: 10px; display: flex" :style="{ justifyContent: !formStatus ? 'center' : '' }">
-        <el-button type="primary" style="font-size: 16px" v-if="formStatus" @click="toAdd">新增</el-button>
-        <el-button type="primary" v-else @click="toList">返回</el-button>
-      </div>
+      <el-scrollbar class="containerBox">
+        <div
+          style="margin-bottom: 10px; display: flex"
+          :style="{ justifyContent: !formStatus ? 'center' : '' }"
+        >
+          <el-button
+            type="primary"
+            style="font-size: 16px"
+            v-if="formStatus"
+            @click="toAdd"
+            >新增</el-button
+          >
+          <el-button type="primary" v-else @click="toList">返回</el-button>
+        </div>
 
-      <template v-if="formStatus">
-        <el-table class="table" :data="tableData">
-          <el-table-column label="物料名称" prop="materialName" />
-          <el-table-column label="状态" prop="state">
-            <template #default="scope">
-              <span v-if="scope.row.state == '0'">待处理</span>
-              <span v-else-if="scope.row.state == '1'">已完成</span>
-              <span v-else-if="scope.row.state == '-1'">审核驳回</span>
-              <span v-else-if="scope.row.state == '3'">审核中</span>
-              <span v-else-if="scope.row.state == '2'">撤销</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="操作">
-            <template #default="{ row }">
-              <el-button
-                v-if="row.state != '1' && row.state != 3"
-                link
-                type="danger"
-                @click="del(row.id)"
-                style="font-size: 20px"
-                >删除</el-button
-              >
-            </template>
-          </el-table-column>
-        </el-table>
-        <Pagination
-          v-model:limit="limit"
-          v-model:page="page"
-          :position="'right'"
-          :total="total"
-          @pagination="getPagination1"
-        />
-      </template>
-      <template v-else>
-        <el-scrollbar class="form">
-          <el-form ref="ruleFormRef1" :model="ruleForm1" :rules="rules1" label-width="100">
-            <el-form-item
-              label="流转卡号"
-              prop="seqs"
-              :rules="{
-                required: true,
-                trigger: 'change',
-              }"
-            >
-              <el-select v-model="ruleForm1.seqs" multiple placeholder="请选择" value-key="value">
-                <el-option v-for="item in processList" :key="item" :label="item" :value="item" />
-              </el-select>
-            </el-form-item>
-            <el-form-item
-              label="发生地点"
-              prop="address"
-              :rules="{
-                required: true,
-                trigger: 'change',
-              }"
-            >
-              <el-input v-model="ruleForm1.address" />
-            </el-form-item>
-            <el-form-item
-              label="数量"
-              prop="remark1[num]"
-              :rules="{
-                required: true,
-                trigger: 'change',
-              }"
-            >
-              <el-input v-model="ruleForm1.remark1.num" />
-            </el-form-item>
-            <el-form-item
-              label="问题描述"
-              prop="remark1[content]"
-              :rules="{
-                required: true,
-                trigger: 'change',
-              }"
+        <template v-if="formStatus">
+          <el-table class="table" :data="tableData">
+            <el-table-column label="物料名称" prop="materialName" />
+            <el-table-column label="状态" prop="state">
+              <template #default="scope">
+                <span v-if="scope.row.state == '0'">待处理</span>
+                <span v-else-if="scope.row.state == '1'">已完成</span>
+                <span v-else-if="scope.row.state == '-1'">审核驳回</span>
+                <span v-else-if="scope.row.state == '3'">审核中</span>
+                <span v-else-if="scope.row.state == '2'">撤销</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作">
+              <template #default="{ row }">
+                <el-button
+                  v-if="row.state != '1' && row.state != 3"
+                  link
+                  type="danger"
+                  @click="del(row.id)"
+                  style="font-size: 20px"
+                  >删除</el-button
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+          <Pagination
+            v-model:limit="limit"
+            v-model:page="page"
+            :position="'right'"
+            :total="total"
+            @pagination="getPagination1"
+          />
+        </template>
+        <template v-else>
+          <el-scrollbar class="form">
+            <el-form
+              ref="ruleFormRef1"
+              :model="ruleForm1"
+              :rules="rules1"
+              label-width="100"
             >
-              <el-input type="textarea" v-model="ruleForm1.remark1.content" />
-            </el-form-item>
-            <el-form-item
-              label="审理级别:"
-              prop="remark1[lv]"
-              :rules="{
-                required: true,
-                trigger: 'change',
-              }"
-            >
-              <el-radio-group v-model="ruleForm1.remark1.lv">
-                <el-radio value="1">一级</el-radio>
-                <el-radio value="2">二级</el-radio>
-              </el-radio-group>
-            </el-form-item>
-            <el-form-item
-              label="填表人"
-              prop="remark1[user1]"
-              :rules="{
-                required: true,
-                trigger: 'change',
-              }"
-            >
-              <el-tree-select
-                v-model="ruleForm1.remark1.user1"
-                :data="userList"
-                placeholder="请选择人员"
-                :default-expand-all="false"
-                filterable
-                clearable
-              />
-            </el-form-item>
-            <el-form-item
-              label="发生日期"
-              prop="remark1[time]"
-              :rules="{
-                required: true,
-                trigger: 'change',
-              }"
-            >
-              <el-date-picker
-                v-model="ruleForm1.remark1.time"
-                type="date"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
-              />
-            </el-form-item>
-            <!--            <el-form-item
+              <el-form-item
+                label="流转卡号"
+                prop="seqs"
+                :rules="{
+                  required: true,
+                  trigger: 'change',
+                }"
+              >
+                <el-select
+                  v-model="ruleForm1.seqs"
+                  multiple
+                  placeholder="请选择"
+                  value-key="value"
+                >
+                  <el-option
+                    v-for="item in processList"
+                    :key="item"
+                    :label="item"
+                    :value="item"
+                  />
+                </el-select>
+              </el-form-item>
+              <el-form-item
+                label="发生地点"
+                prop="address"
+                :rules="{
+                  required: true,
+                  trigger: 'change',
+                }"
+              >
+                <el-input v-model="ruleForm1.address" />
+              </el-form-item>
+              <el-form-item
+                label="数量"
+                prop="remark1[num]"
+                :rules="{
+                  required: true,
+                  trigger: 'change',
+                }"
+              >
+                <el-input v-model="ruleForm1.remark1.num" />
+              </el-form-item>
+              <el-form-item
+                label="问题描述"
+                prop="remark1[content]"
+                :rules="{
+                  required: true,
+                  trigger: 'change',
+                }"
+              >
+                <el-input type="textarea" v-model="ruleForm1.remark1.content" />
+              </el-form-item>
+              <el-form-item
+                label="审理级别:"
+                prop="remark1[lv]"
+                :rules="{
+                  required: true,
+                  trigger: 'change',
+                }"
+              >
+                <el-radio-group v-model="ruleForm1.remark1.lv">
+                  <el-radio value="1">一级</el-radio>
+                  <el-radio value="2">二级</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item
+                label="填表人"
+                prop="remark1[user1]"
+                :rules="{
+                  required: true,
+                  trigger: 'change',
+                }"
+              >
+                <el-tree-select
+                  v-model="ruleForm1.remark1.user1"
+                  :data="userList"
+                  placeholder="请选择人员"
+                  :default-expand-all="false"
+                  filterable
+                  clearable
+                />
+              </el-form-item>
+              <el-form-item
+                label="发生日期"
+                prop="remark1[time]"
+                :rules="{
+                  required: true,
+                  trigger: 'change',
+                }"
+              >
+                <el-date-picker
+                  v-model="ruleForm1.remark1.time"
+                  type="date"
+                  format="YYYY-MM-DD"
+                  value-format="YYYY-MM-DD"
+                />
+              </el-form-item>
+              <!--            <el-form-item
               label="指定检验人"
               prop="remark2[user2]"
               :rules="{
@@ -148,24 +183,36 @@
                 clearable
               />
             </el-form-item>-->
-          </el-form>
-        </el-scrollbar>
-        <div class="btns">
-          <el-button type="primary" @click="submit1">提交</el-button>
-        </div>
-      </template>
-    </el-scrollbar>
-  </div>
+            </el-form>
+          </el-scrollbar>
+          <div class="btns">
+            <el-button type="primary" @click="submit1">提交</el-button>
+          </div>
+        </template>
+      </el-scrollbar>
+    </div>
+  </el-drawer>
 </template>
 
 <script setup>
-import { breakReportInfoById, operationListByIds } from "@/api/process/reportBreak";
-import { addRework, addRework1, getList, getList1, delError } from "@/api/rework";
+import {
+  breakReportInfoById,
+  operationListByIds,
+} from "@/api/process/reportBreak";
+import {
+  addRework,
+  addRework1,
+  getList,
+  getList1,
+  delError,
+} from "@/api/rework";
 import { useProcessStore } from "@/store/modules/processView";
 import { useDictionaryStore } from "@/store/modules/dictionary";
 import { getUserTree } from "@/api/user/index";
 import { getunProcessedList } from "@/api/prosteps/index.js";
 const dictStroe = useDictionaryStore();
+const removeVisible = ref(false);
+
 const processStore = useProcessStore();
 const ruleForm = ref({
   seqList: [],
@@ -291,8 +338,16 @@ const queryUserList = () => {
   });
 };
 onMounted(() => {
+  // getPagination1();
+  // queryUserList();
+});
+const openDrawer = () => {
+  removeVisible.value = true;
   getPagination1();
   queryUserList();
+};
+defineExpose({
+  openDrawer,
 });
 </script>
 

+ 163 - 143
src/views/pro-operation/rework/index.vue

@@ -1,152 +1,164 @@
 <template>
-  <div class="body">
-    <!-- 返工 -->
-    <el-scrollbar class="containerBox">
-      <div
-        style="margin-bottom: 10px; display: flex"
-        :style="{ justifyContent: !formStatus ? 'center' : '' }"
-      >
-        <el-button
-          type="primary"
-          style="font-size: 16px"
-          v-if="formStatus"
-          @click="toAdd"
-          >新增</el-button
+  <el-drawer
+    v-model="removeVisible"
+    :close-on-click-modal="false"
+    destroy-on-close
+    direction="rtl"
+    size="990px"
+    style="background-color: #f1f3f5"
+  >
+    <template #header>
+      <div class="drawerTitle">返工</div>
+    </template>
+    <div class="body">
+      <!-- 返工 -->
+      <el-scrollbar class="containerBox">
+        <div
+          style="margin-bottom: 10px; display: flex"
+          :style="{ justifyContent: !formStatus ? 'center' : '' }"
         >
-        <el-button type="primary" v-else @click="toList">返回</el-button>
-      </div>
+          <el-button
+            type="primary"
+            style="font-size: 16px"
+            v-if="formStatus"
+            @click="toAdd"
+            >新增</el-button
+          >
+          <el-button type="primary" v-else @click="toList">返回</el-button>
+        </div>
 
-      <template v-if="formStatus">
-        <el-table class="table" :data="tableData">
-          <el-table-column label="物料名称" prop="materialName" />
-          <el-table-column label="管号" prop="seqNos" />
-          <el-table-column label="数量" prop="num" />
-          <el-table-column label="返工原因" prop="reason" />
-          <el-table-column label="返工内容" prop="remark" />
-          <el-table-column label="状态" prop="flowState">
-            <template #default="scope">
-              <span v-if="scope.row.flowState == '0'">待处理</span>
-              <span v-else-if="scope.row.flowState == '1'">已完成</span>
-              <span v-else-if="scope.row.flowState == '-1'">审核驳回</span>
-              <span v-else-if="scope.row.flowState == '3'">审核中</span>
-              <span v-else-if="scope.row.flowState == '2'">撤销</span>
-            </template>
-          </el-table-column>
-        </el-table>
-        <Pagination
-          v-model:limit="limit"
-          v-model:page="page"
-          :position="'right'"
-          :total="total"
-          @pagination="getPagination"
-        />
-      </template>
-      <template v-else>
-        <el-scrollbar class="form">
-          <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules">
-            <el-form-item
-              :label="`流转卡号数量[${ruleForm.seqList.length}]`"
-              prop="seqList"
-              :rules="{
-                required: true,
-                trigger: 'change',
-              }"
-            >
-              <el-select
-                v-model="ruleForm.seqList"
-                multiple
-                placeholder="请选择"
-                value-key="value"
-                @change="selectProcessWorkSeqChange"
+        <template v-if="formStatus">
+          <el-table class="table" :data="tableData">
+            <el-table-column label="物料名称" prop="materialName" />
+            <el-table-column label="管号" prop="seqNos" />
+            <el-table-column label="数量" prop="num" />
+            <el-table-column label="返工原因" prop="reason" />
+            <el-table-column label="返工内容" prop="remark" />
+            <el-table-column label="状态" prop="flowState">
+              <template #default="scope">
+                <span v-if="scope.row.flowState == '0'">待处理</span>
+                <span v-else-if="scope.row.flowState == '1'">已完成</span>
+                <span v-else-if="scope.row.flowState == '-1'">审核驳回</span>
+                <span v-else-if="scope.row.flowState == '3'">审核中</span>
+                <span v-else-if="scope.row.flowState == '2'">撤销</span>
+              </template>
+            </el-table-column>
+          </el-table>
+          <Pagination
+            v-model:limit="limit"
+            v-model:page="page"
+            :position="'right'"
+            :total="total"
+            @pagination="getPagination"
+          />
+        </template>
+        <template v-else>
+          <el-scrollbar class="form">
+            <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules">
+              <el-form-item
+                :label="`流转卡号数量[${ruleForm.seqList.length}]`"
+                prop="seqList"
+                :rules="{
+                  required: true,
+                  trigger: 'change',
+                }"
               >
-                <el-option
-                  v-for="item in processList"
-                  :key="item"
-                  :label="item"
-                  :value="item"
-                />
-              </el-select>
-            </el-form-item>
-            <el-form-item
-              label="返工工序"
-              prop="itemList"
-              :rules="{
-                required: true,
-                trigger: 'burl',
-              }"
-            >
-              <el-select
-                v-model="ruleForm.itemList"
-                multiple
-                placeholder="请选择"
-                value-key="operationId"
+                <el-select
+                  v-model="ruleForm.seqList"
+                  multiple
+                  placeholder="请选择"
+                  value-key="value"
+                  @change="selectProcessWorkSeqChange"
+                >
+                  <el-option
+                    v-for="item in processList"
+                    :key="item"
+                    :label="item"
+                    :value="item"
+                  />
+                </el-select>
+              </el-form-item>
+              <el-form-item
+                label="返工工序"
+                prop="itemList"
+                :rules="{
+                  required: true,
+                  trigger: 'burl',
+                }"
+              >
+                <el-select
+                  v-model="ruleForm.itemList"
+                  multiple
+                  placeholder="请选择"
+                  value-key="operationId"
+                >
+                  <el-option
+                    v-for="item in operationList"
+                    :key="item.operationId"
+                    :label="item.operationName"
+                    :value="item"
+                  />
+                </el-select>
+              </el-form-item>
+              <el-form-item label="选择返工信息(可选)">
+                <el-select v-model="infoIndex" placeholder="请选择" filterable>
+                  <el-option
+                    v-for="(item, index) in ReworkTempList"
+                    :key="item.id"
+                    :label="item.code"
+                    :value="index"
+                  />
+                </el-select>
+              </el-form-item>
+              <el-form-item
+                label="返工原因"
+                prop="reason"
+                :rules="{
+                  required: true,
+                  trigger: 'change',
+                }"
               >
-                <el-option
-                  v-for="item in operationList"
-                  :key="item.operationId"
-                  :label="item.operationName"
-                  :value="item"
+                <el-input v-model="ruleForm.reason" />
+              </el-form-item>
+              <el-form-item
+                label="返工内容"
+                prop="remark"
+                :rules="{
+                  required: true,
+                  trigger: 'change',
+                }"
+              >
+                <el-input v-model="ruleForm.remark" />
+              </el-form-item>
+            </el-form>
+
+            <el-form ref="flowFormRef" v-model="flowForm" label-width="100px">
+              <el-form-item label="选择流程模板">
+                <el-tree-select
+                  v-model="flowForm.definitionId"
+                  :data="flowDataList"
+                  filterable
+                  :props="{ label: 'flowName', value: 'id' }"
+                  @change="whenSelectFlow"
                 />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="选择返工信息(可选)">
-              <el-select v-model="infoIndex" placeholder="请选择" filterable>
-                <el-option
-                  v-for="(item, index) in ReworkTempList"
-                  :key="item.id"
-                  :label="item.code"
-                  :value="index"
+              </el-form-item>
+              <el-form-item :label="name" v-if="name">
+                <el-tree-select
+                  v-model="flowForm.users"
+                  :data="nextUserList"
+                  filterable
+                  :props="{ label: 'userName', value: 'userName' }"
                 />
-              </el-select>
-            </el-form-item>
-            <el-form-item
-              label="返工原因"
-              prop="reason"
-              :rules="{
-                required: true,
-                trigger: 'change',
-              }"
-            >
-              <el-input v-model="ruleForm.reason" />
-            </el-form-item>
-            <el-form-item
-              label="返工内容"
-              prop="remark"
-              :rules="{
-                required: true,
-                trigger: 'change',
-              }"
-            >
-              <el-input v-model="ruleForm.remark" />
-            </el-form-item>
-          </el-form>
-
-          <el-form ref="flowFormRef" v-model="flowForm" label-width="100px">
-            <el-form-item label="选择流程模板">
-              <el-tree-select
-                v-model="flowForm.definitionId"
-                :data="flowDataList"
-                filterable
-                :props="{ label: 'flowName', value: 'id' }"
-                @change="whenSelectFlow"
-              />
-            </el-form-item>
-            <el-form-item :label="name" v-if="name">
-              <el-tree-select
-                v-model="flowForm.users"
-                :data="nextUserList"
-                filterable
-                :props="{ label: 'userName', value: 'userName' }"
-              />
-            </el-form-item>
-          </el-form>
-        </el-scrollbar>
-        <div class="btns">
-          <el-button type="primary" @click="submit">提交</el-button>
-        </div>
-      </template>
-    </el-scrollbar>
-  </div>
+              </el-form-item>
+            </el-form>
+          </el-scrollbar>
+          <div class="btns">
+            <el-button type="primary" @click="submit">提交</el-button>
+          </div>
+        </template>
+      </el-scrollbar>
+    </div>
+  </el-drawer>
 </template>
 
 <script setup lang="ts">
@@ -171,6 +183,7 @@ import {
   queryFlowDataList,
 } from "@/api/prosteps/index.js";
 const dictStroe = useDictionaryStore();
+const removeVisible = ref(false);
 const processStore = useProcessStore();
 const infoIndex = ref(null);
 const ruleForm = ref({
@@ -307,10 +320,17 @@ watch(infoIndex, (val) => {
   }
 });
 onMounted(() => {
+  // getPagination();
+  // getReworkTempList();
+});
+const openDrawer = () => {
+  removeVisible.value = true;
   getPagination();
   getReworkTempList();
+};
+defineExpose({
+  openDrawer,
 });
-
 // 流程定义的列表
 const flowDataList = ref<any[]>([]);
 const getFlowList = () => {

+ 39 - 10
src/views/pro-steps/components/operates.vue

@@ -15,6 +15,14 @@
     <ReportBreak ref="reportBreakRef" />
     <ReportWork ref="reportWorkRef" />
     <Jianyanpihao ref="jianyanpihaoRef" />
+    <Drawing ref="drawingsRef" />
+    <Craft ref="craftRef" />
+    <CheckOut ref="checkoutRef" />
+    <Remove ref="removeRef" />
+    <Rework ref="reworkRef" />
+    <Printing ref="printingRef" />
+    <Pdmfile ref="pdmfileRef" />
+    <Appoint ref="appointRef" />
   </div>
 </template>
 
@@ -22,6 +30,14 @@
 import ReportBreak from "@/views/pro-operation/report-break/index.vue"; // ================ 报故
 import ReportWork from "@/views/pro-operation/report-work/index.vue";
 import Jianyanpihao from "@/views/pro-operation/jianyanpihao/index.vue";
+import Drawing from "@/views/pro-operation/drawing/index.vue";
+import Craft from "@/views/pro-operation/craft-file/index.vue";
+import CheckOut from "@/views/pro-operation/check-out/index.vue";
+import Remove from "@/views/pro-operation/remove/index.vue";
+import Rework from "@/views/pro-operation/rework/index.vue";
+import Printing from "@/views/pro-operation/printing-plate/index.vue";
+import Pdmfile from "@/views/pro-operation/pdm-file/index.vue";
+import Appoint from "@/views/pro-operation/appoint-out/index.vue";
 import { useProcessStore } from "@/store";
 
 const store = useProcessStore();
@@ -34,6 +50,14 @@ const reportWorkRef = ref<InstanceType<typeof ReportWork>>();
 const router = useRouter();
 const jianyanpihaoRef = ref(null);
 const selectIndex = ref(null);
+const drawingsRef = ref(null);
+const craftRef = ref(null);
+const checkoutRef = ref(null);
+const removeRef = ref(null);
+const reworkRef = ref(null);
+const printingRef = ref(null);
+const pdmfileRef = ref(null);
+const appointRef = ref(null);
 const setIndex = (index: number) => {
   // selectIndex.value = index;
   switch (stepComponents.value[index].compentType) {
@@ -50,31 +74,31 @@ const setIndex = (index: number) => {
       router.push({ name: "material-flow" });
       break;
     case "tuzhi":
-      router.push({ name: "drawing-list" });
+      drawingsRef.value?.openDrawer();
       break;
     case "weiwai":
-      router.push({ name: "appoint-out" });
+      appointRef.value?.openDrawer();
       break;
     case "fangong":
-      router.push({ name: "rework" });
+      reworkRef.value?.openDrawer();
       break;
     case "tichu":
-      router.push({ name: "remove" });
+      removeRef.value?.openDrawer();
       break;
     case "baogong":
       reportWorkRef.value?.openReportWorkDrawer();
       break;
     case "xunjian":
-      router.push({ name: "checkOut" });
+      checkoutRef.value?.openDrawer();
       break;
     case "printboard":
-      router.push({ name: "printing-plate" });
+      printingRef.value.openDrawer();
       break;
     case "pdmfile":
-      router.push({ name: "pdmfile" });
+      pdmfileRef.value.openDrawer();
       break;
     case "craftfile":
-      router.push({ name: "craft-file" });
+      craftRef.value?.openDrawer();
       break;
     case "jianyanpihao":
       //@ts-ignore
@@ -146,8 +170,13 @@ const setComponents = () => {
   //     compentType: "pdmfile",
   //   });
   // }
-  if (store.odersData.operationType == "SX" || store.odersData.operationType == "RX") {
-    stepComponents.value = stepComponents.value.filter((item) => item.compentName !== "返工");
+  if (
+    store.odersData.operationType == "SX" ||
+    store.odersData.operationType == "RX"
+  ) {
+    stepComponents.value = stepComponents.value.filter(
+      (item) => item.compentName !== "返工"
+    );
   }
 };
 onMounted(async () => {