Browse Source

fix:车险结算增加批量功能

刘恒 1 năm trước cách đây
mục cha
commit
82a017732e

+ 2 - 3
package-lock.json

@@ -2688,7 +2688,7 @@
     },
     "crypto-js": {
       "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
       "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
     },
     "css-color-names": {
@@ -3062,7 +3062,7 @@
     },
     "decimal.js": {
       "version": "10.4.3",
-      "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+      "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz",
       "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
     },
     "decode-uri-component": {
@@ -13760,7 +13760,6 @@
         }
       }
     },
-   
     "vue-draggable-resizable-gorkys": {
       "version": "2.4.8",
       "resolved": "https://registry.npmjs.org/vue-draggable-resizable-gorkys/-/vue-draggable-resizable-gorkys-2.4.8.tgz",

+ 38 - 2
src/http/moudules/task.js

@@ -1854,7 +1854,43 @@ export const addTypeImportExcel = (data) => {
 // 全选
 export const addOrUpdateAll = (data) => {
   return axios({
-    url: '/sysUserLinkPtlAgreement/addOrUpdateAll/'+data,
+    url: '/sysUserLinkPtlAgreement/addOrUpdateAll/' + data,
     method: 'post'
   })
-}
+}
+
+//车险手续费结算批量导入
+export const HandlingFeeBathImport = (data) => {
+  return axios({
+    url: "/fnc/plyFee/insuranceHandlingFeeBathImport",
+    method: "post",
+    data
+  })
+}
+//车险手续费结算批量确认
+export const HandlingFeeBathConfirm = (data) => {
+  return axios({
+    url: "/fnc/plyFee/insuranceHandlingFeeBathConfirm",
+    method: "put",
+    data
+  })
+}
+//非车手续费结算批量导入
+export const HandlingFeeBathNotCarImport = (data) => {
+  return axios({
+    url: "/fnc/plyFee/insuranceHandlingFeeBathNotCarImport",
+    method: "post",
+    data
+  })
+}
+//非车手续费结算批量确认
+export const HandlingNotCarFeeBathConfirm = (data) => {
+  return axios({
+    url: "/fnc/plyFee/insuranceHandlingNotCarFeeBathConfirm",
+    method: "put",
+    data
+  })
+}
+
+
+

+ 93 - 15
src/router/index.js

@@ -16,7 +16,8 @@ import { getIFramePath, getIFrameUrl } from '@/utils/iframe'
 import { getToken } from '@/utils/auth'
 import axios from 'axios'
 import { findNavTree } from '@/api/user'
-
+import CryptoJS from "crypto-js";
+let that = this
 Vue.use(Router)
 
 const router = new Router({
@@ -80,42 +81,119 @@ const router = new Router({
       component: Signature,
       meta: { requiresAuth: true }
     },
-  
+
   ]
 })
 router.beforeEach((to, from, next) => {
   // 登录界面登录成功之后,会把用户信息保存在会话
   // 存在时间为会话生命周期,页面关闭即失效。
-  let token =getToken()
+
+
+
+  let token = getToken()
   //let userName = sessionStorage.getItem('user')
   let userName = Cookies.get('user')
-  
+
   if (to.matched.some(record => record.meta.requiresAuth)) {
     next()
-     return
+    return
     // next({ path: '/Signature' })
   }
-    if (to.path === '/login') {
-      // 如果是访问登录界面,如果用户会话信息存在,代表已登录过,跳转到主页
+  if (to.path === '/login') {
+    // console.log(window.location.href.includes('token'))
+    if (window.location.href.includes('token')) {
+
+      const decryptedBytes = CryptoJS.AES.decrypt(window.location.href.split("=")[1],
+        'token')
+      const token = decryptedBytes.toString(CryptoJS.enc.Utf8);
+      getUser()
+      let userName = Cookies.get('user')
+
       if (token) {
+        let userInfo = JSON.parse(localStorage.getItem("user_data"))
+
+        Cookies.set("token", token);
+        api.menu.findNavTree({ 'userName': userInfo.id }).then(res => {
+          // 添加动态路由
+          let dynamicRoutes = addDynamicRoutes(res.data)
+
+          // 处理静态组件绑定路由
+          handleStaticComponent(router, dynamicRoutes)
+          router.addRoutes(router.options.routes)
+          // 保存加载状态
+          store.commit('menuRouteLoaded', true)
+          // 保存菜单树
+          store.commit('setNavTree', res.data)
+        }).then(res => {
+          api.user.findPermissions({ 'name': userInfo.id }).then(res => {
+            // 保存用户权限标识集合
+            store.commit('setPerms', res.data)
+          })
+        })
+
         next({ path: '/' })
-  
+
       } else {
         next()
       }
+
+
     } else {
-      if (!token) {
-        // 如果访问非登录界面,且户会话信息不存在,代表未登录,则跳转到登录界面
-          next({ path: '/login' })
+      if (token) {
+        next({ path: '/' })
+
       } else {
-        // 加载动态菜单和路由
-        addDynamicMenuAndRoutes(userName, to, from)
         next()
       }
+
+    }
+    // 如果是访问登录界面,如果用户会话信息存在,代表已登录过,跳转到主页
+
+  } else {
+    if (!token) {
+      // 如果访问非登录界面,且户会话信息不存在,代表未登录,则跳转到登录界面
+      next({ path: '/login' })
+    } else {
+      // 加载动态菜单和路由
+      addDynamicMenuAndRoutes(userName, to, from)
+      next()
     }
- 
- 
+  }
+
+
 })
+//获取用户信息
+function getUser() {
+  api.user.getLoginUser().then((response) => {
+    console.log(response)
+    if (response.code == 200) {
+      //头像地址拼接
+      if (
+        response.data.headSculpture != "" &&
+        response.data.headSculpture != null &&
+        response.data.headSculpture != undefined
+      ) {
+        response.data.headSculpture =
+          process.env.BASE_URL + response.data.headSculpture;
+      }
+
+      localStorage.setItem("user_data", JSON.stringify(response.data));
+      store.commit("SET_USER", response.data);
+      sessionStorage.setItem("user", response.data.id);
+      Cookies.set("user", response.data.id);
+
+      localStorage.setItem("routerId", "420");
+      store.commit("menuRouteLoaded", false);
+      // that.$router.push("/");
+      // that.loadingCode = false;
+    } else {
+      that.$message.error(response.msg);
+    }
+  });
+  api.role.findAll().then((res) => {
+    localStorage.setItem("find_all", JSON.stringify(res.data));
+  });
+}
 
 /**
 * 加载动态菜单和路由

+ 86 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/HandlingFees.vue

@@ -484,6 +484,52 @@
         >模板下载</el-button
       >
     </el-dialog>
+    <el-dialog :visible.sync="dialogVisibleradio" width="60%">
+      <el-upload
+        style="margin-bottom: 10px"
+        action="#"
+        class="upload-demo"
+        :limit="1"
+        :auto-upload="false"
+        :on-change="drivinguploadRadio"
+        ref="upload3"
+        :file-list="fileListRadio"
+      >
+        <el-button size="small" type="primary">点击上传</el-button>
+      </el-upload>
+      <p>总金额:{{ tableDataRadio.allAmount }}</p>
+      <el-table
+        :data="tableDataRadio.resultList"
+        border
+        style="width: 100%"
+        height="600"
+      >
+        <el-table-column prop="licenseno" label="车牌号"> </el-table-column>
+        <el-table-column prop="policyno" label="交强保单号"> </el-table-column>
+        <el-table-column prop="syPolicyno" label="商业保单号">
+        </el-table-column>
+        <el-table-column
+          prop="jqSuperviseCostsProportion"
+          label="交强手续费比例"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="sySuperviseCostsProportion"
+          label="商业手续费比例"
+        >
+        </el-table-column>
+        <el-table-column prop="jqSuperviseCostsPremiums" label="交强手续费金额">
+        </el-table-column>
+        <el-table-column prop="sySuperviseCostsPremiums" label="商业手续费金额">
+        </el-table-column>
+        <!-- <el-table-column prop="allAmount" label="总金额"> </el-table-column> -->
+      </el-table>
+      <footer
+        style="margin-top: 15px; display: flex; justify-content: flex-end"
+      >
+        <el-button type="primary" @click="confrimBatch">确认</el-button>
+      </footer>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -1009,6 +1055,12 @@ export default {
             return this.templateDownload();
           },
         },
+        {
+          name: "批量修改比例",
+          click: (row, index) => {
+            return this.handBatchratio();
+          },
+        },
         {
           name: "导出",
           click: (row, index) => {
@@ -1049,6 +1101,9 @@ export default {
       },
       dockingPersonOption: [],
       addTypeList: [],
+      tableDataRadio: {},
+      fileListRadio: [],
+      dialogVisibleradio: false,
     };
   },
   created() {
@@ -1107,6 +1162,37 @@ export default {
     });
   },
   methods: {
+    //打开批量操作修改比例弹框
+    handBatchratio() {
+      this.dialogVisibleradio = true;
+      this.tableDataRadio = {};
+      this.fileListRadio = [];
+    },
+    confrimBatch() {
+      this.$api.task
+        .HandlingFeeBathConfirm({ resultList: this.tableDataRadio.resultList })
+        .then((res) => {
+          if (res.code == 200) {
+            this.$message.success("操作成功");
+
+            this.dialogVisibleradio = false;
+          }
+        });
+    },
+    drivinguploadRadio(file, fileList) {
+      this.fileListRadio = [];
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file.raw);
+      params.append("type", "file");
+      params.append("isNotCar", "1");
+      this.$api.task.HandlingFeeBathImport(params).then((res) => {
+        if (res.code == "200") {
+          this.tableDataRadio = res.data;
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
     drivinguploadExcel(file, fileList) {
       this.progressPercent = 0;
       const params = new FormData(); // 声明formData数据类型

+ 81 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue

@@ -458,6 +458,45 @@
         >模板下载</el-button
       >
     </el-dialog>
+    <el-dialog :visible.sync="dialogVisibleradio" width="60%">
+      <el-upload
+        style="margin-bottom: 10px"
+        action="#"
+        class="upload-demo"
+        :limit="1"
+        :auto-upload="false"
+        :on-change="drivinguploadRadio"
+        ref="upload3"
+        :file-list="fileListRadio"
+      >
+        <el-button size="small" type="primary">点击上传</el-button>
+      </el-upload>
+      <p>总金额:{{ tableDataRadio.allAmount }}</p>
+      <el-table
+        :data="tableDataRadio.resultList"
+        border
+        style="width: 100%"
+        height="600"
+      >
+        <el-table-column prop="licenseno" label="车牌号"> </el-table-column>
+        <el-table-column prop="noPolicyno" label="非车保单号">
+        </el-table-column>
+
+        <el-table-column prop="noSuperviseCostsPremiums" label="非车手续费金额">
+        </el-table-column>
+        <el-table-column
+          prop="noSuperviseCostsProportion"
+          label="非车手续费比例"
+        >
+        </el-table-column>
+        <!-- <el-table-column prop="allAmount" label="总金额"> </el-table-column> -->
+      </el-table>
+      <footer
+        style="margin-top: 15px; display: flex; justify-content: flex-end"
+      >
+        <el-button type="primary" @click="confrimBatch">确认</el-button>
+      </footer>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -919,6 +958,12 @@ export default {
             return this.templateDownload();
           },
         },
+        {
+          name: "批量修改比例",
+          click: (row, index) => {
+            return this.handBatchratio();
+          },
+        },
         {
           name: "导出",
           click: (row, index) => {
@@ -965,6 +1010,9 @@ export default {
       dialogVisibleEdit: false,
       formDataEdit: {},
       addTypeList: [],
+      tableDataRadio: {},
+      fileListRadio: [],
+      dialogVisibleradio: false,
     };
   },
   created() {
@@ -1014,6 +1062,39 @@ export default {
     this.agrmentlist();
   },
   methods: {
+    //打开批量操作修改比例弹框
+    handBatchratio() {
+      this.dialogVisibleradio = true;
+      this.tableDataRadio = {};
+      this.fileListRadio = [];
+    },
+    confrimBatch() {
+      this.$api.task
+        .HandlingNotCarFeeBathConfirm({
+          resultList: this.tableDataRadio.resultList,
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            this.$message.success("操作成功");
+
+            this.dialogVisibleradio = false;
+          }
+        });
+    },
+    drivinguploadRadio(file, fileList) {
+      this.fileListRadio = [];
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file.raw);
+      params.append("type", "file");
+      params.append("isNotCar", "0");
+      this.$api.task.HandlingFeeBathNotCarImport(params).then((res) => {
+        if (res.code == "200") {
+          this.tableDataRadio = res.data;
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
     drivinguploadExcel(file, fileList) {
       this.progressPercent = 0;
       const params = new FormData(); // 声明formData数据类型