Prechádzať zdrojové kódy

修改统计报告页面

luoxiao 2 mesiacov pred
rodič
commit
216ea7df36

+ 12 - 0
src/api/statistic/reportMockData.ts

@@ -9,6 +9,7 @@ export const getMockData = async () => {
       reportType: "1",
       creator: "张三",
       created: "2025-03-22",
+      genDate: "2025-03-22",
     },
     {
       id: 2,
@@ -17,6 +18,7 @@ export const getMockData = async () => {
       reportType: "2",
       creator: "李四",
       created: "2025-03-22",
+      genDate: "2025-03",
     },
     {
       id: 3,
@@ -25,6 +27,7 @@ export const getMockData = async () => {
       reportType: "1",
       creator: "王五",
       created: "2025-03-22",
+      genDate: "2025-03-22",
     },
     {
       id: 4,
@@ -33,6 +36,7 @@ export const getMockData = async () => {
       reportType: "2",
       creator: "赵六",
       created: "2025-03-22",
+      genDate: "2025-03",
     },
     {
       id: 5,
@@ -41,6 +45,7 @@ export const getMockData = async () => {
       reportType: "1",
       creator: "孙七",
       created: "2025-03-22",
+      genDate: "2025-03-22",
     },
     {
       id: 6,
@@ -49,6 +54,7 @@ export const getMockData = async () => {
       reportType: "2",
       creator: "周八",
       created: "2025-03-22",
+      genDate: "2025-03",
     },
     {
       id: 7,
@@ -57,6 +63,7 @@ export const getMockData = async () => {
       reportType: "1",
       creator: "吴九",
       created: "2025-03-22",
+      genDate: "2025-03-22",
     },
     {
       id: 8,
@@ -65,6 +72,7 @@ export const getMockData = async () => {
       reportType: "2",
       creator: "郑十",
       created: "2025-03-22",
+      genDate: "2025-03",
     },
     {
       id: 9,
@@ -73,6 +81,7 @@ export const getMockData = async () => {
       reportType: "1",
       creator: "冯十一",
       created: "2025-03-22",
+      genDate: "2025-03-22",
     },
     {
       id: 10,
@@ -81,6 +90,7 @@ export const getMockData = async () => {
       reportType: "2",
       creator: "陈十二",
       created: "2025-03-22",
+      genDate: "2025-03",
     },
     {
       id: 11,
@@ -89,6 +99,7 @@ export const getMockData = async () => {
       reportType: "1",
       creator: "褚十三",
       created: "2025-03-22",
+      genDate: "2025-03-22",
     },
     {
       id: 12,
@@ -97,6 +108,7 @@ export const getMockData = async () => {
       reportType: "2",
       creator: "卫十四",
       created: "2025-03-22",
+      genDate: "2025-03",
     },
   ];
   return {

+ 39 - 3
src/views/statistic/report/index.vue

@@ -29,6 +29,7 @@
             {{ row.reportType === "1" ? "日报" : "月报" }}
           </template>
         </el-table-column>
+        <el-table-column prop="genDate" label="生成日期" />
         <el-table-column prop="creator" label="创建人" />
         <el-table-column prop="created" label="创建时间" />
         <el-table-column
@@ -96,14 +97,39 @@
               />
             </el-select>
           </el-form-item>
+          <el-form-item label="选择生成日期" prop="genDate">
+            <el-date-picker
+              v-model="formData.genDate"
+              type="date"
+              placeholder="选择日期"
+              style="width: 100%"
+              v-if="formData.reportType == 1"
+            />
+            <el-date-picker
+              v-model="formData.genDate"
+              type="month"
+              placeholder="选择日期"
+              style="width: 100%"
+              v-if="formData.reportType == 2"
+            />
+          </el-form-item>
           <el-form-item label="产品型号" prop="prodtCode">
-            <el-input v-model="formData.prodtCode" />
+            <el-input
+              v-model="formData.prodtCode"
+              @click="openChoseForm('prodt')"
+            />
           </el-form-item>
           <el-form-item label="产品批次" prop="batchNo">
-            <el-input v-model="formData.batchNo" />
+            <el-input
+              v-model="formData.batchNo"
+              @click="openChoseForm('batch')"
+            />
           </el-form-item>
           <el-form-item label="产品工序" prop="operationCode">
-            <el-input v-model="formData.operationCode" />
+            <el-input
+              v-model="formData.operationCode"
+              @click="openChoseForm('operation')"
+            />
           </el-form-item>
           <el-form-item label="创建人" prop="creator">
             <el-input v-model="formData.creator" />
@@ -130,6 +156,7 @@
       </el-scrollbar>
     </div>
     <reportTemplate v-model="showStatus" :tablesData="tablesData" />
+    <operationForm ref="opRef" />
   </div>
 </template>
 
@@ -140,6 +167,7 @@ import { useDictionaryStore } from "@/store";
 import { getData } from "@/api/report";
 import Pagination from "@/components/Pagination/index.vue";
 import { getMockData } from "@/api/statistic/reportMockData";
+import operationForm from "./operationForm.vue";
 const searchref = ref(null);
 const showPrint = () => {
   showStatus.value = true;
@@ -232,6 +260,7 @@ const toEdit = (row) => {
   formData.reportCode = row.reportCode;
   formData.reportName = row.reportName;
   formData.reportType = row.reportType;
+  formData.genDate = row.genDate;
   formData.creator = row.creator;
   formData.prodtCode = row.prodtCode;
   formData.batchNo = row.batchNo;
@@ -281,6 +310,13 @@ const searchOptons = [
     options: reportTypeOptions.value,
   },
 ];
+
+const opRef = ref(null);
+const openChoseForm = (type) => {
+  opRef.value.open(type);
+};
+
+//------------------
 const maxHeight = ref(null);
 const setHeight = () => {
   maxHeight.value = document.querySelector(".table").clientHeight - 30;

+ 163 - 0
src/views/statistic/report/operationForm.vue

@@ -0,0 +1,163 @@
+<template>
+  <el-dialog v-model="dialogvisable">
+    <el-form
+      label-position="right"
+      label-width="100px"
+      inline
+      class="search"
+      v-model="searchForm"
+    >
+      <el-form-item label="产品名称:">
+        <el-input v-model="searchForm.produdctName" />
+      </el-form-item>
+      <el-form-item label="产品编码:">
+        <el-input v-model="searchForm.produdctCode" />
+      </el-form-item>
+      <el-form-item
+        label="产品批次:"
+        v-if="type === 'batch' || type === 'operation'"
+      >
+        <el-input v-model="searchForm.produdctName" />
+      </el-form-item>
+      <el-form-item label="工序名称:" v-if="type === 'operation'">
+        <el-input v-model="searchForm.operationName" />
+      </el-form-item>
+      <el-form-item label="工序编码:" v-if="type === 'operation'">
+        <el-input v-model="searchForm.operationCode" />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="getData">查询</el-button>
+        <el-button @click="reset">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table :data="tableData">
+      <el-table-column type="selection" width="55" />
+      <el-table-column prop="produdctLineName" label="产线名称" />
+      <el-table-column prop="produdctName" label="产品名称" />
+      <el-table-column prop="produdctCode" label="产品编码" />
+      <el-table-column
+        prop="batchNo"
+        v-if="type === 'batch' || type === 'operation'"
+        label="产品批次"
+      />
+      <el-table-column
+        prop="operationName"
+        v-if="type === 'operation'"
+        label="工序名称"
+      />
+      <el-table-column
+        prop="operationCode"
+        v-if="type === 'operation'"
+        label="工序编码"
+      />
+      <el-table-column prop="created" label="创建时间" />
+    </el-table>
+    <Pagination
+      :total="currentOption.total"
+      :page="currentOption.page"
+      :limit="currentOption.limit"
+      :pageSizes="currentOption.pageSizes"
+      @pagination="getProdtData"
+    />
+    <div class="footer">
+      <el-button class="btn" type="primary" @click="dialogvisable = false"
+        >确定</el-button
+      >
+      <el-button class="btn" @click="dialogvisable = false">取消</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script setup lang="ts">
+const searchForm = ref({
+  produdctName: "",
+  produdctCode: "",
+  batchNo: "",
+  operationName: "",
+  operationCode: "",
+});
+
+const currentOption = ref({
+  total: 0,
+  page: 1,
+  limit: 10,
+  pageSizes: [10, 20, 30, 40],
+});
+
+const dialogvisable = ref(false);
+const tableData = ref([
+  {
+    produdctLineName: "微电子车间产线",
+    produdctName: "产品A",
+    produdctCode: "CODE001",
+    batchNo: "BATCH001",
+    operationName: "工序1",
+    operationCode: "OP001",
+    created: "2025-03-27 10:00:00",
+  },
+  {
+    produdctLineName: "微电子车间产线",
+    produdctName: "产品A",
+    produdctCode: "CODE002",
+    batchNo: "BATCH002",
+    operationName: "工序2",
+    operationCode: "OP002",
+    created: "2025-03-27 11:00:00",
+  },
+  {
+    produdctLineName: "微电子车间产线",
+    produdctName: "产品B",
+    produdctCode: "CODE003",
+    batchNo: "BATCH003",
+    operationName: "工序3",
+    operationCode: "OP003",
+    created: "2025-03-27 12:00:00",
+  },
+  {
+    produdctLineName: "微电子车间产线",
+    produdctName: "产品B",
+    produdctCode: "CODE004",
+    batchNo: "BATCH004",
+    operationName: "工序4",
+    operationCode: "OP004",
+    created: "2025-03-27 13:00:00",
+  },
+  {
+    produdctLineName: "微电子车间产线",
+    produdctName: "产品C",
+    produdctCode: "CODE005",
+    batchNo: "BATCH005",
+    operationName: "工序5",
+    operationCode: "OP005",
+    created: "2025-03-27 14:00:00",
+  },
+]);
+const type = ref();
+
+const open = (openType: String) => {
+  dialogvisable.value = true;
+  type.value = openType;
+};
+
+const getData = () => {
+  console.log(searchForm.value);
+};
+
+const reset = () => {
+  searchForm.value = {
+    produdctName: "",
+    produdctCode: "",
+    batchNo: "",
+    operationName: "",
+    operationCode: "",
+  };
+};
+
+const getProdtData = () => {
+  console.log(tableData.value.length);
+};
+
+defineExpose({ open });
+</script>
+
+<css lang="scss" scope></css>