Przeglądaj źródła

任务池--电销

lihongxiao 2 lat temu
rodzic
commit
e8f7d0040f

+ 8 - 0
src/http/moudules/task.js

@@ -1785,3 +1785,11 @@ export const noCarBatchOperation = (data) => {
     data
   })
 }
+// 任务池--电销
+export const queryPageTelemarketingLinkAgent = (data) => {
+  return axios({
+    url: "/insurance/order/queryPageTelemarketingLinkAgent",
+    method: "post",
+    data
+  })
+}

+ 278 - 0
src/views/Task/ElectricSales/AgentPoolChannel.vue

@@ -0,0 +1,278 @@
+<template>
+  <div>
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+      @areaSelectChange="areaSelectChange"></retrievalForm>
+    <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
+      :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text" @handleButton3="transmit"
+      button2Name="报价轨迹" button2Type="text" @handleButton2="trajectory" button5Name="详情" button5Type="text"
+      @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
+    <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
+      转发人:
+      <el-select v-model="transmitValue" filterable clearable placeholder="请选择">
+        <el-option v-for="item in options" :key="item.userId" :label="item.name" :value="item.userId"></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="transmitSumit">确 定</el-button>
+      </span>
+    </el-dialog>
+    <detailsDialog ref="detailsDialog" :isTaskPool="true" :orderInfo="queryOrders" :isAuditing="isAuditing" :feeOrderNewVoList="feeOrderNewVoList"></detailsDialog>
+    <el-dialog :visible.sync="ddgjdialogVisible" width="430px">
+      <div slot="title" class=" dialog-title">
+        <span>订单轨迹</span>
+      </div>
+      <div style="height: 300px; overflow-y: auto">
+        <el-steps direction="vertical" :active="trajectoryTable.length - 1">
+          <el-step v-for="item in trajectoryTable" :key="item.id" :title="getStatusText(item.orderStatus)">
+            <template slot="description">
+              <span>保险公司:{{ item.insCompany }}</span>
+              <span>提交人:{{ item.operator }}</span>
+              <div>创建时间:{{ item.createTime }}</div>
+            </template>
+          </el-step>
+        </el-steps>
+      </div>
+    </el-dialog>
+    <el-dialog :visible.sync="forwardingRecordsdialogVisible"  title="转发记录" width="70%">
+      <el-table :data="gridData"  height="400" border  v-loading="loading" highlight-current-row stripe
+        :header-cell-style="{
+          background: '#F2F7FC',
+          fontWeight: '700',
+          color: '#606266',
+        }">
+        <el-table-column property="subOrderId" align="center" label="订单号" width="200"></el-table-column>
+        <el-table-column property="oldOperatorId" align="center" label="转发人" width="200"></el-table-column>
+        <el-table-column property="newOperatorId" align="center" label="接收人"></el-table-column>
+        <el-table-column property="remark"  align="center" label="转发信息"></el-table-column>
+        <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
+      </el-table>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import Cookies from "js-cookie";
+import CommonUtil from "@/utils/comutil.js";
+import detailsDialog from "@/views/Core/components/detailsDialog.vue";
+import retrievalForm from "@/components/Form/retrievalForm.vue";
+import { mixin } from "../mixin";
+
+export default {
+  components: {
+    KtCommonTable,
+    detailsDialog,
+    retrievalForm
+  },
+  data() {
+    return {
+
+      pageRequest: {
+        pageNum: 1,
+        pageSize: 20,
+        orderStatus: 0,
+        userId: "",
+      },
+      ddgjdialogVisible: false,
+      trajectoryTable: [],
+      optionsStatus: [],
+    }
+  },
+  mixins: [mixin],
+  created() {
+    this.pageRequest.userId = Cookies.get("user");
+    this.$api.insCompany.dicType("insOrderStatus").then((res) => {
+      this.optionsStatus = res.data.ddList;
+    });
+  },
+
+  methods: {
+
+    getStatusText(code) {
+      return this.optionsStatus.find(val => val.dictValue == code).dictTag;;
+    },
+
+    handleFormSubmit(data) {
+      let obj = Object.assign(this.pageRequest, data)
+      this.pageRequest = obj;
+      this.findPage();
+    },
+    toggleCollapse(data) {
+      this.retrievalFields.map(val => {
+        if (val.Retained != null) val.Retained = data;
+        return val;
+      })
+    },
+    queryStaffInfo() {
+      this.findPage();
+    },
+    // 右侧列表的方法Start
+    findPage(data) {
+      if (data && data.pageRequest) {
+        this.pageRequest.pageNum = data.pageRequest.pageNum;
+        this.pageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      this.loading = true;
+      this.$api.task
+        .queryPageTelemarketingLinkAgent(this.pageRequest)
+        .then(res => {
+          if (res.code == 200) {
+            this.loading = false;
+            this.pageResult = res.data;
+          } else {
+            this.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    trajectory(row) {
+      this.$api.letter.queryBySuborder(row.row.subOrderId).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",
+          });
+        }
+      });
+    },
+    transmit(row) {
+      this.dialogVisible = true;
+      this.transmitValue = "";
+      this.orderNo = row.row.orderno
+      this.subOrderId = row.row.subOrderId
+      this.$api.task.getCustomerUsers().then(res => {
+        if (res.code == 200) {
+          this.options = res.data
+        }
+      })
+    },
+    // 收回
+    takeBack(row) {
+      let orderNo = row.row.orderno
+      let subOrderId = row.row.subOrderId
+      this.$api.task.taskPoolsRecover({ orderNo, subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: 'success'
+          });
+        }
+        else {
+          this.$message.error(res.msg);
+        }
+      })
+    },
+    transmitSumit() {
+      if (this.transmitValue) {
+        this.$api.task.forwardingSubOrders({ auditId: this.transmitValue, orderNo: this.orderNo, subOrderId: this.subOrderId }).then(res => {
+          if (res.code == 200) {
+            this.options = res.data
+            this.dialogVisible = false;
+            this.findPage()
+          }
+          else {
+            this.$message.error(res.msg);
+          }
+        })
+
+      }
+      else {
+        this.$message.error('请选择转发人!');
+
+      }
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val.length !== 0) {
+        this.queryFrom.deptId = val.at(-1);
+      } else {
+        this.queryFrom.deptId = "";
+      }
+    },
+    monthChange(e) {
+      if (e === null) {
+        this.queryFrom.startDate = "";
+        this.queryFrom.endDate = "";
+      } else {
+        this.queryFrom.startDate = e[0];
+        this.queryFrom.endDate = e[1];
+      }
+    },
+    // detailFun(row) {
+    //   let params = {
+    //     companyId: row.row.subOrderId
+    //   };
+    //   this.$api.letter.getByCompanyId(params).then(res => {
+    //     if (res.code == "200") {
+    //       var data = res.data;
+    //       this.orderInfo = res.data;
+    //       this.cpolicy();
+    //       this.ImageList();
+    //       data.kindinfo.map((ele, index) => {
+    //         switch (ele.kindCode) {
+    //           case "A":
+    //             ele.amount = "投保";
+    //             break;
+    //           case "D4":
+    //           case "SY_FJ_YBW2":
+    //             ele.unitAmount = this.toChinesNum(ele.unitAmount);
+    //             break;
+    //           case "MJ1":
+    //           case "MJ2":
+    //           case "MJ3":
+    //           case "MJ4":
+    //             ele.deductibleRate = ele.deductibleRate + "%";
+    //             break;
+    //           default:
+    //             ele.amount = this.toChinesNum(ele.amount);
+    //         }
+    //         return ele;
+    //       });
+    //       this.queryOrders = data;
+    //       //赋值费用信息
+    //       // this.feeDetailInfo=data.orderFeeResult;
+    //     }
+    //   });
+    //   this.$refs.detailsDialog.setBackupVisible(true);
+    // },
+  }
+};
+</script>
+
+<style scoped lang="scss">
+/deep/ {
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
+  .el-step__title,
+  .el-step__icon-inner {
+    color: var(--themeColor)
+  }
+
+  .el-step__line-inner {
+    height: 0;
+    display: none
+  }
+
+  .is-flex {
+
+    .el-step__icon {
+      background: var(--themeColor)
+    }
+
+    .el-step__icon-inner {
+      color: #fff;
+    }
+  }
+
+  .el-step__icon.is-text {
+    border: none;
+    box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.1);
+  }
+}
+</style>

