| | |
| | | clearable |
| | | :prefix-icon="Search" |
| | | /> |
| | | <el-input v-model="searchForm.supplierCode" style="width: 180px; margin-left: 10px" placeholder="供应商编码" clearable /> |
| | | <el-input v-model="searchForm.productKeyword" style="width: 180px; margin-left: 10px" placeholder="供应产品" clearable /> |
| | | <el-button type="primary" @click="handleQuery" style="margin-left: 10px" |
| | | >搜索</el-button |
| | | > |
| | |
| | | > |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="供应商编码:" prop="supplierCode"> |
| | | <el-input v-model="form.supplierCode" placeholder="留空自动生成" clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="供应商简称:"><el-input v-model="form.supplierShortName" clearable /></el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"><el-form-item label="供应商分类:"><el-input v-model="form.supplierCategory" /></el-form-item></el-col> |
| | | <el-col :span="12"><el-form-item label="供应商等级:"><el-select v-model="form.supplierLevel" clearable style="width:100%"><el-option v-for="v in ['A','B','C','D']" :key="v" :label="v" :value="v" /></el-select></el-form-item></el-col> |
| | | </el-row> |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="供应商名称:" prop="supplierName"> |
| | | <el-input |
| | | v-model="form.supplierName" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"><el-form-item label="合作状态:"><el-select v-model="form.cooperationStatus" style="width:100%"><el-option label="合作中" :value="1"/><el-option label="暂停合作" :value="2"/><el-option label="停用" :value="0"/></el-select></el-form-item></el-col> |
| | | <el-col :span="12"><el-form-item label="首次合作日期:"><el-date-picker v-model="form.cooperationStartDate" value-format="YYYY-MM-DD" style="width:100%" /></el-form-item></el-col> |
| | | </el-row> |
| | | <el-form-item label="供应产品:"><el-input v-model="form.suppliedProductsSummary" type="textarea" :rows="2" placeholder="多个产品可用顿号分隔" /></el-form-item> |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"><el-form-item label="资质状态:"><el-select v-model="form.qualificationStatus" style="width:100%"><el-option label="待完善" :value="0"/><el-option label="有效" :value="1"/><el-option label="即将到期" :value="2"/><el-option label="已过期" :value="3"/></el-select></el-form-item></el-col> |
| | | <el-col :span="12"><el-form-item label="资质到期日:"><el-date-picker v-model="form.qualificationExpiryDate" value-format="YYYY-MM-DD" style="width:100%" /></el-form-item></el-col> |
| | | </el-row> |
| | | <el-form-item label="合作历史:"><el-input v-model="form.cooperationHistorySummary" type="textarea" :rows="2" placeholder="填写历史合作与评价摘要" /></el-form-item> |
| | | <el-form-item label="备注:"><el-input v-model="form.remark" type="textarea" :rows="2" /></el-form-item> |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="公司地址:" prop="companyAddress"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-divider content-position="left">资质证明</el-divider> |
| | | <el-button type="primary" plain @click="form.qualifications.push({ status: 1, longTermValid: 0 })">新增资质</el-button> |
| | | <el-table :data="form.qualifications" border style="margin:10px 0 20px"> |
| | | <el-table-column label="资质名称"><template #default="{row}"><el-input v-model="row.qualificationName" /></template></el-table-column> |
| | | <el-table-column label="类型"><template #default="{row}"><el-input v-model="row.qualificationType" /></template></el-table-column> |
| | | <el-table-column label="证书编号"><template #default="{row}"><el-input v-model="row.certificateNo" /></template></el-table-column> |
| | | <el-table-column label="到期日期" width="180"><template #default="{row}"><el-date-picker v-model="row.expiryDate" value-format="YYYY-MM-DD" style="width:100%" /></template></el-table-column> |
| | | <el-table-column label="操作" width="80"><template #default="{$index}"><el-button type="danger" link @click="form.qualifications.splice($index,1)">删除</el-button></template></el-table-column> |
| | | </el-table> |
| | | <el-divider content-position="left">供应产品</el-divider> |
| | | <el-button type="primary" plain @click="form.products.push({ status: 1, currency: 'CNY' })">新增产品</el-button> |
| | | <el-table :data="form.products" border style="margin:10px 0 20px"> |
| | | <el-table-column label="产品名称"><template #default="{row}"><el-input v-model="row.productName" /></template></el-table-column> |
| | | <el-table-column label="分类"><template #default="{row}"><el-input v-model="row.productCategory" /></template></el-table-column> |
| | | <el-table-column label="规格型号"><template #default="{row}"><el-input v-model="row.specificationModel" /></template></el-table-column> |
| | | <el-table-column label="供货周期(天)" width="140"><template #default="{row}"><el-input-number v-model="row.leadTimeDays" :min="0" /></template></el-table-column> |
| | | <el-table-column label="参考单价" width="140"><template #default="{row}"><el-input-number v-model="row.referencePrice" :min="0" :precision="2" /></template></el-table-column> |
| | | <el-table-column label="操作" width="80"><template #default="{$index}"><el-button type="danger" link @click="form.products.splice($index,1)">删除</el-button></template></el-table-column> |
| | | </el-table> |
| | | </el-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | |
| | | getSupplier, |
| | | listSupplier, |
| | | updateSupplier, |
| | | getSupplierArchive, |
| | | saveSupplierArchive, |
| | | } from "@/api/basicData/supplierManageFile.js"; |
| | | import useUserStore from "@/store/modules/user"; |
| | | import { getToken } from "@/utils/auth.js"; |
| | |
| | | const userStore = useUserStore(); |
| | | |
| | | const tableColumn = ref([ |
| | | { label: "供应商编码", prop: "supplierCode", width: 140 }, |
| | | { |
| | | label: "供应商名称", |
| | | prop: "supplierName", |
| | |
| | | prop: "contactUserPhone", |
| | | width: 150, |
| | | }, |
| | | { label: "供应产品", prop: "suppliedProductsSummary", width: 220 }, |
| | | { label: "等级", prop: "supplierLevel", width: 80 }, |
| | | { label: "资质状态", prop: "qualificationStatus", width: 100, formatData: v => ({0:'待完善',1:'有效',2:'即将到期',3:'已过期'}[v] || '待完善') }, |
| | | { label: "合作状态", prop: "cooperationStatus", width: 100, formatData: v => ({0:'停用',1:'合作中',2:'暂停'}[v] || '合作中') }, |
| | | { |
| | | label: "维护人", |
| | | prop: "maintainUserName", |
| | |
| | | const data = reactive({ |
| | | searchForm: { |
| | | supplierName: "", |
| | | supplierCode: "", |
| | | productKeyword: "", |
| | | }, |
| | | form: { |
| | | supplierCode: "", |
| | | supplierShortName: "", |
| | | supplierCategory: "", |
| | | supplierLevel: "", |
| | | cooperationStatus: 1, |
| | | cooperationStartDate: "", |
| | | qualificationStatus: 0, |
| | | qualificationExpiryDate: "", |
| | | suppliedProductsSummary: "", |
| | | cooperationHistorySummary: "", |
| | | remark: "", |
| | | qualifications: [], |
| | | products: [], |
| | | supplierName: "", |
| | | taxpayerIdentificationNum: "", |
| | | companyAddress: "", |
| | |
| | | form.value = {}; |
| | | form.value.maintainUserId = userStore.id; |
| | | form.value.maintainTime = getCurrentDate(); |
| | | form.value.qualifications = []; |
| | | form.value.products = []; |
| | | userListNoPage().then((res) => { |
| | | userList.value = res.data; |
| | | }); |
| | | if (type === "edit") { |
| | | getSupplier(row.id).then((res) => { |
| | | form.value = { ...res.data }; |
| | | getSupplierArchive(row.id).then((res) => { |
| | | form.value = { ...res.data.supplier, qualifications: res.data.qualifications || [], products: res.data.products || [] }; |
| | | }); |
| | | } |
| | | dialogFormVisible.value = true; |
| | |
| | | }; |
| | | // 提交新增 |
| | | const submitAdd = () => { |
| | | addSupplier(form.value).then((res) => { |
| | | const { qualifications, products, ...supplier } = form.value; |
| | | saveSupplierArchive({ supplier, qualifications, products }).then((res) => { |
| | | proxy.$modal.msgSuccess("提交成功"); |
| | | closeDia(); |
| | | getList(); |
| | |
| | | }; |
| | | // 提交修改 |
| | | const submitEdit = () => { |
| | | updateSupplier(form.value).then((res) => { |
| | | const { qualifications, products, ...supplier } = form.value; |
| | | saveSupplierArchive({ supplier, qualifications, products }).then((res) => { |
| | | proxy.$modal.msgSuccess("提交成功"); |
| | | closeDia(); |
| | | getList(); |