Przeglądaj źródła

Merge branch 'dev' of http://39.101.143.165:8090/dong_k/tenant-Platform into dev

祁鹏飞 4 tygodni temu
rodzic
commit
fda29c0c86

+ 10 - 2
src/components/SearchForm/index.vue

@@ -9,11 +9,12 @@
             :placeholder="field.placeholder" clearable class="el-inputs" />
           <component v-else-if="field.type === 'select'" is="el-select" v-model="formInline[field.model]"
             :placeholder="field.placeholder" clearable class="el-inputs" v-bind="field">
-            <el-option v-for="(item, index) in field.options" :key="index" :label="item[field.props?.label || 'label']"
+            <el-option v-for="(item, index) in field.options" :key="index"
+              :label="getOptionLabel(item, field.props?.label)"
               :value="item[field.props?.value || 'value']">
               <template #default="scope">
                 <slot :name="`${field.model}-option`" :item="item">
-                  {{ item[field.props?.label || 'label'] }}
+                  {{ getOptionLabel(item, field.props?.label) }}
                 </slot>
               </template>
             </el-option>
@@ -123,6 +124,13 @@ const handleSearch = () => {
 const handleReset = () => {
   props.onReset(); // 调用父组件的重置事件
 };
+
+// 解析下拉选项的显示文本,兼容字符串字段名、数组(按空格拼接)、函数三种形式
+const getOptionLabel = (item: any, label: any): string => {
+  if (typeof label === 'function') return label(item);
+  if (Array.isArray(label)) return label.map((k: string) => item[k]).join(' ');
+  return item[label || 'label'];
+};
 </script>
 <style lang="scss">
 .el-inputs {

+ 31 - 25
src/views/finance/modules/auditDetail.vue

@@ -131,16 +131,17 @@
             </span>
           </el-col>
 
+
           <el-col :span="6" class="TBMsgItem">
-            <span class="label">交强险保单号</span>
+            <span class="label">交强险保</span>
             <span class="value">
-              <span>{{ detailData?.order?.ciPolicyNumber || '--' }}</span>
+              <span>{{ ['新保', '续保', '转保'][detailData?.scoreVo?.jqRenewal] || '--' }}</span>
             </span>
           </el-col>
-          <el-col :span="6" class="TBMsgItem">
-            <span class="label">交强险续保</span>
+            <el-col :span="6" class="TBMsgItem">
+            <span class="label">商业险续保</span>
             <span class="value">
-              <span>{{ [ '新保', '续保', '转保'][detailData?.scoreVo?.jqRenewal] ||  '--' }}</span>
+              <span>{{ ['新保', '续保', '转保'][detailData?.scoreVo?.syRenewal] || '--' }}</span>
             </span>
           </el-col>
           <el-col :span="6" class="TBMsgItem">
@@ -150,9 +151,9 @@
             </span>
           </el-col>
           <el-col :span="6" class="TBMsgItem">
-            <span class="label">驾意险保单号</span>
+            <span class="label">商业险保费</span>
             <span class="value">
-              <span>{{ detailData?.policy?.niPolicyNumber || '--' }}</span>
+              <span>{{ detailData?.costs?.biPremium || '--' }}</span>
             </span>
           </el-col>
           <el-col :span="6" class="TBMsgItem">
@@ -161,24 +162,28 @@
               <span>{{ detailData?.costs?.niPremium || '--' }}</span>
             </span>
           </el-col>
-          <el-col :span="6" class="TBMsgItem">
-            <span class="label">商业险保单号</span>
+            <el-col :span="6" class="TBMsgItem">
+            <span class="label">交强险保单号</span>
             <span class="value">
-              <span>{{ detailData?.order?.biApplyNumber || '--' }}</span>
+              <span>{{ detailData?.order?.ciPolicyNumber || '--' }}</span>
             </span>
           </el-col>
-          <el-col :span="6" class="TBMsgItem">
-            <span class="label">商业险保</span>
+           <el-col :span="6" class="TBMsgItem">
+            <span class="label">商业险保单号</span>
             <span class="value">
-              <span>{{ [ '新保', '续保', '转保'][detailData?.scoreVo?.syRenewal] || '--' }}</span>
+              <span>{{ detailData?.order?.biApplyNumber || '--' }}</span>
             </span>
           </el-col>
           <el-col :span="6" class="TBMsgItem">
-            <span class="label">商业险保费</span>
+            <span class="label">驾意险保单号</span>
             <span class="value">
-              <span>{{ detailData?.costs?.biPremium || '--' }}</span>
+              <span>{{ detailData?.policy?.niPolicyNumber || '--' }}</span>
             </span>
           </el-col>
+
+
+
+
           <el-col :span="6" class="TBMsgItem">
             <span class="label">总金额</span>
             <span class="value">
@@ -194,13 +199,13 @@
           <el-col :span="6" class="TBMsgItem">
             <span class="label">是否过户车</span>
             <span class="value">
-              <span>{{ detailData?.order?.isTransfer  ? '是' : '否' }}</span>
+              <span>{{ detailData?.order?.isTransfer ? '是' : '否' }}</span>
             </span>
           </el-col>
           <el-col :span="6" class="TBMsgItem">
             <span class="label">商业险是否过户</span>
             <span class="value">
-              <span>{{ detailData?.order?.transferBi  ? '是' : '否' }}</span>
+              <span>{{ detailData?.order?.transferBi ? '是' : '否' }}</span>
             </span>
           </el-col>
           <!-- <el-col :span="6" class="TBMsgItem">
@@ -252,12 +257,12 @@
           <el-col :span="6" class="carMsgItem">
             <span class="label">使用性质</span>
             <span class="value">{{ dictChange(optionObj['car_nature_code'], detailData?.carInfoVo?.carNatureCode)
-              }}</span>
+            }}</span>
           </el-col>
           <el-col :span="6" class="carMsgItem">
             <span class="label">车辆用途</span>
             <span class="value">{{ dictChange(optionObj['vehicle_use_code'], detailData?.carInfoVo?.vehicleUseCode)
-              }}</span>
+            }}</span>
           </el-col>
           <el-col :span="6" class="carMsgItem">
             <span class="label">车辆种类</span>