+ 278 - 0
src/views/Task/ElectricSales/AgentPoolChannel1.vue

@@ -0,0 +1,278 @@
+<template>
+  <div>
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+      @areaSelectChange="areaSelectChange"></retrievalForm>
+    <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
+      :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
+      @handleButton3="transmit" :buttonDropdown="dropdownOption" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
+    <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
+      转发人:
+      <el-select v-model="transmitValue" filterable clearable placeholder="请选择">
+        <el-option v-for="item in options" :key="item.userId" :label="item.name" :value="item.userId"></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="transmitSumit">确 定</el-button>
+      </span>
+    </el-dialog>
+    <detailsDialog ref="detailsDialog" :isTaskPool="true" :orderInfo="queryOrders" :isAuditing="isAuditing" :feeOrderNewVoList="feeOrderNewVoList"></detailsDialog>
+    <el-dialog :visible.sync="ddgjdialogVisible" width="430px">
+      <div slot="title" class=" dialog-title">
+        <span>订单轨迹</span>
+      </div>
+      <div style="height: 300px; overflow-y: auto">
+        <el-steps direction="vertical" :active="trajectoryTable.length - 1" >
+          <el-step v-for="item in trajectoryTable"
+            :key="item.id"
+            :title="getStatusText(item.orderStatus)"
+          >
+            <template slot="description">
+              <span>保险公司:{{ item.insCompany }}</span>
+              <span>提交人:{{ item.operator }}</span>
+              <div>创建时间:{{ item.createTime }}</div>
+            </template>
+          </el-step>
+        </el-steps>
+      </div>
+    </el-dialog>
+    <el-dialog :visible.sync="forwardingRecordsdialogVisible"  title="转发记录" width="70%">
+      <el-table :data="gridData"  height="400" border  v-loading="loading" highlight-current-row stripe
+        :header-cell-style="{
+          background: '#F2F7FC',
+          fontWeight: '700',
+          color: '#606266',
+        }">
+        <el-table-column property="subOrderId" align="center" label="订单号" width="200"></el-table-column>
+        <el-table-column property="oldOperatorId" align="center" label="转发人" width="200"></el-table-column>
+        <el-table-column property="newOperatorId" align="center" label="接收人"></el-table-column>
+        <el-table-column property="remark"  align="center" label="转发信息"></el-table-column>
+        <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
+      </el-table>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import Cookies from "js-cookie";
+import CommonUtil from "@/utils/comutil.js";
+import detailsDialog from "@/views/Core/components/detailsDialog.vue";
+import retrievalForm from "@/components/Form/retrievalForm.vue";
+import { mixin } from "../mixin";
+
+export default {
+  components: {
+    KtCommonTable,
+    detailsDialog,
+    retrievalForm
+  },
+  data() {
+    return {
+      pageRequest: {
+        pageNum: 1,
+        pageSize: 20,
+        orderStatus: 1,
+        userId: "",
+      },
+
+      ddgjdialogVisible:false,
+      trajectoryTable:[],
+      optionsStatus:[],
+      dropdownOption:[
+        {
+          label:'报价轨迹',
+          click:(row)=>this.trajectory(row)
+        },
+        {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },{
+          label:'更新订单',
+          click:(row)=>this.refreshStatus(row)
+        },
+      ]
+    }
+  },
+  mixins: [mixin],
+  created() {
+    this.pageRequest.userId = Cookies.get("user");
+    this.$api.insCompany.dicType("insOrderStatus").then((res) => {
+      this.optionsStatus = res.data.ddList;
+    });
+  },
+
+  methods: {
+    getStatusText(code) {
+      return this.optionsStatus.find(val=>val.dictValue==code).dictTag;
+    },
+    handleFormSubmit(data) {
+      let obj = Object.assign(this.pageRequest, data)
+      this.pageRequest = obj;
+      this.findPage();
+    },
+    toggleCollapse(data) {
+      this.retrievalFields.map(val => {
+        if (val.Retained != null) val.Retained = data;
+        return val;
+      })
+    },
+    queryStaffInfo() {
+      this.findPage();
+    },
+    // 右侧列表的方法Start
+    findPage(data) {
+      if (data && data.pageRequest) {
+        this.pageRequest.pageNum = data.pageRequest.pageNum;
+        this.pageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      this.loading = true;
+      this.$api.task
+        .queryPageTelemarketingLinkAgent(this.pageRequest)
+        .then(res => {
+          if (res.code == 200) {
+            this.loading = false;
+            this.pageResult = res.data;
+          } else {
+            this.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    transmit(row) {
+      this.dialogVisible = true;
+      this.transmitValue = "";
+      this.orderNo = row.row.orderno
+      this.subOrderId = row.row.subOrderId
+      this.$api.task.getCustomerUsers().then(res => {
+        if (res.code == 200) {
+          this.options = res.data
+        }
+      })
+    },
+    // 收回
+    takeBack(row) {
+      let orderNo = row.row.orderno
+      let subOrderId = row.row.subOrderId
+      this.$api.task.taskPoolsRecover({ orderNo, subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: 'success'
+          });
+        }
+        else {
+          this.$message.error(res.msg);
+        }
+      })
+    },
+    transmitSumit() {
+      if (this.transmitValue) {
+        this.$api.task.forwardingSubOrders({ auditId: this.transmitValue, orderNo: this.orderNo, subOrderId: this.subOrderId }).then(res => {
+          if (res.code == 200) {
+            this.options = res.data
+            this.dialogVisible = false;
+            this.findPage()
+          }
+          else {
+            this.$message.error(res.msg);
+          }
+        })
+
+      }
+      else {
+        this.$message.error('请选择转发人!');
+
+      }
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val.length !== 0) {
+        this.queryFrom.deptId = val.at(-1);
+      } else {
+        this.queryFrom.deptId = "";
+      }
+    },
+    monthChange(e) {
+      if (e === null) {
+        this.queryFrom.startDate = "";
+        this.queryFrom.endDate = "";
+      } else {
+        this.queryFrom.startDate = e[0];
+        this.queryFrom.endDate = e[1];
+      }
+    },
+    // detailFun(row) {
+
+    //   let params = {
+    //     companyId: row.row.subOrderId
+    //   };
+
+    //   this.$api.letter.getByCompanyId(params).then(res => {
+    //     if (res.code == "200") {
+    //       var data = res.data;
+    //       this.orderInfo = res.data;
+    //       this.cpolicy();
+    //       this.ImageList();
+    //       data.kindinfo.map((ele, index) => {
+    //         switch (ele.kindCode) {
+    //           case "A":
+    //             ele.amount = "投保";
+    //             break;
+    //           case "D4":
+    //           case "SY_FJ_YBW2":
+    //             ele.unitAmount = this.toChinesNum(ele.unitAmount);
+    //             break;
+    //           case "MJ1":
+    //           case "MJ2":
+    //           case "MJ3":
+    //           case "MJ4":
+    //             ele.deductibleRate = ele.deductibleRate + "%";
+    //             break;
+    //           default:
+    //             ele.amount = this.toChinesNum(ele.amount);
+    //         }
+    //         return ele;
+    //       });
+    //       this.queryOrders = data;
+    //       //赋值费用信息
+    //       // this.feeDetailInfo=data.orderFeeResult;
+    //     }
+    //   });
+    //   this.$refs.detailsDialog.setBackupVisible(true);
+    // },
+  }
+};
+</script>
+
+<style scoped lang="scss">
+/deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
+  .el-step__title,.el-step__icon-inner{
+    color:var(--themeColor)
+  }
+  .el-step__line-inner{
+      height:0;
+      display:none
+    }
+  .is-flex{
+
+    .el-step__icon{
+      background: var(--themeColor)
+    }
+    .el-step__icon-inner{
+      color: #fff;
+    }
+  }
+  .el-step__icon.is-text{
+    border:none;
+    box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.1);
+  }
+}
+</style>

