소스 검색

客户信息表制单增加必填校验

cgp 1 주 전
부모
커밋
4a1f2e4d2d
2개의 변경된 파일52개의 추가작업 그리고 4개의 파일을 삭제
  1. 8 0
      src/api/qw/companyCustomer.js
  2. 44 4
      src/views/qw/companyCustomer/index.vue

+ 8 - 0
src/api/qw/companyCustomer.js

@@ -113,3 +113,11 @@ export function getCustomerLogList(query) {
     params: query
   })
 }
+
+// 获取销售人员可用的收款记录列表
+export function getCanUsePayReceiptList() {
+  return request({
+    url: '/pay/receipt/canUsePayReceiptList',
+    method: 'get'
+  })
+}

+ 44 - 4
src/views/qw/companyCustomer/index.vue

@@ -459,8 +459,19 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="抵扣金额" prop="reduceAmount" required>
-          <el-input-number v-model="createOrderForm.reduceAmount" placeholder="抵扣金额" size="medium" :precision="2" :min="0" :step="0.1" />
+        <!-- ========== 抵扣金额 ========== -->
+        <el-form-item label="抵扣金额" prop="receiveMoneyId">
+          <el-select v-model="createOrderForm.receiveMoneyId" placeholder="请选择收款记录" @change="handleReceiptChange" clearable>
+            <el-option
+              v-for="item in receiptList"
+              :key="item.id"
+              :label="`${parseTime(item.saleTime)} - ${item.totalFee}元`"
+              :value="item.id"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="抵扣金额" prop="reduceAmount">
+          <el-input v-model="createOrderForm.reduceAmount" disabled />
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -482,7 +493,7 @@
 <script>
 import {
   listCustomer, getCustomer, addCustomer, updateCustomer, delCustomer, exportCustomer,
-  getCompanyUserAndDoctor, getPrescribeListByIdAndPhone, claimCustomer, getCustomerLogList, createUserOrder
+  getCompanyUserAndDoctor, getPrescribeListByIdAndPhone, claimCustomer, getCustomerLogList, createUserOrder,getCanUsePayReceiptList
 } from '@/api/qw/companyCustomer'
 import { parseTime } from '@/utils/common'
 import { getCitys } from "@/api/hisStore/city";
@@ -659,7 +670,10 @@ export default {
         erpType: '',
         payType: '',
         reduceAmount: 0,
+        receiveMoneyId: null    // 选中的收款记录ID
       },
+      //收款记录列表
+      receiptList: [],
       createOrderRules: {
         realName: [{ required: true, message: '收货人姓名不能为空', trigger: 'blur' }],
         phone: [
@@ -668,7 +682,6 @@ export default {
         ],
         detail: [{ required: true, message: '详细地址不能为空', trigger: 'blur' }],
         payType: [{ required: true, message: '请选择支付方式', trigger: 'change' }],
-        reduceAmount: [{ required: true, message: '抵扣金额不能为空', trigger: 'blur' }],
         products: [{ validator: validateProducts, trigger: 'change' }],
         address: [{ validator: validateAddress, trigger: 'change' }]
       },
@@ -694,6 +707,30 @@ export default {
   },
   methods: {
     // ========== 制单相关方法 ==========
+    // ========== 获取收款记录列表 ==========
+    async fetchReceiptList() {
+      try {
+        const res = await getCanUsePayReceiptList();
+        if (res.code === 200) {
+          this.receiptList = res.data || [];
+        } else {
+          this.receiptList = [];
+          this.$message.error(res.msg || '获取收款记录失败');
+        }
+      } catch (err) {
+        this.receiptList = [];
+        this.$message.error('获取收款记录失败,请稍后重试');
+      }
+    },
+    //自动填充抵扣金额
+    handleReceiptChange(selectedId) {
+      const selected = this.receiptList.find(item => item.id === selectedId);
+      if (selected) {
+        this.createOrderForm.reduceAmount = selected.totalFee;
+      } else {
+        this.createOrderForm.reduceAmount = 0;
+      }
+    },
     createOrderSubmitForm() {
       this.$refs["createOrderForm"].validate(valid => {
         // 手动校验地址联动
@@ -746,6 +783,7 @@ export default {
         erpType: '',
         payType: '',
         reduceAmount: 0,
+        receiveMoneyId: null
       };
       this.products = [];
       this.giftProducts = [];
@@ -872,6 +910,8 @@ export default {
       this.createOrderReset();
       this.createOrder.open = true;
       this.createOrderForm.companyCustomerId = row.id;
+      // 每次打开弹窗时重新获取收款记录列表
+      this.fetchReceiptList();
     },
     // 认领状态格式化
     claimStatusFormat(row) {