| | |
| | | <div> |
| | | <el-dialog v-model="dialogVisible" :title="title" width="600" :close-on-click-modal="false" |
| | | :before-close="handleClose"> |
| | | <el-form ref="formRef" style="max-width: 400px; margin: 0 auto" :model="formData" :rules="rules" label-width="auto"> |
| | | <el-form ref="formRef" style="max-width: 400px; margin: 0 auto" :model="formData" :rules="rules" |
| | | label-width="auto"> |
| | | <el-form-item label="客æ·åç§°" prop="supplierName"> |
| | | <el-input v-model="formData.supplierName" placeholder="请è¾å
¥ä¾è´§ååç§°" /> |
| | | </el-form-item> |
| | |
| | | <el-input v-model="formData.taxpayerId" placeholder="请è¾å
¥çº³ç¨äººè¯å«å·" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç»è¥å°å" prop="bids"> |
| | | <el-cascader placeholder="è¯·éæ©ç»è¥å°å" size="default" :options="addressSelectOptions" v-model="formData.bids" |
| | | <el-cascader placeholder="è¯·éæ©ç»è¥å°å" size="default" :options="addressSelectOptions" |
| | | v-model="formData.bids" |
| | | :props="cascaderProps" |
| | | @change="handleChange"> |
| | | </el-cascader> |
| | | </el-form-item> |
| | |
| | | |
| | | <script setup> |
| | | import { ref, watch, defineProps, onMounted } from "vue"; |
| | | import addressList from "@/api/jsonApi/areaList.json"; |
| | | import { addOrEditSupply } from "@/api/basicInformation/supplier"; |
| | | import {getAreaOptions} from "@/api/system/area.js"; |
| | | |
| | | const props = defineProps({ |
| | | beforeClose: { |
| | | type: Function, |
| | | default: () => { }, |
| | | default: () => { |
| | | }, |
| | | }, |
| | | form: { |
| | | type: Object, |
| | |
| | | const emit = defineEmits(["submit", "handleBeforeClose"]); |
| | | |
| | | onMounted(() => { |
| | | addressSelectOptions.value = mapAddress(addressList); |
| | | fetchAreaOptions() |
| | | }) |
| | | |
| | | // ä¿®æ¹æ å½¢éæ©çæ å° |
| | | const cascaderProps = ref({ |
| | | value: 'id', // æå®valueåæ®µä¸ºid |
| | | label: 'label', // æå®labelåæ®µ |
| | | children: 'children' // æå®åèç¹å段 |
| | | }) |
| | | |
| | | // å°åéæ©æ°æ® |
| | | const addressSelectOptions = ref([]); |
| | | const fetchAreaOptions = async () => { |
| | | addressSelectOptions.value = []; |
| | | |
| | | const res = await getAreaOptions(); |
| | | if (res.code === 200) { |
| | | addressSelectOptions.value = res.data; |
| | | } |
| | | } |
| | | |
| | | // å¤çå°åæ°æ®è½¬æ¢ |
| | | function mapAddress(list) { |
| | | return list.map(item => ({ |
| | | value: item.no, |
| | | value: item.id, |
| | | label: item.name, |
| | | children: item.children ? mapAddress(item.children) : undefined |
| | | })); |
| | | } |
| | | |
| | | // 表åå¼ç¨ |
| | | const formRef = ref(null); |
| | | // è¡¨åæ°æ® |