+ 380 - 0
src/views/Task/ElectricSales/AgentPoolChannel2.vue

@@ -0,0 +1,380 @@
+<template>
+  <div>
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+      @areaSelectChange="areaSelectChange"></retrievalForm>
+    <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
+      :showBatchDelete="false" @findPage="findPage" 
+      button3Name="状态更新"
+      button3Type="text"
+      @handleButton3="querystatus"
+       button2Name="报价轨迹" button2Type="text"
+      :buttonDropdown="dropdownOption"
+      @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
+    <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
+      转发人:
+      <el-select v-model="transmitValue" filterable clearable placeholder="请选择">
+        <el-option v-for="item in options" :key="item.userId" :label="item.name" :value="item.userId"></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="transmitSumit">确 定</el-button>
+      </span>
+    </el-dialog>
+    <detailsDialog ref="detailsDialog" :isTaskPool="true" :orderInfo="queryOrders" :isAuditing="isAuditing" :feeOrderNewVoList="feeOrderNewVoList"></detailsDialog>
+    <el-dialog :visible.sync="ddgjdialogVisible" width="430px">
+      <div slot="title" class=" dialog-title">
+        <span>订单轨迹</span>
+      </div>
+      <div style="height: 300px; overflow-y: auto">
+        <el-steps direction="vertical" :active="trajectoryTable.length - 1" >
+          <el-step v-for="item in trajectoryTable"
+            :key="item.id"
+            :title="getStatusText(item.orderStatus)"
+          >
+            <template slot="description">
+              <span>保险公司:{{ item.insCompany }}</span>
+              <span>提交人:{{ item.operator }}</span>
+              <div>创建时间:{{ item.createTime }}</div>
+            </template>
+          </el-step>
+        </el-steps>
+      </div>
+    </el-dialog>
+    <el-dialog :visible.sync="forwardingRecordsdialogVisible"  title="转发记录" width="70%">
+      <el-table :data="gridData"  height="400" border  v-loading="loading" highlight-current-row stripe
+        :header-cell-style="{
+          background: '#F2F7FC',
+          fontWeight: '700',
+          color: '#606266',
+        }">
+        <el-table-column property="subOrderId" align="center" label="订单号" width="200"></el-table-column>
+        <el-table-column property="oldOperatorId" align="center" label="转发人" width="200"></el-table-column>
+        <el-table-column property="newOperatorId" align="center" label="接收人"></el-table-column>
+        <el-table-column property="remark"  align="center" label="转发信息"></el-table-column>
+        <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
+      </el-table>
+    </el-dialog>
+    <qrCodedialog ref="qrCodedialog"></qrCodedialog>
+
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import Cookies from "js-cookie";
+import CommonUtil from "@/utils/comutil.js";
+import detailsDialog from "@/views/Core/components/detailsDialog.vue";
+import retrievalForm from "@/components/Form/retrievalForm.vue";
+import { mixin } from "../mixin";
+import qrCodedialog from "../component/qrCode.vue";
+
+export default {
+  components: {
+    KtCommonTable,
+    detailsDialog,
+    retrievalForm,
+    qrCodedialog
+  },
+  data() {
+    return {
+
+      pageRequest: {
+        pageNum: 1,
+        pageSize: 20,
+        orderStatus: 2,
+        userId: "",
+      },
+
+      ddgjdialogVisible:false,
+      trajectoryTable:[],
+      optionsStatus:[],
+      subOrderId:'',
+      dropdownOption:[
+        {
+          label:'二维码',
+          click:(row)=>this.carcode(row)
+        },{
+          label:'撤销二维码',
+          click:(row)=>this.revokeCode(row)
+        },{
+          label: "转发",
+          click: (row) => this.transmit(row),
+        }, {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },
+      ]
+    }
+  },
+  mixins: [mixin],
+  created() {
+    this.pageRequest.userId = Cookies.get("user");
+    this.$api.insCompany.dicType("insOrderStatus").then((res) => {
+      this.optionsStatus = res.data.ddList;
+    });
+  },
+
+  methods: {
+    querystatus(item) {
+      let inscompany = {
+        国任财险: "updateOrderInfoGuoren",
+        华泰财险: "updateOrderInfoHuatai",
+        大家财险: "updateOrderInfoDajia",
+        紫金财险: "getOrderDetail",
+        中煤财险: "paymentEnquiry",
+        渤海财险: "getOrderDetailboHai"
+      };
+      Object.keys(inscompany).forEach(val => {
+        if (val == item.row.insCompany) {
+          this.$api.letter[inscompany[val]]({ companyId: item.row.subOrderId }).then(
+            res => {
+              if (res.code == 200) {
+                this.$message({
+                  message: res.msg ? res.msg : "已刷新状态",
+                  type: "success"
+                });
+                this.findPage();
+              } else {
+                this.$message({ message: res.msg, type: "error" });
+              }
+            }
+          );
+        }
+      });
+      if (item.row.insCompany == "永诚财险") {
+        this.$api.letter.orderStatusyongcheng(item.row.subOrderId).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg ? res.msg : "已刷新状态",
+              type: "success"
+            });
+            this.findPage();
+          } else {
+            this.$message({ message: res.msg, type: "error" });
+          }
+        });
+      }
+      if (item.row.insCompany == "华泰财险") {
+        let HtApiType =
+          item.row.apiType == 2
+            ? "pychonverifyPayment"
+            : "updateOrderInfoHuatai";
+
+        this.$api.letter[HtApiType](item.row.apiType == 2 ? { subOrderNo: item.row.subOrderId } : item.row.id).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg ? res.msg : "已刷新状态",
+              type: "success"
+            });
+            this.findPage();
+          } else {
+            this.$message({ message: res.msg, type: "error" });
+          }
+        });
+      }
+      if (
+        item.row.insCompany == "恒邦财险" ||
+        item.row.insCompany == "众安财险" ||
+        item.row.insCompany == "中国人寿" ||
+        item.row.insCompany == "安盛天平" ||
+        item.row.insCompany == "太平财险" ||
+        item.row.insCompany == "华农财险"
+      ) {
+        this.$api.letter
+          .pychonverifyPayment({ subOrderNo: item.subOrderId })
+          .then(res => {
+            if (res.code == "200") {
+              this.$message({
+                message: "订单支付成功,正在更改状态",
+                type: "success"
+              });
+              this.findPage();
+            } else {
+              this.$message({ message: res.msg, type: "error" });
+            }
+          });
+      }
+    },
+    carcode(row) {
+      this.$refs.qrCodedialog.carcode(row)
+    },
+    getStatusText(code) {
+      return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
+    },
+    handleFormSubmit(data) {
+      let obj = Object.assign(this.pageRequest, data)
+      this.pageRequest = obj;
+      this.findPage();
+    },
+    toggleCollapse(data) {
+      this.retrievalFields.map(val => {
+        if (val.Retained != null) val.Retained = data;
+        return val;
+      })
+    },
+    queryStaffInfo() {
+      this.findPage();
+    },
+    // 右侧列表的方法Start
+    findPage(data) {
+      if (data && data.pageRequest) {
+        this.pageRequest.pageNum = data.pageRequest.pageNum;
+        this.pageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      this.loading = true;
+      this.$api.task
+        .queryPageTelemarketingLinkAgent(this.pageRequest)
+        .then(res => {
+          if (res.code == 200) {
+            this.loading = false;
+            this.pageResult = res.data;
+          } else {
+            this.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    trajectory(row){
+      this.$api.letter.queryBySuborder(row.row.subOrderId).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",
+          });
+        }
+      });
+    },
+    transmit(row) {
+      this.dialogVisible = true;
+      this.transmitValue = "";
+      this.orderNo = row.orderno
+      this.subOrderId = row.subOrderId
+      this.$api.task.getCustomerUsers().then(res => {
+        if (res.code == 200) {
+          this.options = res.data
+        }
+      })
+    },
+    // 收回
+    takeBack(row) {
+      let orderNo = row.row.orderno
+      let subOrderId = row.row.subOrderId
+      this.$api.task.taskPoolsRecover({ orderNo, subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: 'success'
+          });
+        }
+        else {
+          this.$message.error(res.msg);
+        }
+      })
+    },
+    transmitSumit() {
+      if (this.transmitValue) {
+        this.$api.task.forwardingSubOrders({ auditId: this.transmitValue, orderNo: this.orderNo, subOrderId: this.subOrderId }).then(res => {
+          if (res.code == 200) {
+            this.options = res.data
+            this.dialogVisible = false;
+            this.findPage()
+          }
+          else {
+            this.$message.error(res.msg);
+          }
+        })
+
+      }
+      else {
+        this.$message.error('请选择转发人!');
+
+      }
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val.length !== 0) {
+        this.queryFrom.deptId = val.at(-1);
+      } else {
+        this.queryFrom.deptId = "";
+      }
+    },
+    monthChange(e) {
+      if (e === null) {
+        this.queryFrom.startDate = "";
+        this.queryFrom.endDate = "";
+      } else {
+        this.queryFrom.startDate = e[0];
+        this.queryFrom.endDate = e[1];
+      }
+    },
+    // detailFun(row) {;
+    //   let params = {
+    //     companyId: row.row.subOrderId
+    //   };
+    //   this.$api.letter.getByCompanyId(params).then(res => {
+    //     if (res.code == "200") {
+    //       var data = res.data;
+    //       this.orderInfo = res.data;
+    //       this.cpolicy();
+    //       this.ImageList();
+    //       data.kindinfo.map((ele, index) => {
+    //         switch (ele.kindCode) {
+    //           case "A":
+    //             ele.amount = "投保";
+    //             break;
+    //           case "D4":
+    //           case "SY_FJ_YBW2":
+    //             ele.unitAmount = this.toChinesNum(ele.unitAmount);
+    //             break;
+    //           case "MJ1":
+    //           case "MJ2":
+    //           case "MJ3":
+    //           case "MJ4":
+    //             ele.deductibleRate = ele.deductibleRate + "%";
+    //             break;
+    //           default:
+    //             ele.amount = this.toChinesNum(ele.amount);
+    //         }
+    //         return ele;
+    //       });
+    //       this.queryOrders = data;
+    //       //赋值费用信息
+    //       // this.feeDetailInfo=data.orderFeeResult;
+    //     }
+    //   });
+    //   this.$refs.detailsDialog.setBackupVisible(true);
+    // },
+  }
+};
+</script>
+
+<style scoped lang="scss">
+/deep/{
+  .el-step__title,.el-step__icon-inner{
+    color:var(--themeColor)
+  }
+  .el-step__line-inner{
+      height:0;
+      display:none
+    }
+  .is-flex{
+
+    .el-step__icon{
+      background: var(--themeColor)
+    }
+    .el-step__icon-inner{
+      color: #fff;
+    }
+  }
+  .el-step__icon.is-text{
+    border:none;
+    box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.1);
+  }
+}
+</style>

