chenrui
2025-02-25 85cb7809ad4b0ef96ac4b7a5f9632b9d0e114b91
供应商管理
已添加3个文件
429 ■■■■■ 文件已修改
src/api/cnas/externalService/supplierManage/supplierManage.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/supplierManage/component/formDia.vue 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/supplierManage/index.vue 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
  })
}
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>
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>