From 80a36677aa6464eb8c67e6c144738efe5716a716 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期四, 28 五月 2026 13:06:18 +0800
Subject: [PATCH] 厂家管理接口对接
---
src/views/inventoryManagement/stockManagement/New.vue | 26 ++++
src/views/inventoryManagement/manufacturer/components/HomeTab.vue | 81 +++++++++-------
src/api/inspectionManagement/manufacturerManageFile.js | 82 ++++++++++++++++
src/views/inventoryManagement/manufacturer/components/BlacklistTab.vue | 77 ++++++++------
4 files changed, 193 insertions(+), 73 deletions(-)
diff --git a/src/api/inspectionManagement/manufacturerManageFile.js b/src/api/inspectionManagement/manufacturerManageFile.js
new file mode 100644
index 0000000..349dca1
--- /dev/null
+++ b/src/api/inspectionManagement/manufacturerManageFile.js
@@ -0,0 +1,82 @@
+// 渚涘簲鍟嗘。妗堥〉闈㈡帴鍙�
+import request from "@/utils/request";
+
+// 鍒嗛〉鏌ヨ
+export function listManufacturer(query) {
+ return request({
+ url: "/stock/manufacturer/listPage",
+ method: "get",
+ params: query,
+ });
+}
+// 鏌ヨ渚涘簲鍟嗕俊鎭缁�
+export function getManufacturer(id) {
+ return request({
+ url: "/stock/manufacturer/" + id,
+ method: "get",
+ });
+}
+// 鏂板渚涘簲鍟嗕俊鎭�
+export function addManufacturer(data) {
+ return request({
+ url: "/stock/manufacturer/add",
+ method: "post",
+ data: data,
+ });
+}
+// 淇敼渚涘簲鍟嗕俊鎭�
+export function updateManufacturer(data) {
+ return request({
+ url: "/stock/manufacturer/update",
+ method: "post",
+ data: data,
+ });
+}
+// 瀵煎嚭渚涘簲鍟嗕俊鎭�
+export function exportManufacturer(query) {
+ return request({
+ url: "/stock/manufacturer/export",
+ method: "get",
+ params: query,
+ responseType: "blob",
+ });
+}
+// 鍒犻櫎渚涘簲鍟嗕俊鎭�
+export function delManufacturer(ids) {
+ return request({
+ url: "/stock/manufacturer/del",
+ method: "delete",
+ data: ids,
+ });
+}
+// 鑾峰彇渚涘簲鍟嗛�夐」鍒楄〃
+export function getManufacturerOptions() {
+ return request({
+ url: "/stock/manufacturer/getOptions",
+ method: "get",
+ });
+}
+// 鏌ヨ闄勪欢鍒楄〃
+export function fileListPage(query) {
+ return request({
+ url: "/basic/manufacturerManageFile/listPage",
+ method: "get",
+ params: query,
+ });
+}
+// 淇濆瓨闄勪欢鍒楄〃
+export function fileAdd(query) {
+ return request({
+ url: "/basic/supplierManageFile/add",
+ method: "post",
+ data: query,
+ });
+}
+// 鍒犻櫎闄勪欢鍒楄〃
+export function fileDel(query) {
+ return request({
+ url: "/basic/manufacturerManageFile/del",
+ method: "delete",
+ data: query,
+ });
+}
diff --git a/src/views/inventoryManagement/manufacturer/components/BlacklistTab.vue b/src/views/inventoryManagement/manufacturer/components/BlacklistTab.vue
index 3c2e01d..66df189 100644
--- a/src/views/inventoryManagement/manufacturer/components/BlacklistTab.vue
+++ b/src/views/inventoryManagement/manufacturer/components/BlacklistTab.vue
@@ -3,7 +3,7 @@
<div class="search_form">
<div>
<span class="search_title">鍘傚妗f锛�</span>
- <el-input v-model="searchForm.supplierName"
+ <el-input v-model="searchForm.name"
style="width: 240px"
placeholder="杈撳叆鍘傚鍚嶇О鎼滅储"
@change="handleQuery"
@@ -42,8 +42,8 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍘傚鍚嶇О锛�"
- prop="supplierName">
- <el-input v-model="form.supplierName"
+ prop="name">
+ <el-input v-model="form.name"
placeholder="璇疯緭鍏�"
clearable />
</el-form-item>
@@ -142,8 +142,8 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍘傚绫诲瀷锛�"
- prop="supplierType">
- <el-select v-model="form.supplierType"
+ prop="type">
+ <el-select v-model="form.type"
placeholder="璇烽�夋嫨"
clearable>
<el-option label="鐢�"
@@ -218,23 +218,29 @@
</el-dialog>
<FileList v-if="fileListDialogVisible"
v-model:visible="fileListDialogVisible"
- record-type="supplier_manage"
+ record-type="manufacturer"
:record-id="recordId" />
</div>
</template>
<script setup>
- import { onMounted, ref } from "vue";
+ import {
+ onMounted,
+ ref,
+ defineAsyncComponent,
+ getCurrentInstance,
+ reactive,
+ } from "vue";
import { Search } from "@element-plus/icons-vue";
- import { delSupplier } from "@/api/basicData/supplierManageFile.js";
+ import { delManufacturer } from "@/api/inspectionManagement/manufacturerManageFile.js";
import { ElMessageBox } from "element-plus";
import { userListNoPage } from "@/api/system/user.js";
import {
- addSupplier,
- getSupplier,
- listSupplier,
- updateSupplier,
- } from "@/api/basicData/supplierManageFile.js";
+ addManufacturer,
+ getManufacturer,
+ listManufacturer,
+ updateManufacturer,
+ } from "@/api/inspectionManagement/manufacturerManageFile.js";
import useUserStore from "@/store/modules/user";
import { getToken } from "@/utils/auth.js";
const FileList = defineAsyncComponent(() =>
@@ -246,12 +252,12 @@
const tableColumn = ref([
{
label: "鍘傚鍚嶇О",
- prop: "supplierName",
+ prop: "name",
width: 250,
},
{
label: "鍘傚绫诲瀷",
- prop: "supplierType",
+ prop: "type",
width: 120,
},
{
@@ -339,10 +345,10 @@
const dialogFormVisible = ref(false);
const data = reactive({
searchForm: {
- supplierName: "",
+ name: "",
},
form: {
- supplierName: "",
+ name: "",
taxpayerIdentificationNum: "",
companyAddress: "",
companyPhone: "",
@@ -352,11 +358,11 @@
contactUserPhone: "",
maintainUserId: "",
maintainTime: "",
- supplierType: "",
+ type: "",
isWhite: "",
},
rules: {
- supplierName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ name: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
taxpayerIdentificationNum: [
{ required: true, message: "璇疯緭鍏�", trigger: "blur" },
],
@@ -364,13 +370,12 @@
companyPhone: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
bankAccountName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
bankAccountNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- contactUserName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
- contactUserPhone: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
- maintainUserId: [{ required: false, message: "璇烽�夋嫨", trigger: "change" }],
- maintainTime: [{ required: false, message: "璇烽�夋嫨", trigger: "change" }],
- supplierType: [
- { required: true, message: "璇烽�夋嫨鍘傚绫诲瀷", trigger: "change" },
- ],
+ contactUserName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ contactUserPhone: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ maintainUserId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ maintainTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ type: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ isWhite: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
},
});
const { searchForm, form, rules } = toRefs(data);
@@ -393,7 +398,7 @@
}
const getList = () => {
tableLoading.value = true;
- listSupplier({ ...searchForm.value, ...page, isWhite: 1 }).then(res => {
+ listManufacturer({ ...searchForm.value, ...page, isWhite: 1 }).then(res => {
tableLoading.value = false;
tableData.value = res.data.records;
page.total = res.data.total;
@@ -411,7 +416,7 @@
// 璁剧疆涓婁紶鐨勮姹傚ご閮�
headers: { Authorization: "Bearer " + getToken() },
// 涓婁紶鐨勫湴鍧�
- url: import.meta.env.VITE_APP_BASE_API + "/system/supplier/import",
+ url: import.meta.env.VITE_APP_BASE_API + "/stock/manufacturer/import",
});
/** 瀵煎叆鎸夐挳鎿嶄綔 */
function handleImport() {
@@ -420,7 +425,11 @@
}
/** 涓嬭浇妯℃澘 */
function importTemplate() {
- proxy.download("/system/supplier/downloadTemplate", {}, "鍘傚瀵煎叆妯℃澘.xlsx");
+ proxy.download(
+ "/stock/manufacturer/downloadTemplate",
+ {},
+ "鍘傚瀵煎叆妯℃澘.xlsx"
+ );
}
/**鏂囦欢涓婁紶涓鐞� */
@@ -462,7 +471,7 @@
userList.value = res.data;
});
if (type === "edit") {
- getSupplier(row.id).then(res => {
+ getManufacturer(row.id).then(res => {
form.value = { ...res.data };
});
}
@@ -482,7 +491,7 @@
};
// 鎻愪氦鏂板
const submitAdd = () => {
- addSupplier(form.value).then(res => {
+ addManufacturer(form.value).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
getList();
@@ -490,7 +499,7 @@
};
// 鎻愪氦淇敼
const submitEdit = () => {
- updateSupplier(form.value).then(res => {
+ updateManufacturer(form.value).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
getList();
@@ -510,7 +519,7 @@
})
.then(() => {
proxy.download(
- "/system/supplier/export",
+ "/stock/manufacturer/export",
{ isWhite: 1 },
"鍘傚妗f.xlsx"
);
@@ -543,7 +552,7 @@
})
.then(() => {
tableLoading.value = true;
- delSupplier(ids)
+ delManufacturer(ids)
.then(res => {
proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
getList();
diff --git a/src/views/inventoryManagement/manufacturer/components/HomeTab.vue b/src/views/inventoryManagement/manufacturer/components/HomeTab.vue
index 08985ae..cc6ed9b 100644
--- a/src/views/inventoryManagement/manufacturer/components/HomeTab.vue
+++ b/src/views/inventoryManagement/manufacturer/components/HomeTab.vue
@@ -3,7 +3,7 @@
<div class="search_form">
<div style="margin-bottom: 10px;">
<span class="search_title">鍘傚妗f锛�</span>
- <el-input v-model="searchForm.supplierName"
+ <el-input v-model="searchForm.name"
style="width: 240px"
placeholder="杈撳叆鍘傚鍚嶇О鎼滅储"
@change="handleQuery"
@@ -48,8 +48,8 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍘傚鍚嶇О锛�"
- prop="supplierName">
- <el-input v-model="form.supplierName"
+ prop="name">
+ <el-input v-model="form.name"
placeholder="璇疯緭鍏�"
clearable />
</el-form-item>
@@ -148,8 +148,8 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍘傚绫诲瀷锛�"
- prop="supplierType">
- <el-select v-model="form.supplierType"
+ prop="type">
+ <el-select v-model="form.type"
placeholder="璇烽�夋嫨"
clearable>
<el-option label="鐢�"
@@ -224,23 +224,29 @@
</el-dialog>
<FileList v-if="fileListDialogVisible"
v-model:visible="fileListDialogVisible"
- record-type="supplier_manage"
+ record-type="manufacturer"
:record-id="recordId" />
</div>
</template>
<script setup>
- import { onMounted, ref } from "vue";
+ import {
+ onMounted,
+ ref,
+ defineAsyncComponent,
+ getCurrentInstance,
+ reactive,
+ } from "vue";
import { Search } from "@element-plus/icons-vue";
- import { delSupplier } from "@/api/basicData/supplierManageFile.js";
+ import { delManufacturer } from "@/api/inspectionManagement/manufacturerManageFile.js";
import { ElMessageBox } from "element-plus";
import { userListNoPage } from "@/api/system/user.js";
import {
- addSupplier,
- getSupplier,
- listSupplier,
- updateSupplier,
- } from "@/api/basicData/supplierManageFile.js";
+ addManufacturer,
+ getManufacturer,
+ listManufacturer,
+ updateManufacturer,
+ } from "@/api/inspectionManagement/manufacturerManageFile.js";
import useUserStore from "@/store/modules/user";
import { getToken } from "@/utils/auth.js";
const FileList = defineAsyncComponent(() =>
@@ -252,12 +258,12 @@
const tableColumn = ref([
{
label: "鍘傚鍚嶇О",
- prop: "supplierName",
+ prop: "name",
width: 250,
},
{
label: "鍘傚绫诲瀷",
- prop: "supplierType",
+ prop: "type",
width: 120,
},
{
@@ -333,22 +339,22 @@
const selectedRows = ref([]);
const userList = ref([]);
const tableLoading = ref(false);
- const fileListDialogVisible = ref(false);
- const recordId = ref();
const page = reactive({
current: 1,
size: 100,
total: 0,
});
+ const fileListDialogVisible = ref(false);
+ const recordId = ref();
// 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
const operationType = ref("");
const dialogFormVisible = ref(false);
const data = reactive({
searchForm: {
- supplierName: "",
+ name: "",
},
form: {
- supplierName: "",
+ name: "",
taxpayerIdentificationNum: "",
companyAddress: "",
companyPhone: "",
@@ -358,11 +364,11 @@
contactUserPhone: "",
maintainUserId: "",
maintainTime: "",
- supplierType: "",
+ type: "",
isWhite: "",
},
rules: {
- supplierName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ name: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
taxpayerIdentificationNum: [
{ required: true, message: "璇疯緭鍏�", trigger: "blur" },
],
@@ -370,13 +376,12 @@
companyPhone: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
bankAccountName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
bankAccountNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- contactUserName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
- contactUserPhone: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
- maintainUserId: [{ required: false, message: "璇烽�夋嫨", trigger: "change" }],
- maintainTime: [{ required: false, message: "璇烽�夋嫨", trigger: "change" }],
- supplierType: [
- { required: true, message: "璇烽�夋嫨鍘傚绫诲瀷", trigger: "change" },
- ],
+ contactUserName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ contactUserPhone: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ maintainUserId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ maintainTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ type: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ isWhite: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
},
});
const { searchForm, form, rules } = toRefs(data);
@@ -399,7 +404,7 @@
}
const getList = () => {
tableLoading.value = true;
- listSupplier({ ...searchForm.value, ...page, isWhite: 0 }).then(res => {
+ listManufacturer({ ...searchForm.value, ...page, isWhite: 0 }).then(res => {
tableLoading.value = false;
tableData.value = res.data.records;
page.total = res.data.total;
@@ -417,7 +422,7 @@
// 璁剧疆涓婁紶鐨勮姹傚ご閮�
headers: { Authorization: "Bearer " + getToken() },
// 涓婁紶鐨勫湴鍧�
- url: import.meta.env.VITE_APP_BASE_API + "/system/supplier/import",
+ url: import.meta.env.VITE_APP_BASE_API + "/stock/manufacturer/import",
});
/** 瀵煎叆鎸夐挳鎿嶄綔 */
function handleImport() {
@@ -426,7 +431,11 @@
}
/** 涓嬭浇妯℃澘 */
function importTemplate() {
- proxy.download("/system/supplier/downloadTemplate", {}, "鍘傚瀵煎叆妯℃澘.xlsx");
+ proxy.download(
+ "/stock/manufacturer/downloadTemplate",
+ {},
+ "鍘傚瀵煎叆妯℃澘.xlsx"
+ );
}
/**鏂囦欢涓婁紶涓鐞� */
@@ -468,7 +477,7 @@
userList.value = res.data;
});
if (type === "edit") {
- getSupplier(row.id).then(res => {
+ getManufacturer(row.id).then(res => {
form.value = { ...res.data };
});
}
@@ -488,7 +497,7 @@
};
// 鎻愪氦鏂板
const submitAdd = () => {
- addSupplier(form.value).then(res => {
+ addManufacturer(form.value).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
getList();
@@ -496,7 +505,7 @@
};
// 鎻愪氦淇敼
const submitEdit = () => {
- updateSupplier(form.value).then(res => {
+ updateManufacturer(form.value).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
getList();
@@ -516,7 +525,7 @@
})
.then(() => {
proxy.download(
- "/system/supplier/export",
+ "/stock/manufacturer/export",
{ isWhite: 0 },
"鍘傚妗f.xlsx"
);
@@ -549,7 +558,7 @@
})
.then(() => {
tableLoading.value = true;
- delSupplier(ids)
+ delManufacturer(ids)
.then(res => {
proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
getList();
diff --git a/src/views/inventoryManagement/stockManagement/New.vue b/src/views/inventoryManagement/stockManagement/New.vue
index 0b50731..065ce39 100644
--- a/src/views/inventoryManagement/stockManagement/New.vue
+++ b/src/views/inventoryManagement/stockManagement/New.vue
@@ -34,8 +34,16 @@
</el-form-item>
<el-form-item label="鍘傚"
prop="manufacturer">
- <el-input v-model="formState.manufacturer"
- placeholder="璇疯緭鍏ュ巶瀹�" />
+ <el-select v-model="formState.manufacturer"
+ placeholder="璇烽�夋嫨鍘傚"
+ clearable
+ filterable
+ style="width: 100%">
+ <el-option v-for="item in manufacturerOptions"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id" />
+ </el-select>
</el-form-item>
<el-form-item label="搴撳瓨绫诲瀷"
prop="type"
@@ -119,10 +127,11 @@
</template>
<script setup>
- import { ref, computed, watch, getCurrentInstance } from "vue";
+ import { ref, computed, watch, getCurrentInstance, onMounted } from "vue";
import ProductSelectDialog from "@/views/basicData/product/ProductSelectDialog.vue";
import { addStockInRecordOnly } from "@/api/inventoryManagement/stockInventory.js";
import { createStockUnInventory } from "@/api/inventoryManagement/stockUninventory.js";
+ import { getManufacturerOptions } from "@/api/inspectionManagement/manufacturerManageFile.js";
const props = defineProps({
visible: {
@@ -181,6 +190,17 @@
});
const showProductSelectDialog = ref(false);
+ const manufacturerOptions = ref([]);
+
+ const loadManufacturerOptions = () => {
+ getManufacturerOptions().then(res => {
+ manufacturerOptions.value = res.data || [];
+ });
+ };
+
+ onMounted(() => {
+ loadManufacturerOptions();
+ });
// 鎵瑰彿涓虹┖鏃惰浆涓� null
watch(
--
Gitblit v1.9.3