+ 277 - 0
src/views/Task/ElectricSales/AgentPoolChannel3.vue

@@ -0,0 +1,277 @@
+<template>
+  <div>
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+      @areaSelectChange="areaSelectChange"></retrievalForm>
+    <kt-common-table :data="pageResult" :columns="columns1" element-loading-text="加载中..." v-loading="loading"
+      :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
+      @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"  ref="commonTable" :stripe="false"
+      button6Name="批单" button6Type="text" @handleButton6="batchOrder"
+      @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
+    <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
+      转发人:
+      <el-select v-model="transmitValue" filterable clearable placeholder="请选择">
+        <el-option v-for="item in options" :key="item.userId" :label="item.name" :value="item.userId"></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="transmitSumit">确 定</el-button>
+      </span>
+    </el-dialog>
+    <detailsDialog ref="detailsDialog" :isTaskPool="true" :orderInfo="queryOrders " :isAuditing="isAuditing" :feeOrderNewVoList="feeOrderNewVoList"></detailsDialog>
+    <el-dialog :visible.sync="ddgjdialogVisible" width="430px">
+      <div slot="title" class=" dialog-title">
+        <span>订单轨迹</span>
+      </div>
+      <div style="height: 300px; overflow-y: auto">
+        <el-steps direction="vertical" :active="trajectoryTable.length - 1" >
+          <el-step v-for="item in trajectoryTable"
+            :key="item.id"
+            :title="getStatusText(item.orderStatus)"
+          >
+            <template slot="description">
+              <span>保险公司:{{ item.insCompany }}</span>
+              <span>提交人:{{ item.operator }}</span>
+              <div>创建时间:{{ item.createTime }}</div>
+            </template>
+          </el-step>
+        </el-steps>
+      </div>
+    </el-dialog>
+    <el-dialog :visible.sync="forwardingRecordsdialogVisible"  title="转发记录" width="70%">
+      <el-table :data="gridData"  height="400" border  v-loading="loading" highlight-current-row stripe
+        :header-cell-style="{
+          background: '#F2F7FC',
+          fontWeight: '700',
+          color: '#606266',
+        }">
+        <el-table-column property="subOrderId" align="center" label="订单号" width="200"></el-table-column>
+        <el-table-column property="oldOperatorId" align="center" label="转发人" width="200"></el-table-column>
+        <el-table-column property="newOperatorId" align="center" label="接收人"></el-table-column>
+        <el-table-column property="remark"  align="center" label="转发信息"></el-table-column>
+        <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
+      </el-table>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import Cookies from "js-cookie";
+import CommonUtil from "@/utils/comutil.js";
+import detailsDialog from "@/views/Core/components/detailsDialog.vue";
+import retrievalForm from "@/components/Form/retrievalForm.vue";
+import { mixin } from "../mixin";
+
+export default {
+  components: {
+    KtCommonTable,
+    detailsDialog,
+    retrievalForm
+  },
+  data() {
+    return {
+
+      pageRequest: {
+        pageNum: 1,
+        pageSize: 20,
+        orderStatus: 3,
+        userId: "",
+      },
+
+      ddgjdialogVisible:false,
+      trajectoryTable:[],
+      optionsStatus:[],
+    }
+  },
+  mixins: [mixin],
+  created() {
+    this.pageRequest.userId = Cookies.get("user");
+    this.$api.insCompany.dicType("insOrderStatus").then((res) => {
+      this.optionsStatus = res.data.ddList;
+    });
+  },
+
+  methods: {
+    getStatusText(code) {
+      return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
+    },
+    handleFormSubmit(data) {
+      let obj = Object.assign(this.pageRequest, data)
+      this.pageRequest = obj;
+      this.findPage();
+    },
+    toggleCollapse(data) {
+      this.retrievalFields.map(val => {
+        if (val.Retained != null) val.Retained = data;
+        return val;
+      })
+    },
+    queryStaffInfo() {
+      this.findPage();
+    },
+    // 右侧列表的方法Start
+    findPage(data) {
+      if (data && data.pageRequest) {
+        this.pageRequest.pageNum = data.pageRequest.pageNum;
+        this.pageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      this.loading = true;
+      this.$api.task
+        .queryPageTelemarketingLinkAgent(this.pageRequest)
+        .then(res => {
+          if (res.code == 200) {
+            this.loading = false;
+            this.pageResult = res.data;
+            this.$refs.commonTable.taskPool=true
+          } else {
+            this.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    trajectory(row){
+      this.$api.letter.queryBySuborder(row.row.subOrderId).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",
+          });
+        }
+      });
+    },
+    transmit(row) {
+      this.dialogVisible = true;
+      this.transmitValue = "";
+      this.orderNo = row.row.orderno
+      this.subOrderId = row.row.subOrderId
+      this.$api.task.getCustomerUsers().then(res => {
+        if (res.code == 200) {
+          this.options = res.data
+        }
+      })
+    },
+    // 收回
+    takeBack(row) {
+      let orderNo = row.row.orderno
+      let subOrderId = row.row.subOrderId
+      this.$api.task.taskPoolsRecover({ orderNo, subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: 'success'
+          });
+        }
+        else {
+          this.$message.error(res.msg);
+        }
+      })
+    },
+    transmitSumit() {
+      if (this.transmitValue) {
+        this.$api.task.forwardingSubOrders({ auditId: this.transmitValue, orderNo: this.orderNo, subOrderId: this.subOrderId }).then(res => {
+          if (res.code == 200) {
+            this.options = res.data
+            this.dialogVisible = false;
+            this.findPage()
+          }
+          else {
+            this.$message.error(res.msg);
+          }
+        })
+
+      }
+      else {
+        this.$message.error('请选择转发人!');
+
+      }
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val.length !== 0) {
+        this.queryFrom.deptId = val.at(-1);
+      } else {
+        this.queryFrom.deptId = "";
+      }
+    },
+    monthChange(e) {
+      if (e === null) {
+        this.queryFrom.startDate = "";
+        this.queryFrom.endDate = "";
+      } else {
+        this.queryFrom.startDate = e[0];
+        this.queryFrom.endDate = e[1];
+      }
+    },
+    // detailFun(row) {
+    //   let params = {
+    //     companyId: row.row.subOrderId
+    //   };
+    //   this.$api.letter.getByCompanyId(params).then(res => {
+    //     if (res.code == "200") {
+    //       var data = res.data;
+    //       this.orderInfo = res.data;
+    //       this.cpolicy();
+    //       this.ImageList();
+    //       data.kindinfo.map((ele, index) => {
+    //         switch (ele.kindCode) {
+    //           case "A":
+    //             ele.amount = "投保";
+    //             break;
+    //           case "D4":
+    //           case "SY_FJ_YBW2":
+    //             ele.unitAmount = this.toChinesNum(ele.unitAmount);
+    //             break;
+    //           case "MJ1":
+    //           case "MJ2":
+    //           case "MJ3":
+    //           case "MJ4":
+    //             ele.deductibleRate = ele.deductibleRate + "%";
+    //             break;
+    //           default:
+    //             ele.amount = this.toChinesNum(ele.amount);
+    //         }
+    //         return ele;
+    //       });
+    //       this.queryOrders = data;
+    //       //赋值费用信息
+    //       // this.feeDetailInfo=data.orderFeeResult;
+    //     }
+    //   });
+    //   this.$refs.detailsDialog.setBackupVisible(true);
+    // },
+  }
+};
+</script>
+
+<style scoped lang="scss">
+/deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
+  .el-step__title,.el-step__icon-inner{
+    color:var(--themeColor)
+  }
+  .el-step__line-inner{
+      height:0;
+      display:none
+    }
+  .is-flex{
+
+    .el-step__icon{
+      background: var(--themeColor)
+    }
+    .el-step__icon-inner{
+      color: #fff;
+    }
+  }
+  .el-step__icon.is-text{
+    border:none;
+    box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.1);
+  }
+}
+</style>