@@ -267,12 +272,12 @@
           <el-col :span="6" class="carMsgItem">
             <span class="label">车辆类型</span>
             <span class="value">{{ dictChange(optionObj['car_type_code'], detailData?.carInfoVo?.carTypeCode)
-              }}</span>
+            }}</span>
           </el-col>
           <el-col :span="6" class="carMsgItem">
             <span class="label">能源种类</span>
             <span class="value">{{ dictChange(optionObj['energy_type_code'], detailData?.carInfoVo?.energyTypeCode)
-              }}</span>
+            }}</span>
           </el-col>
           <el-col :span="6" class="carMsgItem">
             <span class="label">注册日期</span>
@@ -455,7 +460,7 @@
           <div class="taxList">
             <span class="taxItem" :class="{ 'active': item.bool }" v-for="(item, index) in tbList" :key="index">{{
               item.name
-              }}</span>
+            }}</span>
           </div>
         </div>
         <el-row :gutter="20" v-if="!tbList[0].bool">
@@ -519,7 +524,7 @@
           <div class="taxList">
             <span class="taxItem" :class="{ 'active': item.bool }" v-for="(item, index) in bbList" :key="index">{{
               item.name
-              }}</span>
+            }}</span>
           </div>
         </div>
         <el-row :gutter="20" v-if="!bbList[0].bool && !bbList[1].bool">
@@ -587,7 +592,8 @@
             <div v-else style="display: flex; align-items: center; justify-content: flex-end">
               <el-button size="small" type="primary" plain @click="costShow = false">取消调整</el-button>
               <el-button size="small" type="primary" plain @click="handleComputedCostInfo">留点计算</el-button>
-              <el-button size="small" type="primary" :loading="handleSaveCostloading" plain @click="handleSaveCostChange">保存</el-button>
+              <el-button size="small" type="primary" :loading="handleSaveCostloading" plain
+                @click="handleSaveCostChange">保存</el-button>
             </div>
           </div>
         </div>
@@ -1072,7 +1078,7 @@
           <el-table-column prop="packagePrice" label="总价" align="center">
             <template #default="scope">
               <div>{{ scope.row.packagePrice * scope.row.rightsCount || scope.row.contractRate * scope.row.rightsCount
-              }}
+                }}
               </div>
             </template>
           </el-table-column>

+ 7 - 6
src/views/platform/ticket.vue

@@ -226,9 +226,11 @@
       </div>
       <el-button type="primary" link @click="downloadImportFailedData(importModifyCallback)">下载导入失败文件</el-button>
     </div>
+      <div v-if="uploadMsg" class="text-red">上传错误信息:{{ uploadMsg }}</div>
+
     <template #footer>
-      <el-button class="border-[#0083FF] color-[#0083FF]" plain @click="batchShow = false">取消</el-button>
-      <el-button type="primary" @click="batchShow = false">确定</el-button>
+      <el-button class="border-[#0083FF] color-[#0083FF]" plain @click="batchShow = false,uploadMsg = null">取消</el-button>
+      <el-button type="primary" @click="batchShow = false,uploadMsg = null">确定</el-button>
     </template>
   </el-dialog>
   <el-image-viewer v-if="imageShow" :url-list="[bigImageUrl]" @close="imageShow = false" />
@@ -386,6 +388,7 @@ const downloadTemplate = () => {
   })
 }
 let importModifyCallback = ref()// 导入数据回调
