wujianwei
2025-12-24 2aaa32f860d4f3fbda01eded1b20a7cab9d3a393
ui/admin-ui3/src/views/tms/collectionTmsQuotePlan/index.vue
@@ -55,7 +55,7 @@
            :data="form.items" ref="itemsCrudRef"
        >
          <template #unit="{row}">
            <el-select  v-model="row.unit" :disabled="scope.disabled" placeholder="请选择计费单位">
            <el-select  v-model="row.unit" :disabled="scope.disabled || !rowKeys.includes(row.rowKey)" placeholder="请选择计费单位">
              <el-option
                  v-for="dict in sys_unit"
                  :key="dict.value"
@@ -65,10 +65,10 @@
            </el-select>
          </template>
          <template #price="{row}">
            <el-input v-model="row.price" :min="1" :disabled="scope.disabled" type="number" placeholder="请输入金额"></el-input>
            <el-input v-model="row.price" :min="1" :disabled="scope.disabled || !rowKeys.includes(row.rowKey)" type="number" placeholder="请输入金额"></el-input>
          </template>
          <template #currency="{row}">
            <el-radio-group v-model="row.currency"  :disabled="scope.disabled">
            <el-radio-group v-model="row.currency"  :disabled="scope.disabled || !rowKeys.includes(row.rowKey)">
              <el-radio
                  v-for="dict in sys_currency"
                  :key="dict.value"
@@ -173,7 +173,7 @@
              });
            }
          },
          type: 'table',suffixIcon:'search',
          type: 'table',suffixIcon:'search',dataType: 'string',
          children:{
            border: true,
            searchMenuSpan: 5,
@@ -456,39 +456,34 @@
    }
  },
  rowSaveBegin:(row:any,loading:any)=>{
      if (selectionList2.value.length == 0){
        proxy.$modal.msgError("请至少选择一条应收费用报价项");
        loading();
        throw new Error("请至少选择一条应收费用报价项");
      if (selectionList2.value.length > 0){
        let filter = selectionList2.value.filter((item:any)=>{
          return !item.price || !item.currency
        });
        if (filter.length > 0){
          proxy.$modal.msgError("请填写所有必填项");
          loading();
          throw new Error("请填写所有必填项")
        }
        row.quoteItems = selectionList2.value;
      }
  },
  rowUpdateBegin(row:any,loading:any){
    if (selectionList2.value.length > 0){
      let filter = selectionList2.value.filter((item:any)=>{
         return !item.price || !item.currency
       });
        return !item.price || !item.currency
      });
      if (filter.length > 0){
        proxy.$modal.msgError("请填写所有必填项");
        loading();
        throw new Error("请填写所有必填项")
      }
      row.quoteItems = selectionList2.value;
  },
  rowUpdateBegin(row:any,loading:any){
    if (selectionList2.value.length == 0){
      proxy.$modal.msgError("请至少选择一条应收费用报价项");
      loading();
      throw new Error("请至少选择一条应收费用报价项");
    }
    let filter = selectionList2.value.filter((item:any)=>{
      return !item.price || !item.currency
    });
    if (filter.length > 0){
      proxy.$modal.msgError("请填写所有必填项");
      loading();
      throw new Error("请填写所有必填项")
    }
    row.quoteItems = selectionList2.value;
  },
  handleEndOpenFunc:(type:string,res:any)=>{
    if (type === 'edit'){
@@ -521,8 +516,11 @@
const goToDetail = (row?:any) => {
  router.push("/collectionTmsQuotePlan/collectionTmsQuotePlanItem?quotePlanType=0&quotePlanId=" + row.id);
}
const rowKeys = ref<any>([]);
const selectionChange2 = (selection?: any[]) => {
  selectionList2.value = selection;
  rowKeys.value = selection?.map((item:any)=>item.rowKey);
}