|
|
@@ -0,0 +1,1891 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-form :model="productpageRequest" size="small" label-width="140px">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="产品类型">
|
|
|
+ <el-select v-model="productpageRequest.productCode" style="width: 100%;" placeholder="选择产品" clearable
|
|
|
+ multiple>
|
|
|
+ <el-option v-for="item in productsTypeoptions" :key="item.dictValue" :label="item.dictTag"
|
|
|
+ :value="item.dictValue"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="审核状态">
|
|
|
+ <el-select v-model="productpageRequest.isAudit" style="width: 100%;" clearable>
|
|
|
+ <el-option v-for="(item, index) in expenseAuditlist" :key="index" :label="item.label"
|
|
|
+ :value="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="费用起期">
|
|
|
+ <el-date-picker style="width: 100%;" v-model="productpageRequest.costStartDate" type="date"
|
|
|
+ placeholder="选择费用开始日期" value-format="yyyy-MM-dd">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="费用止期">
|
|
|
+ <el-date-picker style="width: 100%;" v-model="productpageRequest.costsEndDate" type="date"
|
|
|
+ placeholder="选择费用结束日期" @change="costsEndDateChange" value-format="yyyy-MM-dd">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="是否有效">
|
|
|
+ <el-select style="width: 100%;" v-model="productpageRequest.isEffective" clearable>
|
|
|
+ <el-option label="失效" value="1"></el-option>
|
|
|
+ <el-option label="有效" value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="费用描述">
|
|
|
+ <el-input v-model="productpageRequest.costsDescription" clearable
|
|
|
+ placeholder="关键字搜索 例:新能源、非车险、评分等"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="productExpenseSearch">查询</el-button>
|
|
|
+ <el-button type="success" @click="expenseCopy"
|
|
|
+ style="background-color: #2D4D89;border-color:#2D4D89;">费用复制</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div style="padding:0 10px 10px 10px ;" class=" flex j-s a-c">
|
|
|
+ <span style="font-weight: bold;font-size: 15px;color: #242833;">
|
|
|
+ 产品详情
|
|
|
+ </span>
|
|
|
+ <div class="flex a-c ">
|
|
|
+ <span style="margin-right: 10px;color: #262626;font-size: 14px;">产品类型</span>
|
|
|
+ <el-checkbox-group v-model="roductList1" @change="pruductChange">
|
|
|
+ <el-checkbox v-for="city in productsTypeoptions" :label="city.dictValue" :key="city.dictValue">{{ city.dictTag
|
|
|
+ }}</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ <el-button size="small" style="margin-left: 20px" :disabled="productCostForm.productId.length == 0"
|
|
|
+ @click="productAdd" class="ktbuttonactive"
|
|
|
+ :style="productCostForm.productId.length > 0 ? ktbuttonStyle : '{}'">产品录入</el-button>
|
|
|
+ <el-button class="ktbuttonactive" size="small" :style="ktbuttonStyle" @click="productHistory">历史记录</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <kt-common-table :tableHeights="610" :SerialShow="false" :operationWidth="250" :showOperation="true"
|
|
|
+ :showBatchDelete="true" :showBatchSettled="false" :showBatchPrint="false" :customToolseletted="true"
|
|
|
+ :data="productPageResult" :columns="productColumns" @findPage="productCostFindPage" button2Name="编辑"
|
|
|
+ button2Type="text" button3Type="text" button5Type="text" :button2style="{ color: '#2D4D89' }"
|
|
|
+ :button3style="{ color: '#D42426' }" :button5style="{ color: '#2D4D89' }" permsButton2="agreement:input:productCost"
|
|
|
+ @handleButton2="productUpdate" deleteName="批量修改" @handleDelete="batchUpdate" @customTool="batchDelete"
|
|
|
+ customToolName="批量删除" button3Name="删除" permsButton3="agreement:input:productCost" @handleButton3="productDelete"
|
|
|
+ button5Name="轨迹" @handleButton5="trajectory" button3Icon="">
|
|
|
+ </kt-common-table>
|
|
|
+ <el-dialog :title="productCostAddDialogTitle" :visible.sync="productCostAddVehicleFactorVisible" width="80%" top="6vh"
|
|
|
+ @close="productcloseDialog">
|
|
|
+ <el-tabs v-model="activeName" type="card">
|
|
|
+ <el-tab-pane :label="tabtitle + '费用'" name="feiyong" class="tab-panestyle">
|
|
|
+ <div class="tab-panecent">
|
|
|
+ <el-form ref="productCostForm" :model="productCostForm" label-width="130px" :size="overSize"
|
|
|
+ :rules="costformRules">
|
|
|
+ <el-row>
|
|
|
+ <h4>费用详情</h4>
|
|
|
+ <el-col :span="20" :offset="2" v-if="productCostAddDialogType == 'edit'">
|
|
|
+ <el-form-item label="产品">
|
|
|
+ <el-select v-model="productUpdateObj.productId" placeholder="请选择" @change="productUpdateChange">
|
|
|
+ <el-option v-for="(item, index) in productsTypeoptions" :label="item.dictTag"
|
|
|
+ :value="item.dictValue" :key="index">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="20" :offset="2">
|
|
|
+ <el-form-item label="费用描述">
|
|
|
+ <el-input type="textarea" v-model="productCostForm.costsDescription"
|
|
|
+ placeholder="输入费用描述内容"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10" :offset="2">
|
|
|
+ <el-form-item label="费用起期" prop="costsStartDate">
|
|
|
+ <el-date-picker style="width: 100%" v-model="productCostForm.costsStartDate" type="datetime"
|
|
|
+ placeholder="选择费用开始日期" value-format="yyyy-MM-dd HH:mm:ss" :picker-options="pickerOptions"
|
|
|
+ @change="cleanEndDate">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-form-item label="费用止期" prop="costsEndDate">
|
|
|
+ <el-date-picker style="width: 100%" v-model="productCostForm.costsEndDate" type="datetime"
|
|
|
+ placeholder="选择费用结束日期" value-format="yyyy-MM-dd HH:mm:ss" @change="checkStartDate">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10" :offset="2">
|
|
|
+ <el-form-item label="优先级">
|
|
|
+ <el-input style="width: 100%" v-model="productCostForm.priorityLevel"
|
|
|
+ onkeyup="value=value.replace(/\D/g,'')" placeholder="输入数字"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-row v-if="productjqincludes">
|
|
|
+ <h4>交强险费用</h4>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="费用比例" prop="jqCarCostsProportion">
|
|
|
+ <el-input v-model="productCostForm.jqCarCostsProportion"
|
|
|
+ @blur="costRatioInput('jqCostsProportion', 'jqCarCostsProportion', 'jqCarOtherCostsProportion')"
|
|
|
+ placeholder="请输入费用比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1" v-if="permissions">
|
|
|
+ <el-form-item label="其他费用比例">
|
|
|
+ <el-input disabled v-model="productCostForm.jqCarOtherCostsProportion"
|
|
|
+ placeholder="请输入其他费用比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1" v-if="permissions">
|
|
|
+ <el-form-item label="总费用比例" prop="jqCostsProportion">
|
|
|
+ <el-input v-model="productCostForm.jqCostsProportion"
|
|
|
+ @blur="totalCostRatioInput('jqCostsProportion', 'jqCarCostsProportion', 'jqCarOtherCostsProportion')"
|
|
|
+ placeholder="请输入总费用比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="交强管理比例一级 " prop="jqExportRadioLevel1">
|
|
|
+ <el-input v-model="productCostForm.jqExportRadioLevel1" placeholder="请输入管理费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="交强管理比例二级 " prop="jqExportRadioLevel2">
|
|
|
+ <el-input v-model="productCostForm.jqExportRadioLevel2" placeholder="请输入管理费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="交强管理比例三级 " prop="jqExportRadioLevel3">
|
|
|
+ <el-input v-model="productCostForm.jqExportRadioLevel3" placeholder="请输入管理费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="交强管理比例四级 " prop="jqExportRadioLevel4">
|
|
|
+ <el-input v-model="productCostForm.jqExportRadioLevel4" placeholder="请输入管理费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="交强管理比例五级 " prop="jqExportRadioLevel5">
|
|
|
+ <el-input v-model="productCostForm.jqExportRadioLevel5" placeholder="请输入管理费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="交强出口手续比例" prop="jqCostsExportProportion">
|
|
|
+ <el-input v-model="productCostForm.jqCostsExportProportion" placeholder="请输入出口手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row v-if="productsyincludes">
|
|
|
+ <h4>商业险费用</h4>
|
|
|
+
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="费用比例" prop="syCarCostsProportion">
|
|
|
+ <el-input v-model="productCostForm.syCarCostsProportion"
|
|
|
+ @blur="totalCostRatioInput('syCostsProportion', 'syCarCostsProportion', 'syCarOtherCostsProportion')"
|
|
|
+ placeholder="请输入费用比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="5" :offset="1" v-if="permissions">
|
|
|
+ <el-form-item label="其他费用比例">
|
|
|
+ <el-input v-model="productCostForm.syCarOtherCostsProportion" placeholder="请输入其他费用比例"
|
|
|
+ disabled></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="5" :offset="1" v-if="permissions">
|
|
|
+ <el-form-item label="总费用比例" prop="syCostsProportion">
|
|
|
+ <el-input v-model="productCostForm.syCostsProportion" placeholder="请输入总费用比例"
|
|
|
+ @blur="totalCostRatioInput('syCostsProportion', 'syCarCostsProportion', 'syCarOtherCostsProportion')"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="商业手续比例一级 " prop="syExportRadioLevel1">
|
|
|
+ <el-input v-model="productCostForm.syExportRadioLevel1" placeholder="请输入手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="商业手续比例二级 " prop="syExportRadioLevel2">
|
|
|
+ <el-input v-model="productCostForm.syExportRadioLevel2" placeholder="请输入手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="商业手续比例三级 " prop="syExportRadioLevel3">
|
|
|
+ <el-input v-model="productCostForm.syExportRadioLevel3" placeholder="请输入手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="商业手续比例四级 " prop="syExportRadioLevel4">
|
|
|
+ <el-input v-model="productCostForm.syExportRadioLevel4" placeholder="请输入手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="商业手续比例五级 " prop="syExportRadioLevel5">
|
|
|
+ <el-input v-model="productCostForm.syExportRadioLevel5" placeholder="请输入手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="商业出口手续比例" prop="syCostsExportProportion">
|
|
|
+ <el-input v-model="productCostForm.syCostsExportProportion" placeholder="请输入出口手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <h4>非车费用</h4>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="费用比例" prop="noCarCostsProportion">
|
|
|
+ <el-input v-model="productCostForm.noCarCostsProportion"
|
|
|
+ @blur="totalCostRatioInput('noCostsProportion', 'noCarCostsProportion', 'noCarOtherCostsProportion')"
|
|
|
+ placeholder="请输入费用比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="5" :offset="1" v-if="permissions">
|
|
|
+ <el-form-item label="其他费用比例">
|
|
|
+ <el-input v-model="productCostForm.noCarOtherCostsProportion" placeholder="请输入其他费用比例"
|
|
|
+ disabled></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="5" :offset="1" v-if="permissions">
|
|
|
+ <el-form-item label="总费用比例" prop="noCostsProportion">
|
|
|
+ <el-input v-model="productCostForm.noCostsProportion" placeholder="请输入总费用比例"
|
|
|
+ @blur="totalCostRatioInput('noCostsProportion', 'noCarCostsProportion', 'noCarOtherCostsProportion')"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="非车手续比例一级 " prop="noCarExportRadioLevel1">
|
|
|
+ <el-input v-model="productCostForm.noCarExportRadioLevel1" placeholder="请输入手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="非车手续比例二级 " prop="noCarExportRadioLevel2">
|
|
|
+ <el-input v-model="productCostForm.noCarExportRadioLevel2" placeholder="请输入手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="非车手续比例三级 " prop="noCarExportRadioLevel3">
|
|
|
+ <el-input v-model="productCostForm.noCarExportRadioLevel3" placeholder="请输入手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="非车手续比例四级 " prop="noCarExportRadioLevel4">
|
|
|
+ <el-input v-model="productCostForm.noCarExportRadioLevel4" placeholder="请输入手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="非车手续比例五级 " prop="noCarExportRadioLevel5">
|
|
|
+ <el-input v-model="productCostForm.noCarExportRadioLevel5" placeholder="请输入手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="1">
|
|
|
+ <el-form-item label="非车出口手续比例" prop="noCostsExportProportion">
|
|
|
+ <el-input v-model="productCostForm.noCostsExportProportion" placeholder="请输入出口手续费比例"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="产品费用因子" name="yinzi" class="tab-panestyle">
|
|
|
+ <div class="tab-panecent2">
|
|
|
+ <Product-Cost-Form ref="ProductRef" v-if="productCostAddVehicleFactorVisible" :form="dynamicFormArray"
|
|
|
+ :operator="operatorlist" over-size="small"></Product-Cost-Form>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button :size="overSize" style="background: #EAEDF1;color: #2D4D89;"
|
|
|
+ @click="productCostAddVehicleFactorVisible = false">取 消</el-button>
|
|
|
+ <el-button :size="overSize" style="background: #2D4D89;color: #fff;border-color: #2D4D89;" type="primary"
|
|
|
+ @click="productCostAddSubmit('productCostForm')">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog :visible.sync="ddgjdialogVisible" width="25%" title="订单轨迹">
|
|
|
+ <div class="tab-panestyle">
|
|
|
+ <div style="height: 400px; overflow-y: auto;padding: 6px;">
|
|
|
+ <el-steps direction="vertical" :active="trajectoryTable.length - 1">
|
|
|
+ <el-step :title="item.createTime" :key="item.id" v-for="item in trajectoryTable">
|
|
|
+ <template slot="description">
|
|
|
+ <div class="tab-panecent1">
|
|
|
+ <div>{{ item.readme }}</div>
|
|
|
+ <span>提交人:{{ item.createBy }}</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-step>
|
|
|
+ </el-steps>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog title="产品历史记录" :visible.sync="productHistoryRecordDialogVisible" width="70%" :fullscreen="true">
|
|
|
+ <div class="p-2">
|
|
|
+ <el-row class="queryFrom">
|
|
|
+ <el-form ref="queryFormRef" :model="productHistoryRecordForm" label-width="80px">
|
|
|
+ <el-col :span="5">
|
|
|
+ <el-form-item label="操作人">
|
|
|
+ <el-input clearable style="width:220px" size="small" placeholder="操作人"
|
|
|
+ v-model="productHistoryRecordForm.operator"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5">
|
|
|
+ <el-form-item label="操作类型">
|
|
|
+ <el-select clearable size="small" v-model="productHistoryRecordForm.operatorType" placeholder="请选择">
|
|
|
+ <el-option v-for="item in operationTypeOption" :key="item.value" :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5">
|
|
|
+ <el-form-item label="操作时间">
|
|
|
+ <el-date-picker clearable v-model="productHistoryOperatorTime" type="daterange" size="small"
|
|
|
+ value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
|
|
|
+ @change="productHistorydaterange">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="3">
|
|
|
+ <el-form-item label="">
|
|
|
+ <el-button size="small" type="primary" @click="productHistoryCostFindPage">查询</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-form>
|
|
|
+ </el-row>
|
|
|
+ <kt-common-table :tableHeights="700" :SerialShow="false" :operationWidth="200" :showOperation="true"
|
|
|
+ button2Name="详情" button2Type="text" :button2style="{ color: '#2D4D89' }" @handleButton2="productHistoryDetails"
|
|
|
+ :showBatchDelete="false" :showBatchSettled="false" :showBatchPrint="false" :data="productHistoryRecordResult"
|
|
|
+ :columns="productHistoryRecordColumns" @findPage="productHistoryCostFindPage">
|
|
|
+ </kt-common-table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog title="批量操作" :visible.sync="batchdialogVisible" width="30%">
|
|
|
+ <div class="tab-panestyle">
|
|
|
+
|
|
|
+
|
|
|
+ <el-form :inline="true" :model="batchUpdateForm" class="demo-form-inline tab-panecent" style="padding: 20px;">
|
|
|
+ <el-form-item label="费用起期:">
|
|
|
+ <el-date-picker size="small" style="width: 300px" v-model="batchUpdateForm.costsStartDate" type="datetime"
|
|
|
+ placeholder="选择结束日期" value-format="yyyy-MM-dd HH:mm:ss">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="费用止期:">
|
|
|
+ <el-date-picker size="small" style="width: 300px" v-model="batchUpdateForm.costsEndDate" type="datetime"
|
|
|
+ placeholder="选择结束日期" value-format="yyyy-MM-dd HH:mm:ss" @change="checkStartDate1">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button size="small" @click="batchdialogVisible = false">取 消</el-button>
|
|
|
+ <el-button size="small" style="background: #2D4D89;color: #fff;border-color: #2D4D89;" type="primary"
|
|
|
+ @click="batchCostsubmit">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog title="费用复制窗口" :visible.sync="productCostCopyDialogVisible" :close-on-click-modal="false"
|
|
|
+ :fullscreen="true">
|
|
|
+ <div class="p-2">
|
|
|
+ <el-form :inline="true" :model="productcopyItemPageRequest" class="demo-form-inline" size="small"
|
|
|
+ label-width="80px">
|
|
|
+ <el-form-item label="选择协议">
|
|
|
+ <el-select v-model="productcopyItemPageRequest.agreementId" placeholder="请选择协议">
|
|
|
+ <el-option v-for="(item, index) in protocolpageResult" :key="index" :label="item.agreementAbbreviation"
|
|
|
+ :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="产品">
|
|
|
+ <el-select v-model="productcopyItemPageRequest.productCode" placeholder="选择产品" multiple clearable>
|
|
|
+ <el-option v-for="item in productsTypeoptions" :key="item.dictValue" :label="item.dictTag"
|
|
|
+ :value="item.dictValue"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否有效">
|
|
|
+ <el-select v-model="productcopyItemPageRequest.isEffective" clearable>
|
|
|
+ <el-option label="失效" value="1"></el-option>
|
|
|
+ <el-option label="有效" value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="费用起期">
|
|
|
+ <el-date-picker style="width: 100%" v-model="productcopyItemPageRequest.costStartDate" type="date"
|
|
|
+ placeholder="选择费用开始日期" value-format="yyyy-MM-dd">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="费用止期">
|
|
|
+ <el-date-picker style="width: 100%" v-model="productcopyItemPageRequest.costsEndDate" type="date"
|
|
|
+ placeholder="选择费用结束日期" @change="costsEndDateChange1" :picker-options="productcopypickerOptions"
|
|
|
+ value-format="yyyy-MM-dd">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="费用描述">
|
|
|
+ <el-input v-model="productcopyItemPageRequest.costsDescription" clearable placeholder="费用描述"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="productcopyItemQuery">查询</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <kt-common-table :tableHeights="650" :SerialShow="false" :operationWidth="250" :showOperation="false"
|
|
|
+ :customToolseletted="true" customToolName="批量复制" permscustomTool="agreement:input:productCost"
|
|
|
+ @customTool="customTool" :showBatchDelete="false" :showBatchSettled="false" :showBatchPrint="false"
|
|
|
+ :data="productcopyItemResult" :columns="productcopyItemColumns" @findPage="productcopyItemFindPage">
|
|
|
+ </kt-common-table>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog title="产品费用历史记录详情" :visible.sync="productHistoryDetailsDialogVisible" width="80%" top="6vh">
|
|
|
+ <div class="tab-panestyle">
|
|
|
+ <Product-Cost-Form v-if="productHistoryDetailsDialogVisible" :form="dynamicFormArray" :operator="operatorlist"
|
|
|
+ over-size="small" @cancelForm="productHistoryDetailsDialogVisible = false" :disabled="true"></Product-Cost-Form>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<!-- 行为区域 -->
|
|
|
+<script>
|
|
|
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
|
|
|
+import ProductCostForm from '@/components/Form/ProductCostForm.vue';//表单组件
|
|
|
+export default {
|
|
|
+ // 数据存放区域
|
|
|
+ components: {
|
|
|
+ KtCommonTable,
|
|
|
+ ProductCostForm
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ protocolpageResult: [],
|
|
|
+ productcopyItemResult: [],//协议费用列表
|
|
|
+ productcopyItemPageRequest: {
|
|
|
+ productCode: [],
|
|
|
+ agreementId: "",
|
|
|
+ costStartDate: "",
|
|
|
+ costsEndDate: "",
|
|
|
+ isEffective: "",
|
|
|
+ costsDescription: "",
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 20,
|
|
|
+ },
|
|
|
+ productHistoryOperatorTime: "",
|
|
|
+ batchUpdateForm: {
|
|
|
+ ids: [],
|
|
|
+ costsEndDate: null,
|
|
|
+ costsStartDate: null,
|
|
|
+ },
|
|
|
+ productHistoryDetailsDialogVisible: false,
|
|
|
+ productCostCopyDialogVisible: false,//费用复制
|
|
|
+ batchdialogVisible: false,
|
|
|
+ productHistoryRecordResult: [],
|
|
|
+ productcopyItemColumns: [
|
|
|
+ //数据列
|
|
|
+ { prop: "productName", label: " 产品名称", minWidth: 160 },
|
|
|
+ { prop: "costsStartDate", label: "费用起期", minWidth: 160 },
|
|
|
+ { prop: "costsEndDate", label: "费用止期", minWidth: 160 },
|
|
|
+ { prop: "costsDescription", label: "费用描述", minWidth: 220 },
|
|
|
+ { prop: "desc", label: "费用因子描述", minWidth: 520 },
|
|
|
+ { prop: "priorityLevel", label: "方案优先级", minWidth: 120 },
|
|
|
+ {
|
|
|
+ prop: "jqCarCostsProportion",
|
|
|
+ label: "费用比例(交强)",
|
|
|
+ minWidth: 120,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqCarOtherCostsProportion",
|
|
|
+ label: "其他费用比例(交强)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqCostsProportion",
|
|
|
+ label: "总费用比例(交强)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel1",
|
|
|
+ label: "交强出口比例一级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel2",
|
|
|
+ label: "交强出口比例二级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel3",
|
|
|
+ label: "交强出口比例三级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel4",
|
|
|
+ label: "交强出口比例四级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel5",
|
|
|
+ label: "交强出口比例五级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+
|
|
|
+ {
|
|
|
+ prop: "syCarCostsProportion",
|
|
|
+ label: "费用比例(商业)",
|
|
|
+ minWidth: 120,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syCarOtherCostsProportion",
|
|
|
+ label: "其他费用比例(商业)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syCostsProportion",
|
|
|
+ label: "总费用比例(商业)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel1",
|
|
|
+ label: "商业出口比例一级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel2",
|
|
|
+ label: "商业出口比例二级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel3",
|
|
|
+ label: "商业出口比例三级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel4",
|
|
|
+ label: "商业出口比例四级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel5",
|
|
|
+ label: "商业出口比例五级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarCostsProportion",
|
|
|
+ label: "费用比例(非车)",
|
|
|
+ minWidth: 120,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarOtherCostsProportion",
|
|
|
+ label: "其他费用比例(非车)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCostsProportion",
|
|
|
+ label: "总费用比例(非车)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel1",
|
|
|
+ label: "非车出口比例一级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel2",
|
|
|
+ label: "非车出口比例二级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel3",
|
|
|
+ label: "非车出口比例三级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel4",
|
|
|
+ label: "非车出口比例四级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel5",
|
|
|
+ label: "非车出口比例五级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+
|
|
|
+ ],
|
|
|
+ productHistoryRecordColumns: [
|
|
|
+ //数据列
|
|
|
+ { prop: "productName", label: "产品名称", minWidth: 160 },
|
|
|
+ { prop: "modifierName", label: "操作人", minWidth: 120 },
|
|
|
+ { prop: "operatorTime", label: "操作时间", minWidth: 160 },
|
|
|
+ { prop: "operatorType", label: "操作类型", minWidth: 120, formatter: this.operatorTypeFormatter },
|
|
|
+ { prop: "costsDescription", label: "费用描述", minWidth: 120 },
|
|
|
+ { prop: "costsAttrLinks", label: "费用因子描述", minWidth: 680 },
|
|
|
+ { prop: "costsStartDate", label: "费用起期", minWidth: 180 },
|
|
|
+ { prop: "costsEndDate", label: "费用止期", minWidth: 180 },
|
|
|
+ { prop: "priorityLevel", label: "方案优先级", minWidth: 180 },
|
|
|
+ {
|
|
|
+ prop: "jqCarCostsProportion",
|
|
|
+ label: "费用比例(交强)",
|
|
|
+ minWidth: 120,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqCarOtherCostsProportion",
|
|
|
+ label: "其他费用比例(交强)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqCostsProportion",
|
|
|
+ label: "总费用比例(交强)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel1",
|
|
|
+ label: "交强出口比例一级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel2",
|
|
|
+ label: "交强出口比例二级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel3",
|
|
|
+ label: "交强出口比例三级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel4",
|
|
|
+ label: "交强出口比例四级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel5",
|
|
|
+ label: "交强出口比例五级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syCarCostsProportion",
|
|
|
+ label: "费用比例(商业)",
|
|
|
+ minWidth: 120,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syCarOtherCostsProportion",
|
|
|
+ label: "其他费用比例(商业)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syCostsProportion",
|
|
|
+ label: "总费用比例(商业)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel1",
|
|
|
+ label: "商业出口比例一级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel2",
|
|
|
+ label: "商业出口比例二级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel3",
|
|
|
+ label: "商业出口比例三级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel4",
|
|
|
+ label: "商业出口比例四级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel5",
|
|
|
+ label: "商业出口比例五级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarCostsProportion",
|
|
|
+ label: "费用比例(非车)",
|
|
|
+ minWidth: 120,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarOtherCostsProportion",
|
|
|
+ label: "其他费用比例(非车)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCostsProportion",
|
|
|
+ label: "总费用比例(非车)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel1",
|
|
|
+ label: "非车出口比例一级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel2",
|
|
|
+ label: "非车出口比例二级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel3",
|
|
|
+ label: "非车出口比例三级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel4",
|
|
|
+ label: "非车出口比例四级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel5",
|
|
|
+ label: "非车出口比例五级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+
|
|
|
+ ],
|
|
|
+ operationTypeOption: [
|
|
|
+ {
|
|
|
+ label: '新增',
|
|
|
+ value: 'add'
|
|
|
+ }, {
|
|
|
+ label: '修改',
|
|
|
+ value: 'update'
|
|
|
+ }, {
|
|
|
+ label: '删除',
|
|
|
+ value: 'delete'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ productHistoryRecordForm: {},//产品历史记录检索数据
|
|
|
+ productHistoryRecordDialogVisible: false,//历史记录弹窗
|
|
|
+ ddgjdialogVisible: false,
|
|
|
+ trajectoryTable: [],
|
|
|
+ tabtitle: '',
|
|
|
+ overSize: "small",
|
|
|
+ ktbuttonStyle: {
|
|
|
+ border: '1px solid #2D4D89',
|
|
|
+ color: "#2D4D89",
|
|
|
+ },
|
|
|
+ roductList1: [],
|
|
|
+ //操作符字典
|
|
|
+ operator: { "pageNum": 1, "pageSize": 10, "columnFilters": { "label": { "name": "label", "value": "agreement_operator" } } },
|
|
|
+ operatorlist: [],
|
|
|
+ //操作符字典
|
|
|
+ //费用审核状态
|
|
|
+ expenseAudit: { "pageNum": 1, "pageSize": 10, "columnFilters": { "label": { "name": "label", "value": "agreement_audit_status" } } },
|
|
|
+ expenseAuditlist: [],
|
|
|
+ productsTypeoptions: [],
|
|
|
+ productColumns: [
|
|
|
+ //数据列
|
|
|
+ { prop: "id", label: " ID", minWidth: 160 },
|
|
|
+ { prop: "productName", label: " 产品名称", minWidth: 160 },
|
|
|
+ { prop: "costsStartDate", label: "费用起期", minWidth: 160 },
|
|
|
+ { prop: "costsEndDate", label: "费用止期", minWidth: 160 },
|
|
|
+ { prop: "costsDescription", label: "费用描述", minWidth: 220 },
|
|
|
+ { prop: "desc", label: "费用因子描述", minWidth: 520 },
|
|
|
+ { prop: "priorityLevel", label: "方案优先级", minWidth: 120 },
|
|
|
+ { prop: "isAudit", label: "审核状态", minWidth: 160, formatter: this.auditTypeFormation },
|
|
|
+ {
|
|
|
+ prop: "jqCarCostsProportion",
|
|
|
+ label: "费用比例(交强)",
|
|
|
+ minWidth: 120,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqCarOtherCostsProportion",
|
|
|
+ label: "其他费用比例(交强)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqCostsProportion",
|
|
|
+ label: "总费用比例(交强)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel1",
|
|
|
+ label: "交强出口比例一级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel2",
|
|
|
+ label: "交强出口比例二级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel3",
|
|
|
+ label: "交强出口比例三级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel4",
|
|
|
+ label: "交强出口比例四级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "jqExportRadioLevel5",
|
|
|
+ label: "交强出口比例五级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syCarCostsProportion",
|
|
|
+ label: "费用比例(商业)",
|
|
|
+ minWidth: 120,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syCarOtherCostsProportion",
|
|
|
+ label: "其他费用比例(商业)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syCostsProportion",
|
|
|
+ label: "总费用比例(商业)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel1",
|
|
|
+ label: "商业出口比例一级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel2",
|
|
|
+ label: "商业出口比例二级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel3",
|
|
|
+ label: "商业出口比例三级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel4",
|
|
|
+ label: "商业出口比例四级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "syExportRadioLevel5",
|
|
|
+ label: "商业出口比例五级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+
|
|
|
+ {
|
|
|
+ prop: "noCarCostsProportion",
|
|
|
+ label: "费用比例(非车)",
|
|
|
+ minWidth: 120,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarOtherCostsProportion",
|
|
|
+ label: "其他费用比例(非车)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCostsProportion",
|
|
|
+ label: "总费用比例(非车)",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel1",
|
|
|
+ label: "非车出口比例一级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel2",
|
|
|
+ label: "非车出口比例二级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel3",
|
|
|
+ label: "非车出口比例三级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel4",
|
|
|
+ label: "非车出口比例四级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "noCarExportRadioLevel5",
|
|
|
+ label: "非车出口比例五级",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ ],
|
|
|
+ costformRules: {
|
|
|
+ costsStartDate: [
|
|
|
+ { required: true, message: "请选择费用起期", trigger: "change" },
|
|
|
+ ],
|
|
|
+ costsEndDate: [
|
|
|
+ { required: true, message: "请选择费用止期", trigger: "change" },
|
|
|
+ ],
|
|
|
+
|
|
|
+ jqNewCarCostsProportion: [
|
|
|
+ { required: true, message: "请输入新车费用比例", trigger: "blur" },
|
|
|
+ {
|
|
|
+ pattern: /^([0-4])$/,
|
|
|
+ message: "请输入0-4的整数",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ jqOldCarCostsProportion: [
|
|
|
+ { required: true, message: "请输入旧车费用比例", trigger: "blur" },
|
|
|
+ {
|
|
|
+ pattern: /^([0-4])$/,
|
|
|
+ message: "请输入0-4的整数",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ jqCostsProportion: [
|
|
|
+ { required: true, message: "请输入总费用比例", trigger: "blur" },
|
|
|
+ {
|
|
|
+ pattern: /^100$|^[1-9]?\d(\.\d+)?$|^0(\.\d+)?$/,
|
|
|
+ message: "请输入0-100数",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+
|
|
|
+ syNewCarCostsProportion: [
|
|
|
+ { required: true, message: "请输入新车费用比例", trigger: "blur" },
|
|
|
+ {
|
|
|
+ pattern: /^([0-9]{1,2}|100)$/,
|
|
|
+ message: "请输入0-100的整数",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ syOldCarCostsProportion: [
|
|
|
+ { required: true, message: "请输入旧车费用比例", trigger: "blur" },
|
|
|
+ {
|
|
|
+ pattern: /^([0-9]{1,2}|100)$/,
|
|
|
+ message: "请输入0-100的整数",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ syCostsProportion: [
|
|
|
+ { required: true, message: "请输入总费用比例", trigger: "blur" },
|
|
|
+ {
|
|
|
+ pattern: /^100$|^[1-9]?\d(\.\d+)?$|^0(\.\d+)?$/,
|
|
|
+ message: "请输入0-100的数",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ //分页数据
|
|
|
+ productpageRequest: {
|
|
|
+ isAudit: null,
|
|
|
+ productCode: [],
|
|
|
+ costStartDate: "",
|
|
|
+ costsEndDate: "",
|
|
|
+ costsDescription: "",
|
|
|
+ isEffective: "2",
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 20,
|
|
|
+ agreementId: "",
|
|
|
+ },
|
|
|
+ productPageResult: [],
|
|
|
+ insuranceCompanyId: "",
|
|
|
+ //产品费用
|
|
|
+ productCostForm: {
|
|
|
+ agreementId: '',
|
|
|
+ productName: [],
|
|
|
+ productId: [],
|
|
|
+ costsDescription: "", //费用描述
|
|
|
+ costsStartDate: "", //费用起期
|
|
|
+ costsEndDate: "", //费用止期
|
|
|
+ priorityLevel: "", //方案优先级
|
|
|
+ jqCarCostsProportion: 4, //费用比例(交强)
|
|
|
+ jqCarOtherCostsProportion: "", //其他费用比例(交强)
|
|
|
+ jqCostsProportion: "", //总费用比例(交强)
|
|
|
+ jqExportRadioLevel1: "",//交强出口比例1级
|
|
|
+ jqExportRadioLevel2: "",//交强出口比例2级
|
|
|
+ jqExportRadioLevel3: "",//交强出口比例3级
|
|
|
+ jqExportRadioLevel4: "",//交强出口比例4级
|
|
|
+ jqExportRadioLevel5: "",//交强出口比例5级
|
|
|
+ syCarCostsProportion: "", //费用比例(商业)
|
|
|
+ syCarOtherCostsProportion: "", //其他费用比例(商业)
|
|
|
+ syCostsProportion: "", //总费用比例(商业)
|
|
|
+ syExportRadioLevel1: "",//商业出口比例1级
|
|
|
+ syExportRadioLevel2: "",//商业出口比例2级
|
|
|
+ syExportRadioLevel3: "",//商业出口比例3级
|
|
|
+ syExportRadioLevel4: "",//商业出口比例4级
|
|
|
+ syExportRadioLevel5: "",//商业出口比例5级
|
|
|
+ noCarExportRadioLevel1: "",//非车出口比例1级
|
|
|
+ noCarExportRadioLevel2: "",//非车出口比例2级
|
|
|
+ noCarExportRadioLevel3: "",//非车出口比例3级
|
|
|
+ noCarExportRadioLevel4: "",//非车出口比例4级
|
|
|
+ noCarExportRadioLevel5: "",//非车出口比例5级
|
|
|
+ jqExportInvestmentRadio: "",//交强出口加投比例
|
|
|
+ syExportInvestmentRadio: "",//商业出口加投比例
|
|
|
+ noCarExportInvestmentRadio: "",//非车出口加投比例
|
|
|
+ noCarCostsProportion: "",//费用比例(非车)
|
|
|
+ noCarOtherCostsProportion: "",//其他费用比例(非车)
|
|
|
+ noCostsProportion: "",//总费用比例(非车)
|
|
|
+ costsAttrLinks: [],//费用因子
|
|
|
+ },
|
|
|
+ areanumberplateList: [],//车牌号列表
|
|
|
+ dynamicFormArray: [],
|
|
|
+ productCostAddDialogTitle: "产品录入",
|
|
|
+ productCostAddDialogType: "add",
|
|
|
+ productCostAddVehicleFactorVisible: false,
|
|
|
+ activeName: 'feiyong',
|
|
|
+ productUpdateObj: {
|
|
|
+ productId: "",
|
|
|
+ productName: "",
|
|
|
+ },
|
|
|
+ permissions: null,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 生命周期函数
|
|
|
+ created() {
|
|
|
+ this.insuranceCompanyId = this.$route.query.insuranceCompanyId;
|
|
|
+ this.productpageRequest.agreementId = this.$route.query.id;
|
|
|
+ this.productCostForm.agreementId = this.$route.query.id;
|
|
|
+ this.licenseQuery();
|
|
|
+ this.getFactorTemplate();
|
|
|
+ this.getDicType("productsType"); //车险产品
|
|
|
+ //获取操作符
|
|
|
+ this.$api.dict.findPage(this.operator).then(res => {
|
|
|
+ this.operatorlist = res.data.content;
|
|
|
+ })
|
|
|
+ this.$api.dict.findPage(this.expenseAudit).then(res => {
|
|
|
+ this.expenseAuditlist = res.data.content;
|
|
|
+ })
|
|
|
+ this.$api.insCompany.shutdown().then((res) => {
|
|
|
+ this.permissions = res.data;
|
|
|
+ });
|
|
|
+ this.$api.insCompany.getAllAgreement().then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.protocolpageResult = res.data;
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.msg);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 方法函数
|
|
|
+ methods: {
|
|
|
+ disabledDate1(time) {
|
|
|
+ let datetime = this.productcopyItemPageRequest.costStartDate;
|
|
|
+ const disabledTime = new Date(datetime).getTime() - 8.64e7;
|
|
|
+ return time.getTime() < disabledTime;
|
|
|
+ },
|
|
|
+ productcopyItemQuery() {
|
|
|
+ this.productcopyItemFindPage();
|
|
|
+ },
|
|
|
+ customTool(ids) {
|
|
|
+ this.$confirm('是否确认提交?', '提示', {
|
|
|
+ confirmButtonText: '提交',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ let params = {
|
|
|
+ newAgreementId: this.productCostForm.agreementId,
|
|
|
+ orgCostsIds: ids,
|
|
|
+ }
|
|
|
+ this.$api.insCompany.productContbatchCopy(params).then((res) => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: "批量复制成功",
|
|
|
+ });
|
|
|
+ this.productCostCopyDialogVisible = false;
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'error',
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }).catch(() => {
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ productcopyItemFindPage(data) {
|
|
|
+ if (data && data.pageRequest) {
|
|
|
+ this.productcopyItemPageRequest.pageNum = data.pageRequest.pageNum;
|
|
|
+ this.productcopyItemPageRequest.pageSize = data.pageRequest.pageSize;
|
|
|
+ } else {
|
|
|
+ this.productcopyItemPageRequest.pageNum = 1;
|
|
|
+ this.productcopyItemPageRequest.pageSize = 20;
|
|
|
+ }
|
|
|
+ this.$api.insCompany
|
|
|
+ .productCostQuery(this.productcopyItemPageRequest)
|
|
|
+ .then((res) => {
|
|
|
+ this.productcopyItemResult = res;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ costsEndDateChange1(e) {
|
|
|
+ let tempStartDate = this.productcopyItemPageRequest.costStartDate;
|
|
|
+ let tempEndDate = this.productcopyItemPageRequest.costsEndDate;
|
|
|
+ if (!tempStartDate) {
|
|
|
+ this.productcopyItemPageRequest.costsEndDate = null;
|
|
|
+ this.$message({
|
|
|
+ message: "起期不能为空",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //产品历史记录详情
|
|
|
+ productHistoryDetails({ row, column }) {
|
|
|
+ this.$api.insCompany.productCostHistoryDetails(row.batch).then((res) => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ let obj = Object.assign({}, res.data.agreementProductCostsNewHistory);
|
|
|
+ obj.costsAttrLinkList.map(val => {
|
|
|
+ switch (val.attrType) {
|
|
|
+ case 'inputNumber':
|
|
|
+ if (!val.operator) {
|
|
|
+ val.operator = '1';
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (val.attrCode == 'LicenseNo') {
|
|
|
+ val.dictLabal = this.areanumberplateList;
|
|
|
+ }
|
|
|
+ return val;
|
|
|
+ })
|
|
|
+ this.dynamicFormArray = obj.costsAttrLinkList;
|
|
|
+ this.productCostForm = obj;
|
|
|
+ // this.productUpdateObj.productId= this.productCostForm.productId;
|
|
|
+ // this.productUpdateObj.productName= this.productCostForm.productName;
|
|
|
+ this.productCostForm.productId = [this.productCostForm.productId]
|
|
|
+ this.productCostForm.productName = [this.productCostForm.productName]
|
|
|
+ this.productHistoryDetailsDialogVisible = true;
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'error',
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // this.productHistoryDetailsDialogVisible = true;
|
|
|
+
|
|
|
+ },
|
|
|
+ productHistoryCostFindPage(data) {
|
|
|
+ if (data && data.pageRequest) {
|
|
|
+ this.productpageRequest.pageNum = data.pageRequest.pageNum;
|
|
|
+ this.productpageRequest.pageSize = data.pageRequest.pageSize;
|
|
|
+ } else {
|
|
|
+ this.productpageRequest.pageNum = 1;
|
|
|
+ this.productpageRequest.pageSize = 20;
|
|
|
+ }
|
|
|
+ this.$api.insCompany
|
|
|
+ .productCostHistory({ ...this.productpageRequest, ...this.productHistoryRecordForm })
|
|
|
+ .then((res) => {
|
|
|
+ this.productHistoryRecordResult = res.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //产品费用操作时间
|
|
|
+ productHistorydaterange(e) {
|
|
|
+ if (e) {
|
|
|
+ this.productHistoryRecordForm.operatorStartTime = e[0];
|
|
|
+ this.productHistoryRecordForm.operatorEndTime = e[1];
|
|
|
+ } else {
|
|
|
+ this.productHistoryRecordForm.operatorStartTime = "";
|
|
|
+ this.productHistoryRecordForm.operatorEndTime = "";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //产品历史记录
|
|
|
+ productHistory() {
|
|
|
+ this.productHistoryCostFindPage();
|
|
|
+ this.productHistoryRecordDialogVisible = true;
|
|
|
+ },
|
|
|
+ productUpdateChange(e) {
|
|
|
+ let name = this.productsTypeoptions.find(item => item.dictValue == e).dictTag;
|
|
|
+ this.productUpdateObj.productName = name;
|
|
|
+ this.productCostForm.productName = [name];
|
|
|
+ },
|
|
|
+ // productCostFactorCancelForm(data) {
|
|
|
+ // this.productCostAddVehicleFactorVisible = data;
|
|
|
+ // },
|
|
|
+ // productCostFactorSaveForm(data) {
|
|
|
+ // this.productCostForm.costsAttrLinks = data;
|
|
|
+ // this.productCostAddVehicleFactorVisible = false;
|
|
|
+ // },
|
|
|
+ //弹框关闭事件
|
|
|
+ productcloseDialog() {
|
|
|
+ for (const key in this.productCostForm) {
|
|
|
+ if (key !== "agreementId" && key !== "costsAttrLinks") {
|
|
|
+ this.productCostForm[key] = "";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.productCostForm.productId = [];
|
|
|
+ this.productCostForm.productName = [];
|
|
|
+ this.getFactorTemplate();
|
|
|
+ this.roductList1 = [];
|
|
|
+ },
|
|
|
+ totalCostRatioInput(total, partial, other) {
|
|
|
+ //参数1为总费用,参数2为费用
|
|
|
+ let pay1 = this.productCostForm[total]; //总
|
|
|
+ let pay2 = this.productCostForm[partial]; //费用
|
|
|
+ if (pay1) {
|
|
|
+ if (Number(pay1) >= Number(pay2)) {
|
|
|
+ var otherPay = pay1 - pay2;
|
|
|
+ this.productCostForm[other] = Math.round(otherPay * 100) / 100;
|
|
|
+ } else {
|
|
|
+ //如果总比例不够扣减,则置空重新填
|
|
|
+ this.productCostForm[total] = null;
|
|
|
+ this.productCostForm[partial] = null;
|
|
|
+ this.$message({
|
|
|
+ message: "总费用比例必须大于费用比例",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ batchCostsubmit() {
|
|
|
+ this.$api.insCompany.endDateBatch(this.batchUpdateForm).then((res) => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ this.batchdialogVisible = false;
|
|
|
+ this.productCostFindPage();
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'error',
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ productCostAddSubmit(formName) {
|
|
|
+ const Arraydata = this.$refs.ProductRef.localForm;
|
|
|
+ this.productCostForm.costsAttrLinks = Arraydata.myArray;
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ if (this.productCostAddDialogType == "add") {
|
|
|
+ this.$api.insCompany
|
|
|
+ .productCostSave(this.productCostForm)
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code == "200") {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ this.productCostAddVehicleFactorVisible = false;
|
|
|
+ this.productCostFindPage();
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ if (this.productUpdateObj.productId) {
|
|
|
+ this.productCostForm.productId = [this.productUpdateObj.productId];
|
|
|
+ this.productCostForm.productName = [this.productUpdateObj.productName];
|
|
|
+ }
|
|
|
+ this.$api.insCompany
|
|
|
+ .productCostUpdate(this.productCostForm)
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code == "200") {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ this.productCostAddVehicleFactorVisible = false;
|
|
|
+ this.productCostFindPage();
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //改变费用止期时,校验必须先填费用起期
|
|
|
+ checkStartDate() {
|
|
|
+ let tempStartDate = this.productCostForm.costsStartDate;
|
|
|
+ let tempEndDate = this.productCostForm.costsEndDate;
|
|
|
+ if (!tempStartDate) {
|
|
|
+ this.productCostForm.costsEndDate = null;
|
|
|
+ this.$message({
|
|
|
+ message: "请先选择费用起期!",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (!this.validateEndDate(tempStartDate, tempEndDate)) {
|
|
|
+ this.productCostForm.costsEndDate = null;
|
|
|
+ this.$message({
|
|
|
+ message: "费用止期不能小于/等于费用起期!",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ validateEndDate(startDateStr, endDateStr) {
|
|
|
+ const startDate = new Date(startDateStr);
|
|
|
+ const endDate = new Date(endDateStr);
|
|
|
+ return endDate.getTime() > startDate.getTime();
|
|
|
+ },
|
|
|
+ //改变费用起期时,同步清空对应费用止期,重新填写
|
|
|
+ cleanEndDate() {
|
|
|
+ this.productCostForm.costsEndDate = null;
|
|
|
+ },
|
|
|
+ productAdd() {
|
|
|
+ this.tabtitle = this.productCostForm.productName.join(', '); // 使用逗号和空格作为分隔符
|
|
|
+ this.productCostAddDialogTitle = "产品录入";
|
|
|
+ this.productCostAddDialogType = "add";
|
|
|
+ this.productCostAddVehicleFactorVisible = true;
|
|
|
+ },
|
|
|
+ //添加产品
|
|
|
+ pruductChange(event) {
|
|
|
+ this.productCostForm.productName = [];
|
|
|
+ this.productCostForm.productId = event;
|
|
|
+ event.map(val => {
|
|
|
+ let list = this.productsTypeoptions.find(item => item.dictValue == val).dictTag;
|
|
|
+ this.productCostForm.productName.push(list)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //产品费用复制
|
|
|
+ expenseCopy() {
|
|
|
+ this.productCostCopyDialogVisible = true;
|
|
|
+ this.productcopyItemPageRequest.agreementId = "";
|
|
|
+ this.productcopyItemPageRequest.productCode = [];
|
|
|
+ this.productcopyItemResult = [];
|
|
|
+
|
|
|
+ },
|
|
|
+ //产品删除
|
|
|
+ productDelete({ row, column }) {
|
|
|
+ this.$confirm("此操作将永久删除, 是否继续?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.$api.insCompany.productCostDelete(row.id).then((res) => {
|
|
|
+ if (res.code == "200") {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ this.productCostFindPage();
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: "info",
|
|
|
+ message: "已取消删除",
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 费用因子轨迹
|
|
|
+ trajectory(item) {
|
|
|
+ this.$api.insCompany.trajectoryGet({ costsId: item.row.id }).then((res) => {
|
|
|
+ if (res.code == 200 && res.data.length > 0) {
|
|
|
+ this.ddgjdialogVisible = true;
|
|
|
+ this.trajectoryTable = res.data;
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg || "暂无数据!",
|
|
|
+ type: "warning",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ batchDelete(data) {
|
|
|
+ this.$api.insCompany.deleteBatch(data).then((res) => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ this.productCostFindPage();
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'error',
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ checkStartDate1() {
|
|
|
+ let tempStartDate = this.batchUpdateForm.costsStartDate;
|
|
|
+ let tempEndDate = this.batchUpdateForm.costsEndDate;
|
|
|
+ if (!tempStartDate) {
|
|
|
+ this.batchUpdateForm.costsEndDate = null;
|
|
|
+ this.$message({
|
|
|
+ message: "请先选择费用起期!",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (!this.validateEndDate(tempStartDate, tempEndDate)) {
|
|
|
+ this.batchUpdateForm.costsEndDate = null;
|
|
|
+ this.$message({
|
|
|
+ message: "费用止期不能小于/等于费用起期!",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //产品批量编辑
|
|
|
+ batchUpdate(data) {
|
|
|
+ this.batchUpdateForm.ids = data;
|
|
|
+ this.batchdialogVisible = true;
|
|
|
+ },
|
|
|
+ //产品编辑
|
|
|
+ productUpdate({ row, column }) {
|
|
|
+ this.$api.insCompany.productcostFactorQuery(row.id).then((res) => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ let obj = Object.assign({}, res.data);
|
|
|
+ obj.costsAttrLinks.map(val => {
|
|
|
+ switch (val.attrType) {
|
|
|
+ case 'inputNumber':
|
|
|
+ if (!val.operator) {
|
|
|
+ val.operator = '1';
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (val.attrCode == 'LicenseNo') {
|
|
|
+ val.dictLabal = this.areanumberplateList;
|
|
|
+ }
|
|
|
+ return val;
|
|
|
+ })
|
|
|
+ this.dynamicFormArray = obj.costsAttrLinks;
|
|
|
+ this.productCostForm = obj;
|
|
|
+ this.productUpdateObj.productId = this.productCostForm.productId;
|
|
|
+ this.productUpdateObj.productName = this.productCostForm.productName;
|
|
|
+ this.productCostForm.productId = [this.productCostForm.productId]
|
|
|
+ this.productCostForm.productName = [this.productCostForm.productName]
|
|
|
+ this.tabtitle = this.productCostForm.productName.join(', '); // 使用逗号和空格作为分隔符
|
|
|
+ this.productCostAddDialogType = "edit";
|
|
|
+ this.productCostAddDialogTitle = "产品编辑";
|
|
|
+ this.productCostAddVehicleFactorVisible = true;
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'error',
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ productExpenseSearch() {
|
|
|
+ let tempStartDate = this.productpageRequest.costStartDate;
|
|
|
+ let tempEndDate = this.productpageRequest.costsEndDate;
|
|
|
+ if (tempStartDate && !tempEndDate) {
|
|
|
+ this.$message({
|
|
|
+ message: "止期必传!",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.productCostFindPage();
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ costsEndDateChange(e) {
|
|
|
+ let tempStartDate = this.productpageRequest.costStartDate;
|
|
|
+ if (!tempStartDate) {
|
|
|
+ this.productpageRequest.costsEndDate = null;
|
|
|
+ this.$message({
|
|
|
+ message: "起期不能为空",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //产品分页json
|
|
|
+ productCostFindPage(data) {
|
|
|
+ if (data && data.pageRequest) {
|
|
|
+ this.productpageRequest.pageNum = data.pageRequest.pageNum;
|
|
|
+ this.productpageRequest.pageSize = data.pageRequest.pageSize;
|
|
|
+ } else {
|
|
|
+ this.productpageRequest.pageNum = 1;
|
|
|
+ this.productpageRequest.pageSize = 20;
|
|
|
+ }
|
|
|
+ this.$api.insCompany
|
|
|
+ .productCostQuery(this.productpageRequest)
|
|
|
+ .then((res) => {
|
|
|
+ this.productPageResult = res;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getFactorTemplate() {
|
|
|
+ this.$api.insCompany.productConfigItem(this.insuranceCompanyId).then(res => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ let data = res.data;
|
|
|
+ data.map(ele => {
|
|
|
+ switch (ele.attrType) {
|
|
|
+ case 'inputNumber':
|
|
|
+ ele.operator = '1';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (ele.attrName == '车牌号') {
|
|
|
+ ele.dictLabal = this.areanumberplateList;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // this.productCostForm.costsAttrLinks = data;
|
|
|
+ this.dynamicFormArray = data;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ licenseQuery() {
|
|
|
+ this.$api.insCompany.getAreaLicense("14").then((res) => {
|
|
|
+ let data = [];
|
|
|
+ res.data.map(val => {
|
|
|
+ data.push({
|
|
|
+ code: val.areaNumber,
|
|
|
+ name: val.license,
|
|
|
+ })
|
|
|
+ return val;
|
|
|
+ })
|
|
|
+ this.areanumberplateList = data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //--数据字典 begin --
|
|
|
+ getDicType(type) {
|
|
|
+ this.$api.insCompany.dicType(type).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this[type + "options"] = res.data.ddList;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ auditTypeFormation(row, column) {
|
|
|
+ let expenseAudit = row.isAudit;
|
|
|
+ let expense = this.expenseAuditlist.find(val => val.value == expenseAudit).label;
|
|
|
+ return <el-tag type="success">{expense}</el-tag>;
|
|
|
+ },
|
|
|
+ operatorTypeFormatter(row, column) {
|
|
|
+ let operatorType = row.operatorType;
|
|
|
+ switch (operatorType) {
|
|
|
+ case "add":
|
|
|
+ return '新增'
|
|
|
+ case "update":
|
|
|
+ return '修改'
|
|
|
+ case "delete":
|
|
|
+ return '删除'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ // 计算属性
|
|
|
+ computed: {
|
|
|
+
|
|
|
+ productjqincludes() {
|
|
|
+ let a = ['单交', '交三', '交商', '兜底配置'];
|
|
|
+ let b = this.productCostForm.productName;
|
|
|
+ let contains = b.every(item => a.includes(item));
|
|
|
+ return contains
|
|
|
+ },
|
|
|
+ productsyincludes() {
|
|
|
+ let a = ['单商', '单三', '交商', '交三', '兜底配置'];
|
|
|
+ let b = this.productCostForm.productName;
|
|
|
+ let contains = b.every(item => a.includes(item));
|
|
|
+ return contains
|
|
|
+ },
|
|
|
+ productcopypickerOptions() {
|
|
|
+ return {
|
|
|
+ disabledDate: this.disabledDate1,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ pickerOptions() {
|
|
|
+ return {
|
|
|
+ disabledDate: this.disabledDate,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+<!-- 样式区域 -->
|
|
|
+<style lang='scss' scoped>
|
|
|
+/deep/ {
|
|
|
+ .el-step__icon.is-text {
|
|
|
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .1);
|
|
|
+ color: #2D4D89;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-pagination.is-background .el-pager li:not(.disabled).active {
|
|
|
+ background-color: #2D4D89;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-radio-button__orig-radio:checked+.el-radio-button__inner {
|
|
|
+ background: #2D4D89 !important;
|
|
|
+ border-color: #2D4D89 !important;
|
|
|
+ box-shadow: -1px 0 0 0 #2D4D89;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-radio-button__inner:hover {
|
|
|
+ color: #2D4D89;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-radio__input.is-checked .el-radio__inner,
|
|
|
+ .el-checkbox__input.is-checked .el-checkbox__inner,
|
|
|
+ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
|
|
|
+ background: #2D4D89 !important;
|
|
|
+ border-color: #2D4D89 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-button:hover {
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-checkbox__input.is-checked+.el-checkbox__label {
|
|
|
+ color: #2D4D89 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-select .el-input.is-focus .el-input__inner,
|
|
|
+ .el-input__inner:focus,
|
|
|
+ .el-select .el-input__inner:focus,
|
|
|
+ .el-button--primary.is-plain:focus,
|
|
|
+ el-select .el-input.is-focus .el-input__inner,
|
|
|
+ .el-input__inner:focus,
|
|
|
+ .el-select .el-input__inner:focus,
|
|
|
+ .el-select-dropdown__item.selected {
|
|
|
+ color: #2D4D89 !important;
|
|
|
+ border-color: #2D4D89;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-dialog__header {
|
|
|
+ font-weight: bold;
|
|
|
+ border-bottom: 1px solid #D7DBE7;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-dialog__body {
|
|
|
+ padding: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-step__title.is-finish,
|
|
|
+ .el-step__title.is-process {
|
|
|
+ color: #333;
|
|
|
+ font-size: 13px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-tabs__item.is-active {
|
|
|
+ color: #fff;
|
|
|
+ background: #2D4D89;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-tabs--card>.el-tabs__header .el-tabs__nav,
|
|
|
+ .el-tabs--card>.el-tabs__header,
|
|
|
+ .el-tabs--card>.el-tabs__header .el-tabs__item {
|
|
|
+ border: none;
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-tabs--card>.el-tabs__header .el-tabs__nav {
|
|
|
+ padding-left: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-dialog__footer {
|
|
|
+ padding: 10px 20px 10px 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.tab-panestyle {
|
|
|
+ padding: 20px;
|
|
|
+ background: #F2F2F2;
|
|
|
+}
|
|
|
+
|
|
|
+.tab-panecent {
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 4px;
|
|
|
+ padding: 15px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ max-height: 600px;
|
|
|
+ overflow-y: auto;
|
|
|
+}
|
|
|
+
|
|
|
+.tab-panecent2 {
|
|
|
+ border-radius: 4px;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+
|
|
|
+.tab-panecent1 {
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 4px;
|
|
|
+ padding: 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ >div {
|
|
|
+ font-size: 15px;
|
|
|
+ color: #2D4D89;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+
|
|
|
+ >span {
|
|
|
+ color: rgba(51, 51, 51, 0.8);
|
|
|
+ font-size: 13px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.ktbuttonactive {
|
|
|
+ background: #f2f7fc;
|
|
|
+ border-color: #fff;
|
|
|
+}
|
|
|
+
|
|
|
+/* 图二 */
|
|
|
+.el-divider {
|
|
|
+ margin: 10px 0px 15px !important;
|
|
|
+}
|
|
|
+
|
|
|
+.queryForm .el-row {
|
|
|
+ margin: 0px;
|
|
|
+}
|
|
|
+
|
|
|
+.queryForm .el-form-item {
|
|
|
+ margin-bottom: 5px;
|
|
|
+ display: flex;
|
|
|
+}
|
|
|
+
|
|
|
+.products {
|
|
|
+
|
|
|
+ // margin: 20px;
|
|
|
+ .productCosts {
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ span {
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.ruleStyle {
|
|
|
+ /deep/ .el-divider__text {
|
|
|
+ color: red;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.products>div {
|
|
|
+ margin: 5px;
|
|
|
+}
|
|
|
+
|
|
|
+.productstitle {
|
|
|
+ width: 100%;
|
|
|
+ border-bottom: 2px solid #409eff;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+
|
|
|
+.productstitle>div {
|
|
|
+ width: 100px;
|
|
|
+ height: 26px;
|
|
|
+ line-height: 30px;
|
|
|
+ background: #409eff;
|
|
|
+ color: #fff;
|
|
|
+ border-top-right-radius: 15px;
|
|
|
+ padding: 2px;
|
|
|
+ font-size: 12px;
|
|
|
+}
|
|
|
+
|
|
|
+/deep/ {
|
|
|
+ .queryForm .el-form-item {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-pagination.is-background .el-pager li:not(.disabled).active {
|
|
|
+ background-color: #2D4D89;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-button--warning {
|
|
|
+ color: #fff;
|
|
|
+ background-color: #ee7000;
|
|
|
+ border-color: #ee7000;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ color: #fff;
|
|
|
+ background-color: #ee6f00ce;
|
|
|
+ border-color: #ee6f00ce;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-step__title,
|
|
|
+ .el-step__icon-inner {}
|
|
|
+
|
|
|
+ .el-step__description.is-finish,
|
|
|
+ .el-step__head.is-finish {
|
|
|
+ color: #333;
|
|
|
+ border: none;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-step:last-of-type .el-step__description {
|
|
|
+ padding-right: 10% !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-step__icon.is-text {
|
|
|
+ border: none;
|
|
|
+ box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-step__icon.is-text {
|
|
|
+ font-size: 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-step__icon {
|
|
|
+ width: 28px;
|
|
|
+ height: 28px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-step.is-vertical .el-step__main {
|
|
|
+ padding-left: 20px
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-step__line,
|
|
|
+ .el-step.is-vertical .el-step__line {
|
|
|
+ left: 14px;
|
|
|
+ background-color: #E2E5EB;
|
|
|
+ width: 1px
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-step__line-inner {
|
|
|
+ height: 0;
|
|
|
+ display: none
|
|
|
+ }
|
|
|
+
|
|
|
+ .is-flex {
|
|
|
+
|
|
|
+ .el-step__icon {
|
|
|
+ background: #2D4D89;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-step__icon-inner {
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+.apistyle /deep/ .el-form-item__label {
|
|
|
+ min-width: 180px;
|
|
|
+}
|
|
|
+
|
|
|
+.el-dropdown-link {
|
|
|
+ cursor: pointer;
|
|
|
+ color: #409eff;
|
|
|
+}
|
|
|
+
|
|
|
+.el-icon-arrow-down {
|
|
|
+ font-size: 12px;
|
|
|
+}
|
|
|
+
|
|
|
+.ruleConfigurationItem {
|
|
|
+ padding: 20px;
|
|
|
+
|
|
|
+ span {
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.deptOption {
|
|
|
+ height: auto;
|
|
|
+ line-height: 1;
|
|
|
+ padding: 0;
|
|
|
+ background-color: #fff;
|
|
|
+}
|
|
|
+
|
|
|
+.depttree {
|
|
|
+ padding: 4px 20px;
|
|
|
+ font-weight: 400;
|
|
|
+}
|
|
|
+
|
|
|
+.ktbuttonactive {
|
|
|
+ background: #f2f7fc;
|
|
|
+ border-color: #fff;
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|