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