liyong
7 天以前 cf9f906994422b65daaa9ea287d5093f3fa7463c
feat(sales): 添加销售报价管理功能

- 实现报价单列表展示功能,支持按报价单号、客户进行搜索筛选
- 开发报价单新增和编辑功能,包含客户选择、业务员分配、产品明细配置
- 集成产品树形选择器和规格型号联动选择功能
- 实现报价单详情查看对话框,显示完整报价信息和产品明细
- 添加报价单删除确认功能和分页处理机制
- 实现报价金额自动计算逻辑,包括单价、数量、折扣等计算规则
- 集成客户池数据和用户列表数据获取功能
已修改1个文件
13 ■■■■■ 文件已修改
src/views/salesManagement/salesQuotation/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesQuotation/index.vue
@@ -300,7 +300,6 @@
import Pagination from '@/components/PIMTable/Pagination.vue'
import FormDialog from '@/components/Dialog/FormDialog.vue'
import {getQuotationList,addQuotation,updateQuotation,deleteQuotation} from '@/api/salesManagement/salesQuotation.js'
import {customerList} from "@/api/salesManagement/salesLedger.js";
import {modelList, productTreeList} from "@/api/basicData/product.js";
import {listCustomerPrivatePool} from "@/api/basicData/customerFile.js";
import { userListNoPage } from "@/api/system/user.js";
@@ -316,7 +315,7 @@
const quotationList = ref([])
const userList = ref([])
const productOptions = ref([]);
const modelOptions = ref([]);
const modelOptions  = ref([]);
const pagination = reactive({
  total: 3,
  currentPage: 1,
@@ -401,15 +400,18 @@
  handleSearch()
}
const loadCustomerOptions = async () => {
  const res = await listCustomerPrivatePool({ current: -1, size: -1 });
  customerOption.value = res?.data?.records || [];
}
const handleAdd = async () => {
  dialogTitle.value = '新增报价'
  isEdit.value = false
  resetForm()
  dialogVisible.value = true
  getProductOptions();
  listCustomerPrivatePool({current: -1,size:-1}).then((res) => {
    customerOption.value = res.data.records;
  });
  loadCustomerOptions();
}
const getProductOptions = () => {
    // 返回 Promise,便于编辑时 await 确保能反显
@@ -780,6 +782,7 @@
onMounted(()=>{
  getUserList()
  loadCustomerOptions()
  handleSearch()
})
</script>