+let uploadMsg = ref(null);//上传失败信息
 const uploadJYFile = async (file) => {
   let files = file.raw
   const params = new FormData(); // 声明formData数据类型
@@ -407,10 +410,8 @@ const uploadJYFile = async (file) => {
       type: 'success'
     })
   }else{
-    ElMessage({
-      message: msg,
-      type: 'error'
-    })
+    uploadMsg.value = msg
+    console.log(uploadMsg.value)
   }
 }
 const getSummaries = (param) => {

+ 7 - 7
src/views/receivable/handingFee/ticket.vue

@@ -69,7 +69,7 @@
       <el-button type="primary" @click="addTicket">添加应收</el-button>
     </div>
     <el-table :data="tableData" style="height: calc(100% - 300px)" show-summary
-      :summary-method="val => getSummaries(val, ['jqPremium', 'jqSuperviseCostsProportion', 'syPremium', 'sySuperviseCostsProportion', 'receivableAmount', 'receivableAmount4Car', 'receivableAmount4Other','carInsuranceSuperviseCostsPremiums','carInsuranceSuperviseCostsPremiums'])">
+      :summary-method="val => getSummaries(val, ['jqPremium', 'jqSuperviseCostsProportion', 'syPremium', 'sySuperviseCostsProportion', 'receivableAmount', 'receivableAmount4Car', 'receivableAmount4Other','carInsuranceSuperviseCostsPremiums','nonCarInsuranceSuperviseCostsPremiums'])">
       <template #empty>
         <div v-if="noData">暂无应收,点击<el-button link type="primary" @click="batchShow = true">导入应收</el-button></div>
         <div v-else>没有符合的应收单据~</div>
@@ -258,9 +258,10 @@
         </div>
         <el-button type="primary" link @click="downloadImportFailedData(importModifyCallback)">下载导入失败文件</el-button>
       </div>
+      <div v-if="uploadMsg" class="text-red">上传错误信息:{{ uploadMsg }}</div>
       <template #footer>
-        <el-button class="border-[#0083FF] color-[#0083FF]" plain @click="batchShow = false">取消</el-button>
-        <el-button type="primary" @click="batchShow = false">确定</el-button>
+        <el-button class="border-[#0083FF] color-[#0083FF]" plain @click="batchShow = false,uploadMsg = null">取消</el-button>
+        <el-button type="primary" @click="batchShow = false,uploadMsg = null">确定</el-button>
       </template>
     </el-dialog>
     <el-image-viewer v-if="imageShow" :url-list="[bigImageUrl]" @close="imageShow = false" />
@@ -510,6 +511,8 @@ const uploadImage = async (file, fileList) => {
 
 
 let importModifyCallback = ref()// 导入数据回调
+let uploadMsg = ref(null);//上传失败信息
+
 const uploadJYFile = async (file) => {
   let files = file.raw
   const params = new FormData(); // 声明formData数据类型
@@ -531,10 +534,7 @@ const uploadJYFile = async (file) => {
       type: 'success'
     })
   }else{
-    ElMessage({
-      message: msg,
-      type: 'error'
-    })
+    uploadMsg.value = msg
   }
 }
 // 下载导入失败文件

+ 10 - 2
src/views/representative/quoteApproval.vue

@@ -17,6 +17,9 @@
       <template #costRules="{ data, bodyCell }">
         <div class="whitespace-normal">{{ data.costRules }}</div>
       </template>
+      <template #costDescribe="{ data, bodyCell }">
+        <div class="whitespace-normal">{{ data.costDescribe }}</div>
+      </template>
       <template v-slot:table-title-btn>
         <el-dropdown placement="bottom-start" v-if="activeName == 'pendingReview'">
           <el-button> 批量审核<el-icon>
@@ -150,6 +153,7 @@ const formInline = reactive({
   failureTime: [],
   auditTimeBegin: "",//审核时间开始
   auditTimeEnd: "",//审核时间结束
+  costDescribes: [],//费用描述
   companyId: '',//保险公司id
 })
 const companylist = computed(() => {
@@ -174,7 +178,7 @@ const fields = ref([
   {
     label: "所属协议", model: "agreementIds", type: "select", multiple: true, placeholder: "输入代码,名称,简称查找", options: agreementListALL,
     props: {
-      label: 'agreementTitle',
+      label: (item: any) => `${item.agreementCode}--${item.userAbbr}`,
       value: 'id'
     }, filterable: true
   },
@@ -190,6 +194,9 @@ const fields = ref([
   {
     label: "承保规则", model: "rulesName", type: "input", placeholder: "输入业务规则查找",
   },
+  {
+    label: "费用描述", model: "costDescribes", type: "inputTag", placeholder: "输入费用描述关键字查找",
+  },
   {
     label: "费用规则", model: "costRules", type: "inputTag", placeholder: "输入费用规则关键字查找",
   },
@@ -305,7 +312,7 @@ const columns = [
     prop: "ruleDescription", label: "承保规则", component: 'customSlot', width: '800'
   },
   { prop: "productName", label: "险种", width: '120', },
-  { prop: "costDescribe", label: "费用描述", width: '500', },
+  { prop: "costDescribe", label: "费用描述", width: '500',component: 'customSlot', },
   {
     prop: "costRules", label: "费用规则", component: 'customSlot', width: '500',
   },
@@ -566,6 +573,7 @@ const resetForm = () => {
   formInline.validState = "";
   formInline.effectiveTime = [];
   formInline.failureTime = [];
+  formInline.costDescribes = [];//费用描述
   formInline.companyId = '';//保险公司id
   if (activeName.value == 'pendingReview') {
     findpage("0");