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