+ 317 - 0
src/views/Task/ElectricSales/AgentPoolChannel4.vue

@@ -0,0 +1,317 @@
+<template>
+  <div>
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+      @areaSelectChange="areaSelectChange"></retrievalForm>
+    <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
+      :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
+      @handleButton3="transmit" :buttonDropdown="dropdownOption"
+      button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
+    <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
+      转发人:
+      <el-select v-model="transmitValue" filterable clearable placeholder="请选择">
+        <el-option v-for="item in options" :key="item.userId" :label="item.name" :value="item.userId"></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="transmitSumit">确 定</el-button>
+      </span>
+    </el-dialog>
+    <detailsDialog ref="detailsDialog" :isTaskPool="true" :orderInfo="queryOrders" :isAuditing="isAuditing" :feeOrderNewVoList="feeOrderNewVoList"></detailsDialog>
+    <el-dialog :visible.sync="ddgjdialogVisible" width="430px">
+      <div slot="title" class=" dialog-title">
+        <span>订单轨迹</span>
+      </div>
+      <div style="height: 300px; overflow-y: auto">
+        <el-steps direction="vertical" :active="trajectoryTable.length - 1" >
+          <el-step v-for="item in trajectoryTable"
+            :key="item.id"
+            :title="getStatusText(item.orderStatus)"
+          >
+            <template slot="description">
+              <span>保险公司:{{ item.insCompany }}</span>
+              <span>提交人:{{ item.operator }}</span>
+              <div>创建时间:{{ item.createTime }}</div>
+            </template>
+          </el-step>
+        </el-steps>
+      </div>
+    </el-dialog>
+    <el-dialog :visible.sync="forwardingRecordsdialogVisible"  title="转发记录" width="70%">
+      <el-table :data="gridData"  height="400" border  v-loading="loading" highlight-current-row stripe
+        :header-cell-style="{
+          background: '#F2F7FC',
+          fontWeight: '700',
+          color: '#606266',
+        }">
+        <el-table-column property="subOrderId" align="center" label="订单号" width="200"></el-table-column>
+        <el-table-column property="oldOperatorId" align="center" label="转发人" width="200"></el-table-column>
+        <el-table-column property="newOperatorId" align="center" label="接收人"></el-table-column>
+        <el-table-column property="remark"  align="center" label="转发信息"></el-table-column>
+        <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
+      </el-table>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import Cookies from "js-cookie";
+import CommonUtil from "@/utils/comutil.js";
+import detailsDialog from "@/views/Core/components/detailsDialog.vue";
+import retrievalForm from "@/components/Form/retrievalForm.vue";
+import { mixin } from "../mixin";
+
+export default {
+  components: {
+    KtCommonTable,
+    detailsDialog,
+    retrievalForm
+  },
+  data() {
+    return {
+      pageRequest: {
+        pageNum: 1,
+        pageSize: 20,
+        orderStatus: 4,
+        userId: "",
+      },
+      ddgjdialogVisible:false,
+      trajectoryTable:[],
+      optionsStatus:[],
+      dropdownOption:[
+        {
+          label:'报价轨迹',
+          click:(row)=>this.trajectory(row)
+        },
+        {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },{
+          label:'更新订单',
+          hide:(row) => {
+            return  row.orderstatus=='4' && row.insCompany == '华泰财险' ?true:false
+          },
+          click:(row)=>this.updateStatusHuatai(row)
+        },
+      ]
+    }
+  },
+  mixins: [mixin],
+  created() {
+    this.pageRequest.userId = Cookies.get("user");
+    this.$api.insCompany.dicType("insOrderStatus").then((res) => {
+      this.optionsStatus = res.data.ddList;
+    });
+  },
+
+  methods: {
+    cancelorder(item) {
+      this.$api.letter.zijincancelorder({ companyId: item.subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: "success"
+          });
+          this.findPage();
+        }
+        else{
+          this.$message.error(res.msg);
+        }
+      });
+    },
+     //华泰刷新核保状态
+     updateStatusHuatai(item) {
+      let HtApiType =
+        item.apiType == 2
+          ? "auditStatusQuery"
+          : "orderStatushuatai";
+      this.$api.letter[HtApiType]({ companyId: item.subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg ? res.msg : "已刷新状态",
+            type: "success"
+          });
+          this.findPage();
+        } else {
+          this.$message({
+            showClose: true,
+            dangerouslyUseHTMLString: true,
+            message: res.msg.replace(/\n/g, "<br><br>"),
+            type: "error",
+            duration: 7000
+          });
+        }
+      });
+    },
+    getStatusText(code) {
+      return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
+    },
+    handleFormSubmit(data) {
+      let obj = Object.assign(this.pageRequest, data)
+      this.pageRequest = obj;
+      this.findPage();
+    },
+    toggleCollapse(data) {
+      this.retrievalFields.map(val => {
+        if (val.Retained != null) val.Retained = data;
+        return val;
+      })
+    },
+    queryStaffInfo() {
+      this.findPage();
+    },
+    // 右侧列表的方法Start
+    findPage(data) {
+      if (data && data.pageRequest) {
+        this.pageRequest.pageNum = data.pageRequest.pageNum;
+        this.pageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      this.loading = true;
+      this.$api.task
+        .queryPageTelemarketingLinkAgent(this.pageRequest)
+        .then(res => {
+          if (res.code == 200) {
+            this.loading = false;
+            this.pageResult = res.data;
+          } else {
+            this.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    transmit(row) {
+      this.dialogVisible = true;
+      this.transmitValue = "";
+      this.orderNo = row.row.orderno
+      this.subOrderId = row.row.subOrderId
+      this.$api.task.getCustomerUsers().then(res => {
+        if (res.code == 200) {
+          this.options = res.data
+        }
+      })
+    },
+    // 收回
+    takeBack(row) {
+      let orderNo = row.row.orderno
+      let subOrderId = row.row.subOrderId
+      this.$api.task.taskPoolsRecover({ orderNo, subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: 'success'
+          });
+        }
+        else {
+          this.$message.error(res.msg);
+        }
+      })
+    },
+    transmitSumit() {
+      if (this.transmitValue) {
+        this.$api.task.forwardingSubOrders({ auditId: this.transmitValue, orderNo: this.orderNo, subOrderId: this.subOrderId }).then(res => {
+          if (res.code == 200) {
+            this.options = res.data
+            this.dialogVisible = false;
+            this.findPage()
+          }
+          else {
+            this.$message.error(res.msg);
+          }
+        })
+
+      }
+      else {
+        this.$message.error('请选择转发人!');
+
+      }
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val.length !== 0) {
+        this.queryFrom.deptId = val.at(-1);
+      } else {
+        this.queryFrom.deptId = "";
+      }
+    },
+    monthChange(e) {
+      if (e === null) {
+        this.queryFrom.startDate = "";
+        this.queryFrom.endDate = "";
+      } else {
+        this.queryFrom.startDate = e[0];
+        this.queryFrom.endDate = e[1];
+      }
+    },
+    // detailFun(row) {
+    //   let params = {
+    //     companyId: row.row.subOrderId
+    //   };
+    //   this.$api.letter.getByCompanyId(params).then(res => {
+    //     if (res.code == "200") {
+    //       var data = res.data;
+    //       this.orderInfo = res.data;
+    //       this.cpolicy();
+    //       this.ImageList();
+    //       data.kindinfo.map((ele, index) => {
+    //         switch (ele.kindCode) {
+    //           case "A":
+    //             ele.amount = "投保";
+    //             break;
+    //           case "D4":
+    //           case "SY_FJ_YBW2":
+    //             ele.unitAmount = this.toChinesNum(ele.unitAmount);
+    //             break;
+    //           case "MJ1":
+    //           case "MJ2":
+    //           case "MJ3":
+    //           case "MJ4":
+    //             ele.deductibleRate = ele.deductibleRate + "%";
+    //             break;
+    //           default:
+    //             ele.amount = this.toChinesNum(ele.amount);
+    //         }
+    //         return ele;
+    //       });
+    //       this.queryOrders = data;
+    //       //赋值费用信息
+    //       // this.feeDetailInfo=data.orderFeeResult;
+    //     }
+    //   });
+    //   this.$refs.detailsDialog.setBackupVisible(true);
+    // },
+  }
+};
+</script>
+
+<style scoped lang="scss">
+/deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
+  .el-step__title,.el-step__icon-inner{
+    color:var(--themeColor)
+  }
+  .el-step__line-inner{
+      height:0;
+      display:none
+    }
+  .is-flex{
+
+    .el-step__icon{
+      background: var(--themeColor)
+    }
+    .el-step__icon-inner{
+      color: #fff;
+    }
+  }
+  .el-step__icon.is-text{
+    border:none;
+    box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.1);
+  }
+}
+</style>

