From 85cb7809ad4b0ef96ac4b7a5f9632b9d0e114b91 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期二, 25 二月 2025 10:27:00 +0800
Subject: [PATCH] 供应商管理
---
src/views/CNAS/externalService/supplierManage/component/formDia.vue | 188 +++++++++++++++++++++++
src/views/CNAS/externalService/supplierManage/index.vue | 189 +++++++++++++++++++++++
src/api/cnas/externalService/supplierManage/supplierManage.js | 52 ++++++
3 files changed, 429 insertions(+), 0 deletions(-)
diff --git a/src/api/cnas/externalService/supplierManage/supplierManage.js b/src/api/cnas/externalService/supplierManage/supplierManage.js
new file mode 100644
index 0000000..c28b538
--- /dev/null
+++ b/src/api/cnas/externalService/supplierManage/supplierManage.js
@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+// 鍒嗛〉鏌ヨ
+export function selectQualifiedSupplierManagementPage(query) {
+ return request({
+ url: '/supplierManagement/selectQualifiedSupplierManagementPage',
+ method: 'get',
+ params: query
+ })
+}
+
+// 缂栬緫渚涘簲鍟�
+export function updateSupplierManagement(query) {
+ return request({
+ url: '/supplierManagement/updateSupplierManagement',
+ method: 'post',
+ data: query
+ })
+}
+
+// 鏂板渚涘簲鍟�
+export function addSupplierManagement(query) {
+ return request({
+ url: '/supplierManagement/addSupplierManagement',
+ method: 'post',
+ data: query
+ })
+}
+
+// 瀵煎嚭渚涘簲鍟�
+export function exportSupplierManagement(query) {
+ return request({
+ url: "/supplierManagement/exportSupplierManagement",
+ method: "get",
+ responseType: "blob",
+ params: query,
+ });
+}
+
+// 鍒犻櫎渚涘簲鍟�
+export function delSupplierManagement(query) {
+ return request({
+ url: '/supplierManagement/delSupplierManagement',
+ method: 'delete',
+ params: query
+ })
+}
+
+
+
+
+
diff --git a/src/views/CNAS/externalService/supplierManage/component/formDia.vue b/src/views/CNAS/externalService/supplierManage/component/formDia.vue
new file mode 100644
index 0000000..410ae63
--- /dev/null
+++ b/src/views/CNAS/externalService/supplierManage/component/formDia.vue
@@ -0,0 +1,188 @@
+<template>
+ <div>
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
+ :title="operationType === 'edit' ? '缂栬緫' : '鏂板'"
+ :visible.sync="formDia"
+ width="90%" @close="closeDia">
+ <el-form :model="model" ref="modelForm" label-width="150px" :rules="rules">
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="渚涘簲鍟�" prop="supplierName">
+ <el-input v-model="model.supplierName" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="缂栧彿" prop="supplierRef">
+ <el-input v-model="model.supplierRef" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="渚涘簲鍟嗙墿鍝佹湇鍔″悕绉�" prop="supplierItemServiceName">
+ <el-input v-model="model.supplierItemServiceName" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="閭紪">
+ <el-input v-model="model.postalCode" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍦板潃">
+ <el-input v-model="model.adress" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="鑱旂郴浜�">
+ <el-input v-model="model.contacts" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鑱旂郴鐢佃瘽">
+ <el-input v-model="model.phone" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="鎴峰悕">
+ <el-input v-model="model.householdName" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="浼犵湡">
+ <el-input v-model="model.fax" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="寮�鎴疯">
+ <el-input v-model="model.openingName" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="缃戝潃">
+ <el-input v-model="model.website" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="璐﹀彿">
+ <el-input v-model="model.accountName" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="Email">
+ <el-input v-model="model.email" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <span slot="footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submit" :loading="editLoad">淇� 瀛�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ addSupplierManagement,
+ updateSupplierManagement
+} from '@/api/cnas/externalService/supplierManage/supplierManage'
+
+export default {
+ name: "formDia",
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ operationType: '',
+ formDia: false,
+ model: {
+ supplierName: '',
+ supplierRef: '',
+ supplierItemServiceName: '',
+ postalCode: '',
+ adress: '',
+ contacts: '',
+ phone: '',
+ householdName: '',
+ fax: '',
+ openingName: '',
+ website: '',
+ accountName: '',
+ email: '',
+ supplierManagementId: '',
+ },
+ rules: {
+ supplierName: [{ required: true, message: '璇疯緭鍏ヤ緵搴斿晢', trigger: 'blur' }],
+ supplierRef: [{ required: true, message: '璇疯緭鍏ヤ緵搴斿晢缂栧彿', trigger: 'blur' }],
+
+ },
+ editLoad: false,
+ }
+ },
+ mounted() {
+
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDialog (type, row) {
+ this.operationType = type
+ this.formDia = true
+ if (this.operationType === 'edit') {
+ this.model = this.HaveJson(row)
+ }
+ },
+ // 鎻愪氦琛ㄥ崟
+ submit () {
+ this.$refs.modelForm.validate((valid) => {
+ if (valid) {
+ this.editLoad = true
+ if (this.operationType === 'edit') {
+ updateSupplierManagement(this.model).then(res => {
+ this.editLoad = false
+ if (res.code === 200){
+ this.$message.success('淇敼鎴愬姛')
+ this.closeDia()
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ } else {
+ addSupplierManagement(this.model).then(res => {
+ this.editLoad = false
+ if (res.code === 200){
+ this.$message.success('鏂板鎴愬姛')
+ this.closeDia()
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ }
+ }
+ })
+ },
+ closeDia () {
+ this.$refs.modelForm.resetFields()
+ this.formDia = false
+ this.$emit('closeDia')
+ }
+ },
+}
+</script>
+
+<style scoped>
+</style>
diff --git a/src/views/CNAS/externalService/supplierManage/index.vue b/src/views/CNAS/externalService/supplierManage/index.vue
new file mode 100644
index 0000000..5480937
--- /dev/null
+++ b/src/views/CNAS/externalService/supplierManage/index.vue
@@ -0,0 +1,189 @@
+<template>
+ <div class="capacity-scope">
+ <div class="search">
+ <div>
+ <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
+ <el-form-item label="鍚嶇О" prop="supplierName">
+ <el-input v-model="searchForm.supplierName" clearable size="small"></el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="getTableData">鏌� 璇�</el-button>
+ <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">閲� 缃�</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div>
+ <el-button size="medium" @click="exportExcel">瀵� 鍑�</el-button>
+ <el-button size="medium" type="primary" @click="showDialog('add')">鏂� 澧�</el-button>
+ </div>
+ </div>
+ <div class="table">
+ <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination"
+ :page="page" :tableLoading="tableLoading"></lims-table>
+ </div>
+ <form-dia ref="formDia" v-if="formDia" @closeDia="closeDia"></form-dia>
+ </div>
+</template>
+
+<script>
+// import ZTTable from "../caorui/ZTTable/index.vue";
+// import TableCard from "../caorui/TableCard/index.vue";
+// import axios from "axios";
+import FormDia from "../supplierManage/component/formDia.vue";
+import limsTable from '@/components/Table/lims-table.vue'
+import {
+ selectQualifiedSupplierManagementPage,
+ exportSupplierManagement,
+ delSupplierManagement
+} from '@/api/cnas/externalService/supplierManage/supplierManage'
+
+export default {
+ name: "a6-supplier-manage-new",
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {
+ limsTable,
+ FormDia
+ },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ searchForm: {
+ supplierName: ''
+ },
+ tableLoading: false,
+ tableColumn: [
+ {
+ label: "渚涘簲鍟嗙紪鍙�",
+ prop: "supplierRef"
+ },
+ {
+ label: "渚涘簲鍟�",
+ prop: "supplierName"
+ },
+ {
+ label: "渚涘簲鐗╁搧(鏈嶅姟)鍚嶇О",
+ prop: "supplierItemServiceName"
+ },
+ {
+ label: "鍦板潃",
+ prop: "adress"
+ },
+ {
+ label: "鑱旂郴鐢佃瘽",
+ prop: "phone"
+ },
+ {
+ dataType: 'action',
+ fixed: "right",
+ minWidth: '60',
+ label: '鎿嶄綔',
+ operation: [
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.showDialog('edit', row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.deleteRow(row);
+ },
+ }
+
+ ]
+ }
+ ],
+ tableData: [],
+ page: {
+ total: 0,
+ size: 10,
+ current: 1
+ },
+ formDia: false,
+ }
+ },
+ mounted() {
+ this.getTableData()
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鑾峰彇琛ㄦ牸鏁版嵁
+ async getTableData() {
+ this.tableLoading = true;
+ selectQualifiedSupplierManagementPage(this.searchForm).then(res => {
+ this.tableLoading = false;
+ if(res.code === 200) {
+ this.tableData = res.data.records;
+ this.page.total = res.data.total
+ }
+ }).catch(err => {
+ this.tableLoading = false
+ })
+ },
+ // 閲嶇疆
+ resetSearchForm () {
+ this.pagination.current = 1
+ this.pagination.pageSize = 20
+ this.searchForm.supplierName = ''
+ this.getTableData()
+ },
+ // 鍒嗛〉鍒囨崲
+ pagination(page) {
+ this.page.size = page.limit
+ this.getTableData();
+ },
+ // 鎵撳紑鏂板寮规
+ showDialog(type, row) {
+ this.formDia = true
+ this.$nextTick(() => {
+ this.$refs.formDia.openDialog(type, row)
+ })
+ },
+ // 鍏抽棴寮规
+ closeDia () {
+ this.formDia = false
+ this.getTableData()
+ },
+ // 鍒犻櫎璁板綍
+ deleteRow (row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ枃浠�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ delSupplierManagement({supplierManagementId:row.supplierManagementId}).then(res => {
+ if (res.code === 200) {
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ this.getTableData()
+ }
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+ // 瀵煎嚭excel
+ async exportExcel() {
+ exportSupplierManagement({deviceId:this.clickNodeVal.value}).then(res => {
+ const blob = new Blob([res], { type: 'application/octet-stream' });
+ this.$download.saveAs(blob, '鍚堟牸渚涘簲鍟�.xlsx')
+ this.$message.success('瀵煎嚭鎴愬姛')
+ })
+ }
+ },
+}
+</script>
+
+<style scoped>
+.search {
+ height: 46px;
+ display: flex;
+ justify-content: space-between;
+}
+</style>
--
Gitblit v1.9.3