Преглед изворни кода

财务管理—加投结算管理增加批量导入结算

baijunde пре 2 година
родитељ
комит
3de5d6a96f
2 измењених фајлова са 732 додато и 588 уклоњено
  1. 12 1
      src/http/moudules/sys.js
  2. 720 587
      src/views/FinancialManagement/AddInvestment.vue

+ 12 - 1
src/http/moudules/sys.js

@@ -397,4 +397,15 @@ export const deleteAuth = (params) => {
         url: 'sysChannelGrade/deleteAuth' + params,
         method: 'delete',
     })
-}
+}
+
+
+
+//财务管理-加投结算-批量导入上传
+export const sysChannelCost = (data) => {
+    return axios({
+        url: '/sysChannelCost/settleImportData',
+        method: 'post',
+        data
+    })
+}

+ 720 - 587
src/views/FinancialManagement/AddInvestment.vue

@@ -1,620 +1,753 @@
 <template>
-    <div>
-        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
-            @selectionChange="selectionChange" @getList="getList" :btnGroup="btnGroup" @handleSearchList="handleSearchList"
-            :pagination="page">
-        </templateTable>
-        <el-dialog title="编辑" width="60%" :visible.sync="dialogVisibleadd">
-            <templateForm ref="templateForm" :ruleForm="ruleForm" :formData="formData" :inline="false" :rules="rules"
-                :labelWidth="labelWidth"></templateForm>
-            <span slot="footer" class="dialog-footer">
-                <el-button size="small" @click="dialogVisibleadd = false">取 消</el-button>
-                <el-button type="primary" size="small" @click="sumbit">确 定</el-button>
-            </span>
-        </el-dialog>
-        <el-dialog :visible.sync="dialogVisibleradio" width="30%">
-            <el-upload style="margin-bottom: 10px" class="upload-demo" action="#" :limit="1" accept=".png, .jpg, .jpeg"
-                :auto-upload="false" :on-change="drivingupload" :show-file-list="false" list-type="picture-card"
-                ref="upload1">
-                <img v-if="imageUrl" :src="imageUrl" class="avatar">
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-                <div slot="tip" class="el-upload__tip">请上传凭证</div>
-            </el-upload>
-            <span slot="footer" class="dialog-footer">
-                <el-button size="small" @click="dialogVisibleradio = false">取消</el-button>
-                <el-button size="small" type="primary" @click="settlement">确定</el-button>
-            </span>
-        </el-dialog>
-    </div>
+  <div>
+    <templateTable
+      :formList="formList"
+      :searchData.sync="searchData"
+      :tableConfig="tableConfig"
+      :data="tableData"
+      @selectionChange="selectionChange"
+      @getList="getList"
+      :btnGroup="btnGroup"
+      @handleSearchList="handleSearchList"
+      :pagination="page"
+    >
+    </templateTable>
+    <el-dialog title="编辑" width="60%" :visible.sync="dialogVisibleadd">
+      <templateForm
+        ref="templateForm"
+        :ruleForm="ruleForm"
+        :formData="formData"
+        :inline="false"
+        :rules="rules"
+        :labelWidth="labelWidth"
+      ></templateForm>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisibleadd = false"
+          >取 消</el-button
+        >
+        <el-button type="primary" size="small" @click="sumbit">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog :visible.sync="dialogVisibleradio" width="30%">
+      <el-upload
+        style="margin-bottom: 10px"
+        class="upload-demo"
+        action="#"
+        :limit="1"
+        accept=".png, .jpg, .jpeg"
+        :auto-upload="false"
+        :on-change="drivingupload"
+        :show-file-list="false"
+        list-type="picture-card"
+        ref="upload1"
+      >
+        <img v-if="imageUrl" :src="imageUrl" class="avatar" />
+        <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+        <div slot="tip" class="el-upload__tip">请上传凭证</div>
+      </el-upload>
+      <div class="btn_box">
+        <span slot="footer" class="dialog-footer">
+          <el-button size="small" @click="dialogVisibleradio = false"
+            >取消</el-button
+          >
+          <el-button size="small" type="primary" @click="settlement"
+            >确定</el-button
+          >
+        </span>
+      </div>
+    </el-dialog>
+    <!-- 批量导入上传下载 -->
+    <el-dialog :visible.sync="isBulk" width="30%">
+      <el-upload
+        style="margin-bottom: 10px"
+        class="upload-demo"
+        action="#"
+        :limit="1"
+        accept=".png, .jpg, .jpeg"
+        :auto-upload="false"
+        :on-change="bulkUpload"
+        :show-file-list="false"
+        list-type="picture-card"
+        ref="uploadBulk"
+        v-if="isBulk"
+      >
+        <img v-if="bulkImage" :src="bulkImage" class="avatar" />
+        <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+        <div slot="tip" class="el-upload__tip">请上传凭证</div>
+      </el-upload>
+      <div v-if="isBulk">
+        <el-upload
+          style="margin-bottom: 10px"
+          action="#"
+          class="upload-demo"
+          :limit="1"
+          :auto-upload="false"
+          :on-change="drivinguploadExcel"
+          ref="upload4"
+          :file-list="excelFileList"
+        >
+          <el-button size="small" type="primary" @click="templateDownload(1)"
+            >模板下载</el-button
+          >
+          <el-button size="small" type="primary">点击上传</el-button>
+        </el-upload>
+      </div>
+    </el-dialog>
+  </div>
 </template>
 <script>
 import templateTable from "@/components/TemplateTable/index.vue";
 import templateForm from "@/components/TemplateForm/index.vue";
 
 export default {
-    name: "policyImport",
-    components: { templateTable, templateForm },
-    data() {
-        var validecimalRegex = (rule, value, callback) => {
-            let reg = /[^0-1]?\d*/;
-            if (!value) {
-                callback(new Error("请输入比例"));
-            } else if (reg.test(value)) {
-                callback(new Error("只能输入数字且不能大于1!!!"));
-            } else {
-                // callback(new Error("只能输入数字且不能大于1!!!"));
-            }
-      };
-        return {
-            imageUrl: '',
-            dialogVisibleradio: false,
-            selectionList: [],
-            formData: {},
-            dialogVisible: false,
-            dialogVisibleadd: false,
-            labelWidth: '150px',
-            rules: {
-                // jqCostsProportion: [
-                //     { required: true,  validator: validecimalRegex,trigger: 'blur' },
-                // ],
-                jqCostsProportion: [
-                    { required: true, message: '请输入加投比例(交强)', trigger: 'blur' },
-                ],
-                syCostsProportion: [
-                    { required: true, message: '请输入加投比例(商业)', trigger: 'blur' },
-                ],
-                noCostsProportion: [
-                    { required: true, message: '请输入加投比例(非车)', trigger: 'blur' },
-                ],
-
-            },
-            btnGroup: [
-                {
-                    name: '导出',
-                    click: () => this.export()
-                },
-                {
-                    name: '批量结算',
-                        disabled:()=>{
-                            return this.selectionList.length==0
-                        },
-                    click: () => this.batch()
-                }
-            ],
-            formList: [
-                {
-                    label: "工号",
-                    prop: "userId",
-                    type: "input",
-                },
-                {
-                    label: "渠道名称",
-                    prop: "userName",
-                    type: "input",
-                }, {
-                    prop: "status",
-                    label: "审核状态",
-                    type: "select",
-                    options: [
-                        {
-                            label: '未审核',
-                            value: '0'
-                        },
-                        {
-                            label: '审核通过',
-                            value: '1'
-                        }
-                    ]
-                }, {
-                    label: "车牌号",
-                    prop: "licenseNo",
-                    type: "input",
-                },
-            ],
-            ruleForm: [
-                {
-                    label: '加投比例(交强)',
-                    prop: 'jqCostsProportion',
-                    type: 'input',
-                    change: (e) => this.jqCostsProportionFun(e)
-                },
-
-                {
-                    label: '加投比例(商业)',
-                    prop: 'syCostsProportion',
-                    type: 'input',
-                    change: (e) => this.syCostsProportionFun(e)
-                },
-                {
-                    label: '加投比例(非车)',
-                    prop: 'noCostsProportion',
-                    type: 'input',
-                    change: (e) => this.noCostsProportionFun(e)
-                },
-                {
-                    label: '加投金额(交强)',
-                    prop: 'jqJtPremium',
-                    type: 'input',
-                    disabled: true
-                },
-                {
-                    label: '加投金额(商业)',
-                    prop: 'syJtPremium',
-                    type: 'input',
-                    disabled: true
-                },
-                {
-                    label: '加投金额(非车)',
-                    prop: 'jyJtPremium',
-                    type: 'input',
-                    disabled: true
-                },
-                {
-                    label: '交强险费用',
-                    prop: 'jqPremium',
-                    type: 'input',
-                    disabled: true
-                },
-                {
-                    label: '商业险费用',
-                    prop: 'syPremium',
-                    type: 'input',
-                    disabled: true
-                },
-                {
-                    label: '驾意险费用',
-                    prop: 'jyPremium',
-                    type: 'input',
-                    disabled: true
-                },
-
-            ],
-            searchData: {},
-            page: {
-                pageNum: 1,
-                pageSize: 20,
-                totalSize: 0
-            },
-            tableData: [],
-            tableConfig: {
-                columns: [
-                    {
-                        prop: "orderNo",
-                        label: "订单号",
-                        type: "text"
-                    },
-                    {
-                        prop: "userId",
-                        label: "工号",
-                        type: "text"
-                    },
-                    {
-                        prop: "userName",
-                        label: "渠道名称",
-                        type: "text"
-                    },
-                    {
-                        prop: "settleStatus",
-                        label: "结算状态",
-                        type: "statMap",
-                        options: [
-                            {
-                                label: '未结算',
-                                value: '0'
-                            },
-                            {
-                                label: '已结算',
-                                value: '1'
-                            }
-                        ]
-                    },
-                    {
-                        prop: "leaderName",
-                        label: "维护人员",
-                        type: "text"
-                    },
-                    {
-                        prop: "status",
-                        label: "审核状态",
-                        type: "statMap",
-                        options: [
-                            {
-                                label: '未审核',
-                                value: '0'
-                            },
-                            {
-                                label: '审核通过',
-                                value: '1'
-                            }
-                        ]
-                    },
-                    {
-                        prop: "licenseNo",
-                        label: "车牌号",
-                        type: "text"
-                    },
-                    {
-                        prop: "insuredName",
-                        label: "被保险人姓名",
-                        type: "text"
-                    },
-                    {
-                        prop: "companyId",
-                        label: "保险公司编号",
-                        type: "text"
-                    },
-                    {
-                        prop: "inscompany",
-                        label: "保险名称",
-                        type: "text"
-                    },
-
-                    {
-                        prop: "partnerCompaniesName",
-                        label: "合作公司名称",
-                        type: "text"
-                    },
-                    {
-                        prop: "productName",
-                        label: "产品名称",
-                        type: "text"
-                    },
-                    {
-                        prop: "dockingPerson",
-                        label: "对接人",
-                        type: "text"
-                    },
-                    {
-                        prop: "jqCostsProportion",
-                        label: "加投比例(交强)",
-                        type: "text"
-                    },
-                    {
-                        prop: "syCostsProportion",
-                        label: "加投比例(商业)",
-                        type: "text"
-                    },
-                    {
-                        prop: "noCostsProportion",
-                        label: "加投比例(非车)",
-                        type: "text"
-                    },
-                    {
-                        prop: "signingTime",
-                        label: "签单时间",
-                        type: "text"
-                    },
-                    {
-                        prop: "payDate",
-                        label: "支付时间",
-                        type: "text"
-                    },
-                    {
-                        prop: "jqJtPremium",
-                        label: "加投金额(交强)",
-                        type: "text"
-                    },
-                    {
-                        prop: "syJtPremium",
-                        label: "加投金额(商业)",
-                        type: "text"
-                    },
-                    {
-                        prop: "jyJtPremium",
-                        label: "加投金额(非车)",
-                        type: "text"
-                    },
-                    {
-                        prop: "createBy",
-                        label: "创建人",
-                        type: "text"
-                    },
-                    {
-                        prop: "createTime",
-                        label: "创建时间",
-                        type: "text"
-                    },
-                    {
-                        prop: "updateTime",
-                        label: "更新时间",
-                        type: "text"
-                    },
-                    {
-                        prop: "jqPolicyNo",
-                        label: "交强保单号",
-                        type: "text"
-                    },
-                    {
-                        prop: "syPolicyNo",
-                        label: "商业保单号",
-                        type: "text"
-                    },
-                    {
-                        prop: "noPolicyNo",
-                        label: "非车保单号",
-                        type: "text"
-                    },
-                    {
-                        prop: "taxAmount",
-                        label: "车船税费用",
-                        type: "text"
-                    },
-                    {
-                        prop: "jqPremium",
-                        label: "交强险费用",
-                        type: "text"
-                    },
-                    {
-                        prop: "syPremium",
-                        label: "商业险费用",
-                        type: "text"
-                    },
-                    {
-                        prop: "jyPremium",
-                        label: "驾意险费用",
-                        type: "text"
-                    },
-                    {
-                        prop: "jqCostsExportProportion",
-                        label: "交强出口比例",
-                        type: "text"
-                    },
-                    {
-                        prop: "syCostsExportProportion",
-                        label: "商业出口比例",
-                        type: "text"
-                    },
-                    {
-                        prop: "noCostsExportProportion",
-                        label: "非车出口比例",
-                        type: "text"
-                    },
-                    {
-                        prop: "totalPremium",
-                        label: "加投补贴金额",
-                        type: "text"
-                    },
-                    {
-                        prop: "settlementAmount",
-                        label: "结算金额",
-                        type: "text"
-                    },
-                ],
-                loading: true,
-                isPaginationShow: true,
-                operationWidth: 300,
-                isCheckBox: true,
-                optBtns: [
-                    {
-                        type: "primary",
-                        label: "修改",
-                        click: (row, index) => {
-                            return this.handleTableUpload(row);
-                        },
-                    },
-                    // {
-                    //     type: "primary",
-                    //     label: "审核通过",
-                    //     hide: (row) => {
-                    //         return !row.status
-                    //     },
-                    //     click: (row, index) => {
-                    //         return this.handleTableAudit(row);
-                    //     },
-                    // },
-                    {
-                        type: "primary",
-                        label: "删除",
-                        click: (row, index) => {
-                            return this.handleTableDatl(row);
-                        },
-                    },
-
-                ],
-            },
-            seachData: {},
-            voucherNumber: ''
-        };
-    },
-    created() {
-        this.getList();
-
-    },
-    methods: {
-        validateDecimal(event) {
-      // 使用正则表达式来判断输入内容是否为小数
-            const regex = /^[\d]*\.?[\d]*$/;
-            if (!regex.test(event.target.value)) {
-                this.decimalValue = event.target.value.replace(/[^0-9.]/g, '');
-            }
+  name: "policyImport",
+  components: { templateTable, templateForm },
+  data() {
+    var validecimalRegex = (rule, value, callback) => {
+      let reg = /[^0-1]?\d*/;
+      if (!value) {
+        callback(new Error("请输入比例"));
+      } else if (reg.test(value)) {
+        callback(new Error("只能输入数字且不能大于1!!!"));
+      } else {
+        // callback(new Error("只能输入数字且不能大于1!!!"));
+      }
+    };
+    return {
+      imageUrl: "",
+      dialogVisibleradio: false,
+      selectionList: [],
+      formData: {},
+      dialogVisible: false,
+      dialogVisibleadd: false,
+      labelWidth: "150px",
+      rules: {
+        // jqCostsProportion: [
+        //     { required: true,  validator: validecimalRegex,trigger: 'blur' },
+        // ],
+        jqCostsProportion: [
+          {
+            required: true,
+            message: "请输入加投比例(交强)",
+            trigger: "blur",
+          },
+        ],
+        syCostsProportion: [
+          {
+            required: true,
+            message: "请输入加投比例(商业)",
+            trigger: "blur",
+          },
+        ],
+        noCostsProportion: [
+          {
+            required: true,
+            message: "请输入加投比例(非车)",
+            trigger: "blur",
+          },
+        ],
+      },
+      btnGroup: [
+        {
+          name: "导出",
+          click: () => this.export(),
         },
-        selectionChange(val, ref) {
-            if (val.length!==0) {
-                if (val.find(e=>e.settleStatus == 0) ) {
-                    this.selectionList = val;
-                }
-                else {
-                    this.$message({
-                        message: '请选择未结算的数据',
-                        type: 'warning'
-                    });
-                }
-            }
-
+        {
+          name: "批量结算",
+          disabled: () => {
+            return this.selectionList.length == 0;
+          },
+          click: () => this.batch(),
         },
-        drivingupload(file, fileList) {
-            this.$refs.upload1.clearFiles();
-            let file1 = file.raw;
-            let files = window.URL.createObjectURL(file1); //转临时路径
-            this.imageUrl = files;
-            const params = new FormData(); // 声明formData数据类型
-            params.append("multipartFile", file1);
-            params.append("type", "image");
-            this.$api.letter.uploadFile(params).then((res) => {
-                if (res.code == "200") {
-                    this.voucherNumber = res.data.id
-                } else {
-                    this.$message.error(res.msg);
-                }
-            });
+        {
+          name: "批量导入结算",
+          click: () => this.bulkExport(),
         },
-        settlement() {
-            this.$api.sys
-                .sysChannelCostSettle({
-                    voucherNumber: this.voucherNumber,
-                    ids: this.selectionList.map((val) => val.id),
-                })
-                .then((res) => {
-                    if (res.code == 200) {
-                        this.$message({
-                            message: res.msg || "保存成功",
-                            type: "success",
-                        });
-                        this.getList();
-                        this.dialogVisibleradio = false
-                        this.selectionList = [];
-                    } else {
-                        this.$message.error(res.msg);
-                    }
-                });
+      ],
+      formList: [
+        {
+          label: "工号",
+          prop: "userId",
+          type: "input",
         },
-        jqCostsProportionFun(val) {
-            this.formData.jqJtPremium = (Number(val) * Number(this.formData.jqPremium)).toFixed(2)
+        {
+          label: "渠道名称",
+          prop: "userName",
+          type: "input",
         },
-        syCostsProportionFun(val) {
-            this.formData.syJtPremium = (Number(val) * Number(this.formData.syPremium)).toFixed(2)
+        {
+          prop: "status",
+          label: "审核状态",
+          type: "select",
+          options: [
+            {
+              label: "未审核",
+              value: "0",
+            },
+            {
+              label: "审核通过",
+              value: "1",
+            },
+          ],
         },
-        noCostsProportionFun(val) {
-            this.formData.jyJtPremium = (Number(val) * Number(this.formData.jyPremium)).toFixed(2)
-
+        {
+          label: "车牌号",
+          prop: "licenseNo",
+          type: "input",
         },
-        handleTableAudit(val) {
-            this.$api.sys
-                .sysChannelCostAudit({ id: val.id, isAudit: 1 })
-                .then(res => {
-                    if (res.code == 200) {
-                        this.getList();
-                        this.$message({
-                            message: res.msg || '审核通过',
-                            type: 'success'
-                        });
-                    } else {
-                        this.$message.error(res.msg);
-                    }
-                });
+      ],
+      ruleForm: [
+        {
+          label: "加投比例(交强)",
+          prop: "jqCostsProportion",
+          type: "input",
+          change: (e) => this.jqCostsProportionFun(e),
         },
-        export() {
-            this.$api.sys
-                .sysChannelCostExport(this.seachData)
-                .then(res => {
-                    if (res.code == 200) {
-                        let url = process.env.BASE_URL + res.data; // 3.创建一个临时的url指向blob对象
-                        let a = document.createElement("a");
-                        a.href = url;
-                        a.click();
-                        window.URL.revokeObjectURL(url);
-                    } else {
-                        this.$message.error(res.msg);
-                    }
-                });
+
+        {
+          label: "加投比例(商业)",
+          prop: "syCostsProportion",
+          type: "input",
+          change: (e) => this.syCostsProportionFun(e),
         },
-        batch() {
-            this.dialogVisibleradio = true
-            this.imageUrl = '';
-            this.voucherNumber=''
+        {
+          label: "加投比例(非车)",
+          prop: "noCostsProportion",
+          type: "input",
+          change: (e) => this.noCostsProportionFun(e),
         },
-        // 查询
-        handleSearchList(data) {
-            this.seachData = data
-            this.getList(data);
+        {
+          label: "加投金额(交强)",
+          prop: "jqJtPremium",
+          type: "input",
+          disabled: true,
         },
-        add() {
-            this.dialogVisibleadd = true
-            // this.dialogTitle = '新增'
+        {
+          label: "加投金额(商业)",
+          prop: "syJtPremium",
+          type: "input",
+          disabled: true,
         },
-        handleTableDatl(row) {
-            this.$confirm("确认删除该条数据吗?", "提示", {
-                type: "warning",
-            })
-                .then(() => {
-                    this.$api.sys
-                        .sysChannelGroupDel(row.id)
-                        .then(res => {
-                            if (res.code == 200) {
-                                this.getList();
-
-                            } else {
-                                this.$message.error(res.msg);
-                            }
-                        });
-                })
+        {
+          label: "加投金额(非车)",
+          prop: "jyJtPremium",
+          type: "input",
+          disabled: true,
         },
-        sumbit() {
-            this.$refs.templateForm.$refs.publicForm.validate((valid) => {
-                if (valid) {
-                    this.$api.sys
-                        .sysChannelCostModify(this.formData.id, { ... this.formData })
-                        .then(res => {
-                            if (res.code == 200) {
-                                this.getList();
-                                this.dialogVisibleadd = false
-
-                            } else {
-                                this.$message.error(res.msg);
-                            }
-                        });
-                } else {
-                    return false;
-                }
-
-            })
-
+        {
+          label: "交强险费用",
+          prop: "jqPremium",
+          type: "input",
+          disabled: true,
+        },
+        {
+          label: "商业险费用",
+          prop: "syPremium",
+          type: "input",
+          disabled: true,
         },
-        //列表数据
-        getList(data) {
-            this.tableConfig.loading = true;
-            this.$api.sys
-                .sysChannelCostPage({ ...data, ...this.page })
-                .then(res => {
-                    if (res.code == 200) {
-                        this.tableData = res.data.records;
-                        this.page.pageNum = res.data.pageNum;
-                        this.page.pageSize = res.data.pageSize;
-                        this.page.totalSize = res.data.totalSize;
-                        this.tableConfig.loading = false;
-                    } else {
-                        this.tableData = [];
-                        this.$message.error(res.msg);
-                        this.page.totalSize = 0;
-                        this.tableConfig.loading = false;
-                    }
-                });
+        {
+          label: "驾意险费用",
+          prop: "jyPremium",
+          type: "input",
+          disabled: true,
         },
-        handleTableUpload(row) {
+      ],
+      searchData: {},
+      page: {
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0,
+      },
+      tableData: [],
+      tableConfig: {
+        columns: [
+          {
+            prop: "orderNo",
+            label: "订单号",
+            type: "text",
+          },
+          {
+            prop: "userId",
+            label: "工号",
+            type: "text",
+          },
+          {
+            prop: "userName",
+            label: "渠道名称",
+            type: "text",
+          },
+          {
+            prop: "settleStatus",
+            label: "结算状态",
+            type: "statMap",
+            options: [
+              {
+                label: "未结算",
+                value: "0",
+              },
+              {
+                label: "已结算",
+                value: "1",
+              },
+            ],
+          },
+          {
+            prop: "leaderName",
+            label: "维护人员",
+            type: "text",
+          },
+          {
+            prop: "status",
+            label: "审核状态",
+            type: "statMap",
+            options: [
+              {
+                label: "未审核",
+                value: "0",
+              },
+              {
+                label: "审核通过",
+                value: "1",
+              },
+            ],
+          },
+          {
+            prop: "licenseNo",
+            label: "车牌号",
+            type: "text",
+          },
+          {
+            prop: "insuredName",
+            label: "被保险人姓名",
+            type: "text",
+          },
+          {
+            prop: "companyId",
+            label: "保险公司编号",
+            type: "text",
+          },
+          {
+            prop: "inscompany",
+            label: "保险名称",
+            type: "text",
+          },
+
+          {
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
+            type: "text",
+          },
+          {
+            prop: "productName",
+            label: "产品名称",
+            type: "text",
+          },
+          {
+            prop: "dockingPerson",
+            label: "对接人",
+            type: "text",
+          },
+          {
+            prop: "jqCostsProportion",
+            label: "加投比例(交强)",
+            type: "text",
+          },
+          {
+            prop: "syCostsProportion",
+            label: "加投比例(商业)",
+            type: "text",
+          },
+          {
+            prop: "noCostsProportion",
+            label: "加投比例(非车)",
+            type: "text",
+          },
+          {
+            prop: "signingTime",
+            label: "签单时间",
+            type: "text",
+          },
+          {
+            prop: "payDate",
+            label: "支付时间",
+            type: "text",
+          },
+          {
+            prop: "jqJtPremium",
+            label: "加投金额(交强)",
+            type: "text",
+          },
+          {
+            prop: "syJtPremium",
+            label: "加投金额(商业)",
+            type: "text",
+          },
+          {
+            prop: "jyJtPremium",
+            label: "加投金额(非车)",
+            type: "text",
+          },
+          {
+            prop: "createBy",
+            label: "创建人",
+            type: "text",
+          },
+          {
+            prop: "createTime",
+            label: "创建时间",
+            type: "text",
+          },
+          {
+            prop: "updateTime",
+            label: "更新时间",
+            type: "text",
+          },
+          {
+            prop: "jqPolicyNo",
+            label: "交强保单号",
+            type: "text",
+          },
+          {
+            prop: "syPolicyNo",
+            label: "商业保单号",
+            type: "text",
+          },
+          {
+            prop: "noPolicyNo",
+            label: "非车保单号",
+            type: "text",
+          },
+          {
+            prop: "taxAmount",
+            label: "车船税费用",
+            type: "text",
+          },
+          {
+            prop: "jqPremium",
+            label: "交强险费用",
+            type: "text",
+          },
+          {
+            prop: "syPremium",
+            label: "商业险费用",
+            type: "text",
+          },
+          {
+            prop: "jyPremium",
+            label: "驾意险费用",
+            type: "text",
+          },
+          {
+            prop: "jqCostsExportProportion",
+            label: "交强出口比例",
+            type: "text",
+          },
+          {
+            prop: "syCostsExportProportion",
+            label: "商业出口比例",
+            type: "text",
+          },
+          {
+            prop: "noCostsExportProportion",
+            label: "非车出口比例",
+            type: "text",
+          },
+          {
+            prop: "totalPremium",
+            label: "加投补贴金额",
+            type: "text",
+          },
+          {
+            prop: "settlementAmount",
+            label: "结算金额",
+            type: "text",
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+        operationWidth: 300,
+        isCheckBox: true,
+        optBtns: [
+          {
+            type: "primary",
+            label: "修改",
+            click: (row, index) => {
+              return this.handleTableUpload(row);
+            },
+          },
+          // {
+          //     type: "primary",
+          //     label: "审核通过",
+          //     hide: (row) => {
+          //         return !row.status
+          //     },
+          //     click: (row, index) => {
+          //         return this.handleTableAudit(row);
+          //     },
+          // },
+          {
+            type: "primary",
+            label: "删除",
+            click: (row, index) => {
+              return this.handleTableDatl(row);
+            },
+          },
+        ],
+      },
+      seachData: {},
+      voucherNumber: "",
+      excelFileList: [],
+      isBulk: false,
+      bulkImage: "",
+      bulkiamgeFile: "",
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    validateDecimal(event) {
+      // 使用正则表达式来判断输入内容是否为小数
+      const regex = /^[\d]*\.?[\d]*$/;
+      if (!regex.test(event.target.value)) {
+        this.decimalValue = event.target.value.replace(/[^0-9.]/g, "");
+      }
+    },
+    selectionChange(val, ref) {
+      if (val.length !== 0) {
+        if (val.find((e) => e.settleStatus == 0)) {
+          this.selectionList = val;
+        } else {
+          this.$message({
+            message: "请选择未结算的数据",
+            type: "warning",
+          });
+        }
+      }
+    },
+    drivingupload(file, fileList) {
+      this.$refs.upload1.clearFiles();
+      let file1 = file.raw;
+      let files = window.URL.createObjectURL(file1); //转临时路径
+      this.imageUrl = files;
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file1);
+      params.append("type", "image");
+      this.$api.letter.uploadFile(params).then((res) => {
+        if (res.code == "200") {
+          this.voucherNumber = res.data.id;
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    settlement() {
+      this.$api.sys
+        .sysChannelCostSettle({
+          voucherNumber: this.voucherNumber,
+          ids: this.selectionList.map((val) => val.id),
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg || "保存成功",
+              type: "success",
+            });
+            this.getList();
+            this.dialogVisibleradio = false;
+            this.selectionList = [];
+          } else {
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    jqCostsProportionFun(val) {
+      this.formData.jqJtPremium = (
+        Number(val) * Number(this.formData.jqPremium)
+      ).toFixed(2);
+    },
+    syCostsProportionFun(val) {
+      this.formData.syJtPremium = (
+        Number(val) * Number(this.formData.syPremium)
+      ).toFixed(2);
+    },
+    noCostsProportionFun(val) {
+      this.formData.jyJtPremium = (
+        Number(val) * Number(this.formData.jyPremium)
+      ).toFixed(2);
+    },
+    handleTableAudit(val) {
+      this.$api.sys
+        .sysChannelCostAudit({ id: val.id, isAudit: 1 })
+        .then((res) => {
+          if (res.code == 200) {
+            this.getList();
+            this.$message({
+              message: res.msg || "审核通过",
+              type: "success",
+            });
+          } else {
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    export() {
+      this.$api.sys.sysChannelCostExport(this.seachData).then((res) => {
+        if (res.code == 200) {
+          let url = process.env.BASE_URL + res.data; // 3.创建一个临时的url指向blob对象
+          let a = document.createElement("a");
+          a.href = url;
+          a.click();
+          window.URL.revokeObjectURL(url);
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    batch() {
+      this.dialogVisibleradio = true;
+      this.imageUrl = "";
+      this.voucherNumber = "";
+    },
+    //批量导入结算
+    bulkExport() {
+      this.isBulk = true;
+    },
+    //批量导入结算上传
+    drivinguploadExcel(file, fileList) {
+      if (this.bulkiamgeFile == "") {
+        this.$message.error("请先上传凭证");
+        return;
+      } else {
+        //   this.progressPercent = 0;
+        const params = new FormData(); // 声明formData数据类型
 
-            this.$api.sys
-                .sysChannelCostDetail(row.id)
-                .then(res => {
-                    if (res.code == 200) {
-                        this.formData = res.data
-                        this.dialogVisibleadd = true
-                    } else {
-                        this.$message.error(res.msg)
-                    }
-                });
+        params.append("multipartFile", file.raw);
+        params.append("voucherNumber", this.bulkiamgeFile);
+        params.append("type", "file");
 
-        },
-    }
+        this.$api.sys.sysChannelCost(params).then((res) => {
+          if (res.code == "200") {
+            this.bulkiamgeFile = ''
+            this.isBulk = false;
+            this.$message({
+              message: res.msg || "上传成功",
+              type: "success",
+            });
+          } else {
+            this.excelFileList = [];
+            this.$message.error(res.msg);
+          }
+        });
+      }
+    },
+    //批量导入结算弹窗模板下载
+    templateDownload(type) {
+      let a = document.createElement("a");
+      a.href = `${process.env.BASE_URL}/template/js/jtjs.xls`;
+      a.click();
+    },
+    bulkUpload(file, fileList) {
+      let file1 = file.raw;
+      let files = window.URL.createObjectURL(file1); //转临时路径
+      this.bulkImage = files;
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file1);
+      params.append("type", "image");
+      this.$api.letter.uploadFile(params).then((res) => {
+        if (res.code == "200") {
+          this.bulkiamgeFile = res.data.id;
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    // 查询
+    handleSearchList(data) {
+      this.seachData = data;
+      this.getList(data);
+    },
+    add() {
+      this.dialogVisibleadd = true;
+      // this.dialogTitle = '新增'
+    },
+    handleTableDatl(row) {
+      this.$confirm("确认删除该条数据吗?", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api.sys.sysChannelGroupDel(row.id).then((res) => {
+          if (res.code == 200) {
+            this.getList();
+          } else {
+            this.$message.error(res.msg);
+          }
+        });
+      });
+    },
+    sumbit() {
+      this.$refs.templateForm.$refs.publicForm.validate((valid) => {
+        if (valid) {
+          this.$api.sys
+            .sysChannelCostModify(this.formData.id, { ...this.formData })
+            .then((res) => {
+              if (res.code == 200) {
+                this.getList();
+                this.dialogVisibleadd = false;
+              } else {
+                this.$message.error(res.msg);
+              }
+            });
+        } else {
+          return false;
+        }
+      });
+    },
+    //列表数据
+    getList(data) {
+      this.tableConfig.loading = true;
+      this.$api.sys
+        .sysChannelCostPage({ ...data, ...this.page })
+        .then((res) => {
+          if (res.code == 200) {
+            this.tableData = res.data.records;
+            this.page.pageNum = res.data.pageNum;
+            this.page.pageSize = res.data.pageSize;
+            this.page.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          } else {
+            this.tableData = [];
+            this.$message.error(res.msg);
+            this.page.totalSize = 0;
+            this.tableConfig.loading = false;
+          }
+        });
+    },
+    handleTableUpload(row) {
+      this.$api.sys.sysChannelCostDetail(row.id).then((res) => {
+        if (res.code == 200) {
+          this.formData = res.data;
+          this.dialogVisibleadd = true;
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+  },
 };
 </script>
 <style scoped>
 .upload-demo {
-    display: inline-block;
-    margin-left: 5px;
+  display: inline-block;
+  margin-left: 5px;
 }
 
 .avatar {
-    width: 100%;
-    height: 100%;
+  width: 100%;
+  height: 100%;
+}
+.btn_box {
+  width: 100%;
+  text-align: right;
 }
 </style>