| | |
| | | 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(); |