浏览代码

财务2.5 提测

hbchen 2 年之前
父节点
当前提交
40352e4311

+ 21 - 0
src/api/financialMana.js

@@ -383,6 +383,27 @@ export function preRegistrationEdit(data) {
      method:'post',
      data
  })
+}
+ // 预开票/预到款保存
+ /**
+  * 
+  * @param {
+ * contract_register_id - 到登记ID
+ * company_name - 客户名称
+ * register_type - 预登记类型 3-开票预登记 4-到款预登记 
+ * start_date - 约定开始日期
+ * end_date - 约定结束日期
+ * lists - 开票/到款列表 
+ * services - 套餐列表
+ * } data 
+ * @returns 
+ */
+export function preRegistrationSave(data) {
+ return request({
+     url:'/contract/pre_register/save',
+     method:'post',
+     data
+ })
 }
  // 删除预登记
  /**

+ 51 - 44
src/views/financialManagement/contractProgress.vue

@@ -24,10 +24,10 @@
   const contractSourceArray=['非CRM合同导入','CRM合同导入']
   const contractStatusArray=[{id:1,label:"已审批"},{id:2,label:"单章寄出"},{id:3,label:"已签回"},{id:4,label:"已终止"},{id:5,label:"邮件备案"}]
   // const contractTypeArray=[{id:1,label:"新签合同"},{id:2,label:"续约合同"},{id:3,label:"代付合同"},{id:4,label:"补充协议"}]
-  const contractTypeArray=[{value:1,label:"自付合同",
-  children:[{value:11,label:"新签",children:null},{value:12,label:"续约",children:null},{value:13,label:"补充协议",children:null}]},
-  {value:2,label:"代付合同",
-  children:[{value:21,label:"新签",children:null},{value:22,label:"续约",children:null},{value:23,label:"补充协议",children:null}]}]
+  const contractTypeArray=[{value:0,label:"自付合同",
+  children:[{value:1,label:"新签",children:null},{value:2,label:"续约",children:null},{value:4,label:"补充协议",children:null}]},
+  {value:1,label:"代付合同",
+  children:[{value:1,label:"新签",children:null},{value:2,label:"续约",children:null},{value:4,label:"补充协议",children:null}]}]
   const operationType=[{op_type:1,label:"合规登记"},{op_type:2,label:"开票登记"},{op_type:3,label:"到款登记"},
   {op_type:4,label:"修改合同状态"},{op_type:5,label:"删除合同登记"},{op_type:6,label:"合规编辑"},{op_type:7,label:"预到款登记"}]
 
@@ -47,7 +47,6 @@
     // 合规登记表单
     form:{
       product_ids:'1,2',
-      pre_pay_id:0, //到款预登记Id
       supplement:0, // 是否是补录合同
       contract_register_id:'',
       crm_contract_id:0,
@@ -65,8 +64,8 @@
       contract_amount:'',
       contract_type:'',
       relate_contract_code:'',
-      relate_main_contract_code:'',
-      actual_company_name:'',
+      relate_contract_main_code:'',
+      actual_pay_companies:'',
       sign_date:'',
       agreed_pay_time:'',
       // 套餐金额
@@ -77,6 +76,8 @@
       service_remark:'',
       remark:""
     },
+    // 合同类型选中
+    contractTypeCheck:[],
     // 货币单位
     currencyUnit:'',
     rules:{
@@ -98,7 +99,7 @@
         trigger:'blur'
       }],
       contract_type:{required:true,message:'合同类型不能为空',trigger:'change'},
-      actual_company_name:{required:true,message:'代付方不能为空',trigger:'blur'}
+      actual_pay_companies:{required:true,message:'代付方不能为空',trigger:'blur'}
     },
     moneyData:{
       // 开票金额
@@ -334,7 +335,6 @@
   // ------------------ 到款预登记
   const supplementary_item=reactive({
     id:0,
-    contract_register_id:0,
     invoice_type:0
   })
 
@@ -489,8 +489,8 @@
       contract_amount:'',
       contract_type:'',
       relate_contract_code:'',
-      relate_main_contract_code:'',
-      actual_company_name:'',
+      relate_contract_main_code:'',
+      actual_pay_companies:'',
       sign_date:'',
       agreed_pay_time:'',
       services:[],
@@ -525,26 +525,26 @@
   }
   // 合同类型改变
   const contractTypeChange=(value)=>{
-    if(value==11 || value ==21){
+    // console.log(value);
+    if(!value) return 
+    contractInfo.form.has_payment = value[0]
+    contractInfo.form.contract_type = value[1]
+    if(contractInfo.form.contract_type==1){
       // 新签 -- 新客户
       contractInfo.form.new_company = 1
     }else{
       // 续约、补充 -- 老客户
       contractInfo.form.new_company = 0
     }
-    if(value!=13 && value!=23){
+    if(contractInfo.form.contract_type==3){
       // 新签、续约
-      contractInfo.form.relate_main_contract_code=''
+      contractInfo.form.relate_contract_main_code=''
     }
-    if(!isPayContract){
+    if(!contractInfo.form.has_payment){
       contractInfo.form.relate_contract_code=''
-      contractInfo.form.actual_company_name=''
+      contractInfo.form.actual_pay_companies=''
     }
   }
-  // 判断合同类型是否是代付
-  const isPayContract=()=>{
-    return [21,22,23].includes(contractInfo.form.contract_type)
-  }
 
   // 服务改变
   const serciveChange=(value,type,serviceType='ficc',openDia=true)=>{
@@ -565,7 +565,7 @@
         contractInfo.varietyDiaShowQy=openDia&&value
       // }
       contractInfo.serviceTypeQy = contractInfo.qYDiaType =  value?type:0
-      console.log(contractInfo.qYDiaType);
+      // console.log(contractInfo.qYDiaType);
     }
   }
   // 选择品种 - ficc
@@ -670,13 +670,16 @@
     contractInfo.form.seller_id=selectItem.seller_id
     contractInfo.form.seller_ids=selectItem.seller_id+''
     contractInfo.form.contract_type=selectItem.contract_type_key
-    contractInfo.form.relate_contract_code=isPayContract?selectItem.relate_contract_code:''
-    contractInfo.form.relate_main_contract_code=contractInfo.form.contract_type==13 || contractInfo.form.contract_type==23?selectItem.relate_main_contract_code:''
-    contractInfo.form.actual_company_name=isPayContract?selectItem.actual_company_name:''
+    contractInfo.form.has_payment = selectItem.actual_pay_companies?1:0
+    contractInfo.form.relate_contract_code=contractInfo.form.has_payment?selectItem.relate_contract_code:''
+    contractInfo.form.relate_contract_main_code=contractInfo.form.contract_type==3?selectItem.relate_contract_main_code:''
+    contractInfo.form.actual_pay_companies=contractInfo.form.has_payment?selectItem.actual_pay_companies:''
+    contractInfo.contractTypeCheck = [contractInfo.form.has_payment,contractInfo.form.contract_type]
+    console.log(contractInfo.contractTypeCheck);
     contractInfoForm.value && 
     contractInfoForm.value.validateField([
       'contract_code','company_name','contract_type','seller_ids',
-      'start_date','contract_amount','relate_contract_code','actual_company_name','relate_main_contract_code'
+      'start_date','contract_amount','relate_contract_code','actual_pay_companies'
     ])
   
     contractInfo.showServiceFicc = selectItem.product_id == 1
@@ -1026,6 +1029,11 @@
             },1000)
           })
         }else{
+          let params=contractInfo.form
+          if(supplementary_item.id){
+            // 预登记过来的
+            params={...params,contract_register_id:supplementary_item.id}
+          }
           // 新增
           contractRegisterCheck({company_name:contractInfo.form.company_name,
             start_date:contractInfo.form.start_date,end_date:contractInfo.form.end_date}).then(res=>{
@@ -1037,7 +1045,7 @@
                 confirmButtonText: '确定',
                 cancelButtonText: '取消'
               }).then(resp=>{
-                registerAdd(contractInfo.form).then(res=>{
+                registerAdd(params).then(res=>{
                   let messageHint=ElMessage.success('合规登记成功')
                   setTimeout(()=>{
                     messageHint.close()
@@ -1046,7 +1054,7 @@
                 })
               }).catch(()=>{})
             }else{
-              registerAdd(contractInfo.form).then(res=>{
+              registerAdd(params).then(res=>{
                 let messageHint=ElMessage.success('合规登记成功')
                 setTimeout(()=>{
                   messageHint.close()
@@ -1179,10 +1187,9 @@
 
 // ----------------------created
   // 合规登记Id
-  contractInfo.form.contract_register_id = parseInt(route.query.complianceId) || ''
+  contractInfo.form.contract_register_id = parseInt(route.query.complianceId) || 0
   // 到款预登记Id
   supplementary_item.id = parseInt(route.query.supplementaryId) || 0
-  supplementary_item.contract_register_id = parseInt(route.query.contract_register_id) || 0
   supplementary_item.invoice_type = parseInt(route.query.invoice_type) || 0
   // complianceId没有,认为是合规登记
   contractInfo.operationtype=contractInfo.form.contract_register_id?(route.query.type || 'view'):'compliance'
@@ -1237,14 +1244,16 @@
         contract_amount:res.data.contract_amount,
         contract_type:res.data.contract_type,
         relate_contract_code:res.data.relate_contract_code,
-        relate_main_contract_code:res.data.relate_main_contract_code,
-        actual_company_name:res.data.actual_company_name,
+        relate_contract_main_code:res.data.relate_contract_main_code,
+        actual_pay_companies:res.data.actual_pay_companies,
         sign_date:res.data.sign_date,
         agreed_pay_time:res.data.agreed_pay_time,
         service_remark:res.data.service_remark,
         remark:res.data.remark,
         contract_source:res.data.contract_source,
       }
+      // 合同类型回显
+      contractInfo.contractTypeCheck = [res.data.has_payment,res.data.contract_type]
       // 销售
       if(res.data.seller_id && res.data.rai_seller_id){
         contractInfo.showServiceFicc = contractInfo.showServiceQy=true
@@ -1429,11 +1438,9 @@
   }else if(supplementary_item.id){
     // 拿到预登记详情信息
     // console.log(supplementary_item.id);
-    preRegistrationDetail({contract_register_id:supplementary_item.contract_register_id,
+    preRegistrationDetail({contract_register_id:supplementary_item.id,
     invoice_type:supplementary_item.invoice_type}).then(res=>{
       if(!res.data) return
-      console.log(res.data);
-      contractInfo.form.pre_pay_id=supplementary_item.id
       contractInfo.form.supplement =1
       contractInfo.form.company_name = res.data.company_name
       contractInfo.form.currency_unit = res.data.list[0]?.currency_unit
@@ -1543,7 +1550,7 @@
                         <el-input v-model.trim="contractInfo.form.contract_amount"
                         placeholder="请输入合同金额"  />
                         <el-select v-model="contractInfo.form.currency_unit" placeholder="请选择货币类型" 
-                        style="margin-left: 20px;" :disabled="contractInfo.form.pre_pay_id!=0">
+                        style="margin-left: 20px;" :disabled="contractInfo.form.supplement!=0">
                           <el-option v-for="item in currencyList" :key="item.code" :label="item.name" :value="item.code">
                           </el-option>
                         </el-select>
@@ -1562,19 +1569,19 @@
                           <el-option :label="item.label" :value="item.id" v-for="item in contractTypeArray" :key="item.id"></el-option>
                         </el-select> -->
                         <el-cascader :options="contractTypeArray" placeholder="请选择合同类型" @change="contractTypeChange"
-                        v-model="contractInfo.form.contract_type" :props="{emitPath:false}" :clearable="false" key="contractType" >
+                        v-model="contractInfo.contractTypeCheck" :clearable="false" key="contractType" >
                         </el-cascader>
                       </el-form-item>
-                      <el-form-item label="关联主合同" prop="relate_main_contract_code" 
-                      v-if="contractInfo.form.contract_type==13 || contractInfo.form.contract_type==23">
-                        <el-input v-model="contractInfo.form.relate_main_contract_code" 
-                        placeholder="请输入关联合同" />
+                      <el-form-item label="关联主合同" prop="relate_contract_main_code" 
+                      v-if="contractInfo.form.contract_type==4">
+                        <el-input v-model="contractInfo.form.relate_contract_main_code" 
+                        placeholder="请输入关联合同" />
                       </el-form-item>
-                      <el-form-item label="代付方" prop="actual_company_name" v-if="isPayContract">
-                        <el-input v-model="contractInfo.form.actual_company_name" 
-                        placeholder="请输入实际使用方" />
+                      <el-form-item label="代付方" prop="actual_pay_companies" v-if="contractInfo.form.has_payment">
+                        <el-input v-model="contractInfo.form.actual_pay_companies" 
+                        placeholder="请输入代付方" />
                       </el-form-item>
-                      <el-form-item label="关联合同" prop="relate_contract_code" v-if="isPayContract">
+                      <el-form-item label="关联合同" prop="relate_contract_code" v-if="contractInfo.form.has_payment">
                         <el-input v-model="contractInfo.form.relate_contract_code" 
                         placeholder="请输入关联合同" />
                       </el-form-item>

+ 3 - 5
src/views/financialManagement/financialList.vue

@@ -269,9 +269,10 @@ const statusArray=[{id:1,label:"进行中"},{id:2,label:"已完成"}]
                   :show-file-list="false"
                   :http-request="importData"
                   v-permission="'financial:list:complianceImport'"
+                  style="margin-right: 30px;"
                 >
                   <el-button size="large" :loading="financial.importLoading"
-                  class="element-common-button" >导入</el-button>
+                  class="element-common-button" style="margin: 0;" >导入</el-button>
                 </el-upload>
                 <el-dropdown trigger="click" popper-class="classifyFandQ" size="large"  @command="exportData">
                   <el-button size="large" class="element-common-button" style="margin-right: 0;" >导出</el-button>
@@ -297,11 +298,8 @@ const statusArray=[{id:1,label:"进行中"},{id:2,label:"已完成"}]
                   {{ row.seller_name+(row.seller_name&&row.rai_seller_name?`、`:'')+row.rai_seller_name }}
                 </template>
               </el-table-column>
-              <el-table-column label="合同类型" align="center" width="90" prop="contract_type"
+              <el-table-column label="合同类型" align="center" width="90" prop="contract_type_string"
               v-if="financial.tabelColumnShowArr.includes('contract_type')">
-                <template #default="{row}">
-                  {{contractTypeArray[row.contract_type-1].label}}
-                </template>
               </el-table-column>
               <el-table-column label="套餐信息" align="center" prop="services" min-width="120"></el-table-column>
               <el-table-column label="合同有效期" align="center" prop="contractDate" width="210" 

+ 111 - 45
src/views/financialManagement/registrationPre.vue

@@ -4,7 +4,7 @@ import {useRouter} from 'vue-router'
 import {getSellerList} from '@/api/crm'
 import {getCurrencyList} from '@/api/common'
 import {getServiceList,getPreRegistrationList,preRegistrationAdd,
-  preRegistrationDetail,preRegistrationEdit,preRegistrationDelete} from '@/api/financialMana'
+  preRegistrationDetail,preRegistrationEdit,preRegistrationDelete,preRegistrationSave} from '@/api/financialMana'
 
 const router = useRouter()
 
@@ -53,7 +53,7 @@ const router = useRouter()
   // 监听
 
   watch(()=>dialog.validityDate,(newVal)=>{
-    console.log(newVal);
+    // console.log(newVal);
     if(!newVal){
       dialog.registrationPreForm.start_date=''
       dialog.registrationPreForm.end_date=''
@@ -138,7 +138,7 @@ const placementPreList=()=>{
   getPreRegistrationList(placemenetPre.searchParams).then(res=>{
     placemenetPre.tableData=res.data.list || []
     placemenetPre.total=res.data.page?.total || 0
-    console.log(res);
+    // console.log(res);
   })
 }
 //新增预登记
@@ -187,6 +187,7 @@ const editRegistrationPre=(row)=>{
   invoice_type:row.invoice_type}).then(res=>{
     if(!res.data) return
     dialog.registrationPreForm.contract_register_id = res.data.contract_register_id
+    dialog.registrationPreForm.pre_register_id = row.pre_register_id
     dialog.registrationPreForm.company_name = res.data.company_name
     dialog.registrationPreForm.invoice_type = row.invoice_type
     dialog.registrationPreForm.IorPInfo=res.data.list
@@ -261,6 +262,7 @@ const submitForm=()=>{
   }
   let params={
     contract_register_id:dialog.registrationPreForm.contract_register_id||0,
+    pre_register_id:dialog.registrationPreForm.pre_register_id||0,
     company_name:dialog.registrationPreForm.company_name,
     register_type:dialog.registrationType=='开票'?3:4,
     start_date:dialog.registrationPreForm.start_date,
@@ -293,6 +295,7 @@ const preDialog=reactive({
   show:false,
   title:'',
   preForm:{
+    company_name:'',
     service_product_id:'',
     start_date:'',
     end_date:'',
@@ -301,7 +304,8 @@ const preDialog=reactive({
     currency_unit:'CNY',
     seller_id:'',
     invoice_type:'',
-    register_date:''
+    register_date:'',
+    remark:''
   },
   validityDate:[],
   selectService:[],
@@ -336,40 +340,94 @@ watch(()=>preDialog.validityDate,(newVal)=>{
 })
 // 预开票/到款
 const preIorP=(row)=>{
-  preDialog.title=row.invoice_typ==3?'预到款':'预开票'
   preRegistrationDetail({contract_register_id:row.contract_register_id,
-  invoice_type:row.invoice_type}).then(res=>{
+  invoice_type:row.invoice_type==3?4:3}).then(res=>{
     if(!res.data) return
     preDialog.preForm.contract_register_id = res.data.contract_register_id
-    // preDialog.preForm.invoice_type = row.invoice_type==3?4:3
-    // dialog.registrationPreForm.IorPInfo=res.data.list
-    // dialog.registrationPreForm.services=res.data.services || []
-    // preDialog.validityDate=[res.data.start_date,res.data.end_date]
-    // dialog.selectServices = [...res.data.services.map(item => item.service_template_id),...res.data.serviceTemplateIds]
-    // dialog.registrationType=row.invoice_type==3?'开票':'到款'
-    // dialog.title=`编辑${dialog.registrationType}预登记`
-    // preDialog.show=true
-    // nextTick(()=>{
-    //   servicesChange(dialog.selectServices,1)
-    // })
+    preDialog.preForm.pre_register_id = row.pre_register_id
+    preDialog.preForm.company_name = res.data.company_name
+    preDialog.preForm.invoice_type = row.invoice_type==3?4:3
+    if(res.data.list.length>0){
+      preDialog.preForm.contract_invoice_id = res.data.list[0].contract_invoice_id
+      preDialog.preForm.amount=res.data.list[0].amount
+      preDialog.preForm.currency_unit=res.data.list[0].currency_unit
+      preDialog.preForm.service_product_id=res.data.list[0].service_product_id
+      preDialog.preForm.seller_id=res.data.list[0].seller_id
+      preDialog.preForm.invoice_type=res.data.list[0].invoice_type
+      preDialog.preForm.register_date=res.data.list[0].register_date
+      preDialog.preForm.remark=res.data.list[0].remark
+    }
+    preDialog.preForm.services=res.data.services || []
+    preDialog.validityDate=[res.data.start_date,res.data.end_date]
+    preDialog.selectServices = [...res.data.services.map(item => item.service_template_id),...res.data.serviceTemplateIds]
+    preDialog.title=row.invoice_type==3?'预到款':'预开票'
+    preDialog.show=true
+    nextTick(()=>{
+      servicesChange(preDialog.selectServices,2)
+    })
   })
 }
 
 const submitPreForm=()=>{
     preFormRef.value.validate((valid)=>{
     if(valid){
-      console.log(preDialog.preForm);
-      // dialog.registrationPreForm.amount = parseFloat(dialog.registrationPreForm.amount)
-      // let prePlacementProp=prePlacementAdd
-      // if(dialog.registrationPreForm.pre_pay_id){
-      //   // 编辑
-      //   prePlacementProp=prePlacementEdit
-      // }
-      // prePlacementProp(dialog.registrationPreForm).then(res=>{
+      // console.log(preDialog.preForm);
+          // 处理选中套餐的数据格式
+      let servicesParam=[]
+      let FICCSmallServiceIds=[]
+      selectServicesPreRef.value.getCheckedNodes().map(node=>{
+        let nodeData = node.data
+        if(!nodeData.service_template_id) return
+        if(nodeData.product_id==2){
+          // 权益
+          servicesParam.push({service_template_id:nodeData.service_template_id,title:nodeData.title})
+        }else{
+          // 90000往上都是FICC小套餐品种的Id,特殊处理
+          if(nodeData.service_template_id>=90000){
+            // 真正拿取的是chart_permission_id
+            if(FICCSmallServiceId.includes(nodeData.service_template_id)) FICCSmallServiceIds.push(nodeData.chart_permission_id)
+          }else{
+            if(nodeData.service_template_id==2){
+              // 小套餐
+              servicesParam.push({service_template_id:nodeData.service_template_id,
+                title:nodeData.title,value:nodeData.value,chart_permission_ids:''})
+            }else{
+              servicesParam.push({service_template_id:nodeData.service_template_id,title:nodeData.title,value:nodeData.value})
+            }
+          }
+        }
+      })
+      for (let i = 0; i < servicesParam.length; i++) {
+        const element = servicesParam[i];
+        if(element.service_template_id==2){
+          element.chart_permission_ids=FICCSmallServiceIds.join(',')
+          break;
+        }
+      }
+      preDialog.preForm.amount = parseFloat(preDialog.preForm.amount)
+      let params={
+        contract_register_id:preDialog.preForm.contract_register_id,
+        pre_register_id:preDialog.preForm.pre_register_id,
+        company_name:preDialog.preForm.company_name,
+        register_type:preDialog.preForm.invoice_type,
+        start_date:preDialog.preForm.start_date,
+        end_date:preDialog.preForm.end_date,
+        list:[{
+          contract_invoice_id:preDialog.preForm.contract_invoice_id,
+          amount:preDialog.preForm.amount,
+          currency_unit:preDialog.preForm.currency_unit,
+          remark:preDialog.preForm.remark,
+          register_date:preDialog.preForm.register_date,
+          seller_id:preDialog.preForm.seller_id||0,
+          service_product_id:preDialog.preForm.service_product_id,
+        }],
+        services:servicesParam||[]
+      }
+      preRegistrationSave(params).then(res=>{
         preDialog.show=false
         ElMessage.success(`${preDialog.title}成功`)
         placementPreList()
-      // })
+      })
     }
   })
 }
@@ -412,6 +470,13 @@ const currencyValidator=(item,callback)=>{
     callback()
   }
 }
+// 新增或编辑预登记 币种修改
+const currencyUnitChange=(value)=>{
+  dialog.registrationPreForm.IorPInfo.map(item =>{
+    item.currency_unit = value
+  })
+}
+
 
 let hasQyBigOne=false
 let hasQyBigTwo=false
@@ -424,7 +489,7 @@ const FICCSmallServiceId=[90001,90016,90103,90138,90142,90109,90110,90114,90107,
 
 // 套餐选择更改
 const servicesChange=(value,type)=>{
-  console.log(value,type);
+  // console.log(value,type);
   // type---> 1-预登记弹窗 2-预开票/预到款弹窗
 
   // 权益大套餐/45万
@@ -487,7 +552,7 @@ const servicesChange=(value,type)=>{
   if(type==1){
     dialog.registrationPreForm.services= dialog.selectServices= value
   }else{
-    preDialog.selectServices=value
+    preDialog.preForm.services=preDialog.selectServices=value
   }
   
 }
@@ -588,8 +653,7 @@ const searchPlacementPre=()=>{
 const supplementaryContract=(row)=>{  
   // console.log(id);
   router.push({path:'/financial/list/contractProgress',query:{
-    supplementaryId:row.pre_register_id,
-    contract_register_id:row.contract_register_id,
+    supplementaryId:row.contract_register_id,
     invoice_type:row.invoice_type
   }})
 }
@@ -642,9 +706,11 @@ placementPreList()
         style="width: 240px;" @input="searchPlacementPre" clearable />
       </div>
       <!-- 按钮区域 -->
-      <div class="placemenetPre-top-option-zone" v-permission="'financial:placementPre:add'">
-        <el-button type="primary" @click="addRegistrationPre('开票')" class="main-button-large" style="margin-left: 30px;">开票预登记</el-button>         
-        <el-button type="primary" @click="addRegistrationPre('到款')" class="main-button-large" style="margin-left: 30px;">到款预登记</el-button>         
+      <div class="placemenetPre-top-option-zone">
+        <el-button type="primary" @click="addRegistrationPre('开票')" class="main-button-large" 
+        style="margin-left: 30px;" v-permission="'financial:registrationPre:AandEInvoice'">开票预登记</el-button>         
+        <el-button type="primary" @click="addRegistrationPre('到款')" class="main-button-large" style="margin-left: 30px;"
+        v-permission="'financial:registrationPre:AandEPayment'">到款预登记</el-button>         
       </div>
     </div>
     <div class="placemenetPre-table-zone">
@@ -668,31 +734,30 @@ placementPreList()
           </template>
         </el-table-column>
         <el-table-column label="套餐" prop="services" show-overflow-tooltip></el-table-column>
-        <el-table-column label="操作" fixed="right" 
-        v-permission="['financial:placementPre:supplementary','financial:placementPre:edit','financial:placementPre:delete']">
+        <el-table-column label="操作" fixed="right" >
           <template #default="{row}">
             <div class="table-options">
-              <span class="table-option-buttons" v-permission="'financial:placementPre:supplementary'"
+              <span class="table-option-buttons" v-permission="'financial:registrationPre:supplementary'"
               @click="supplementaryContract(row)">
                 补录合同
               </span>
-              <span class="table-option-buttons" v-permission="'financial:placementPre:supplementary'"
+              <span class="table-option-buttons" v-permission="'financial:registrationPre:preInvoice'"
               @click="preIorP(row)" v-if="row.invoice_type==4">
                 预开票
               </span>
-              <span class="table-option-buttons" v-permission="'financial:placementPre:supplementary'"
+              <span class="table-option-buttons" v-permission="'financial:registrationPre:prePayment'"
               @click="preIorP(row)"  v-if="row.invoice_type==3">
                 预到款
               </span>
-              <span class="table-option-buttons" v-permission="'financial:placementPre:edit'"
-              @click="editRegistrationPre(row)" v-if="row.invoice_type==3">
+              <span class="table-option-buttons" v-permission="'financial:registrationPre:AandEInvoice'"
+              @click="editRegistrationPre(row)" v-if="row.invoice_type==3" >
                 编辑
               </span>              
-              <span class="table-option-buttons" v-permission="'financial:placementPre:edit'"
+              <span class="table-option-buttons" v-permission="'financial:registrationPre:AandEPayment'"
               @click="editRegistrationPre(row)" v-if="row.invoice_type==4">
                 编辑
               </span>
-              <span class="table-option-buttons" v-permission="'financial:placementPre:delete'"
+              <span class="table-option-buttons" v-permission="'financial:registrationPre:delete'"
               @click="delteRecord(row)" style="color:var(--dangerColor);" v-if="adminId==row.admin_id">
                 删除
               </span>
@@ -760,8 +825,9 @@ placementPreList()
             <el-form-item :label="dialog.registrationType+'金额'" :prop="`IorPInfo.${index}.amount`" label-width="90"  style="margin-right: 20px;"
             :rules="[{required:true,message:'金额不能为空',trigger:'blur'},
               {validator:(rule,value,callback)=>currencyValidator(item,callback),trigger:'blur'}]">
-              <el-input v-model.trim="item.amount" :placeholder="`请输入${dialog.registrationType}金额`" style="width: 131px;margin-right: 15px;" />
-              <el-select v-model="item.currency_unit" placeholder="请选择货币类型" style="width: 91px;" >
+              <el-input v-model.trim="item.amount" 
+              :placeholder="`请输入${dialog.registrationType}金额`" style="width: 131px;margin-right: 15px;" />
+              <el-select v-model="item.currency_unit" placeholder="请选择货币类型" style="width: 91px;" @change="currencyUnitChange">
                 <el-option v-for="currency in currencyList" :key="currency.code" :label="currency.name" :value="currency.code">
                 </el-option>
               </el-select>
@@ -827,7 +893,7 @@ placementPreList()
             :clearable="false">
             </el-date-picker>
         </el-form-item>
-        <el-form-item label="套餐" prop="services" v-if="preDialog.title=='预开票'">
+        <el-form-item label="套餐" prop="services" v-show="preDialog.title=='预开票'">
           <el-cascader filterable :options="servicesList" placeholder="请选择套餐" @change="(value)=>servicesChange(value,2)"
             :show-all-levels="true" v-model="preDialog.selectServices" :clearable="false" ref="selectServicesPreRef"
             :props="{multiple:true,label:'title',value:'service_template_id',emitPath:false}" collapse-tags collapse-tags-tooltip