From d13487486a3c3c7cf93bd3bda65dcc0d6af51aa2 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 03 六月 2025 17:37:04 +0800
Subject: [PATCH] 销售出库页面开发

---
 src/views/salesOutbound/index.vue |  160 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 160 insertions(+), 0 deletions(-)

diff --git a/src/views/salesOutbound/index.vue b/src/views/salesOutbound/index.vue
new file mode 100644
index 0000000..ab8942c
--- /dev/null
+++ b/src/views/salesOutbound/index.vue
@@ -0,0 +1,160 @@
+<template>
+  <div class="app-container">
+    <el-form :inline="true" :model="queryParams" class="search-form">
+      <el-form-item label="鎼滅储">
+        <el-input
+            v-model="queryParams.searchText"
+            placeholder="璇疯緭鍏ュ叧閿瘝"
+            clearable
+            :style="{ width: '100%' }"
+        />
+      </el-form-item>
+      <el-form-item label="渚涘簲鍟嗗悕绉�">
+        <el-input
+            v-model="queryParams.supplierName"
+            placeholder="璇疯緭鍏�"
+            clearable
+            :style="{ width: '100%' }"
+        />
+      </el-form-item>
+      <el-form-item label="缁熶竴浜鸿瘑鍒彿">
+        <el-input
+            v-model="queryParams.identifyNumber"
+            placeholder="璇疯緭鍏�"
+            clearable
+            :style="{ width: '100%' }"
+        />
+      </el-form-item>
+      <el-form-item label="缁忚惀鍦板潃">
+        <el-input
+            v-model="queryParams.address"
+            placeholder="璇疯緭鍏�"
+            clearable
+            :style="{ width: '100%' }"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="handleQuery">鏌ヨ</el-button>
+        <el-button @click="resetQuery">閲嶇疆</el-button>
+      </el-form-item>
+    </el-form>
+    <el-card>
+      <!-- 鏍囩椤� -->
+      <el-tabs v-model="activeTab" class="info-tabs">
+        <el-tab-pane
+            v-for="tab in tabs"
+            :key="tab.name"
+            :label="tab.label"
+            :name="tab.name"
+        />
+      </el-tabs>
+      <!-- 鎿嶄綔鎸夐挳鍖� -->
+      <el-space>
+        <el-button type="primary" :icon="Plus" @click="openDia('add')">鏂板缓</el-button>
+        <el-button type="danger" :icon="Delete" @click="handleDelete">鍒犻櫎</el-button>
+        <el-button type="info" plain :icon="Download" @click="handleExport">瀵煎嚭</el-button>
+      </el-space>
+      <!-- 琛ㄦ牸缁勪欢 -->
+      <div>
+        <ETable :loading="tableLoading"
+                :table-data="tableData"
+                :columns="columns"
+                @selection-change="handleSelectionChange"
+                :show-selection="true"
+                :border="true"
+                :maxHeight="480"
+                @edit="openDia"></ETable>
+      </div>
+      <pagination
+          v-if="total>0"
+          :page-num="pageNum"
+          :page-size="pageSize"
+          :total="total"
+          @pagination="handleQuery"
+          :layout="'total, prev, pager, next, jumper'"
+      />
+    </el-card>
+    <form-dia ref="formDia" @closeDia="handleQuery"></form-dia>
+  </div>
+</template>
+
+<script setup>
+import {ref, reactive} from "vue";
+const { proxy } = getCurrentInstance()
+import {Delete, Download, Plus} from "@element-plus/icons-vue";
+import ETable from "@/components/Table/ETable.vue";
+import Pagination from "@/components/Pagination/index.vue";
+import FormDia from "@/views/salesOutbound/components/formDia.vue";
+
+const formDia = ref()
+const activeTab = ref("out");
+// 鏍囩椤垫暟鎹�
+const tabs = reactive([
+  { name: "out", label: "閿�鍞嚭搴�" },
+]);
+// 琛ㄦ牸鏁版嵁
+const tableLoading = ref(false);
+const tableData = ref([]);
+const columns = ref([
+  { prop: "supplierName", label: "閿�鍞棩鏈�", minWidth: 160 },
+  { prop: "identifyNumber", label: "瀹㈡埛", minWidth: 120 },
+  { prop: "address", label: "鐓ょ", minWidth: 150 },
+  { prop: "unit", label: "鍗曚綅", minWidth: 150 },
+  { prop: "bank", label: "搴撳瓨鏁伴噺", minWidth: 120 },
+  { prop: "bankAccount", label: "鍗曚环(鍚◣)", minWidth: 150 },
+  { prop: "contacts", label: "鎬讳环(鍚◣)", minWidth: 100 },
+  { prop: "contactAddress", label: "鐑��", minWidth: 150 },
+  { prop: "maintainer", label: "缁存姢浜�", minWidth: 100 },
+  { prop: "maintainDate", label: "缁存姢鏃ユ湡", minWidth: 100 },
+]);
+const selectedRows = ref([]);
+const total = ref(0);
+const pageNum = ref(1);
+const pageSize = ref(10);
+// 鏌ヨ鍙傛暟
+const queryParams = reactive({
+  searchText: "",
+  supplierName: "",
+  identifyNumber: "",
+  address: "",
+})
+
+// 鐐瑰嚮鏌ヨ
+const handleQuery = () => {
+  tableLoading.value = true;
+  setTimeout(() => {
+    tableLoading.value = false;
+  }, 500);
+}
+// 閲嶇疆鏌ヨ
+const resetQuery = () => {
+  Object.keys(queryParams).forEach((key) => {
+    if (key !== "pageNum" && key !== "pageSize") {
+      queryParams[key] = "";
+    }
+  });
+  handleQuery();
+};
+// 鏂板鍑哄簱
+const openDia = (type, row) => {
+  nextTick(() => {
+    formDia.value?.openDialog(type, row)
+  })
+};
+// 鍒犻櫎鍑哄簱
+const handleDelete = () => {
+
+};
+// 瀵煎嚭鍑哄簱
+const handleExport = () => {
+
+};
+// 閫夋嫨琛�
+const handleSelectionChange = (selection) => {
+  selectedRows.value = selection;
+};
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file

--
Gitblit v1.9.3