+ 375 - 0
src/views/Task/ElectricSales/BatchOrder.vue

@@ -0,0 +1,375 @@
+<template>
+    <!--布局容器-->
+    <div class="container" style="width: 99%; margin-top: 0px">
+        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+            @getList="getList" @handleSearchList="handleSearchList" :pagination="queryFrom">
+        </templateTable>
+        <!-- <el-dialog :visible.sync="dialogVisibleOrder" width="40%" :before-close="handleCloseOrder">
+            <el-form ref="form" :model="formDataOrder" label-width="120px" size="small" disabled>
+                <h4 class="form_title">车辆信息</h4>
+                <el-row :gutter="20">
+                    <el-col :span="12" v-for="f in formvehicleList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.carInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="使用性质" prop="carnature">
+                            <el-select v-model="formDataOrder.carInfo.carnature" placeholder="请选择使用性质" @change="natureFun">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in natureOfVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆用途" prop="vehicleUse">
+                            <el-select v-if="formDataOrder.carInfo.carnature == '02'"
+                                v-model="formDataOrder.carInfo.vehicleUse" placeholder="请选择使车辆用途">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                            <el-select v-else v-model="formDataOrder.carInfo.vehicleUse" placeholder="请选择使车辆用途">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in businessVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆类型" prop="cartype">
+                            <el-select v-model="formDataOrder.carInfo.cartype" placeholder="请选择车辆种类" filterable clearable>
+                                <el-option :label="item.dictValue + item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in trafficManagementVehicleTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆种类" prop="cimodelclass">
+                            <el-select v-model="formDataOrder.carInfo.cimodelclass" placeholder="请选择车辆种类" clearable>
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in vehicleTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="能源种类" prop="energyType">
+                            <el-select v-model="formDataOrder.carInfo.energyType" placeholder="请选择能源种类">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in energyTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="注册日期" prop="registerDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.registerDate"
+                                :picker-options="pickerOptions" value-format="yyyy-MM-dd" type="date" placeholder="选择注册日期"
+                                placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="发证日期" prop="issueDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.issueDate"
+                                :picker-options="issueDateOptions" type="date" placeholder="选择发证日期"
+                                value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="转移登记日期" prop="transferDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.transferDate"
+                                :picker-options="pickerOptions" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"
+                                placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否过户" prop="transferFlag">
+                            <el-select v-model="formDataOrder.carInfo.transferFlag" placeholder="请选择是否过户">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="商业险是否过户" prop="transferFlagBi">
+                            <el-select v-model="formDataOrder.carInfo.transferFlagBi" placeholder="请选择商业险是否过户">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否脱保" prop="outOfInsurance">
+                            <el-select v-model="formDataOrder.carInfo.outOfInsurance" placeholder="请选择是否脱保">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否二手车" prop="usedCar">
+                            <el-select v-model="formDataOrder.carInfo.usedCar" placeholder="请选择是否二手车">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">车主信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in formownersList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.ownerInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">投保人信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in formPolicyholderList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.applyInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">被保人信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in forminsureinfoList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.insureInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="dialogVisibleOrder = false">取 消</el-button>
+                <el-button size="small" @click="handAuditing">审核</el-button>
+            </span>
+        </el-dialog> -->
+    </div>
+</template>
+<script>
+import templateTable from '../../../components/TemplateTable/index.vue'
+import { mixin } from "../mixin";
+
+export default {
+    name: "baosi",
+    components: { templateTable, },
+    created() {
+        this.getList();
+    },
+    mixins: [mixin],
+    data() {
+        return {
+            isAuditoption: [
+                {
+                    label: '未审核',
+                    value: '0'
+                }, {
+                    label: '审核通过',
+                    value: '1'
+                }, {
+                    label: '审核驳回',
+                    value: '2'
+                },
+            ],
+            formList: [
+                {
+                    label: "车牌号",
+                    prop: "licenseNo",
+                    type: "input",
+                },
+                {
+                    label: "发动机号",
+                    prop: "engineNo",
+                    type: "input",
+                },
+                {
+                    label: "车辆识别代码",
+                    prop: "frameNo",
+                    type: "input",
+                },
+                {
+                    label: "审核状态",
+                    prop: "isAudit",
+                    type: "select",
+                    options: [
+                        {
+                            label: '未审核',
+                            value: '0'
+                        }, {
+                            label: '审核通过',
+                            value: '1'
+                        }, {
+                            label: '审核驳回',
+                            value: '2'
+                        },
+                    ],
+                },
+            ],
+            searchData: {},
+            tableConfig: {
+                columns: [
+                    {
+                        prop: 'licenseNo', label: '车牌', type: 'text',
+                    },
+                    {
+                        prop: 'vinNo', label: '车架号', type: 'text',
+                    },
+                    {
+                        prop: 'tbrname', label: '投保人姓名', type: 'text',
+                    }, {
+                        prop: 'identifyNumber', label: '身份证号', type: 'text',
+                    }, {
+                        prop: 'isAudit', label: '审核状态', type: 'text',
+                    },
+                ],
+                loading: true,
+                // operateShow: true,
+                isPaginationShow: true,
+                // operationWidth: '150',
+                optBtns: [
+                    {
+                        type: 'primary',
+                        label: '审核',
+                        click: (row, index) => { return this.modifyFun(row) },
+                    }
+                ]
+            },
+
+            queryFrom: {
+                pageNum: 1,
+                pageSize: 10,
+                totalSize: 0
+            },
+            tableData: [],
+            dialogVisible: false,
+
+        };
+    },
+    methods: {
+        handAuditing() {
+            // this.$prompt('是否审核通过,输入驳回原因', '提示', {
+            //     confirmButtonText: '审核驳回',
+            //     cancelButtonText: '审核通过',
+            //     inputPattern: /^.+$/,
+            //     distinguishCancelAndClose: true,
+            //     inputErrorMessage: '输入驳回原因!'
+            // }).then(({ value }) => {
+            //     this.$api.task.auditBatchOrder({ orderNo: this.formDataOrder.subOrderNo, isAudit: '2', rejectReason: value }).then(res => {
+            //         if (res.code == 200) {
+            //             this.findPage();
+            //             this.$message({
+            //                 type: 'success',
+            //                 message: '审核驳回通过'
+            //             });
+            //         }
+            //         else {
+            //             this.$message.error(res.msg)
+            //         }
+            //     })
+            // }).catch((action) => {
+            //     if (action === 'cancel') {
+            //         this.$api.task.auditBatchOrder({ orderNo: this.formDataOrder.subOrderNo, isAudit: '1', }).then(res => {
+            //             if (res.code == 200) {
+            //                 this.findPage();
+            //                 this.$message({
+            //                     type: 'success',
+            //                     message: '审核通过'
+            //                 });
+            //             }
+            //             else {
+            //                 this.$message.error(res.msg)
+            //             }
+            //         })
+            //     }
+            // });
+        },
+
+        modifyFun(row) {
+            // this.$api.task.getBatchOrder({ subOrderNo: row.subOrderNo }).then(res => {
+            //     if (res.code == 200) {
+            //         this.dialogVisibleOrder = true
+            //         this.formDataOrder = res.data
+            //     }
+            //     else {
+            //         this.$message.error(res.msg)
+            //     }
+            // })
+                this.$prompt('是否审核通过,输入驳回原因', '提示', {
+                confirmButtonText: '审核驳回',
+                  cancelButtonText: '审核通过',
+                  inputPattern: /^.+$/,
+                  distinguishCancelAndClose: true,
+                inputErrorMessage: '输入驳回原因!'
+                }).then(({ value }) => {
+                    this.$api.task.auditBatchOrder({ orderNo:row.subOrderNo, isAudit: '2', rejectReason: value }).then(res => {
+                    if (res.code == 200) {
+                        this.findPage();
+                        this.$message({
+                        type: 'success',
+                        message: '审核驳回通过'
+                        });
+                    }
+                    else {
+                        this.$message.error(res.msg)
+                    }
+                })
+            }) .catch((action) => {
+                if (action === 'cancel') {
+                  this.$api.task.auditBatchOrder({ orderNo:row.subOrderNo, isAudit: '1', }).then(res => {
+                    if (res.code == 200) {
+                      this.dialogVisible = false
+                      this.findPage();
+                      this.$message({
+                        type: 'success',
+                        message: '审核通过'
+                      });
+                    }
+                    else {
+                      this.$message.error(res.msg)
+                    }
+                  })
+                }
+              });
+        },
+        handleSearchList(data) {
+            this.getList(data)
+        },
+        //列表数据
+        getList(data) {
+            this.tableConfig.loading = true;
+            this.$api.task.getBatchOrderList({ ...data, ...this.queryFrom }).then(res => {
+                if (res.data) {
+                    res.data.records.forEach(e => {
+                        e.licenseNo = e.carInfo.licenseNo? e.carInfo.licenseNo:''
+                        e.vinNo = e.carInfo.vinNo?e.carInfo.vinNo:''
+                        e.tbrname = e.applyInfo.name?e.applyInfo.name:''
+                        e.identifyNumber = e.applyInfo.identifyNumber?e.applyInfo.identifyNumber:''
+                          this.isAuditoption.find(val => {
+                                if (val.value == e.isAudit) {
+                                    e.isAudit = val.label
+                                }
+                            })
+                    })
+
+                    this.tableData = res.data.records;
+                    this.queryFrom.pageNum = res.data.pageNum;
+                    this.queryFrom.pageSize = res.data.pageSize;
+                    this.queryFrom.totalSize = res.data.totalSize;
+                    this.tableConfig.loading = false;
+
+                } else {
+                    this.tableConfig.loading = false;
+                }
+            });
+        },
+
+
+
+    }
+};
+</script>
+    
+<style scoped></style>
+