Prechádzať zdrojové kódy

企业详细信息,页面功能调整等

xiao547607 5 rokov pred
rodič
commit
480a09858a

+ 4 - 4
src/api/base/company.js

@@ -1,15 +1,15 @@
 import request from '@/utils/request'
 import constant from '@/constant'
 
-function pageList(formData){
+function pageList(formData) {
   return request.post(constant.serverUrl + "/company/pageList", formData);
 }
 
-function detail(id){
-  return request.post(constant.serverUrl + "/company/detail?companyId={0}", id);
+function detail(id) {
+  return request.get(constant.serverUrl + "/company/detail?companyId=" + id);
 }
 
 
 export default {
-  detail,pageList
+  detail, pageList
 }

+ 152 - 261
src/views/base/company-detail.vue

@@ -1,134 +1,75 @@
 
-<style scoped>
-.user-panel {
-  margin: 10px auto;
-}
-</style>
+
 <template>
   <el-dialog
     :visible.sync="showDialog"
-    :title="title"
+    title="企业信息"
     :modal-append-to-body="false"
     style="text-align:left;"
     @close="closeDialog"
+    width="80%"
   >
-    <div class="user-panel" v-loading="loading">
-      <el-form ref="form" :model="formModel" :rules="ruleValidate" :label-width="'100px'">
-        <el-form-item label="ID" prop="id">
-          <el-input v-model="formModel.id" placeholder="请输入ID" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="用户名" prop="name">
-          <el-input v-model="formModel.name" placeholder="请输入用户名" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="企业名称" prop="realName">
-          <el-input v-model="formModel.realName" placeholder="请输入企业名称" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="密码" prop="passWord">
-          <el-input v-model="formModel.passWord" placeholder="请输入密码" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="法人代表" prop="legalName">
-          <el-input v-model="formModel.legalName" placeholder="请输入法人代表" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="法人代表身份证" prop="legalCard">
-          <el-input v-model="formModel.legalCard" placeholder="请输入法人代表身份证" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="法人代表身份证附件" prop="legalCardFile">
-          <el-input
-            v-model="formModel.legalCardFile"
-            placeholder="请输入法人代表身份证附件"
-            style="width:300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="证件编号" prop="usccCode">
-          <el-input v-model="formModel.usccCode" placeholder="请输入证件编号" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="证件附件(营业执照/企业代码)" prop="usccFiles">
-          <el-input
-            v-model="formModel.usccFiles"
-            placeholder="请输入证件附件(营业执照/企业代码)"
-            style="width:300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="企业类型" prop="type">
-          <el-input v-model="formModel.type" placeholder="请输入企业类型" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="营业性质" prop="businessNature">
-          <el-input v-model="formModel.businessNature" placeholder="请输入营业性质" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="营业范围" prop="businessScope">
-          <el-input v-model="formModel.businessScope" placeholder="请输入营业范围" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="行业类型" prop="industryType">
-          <el-input v-model="formModel.industryType" placeholder="请输入行业类型" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="雇员人数" prop="employeesNumber">
-          <el-input v-model="formModel.employeesNumber" placeholder="请输入雇员人数" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="已投保人数" prop="insuredNumber">
-          <el-input v-model="formModel.insuredNumber" placeholder="请输入已投保人数" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="联系人" prop="person">
-          <el-input v-model="formModel.person" placeholder="请输入联系人" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="联系电话" prop="tel">
-          <el-input v-model="formModel.tel" placeholder="请输入联系电话" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="电子邮箱" prop="mail">
-          <el-input v-model="formModel.mail" placeholder="请输入电子邮箱" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="邮政编码" prop="postal">
-          <el-input v-model="formModel.postal" placeholder="请输入邮政编码" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="地址" prop="address">
-          <el-input v-model="formModel.address" placeholder="请输入地址" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="企业公章(附件)" prop="companyStampFile">
-          <el-input
-            v-model="formModel.companyStampFile"
-            placeholder="请输入企业公章(附件)"
-            style="width:300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="推广员账号" prop="promoter">
-          <el-input v-model="formModel.promoter" placeholder="请输入推广员账号" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="近三年损失情况(时间、原因、损失金额)" prop="remark">
-          <el-input
-            v-model="formModel.remark"
-            placeholder="请输入近三年损失情况(时间、原因、损失金额)"
-            style="width:300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="微信openID" prop="openId">
-          <el-input v-model="formModel.openId" placeholder="请输入微信openID" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="云平台买方ID" prop="buyId">
-          <el-input v-model="formModel.buyId" placeholder="请输入云平台买方ID" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="状态" prop="status">
-          <el-input v-model="formModel.status" placeholder="请输入状态" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="创建人" prop="createBy">
-          <el-input v-model="formModel.createBy" placeholder="请输入创建人" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="创建时间" prop="createTime">
-          <el-input v-model="formModel.createTime" placeholder="请输入创建时间" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="更新人" prop="updateBy">
-          <el-input v-model="formModel.updateBy" placeholder="请输入更新人" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="更新时间" prop="updateTime">
-          <el-input v-model="formModel.updateTime" placeholder="请输入更新时间" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="是否删除" prop="delFlag">
-          <el-input v-model="formModel.delFlag" placeholder="请输入是否删除" style="width:300px"></el-input>
-        </el-form-item>
-      </el-form>
+    <div class="application-panel" v-loading="loading">
+      <!-- 投保信息 -->
+      <div class="title-von">
+        <h4>投保信息</h4>
+      </div>
+      <table border="1" style="border-collapse:collapse;width: 100%;">
+        <tr>
+          <td class="table-bak" width="10%">企业名称</td>
+          <td width="20%">{{companyData.name}}</td>
+          <td class="table-bak" width="10%">统一社会信用代码</td>
+          <td width="20%">
+            {{companyData.usccCode}}
+            <a :href="companyData.usccFiles" target="_blank">查看附件</a>
+          </td>
+          <td width="10%"></td>
+          <td width="20%"></td>
+        </tr>
+        <tr>
+          <td class="table-bak">联系人</td>
+          <td>{{companyData.person}}</td>
+          <td class="table-bak">联系人手机号</td>
+          <td>{{companyData.tel}}</td>
+          <td></td>
+          <td></td>
+        </tr>
+        <tr>
+          <td class="table-bak">法人代表</td>
+          <td>{{companyData.legalName}}</td>
+          <td class="table-bak">法人代表身份证</td>
+          <td>
+            {{companyData.legalCard}}
+            <a :href="companyData.legalCardFile" target="_blank">查看附件</a>
+          </td>
+          <td class="table-bak">企业公章</td>
+          <td>已加密</td>
+        </tr>
+      </table>
+    </div>
+    <div class="application-panel" v-loading="loading">
+      <!-- 投保信息 -->
+      <div class="title-von">
+        <h4>账号信息</h4>
+      </div>
+      <table border="1" style="border-collapse:collapse;width: 100%;">
+        <tr>
+          <td class="table-bak" colspan="4">
+            <el-avatar :size="100" :src="'http://vod.wzgh.org/picc/company/2020/2/123.jpg'"></el-avatar>绑定微信:Auxzzz
+          </td>
+        </tr>
+        <tr>
+          <td width="10%" class="table-bak">用户名</td>
+          <td width="20%">Jpsoft</td>
+          <td width="10%" class="table-bak">职业</td>
+          <td width="20%">办公室</td>
+        </tr>
+        <tr>
+          <td class="table-bak">简介</td>
+          <td colspan="3">很长很长很长的简介很长很长很长的简介很长很长很长的简介很长很长很长的简介很长很长很长的简介很长很长很长的简介</td>
+        </tr>
+      </table>
     </div>
-    <span slot="footer" class="dialog-footer">
-      <el-button @click="closeDialog">取 消</el-button>
-      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
-    </span>
   </el-dialog>
 </template>
 <script>
@@ -136,159 +77,32 @@ import Constant from "@/constant";
 import companyApi from "@/api/base/company";
 
 export default {
-  props: ["businessKey", "title"],
+  props: ["companyId"],
   data() {
     return {
-      ruleValidate: {
-        id: [{ required: true, message: "ID不能为空", trigger: "blur" }],
-        name: [{ required: true, message: "用户名不能为空", trigger: "blur" }],
-        realName: [
-          { required: true, message: "企业名称不能为空", trigger: "blur" }
-        ],
-        passWord: [
-          { required: true, message: "密码不能为空", trigger: "blur" }
-        ],
-        legalName: [
-          { required: true, message: "法人代表不能为空", trigger: "blur" }
-        ],
-        legalCard: [
-          { required: true, message: "法人代表身份证不能为空", trigger: "blur" }
-        ],
-        legalCardFile: [
-          {
-            required: true,
-            message: "法人代表身份证附件不能为空",
-            trigger: "blur"
-          }
-        ],
-        usccCode: [
-          { required: true, message: "证件编号不能为空", trigger: "blur" }
-        ],
-        usccFiles: [
-          {
-            required: true,
-            message: "证件附件(营业执照/企业代码)不能为空",
-            trigger: "blur"
-          }
-        ],
-        type: [
-          { required: true, message: "企业类型不能为空", trigger: "blur" }
-        ],
-        businessNature: [
-          { required: true, message: "营业性质不能为空", trigger: "blur" }
-        ],
-        businessScope: [
-          { required: true, message: "营业范围不能为空", trigger: "blur" }
-        ],
-        industryType: [
-          { required: true, message: "行业类型不能为空", trigger: "blur" }
-        ],
-        employeesNumber: [
-          { required: true, message: "雇员人数不能为空", trigger: "blur" }
-        ],
-        insuredNumber: [
-          { required: true, message: "已投保人数不能为空", trigger: "blur" }
-        ],
-        person: [
-          { required: true, message: "联系人不能为空", trigger: "blur" }
-        ],
-        tel: [{ required: true, message: "联系电话不能为空", trigger: "blur" }],
-        mail: [
-          { required: true, message: "电子邮箱不能为空", trigger: "blur" }
-        ],
-        postal: [
-          { required: true, message: "邮政编码不能为空", trigger: "blur" }
-        ],
-        address: [{ required: true, message: "地址不能为空", trigger: "blur" }],
-        companyStampFile: [
-          { required: true, message: "企业公章(附件)不能为空", trigger: "blur" }
-        ],
-        promoter: [
-          { required: true, message: "推广员账号不能为空", trigger: "blur" }
-        ],
-        remark: [
-          {
-            required: true,
-            message: "近三年损失情况(时间、原因、损失金额)不能为空",
-            trigger: "blur"
-          }
-        ],
-        openId: [
-          { required: true, message: "微信openID不能为空", trigger: "blur" }
-        ],
-        buyId: [
-          { required: true, message: "云平台买方ID不能为空", trigger: "blur" }
-        ],
-        status: [{ required: true, message: "状态不能为空", trigger: "blur" }],
-        createBy: [
-          { required: true, message: "创建人不能为空", trigger: "blur" }
-        ],
-        createTime: [
-          { required: true, message: "创建时间不能为空", trigger: "blur" }
-        ],
-        updateBy: [
-          { required: true, message: "更新人不能为空", trigger: "blur" }
-        ],
-        updateTime: [
-          { required: true, message: "更新时间不能为空", trigger: "blur" }
-        ],
-        delFlag: [
-          { required: true, message: "是否删除不能为空", trigger: "blur" }
-        ]
-      },
       showDialog: true,
       loading: false,
-      submitting: false
+      submitting: false,
+      companyData: ""
     };
   },
   methods: {
     closeDialog() {
       this.$emit("close", false);
     },
-    handleSubmit() {
-      var self = this;
-
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          (function() {
-            var id = self.formModel.id;
-
-            if (id == null || id.length == 0) {
-              return companyApi.add(self.formModel);
-            } else {
-              return companyApi.update(self.formModel);
-            }
-          })().then(function(response) {
-            var jsonData = response.data;
-
-            if (jsonData.result) {
-              self.$message({
-                message: "保存成功!",
-                type: "success"
-              });
-
-              self.$emit("close", true);
-            } else {
-              self.$message({
-                message: jsonData.message + "",
-                type: "warning"
-              });
-
-              self.$emit("close", false);
-            }
-          });
-        }
-      });
+    tabsClick(tab, event) {
+      if (tab.name == "20") {
+        this.changePageRecord(1);
+      }
     }
   },
   mounted: function() {
     var self = this;
-
     (function() {
-      if (self.businessKey.length == 0) {
-        return companyApi.create();
+      if (self.companyId.length == 0) {
+        self.$message.error("未查到该企业信息!");
       } else {
-        return companyApi.detail(self.businessKey);
+        return companyApi.detail(self.companyId);
       }
     })()
       .then(response => {
@@ -296,7 +110,7 @@ export default {
         self.loading = false;
 
         if (jsonData.result) {
-          self.formModel = jsonData.data;
+          self.companyData = jsonData.data;
         } else {
           self.$message.error(jsonData.message + "");
         }
@@ -306,4 +120,81 @@ export default {
       });
   }
 };
-</script>
+</script>
+
+
+<style lang="scss" scoped>
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.application-panel td,
+.accept-panel td {
+  padding: 10px 0;
+  font-size: 14px;
+  border: 1px solid #efefef;
+}
+
+.el-tabs.el-tabs--card.el-tabs--top {
+  padding: 20px;
+}
+
+.table-bak {
+  background: #f6f6f6;
+}
+
+.el-tab-pane .title-von {
+  text-align: left;
+  padding: 10px 0;
+  border-bottom: 1px solid #efefef;
+  margin-bottom: 10px;
+}
+
+.el-tab-pane h4 {
+  margin: 0;
+  border-left: 2px solid red;
+  padding-left: 10px;
+}
+
+.user-panel,
+.application-panel,
+.accept-panel {
+  margin-bottom: 20px;
+}
+
+.el-pagination {
+  padding: 10px 15px;
+}
+
+.accept-panel td p {
+  font-weight: bold;
+  margin: 0;
+}
+
+.application-panel table {
+  width: 100%;
+}
+
+.el-container {
+  border-left: 1px solid #efefef;
+}
+
+.el-form td {
+  font-size: 14px;
+}
+</style>

+ 12 - 25
src/views/base/company-list.vue

@@ -55,7 +55,7 @@
       <el-table-column prop="legalCard" sort-by="legal_card" label="法人代表身份证" width="180"></el-table-column>
       <el-table-column prop="usccCode" sort-by="uscc_code" label="证件编号" width="180"></el-table-column>
       <el-table-column prop="type" sort-by="type_" label="企业类型" width="180"></el-table-column>
-      <el-table-column prop="businessNature" sort-by="business_nature" label="营业性质" width="180"></el-table-column>
+      <!-- <el-table-column prop="businessNature" sort-by="business_nature" label="营业性质" width="180"></el-table-column>
       <el-table-column prop="industryType" sort-by="industry_type" label="行业类型" width="180"></el-table-column>
       <el-table-column prop="insuredNumber" sort-by="insured_number" label="已投保人数" width="180"></el-table-column>
       <el-table-column prop="person" sort-by="person_" label="联系人" width="180"></el-table-column>
@@ -64,15 +64,15 @@
       <el-table-column prop="postal" sort-by="postal_" label="邮政编码" width="180"></el-table-column>
       <el-table-column prop="address" sort-by="address_" label="地址" width="180"></el-table-column>
       <el-table-column prop="promoter" sort-by="promoter_" label="推广员账号" width="180"></el-table-column>
-      <el-table-column prop="buyId" sort-by="buy_id" label="云平台买方ID" width="180"></el-table-column>
+      <el-table-column prop="buyId" sort-by="buy_id" label="云平台买方ID" width="180"></el-table-column> -->
       <el-table-column prop="status" sort-by="status_" label="状态" width="180"></el-table-column>
-      <!-- <el-table-column label="操作" fixed="right" width="300">
+      <el-table-column label="操作" width="300">
         <template slot-scope="{row}">
           <el-button size="mini" type="success" @click="handleOpen(row)">查看详细</el-button>
-          <el-button size="mini" type="warning" @click="handleEdit(row)">编辑</el-button> -->
-          <!-- <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
+          <!-- <el-button size="mini" type="warning" @click="handleEdit(row)">编辑</el-button> 
+          <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button> -->
         </template>
-      </el-table-column> -->
+      </el-table-column> 
     </el-table>
     <el-pagination
       :current-page.sync="pageIndex"
@@ -84,8 +84,7 @@
     ></el-pagination>
     <company-detail
       v-if="showModal"
-      :businessKey="businessKey"
-      :title="modalTitle"
+      :companyId="companyId"
       @close="onDetailModalClose"
     ></company-detail>
   </div>
@@ -99,6 +98,9 @@ import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
 
 export default {
+  components: {
+    "company-detail": companyDetail
+  },
   data() {
     var self = this;
 
@@ -119,8 +121,7 @@ export default {
       pageSizeList: [10, 20, 30],
       multipleSelection: [],
       showModal: false,
-      modalTitle: "",
-      businessKey: ""
+      companyId: ""
     };
   },
   methods: {
@@ -178,19 +179,8 @@ export default {
     handleReset(name) {
       this.$refs[name].resetFields();
     },
-    handleAdd() {
-      this.modalTitle = "新增";
-      this.businessKey = "";
-      this.showModal = true;
-    },
-    handleEdit(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
-      this.showModal = true;
-    },
     handleOpen(record) {
-      this.modalTitle = "查看";
-      this.businessKey = record.id;
+      this.companyId = record.id;
       this.showModal = true;
     },
     handleDelete(record) {
@@ -256,9 +246,6 @@ export default {
   },
   mounted: function() {
     this.changePage(1);
-  },
-  components: {
-    "company-detail": companyDetail
   }
 };
 </script>

+ 24 - 1
src/views/base/insuranceAgent-detail.vue

@@ -17,6 +17,16 @@
         <el-form-item label="姓名" prop="name">
           <el-input v-model="formModel.name" placeholder="请输入姓名" style="width:300px"></el-input>
         </el-form-item>
+        <el-form-item label="类型" prop="type">
+          <el-select v-model="formModel.type" filterable placeholder="请选择" style="width:300px">
+            <el-option
+              v-for="dictionary in dictionaryData"
+              :key="dictionary.value "
+              :label="dictionary.userName"
+              :value="dictionary.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="审核状态" prop="status">
           <el-select v-model="formModel.status">
             <el-option label="审核通过" value="1"></el-option>
@@ -34,6 +44,7 @@
 <script>
 import Constant from "@/constant";
 import insuranceAgentApi from "@/api/base/insuranceAgent";
+import dataDictionaryApi from "@/api/sys/dataDictionary";
 
 export default {
   props: ["businessKey", "title"],
@@ -42,13 +53,15 @@ export default {
       formModel: {},
       ruleValidate: {
         name: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
+        type: [{ required: true, message: "类型不能为空", trigger: "blur" }],
         status: [
           { required: true, message: "审核状态不能为空", trigger: "blur" }
         ]
       },
       showDialog: true,
       loading: false,
-      submitting: false
+      submitting: false,
+      dictionaryData: []
     };
   },
   methods: {
@@ -114,6 +127,16 @@ export default {
       .catch(error => {
         self.$message.error(error + "");
       });
+
+    var formData = new FormData();
+
+    formData.append("parentId", "c2a81ce0-9527-4d74-9e29-cd02d4c10a9b");
+
+    dataDictionaryApi.queryChildren(formData).then(response => {
+      var jsonData = response.data;
+      this.dictionaryData = jsonData.data;
+      console.log(this.dictionaryData);
+    });
   }
 };
 </script>

+ 2 - 1
src/views/base/insuranceAgent-list.vue

@@ -60,7 +60,8 @@
       @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" width="55"></el-table-column>
-      <el-table-column prop="name" sort-by="name_" label="姓名" width="180"></el-table-column>
+      <el-table-column prop="name" label="姓名" width="180"></el-table-column>
+      <el-table-column prop="type" label="类型" width="180"></el-table-column>
       <el-table-column prop="status" label="审核状态" :sortable="true" width="180">
         <template slot-scope="{row}">{{row.status == 0 ? "审核未通过" : "审核通过"}}</template>
       </el-table-column>

+ 420 - 19
src/views/business/insuranceFirst-firstDetails.vue

@@ -1,20 +1,421 @@
+
+<style scoped>
+.user-panel {
+  margin: 10px auto;
+}
+</style>
 <template>
-  <div>
-    <el-breadcrumb separator=">">
-      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
-      <el-breadcrumb-item>
-        <a href="#">系统管理</a>
-      </el-breadcrumb-item>
-      <el-breadcrumb-item>
-        <a href="/businessInsuranceApplication">新增投保初审</a>
-      </el-breadcrumb-item>
-    </el-breadcrumb>
-    <el-divider></el-divider>
-    <!--
-      要resetFields起作用,必须配置:model和prop
-    -->
-    <el-container>
-    </el-container>
-      
-  </div>
-</template>
+  <el-dialog
+    :visible.sync="showDialog"
+    title="查看投保单"
+    :modal-append-to-body="false"
+    style="text-align:left;"
+    @close="closeDialog"
+    width="80%"
+  >
+    <el-tabs type="card" activeName="0" @tab-click="tabsClick">
+      <el-tab-pane label="投保信息" name="0">
+        <table border="1" style="border-collapse:collapse;">
+          <tr>
+            <td colspan="2" class="table-bak">投保人名称</td>
+            <td colspan="3">{{insureData.insuredName}}</td>
+            <td class="table-bak">联系电话</td>
+            <td>{{insureData.insuredTel}}</td>
+          </tr>
+          <tr>
+            <td rowspan="5" class="table-bak" width="10%">被保险人信息</td>
+            <td width="90" class="table-bak">企业名称</td>
+            <td colspan="3">{{insureData.companyName}}</td>
+            <td class="table-bak">营业性质</td>
+            <td>{{insureData.businessNature}}</td>
+          </tr>
+          <tr>
+            <td class="table-bak">证件类型</td>
+            <td colspan="3">组织机构代码证</td>
+            <td class="table-bak">证件号码</td>
+            <td>{{insureData.usccCode}}</td>
+          </tr>
+          <tr>
+            <td class="table-bak">营业范围</td>
+            <td colspan="3">{{insureData.businessScope}}</td>
+            <td class="table-bak">行业类型</td>
+            <td>{{insureData.industryType}}</td>
+          </tr>
+          <tr>
+            <td class="table-bak">雇员人数</td>
+            <td width="110">{{insureData.employeesNumber}}</td>
+            <td width="90" class="table-bak">投保人数</td>
+            <td width="110">{{insureData.insuredNumber}}</td>
+            <td class="table-bak">联系电话</td>
+            <td>{{insureData.tel}}</td>
+          </tr>
+          <tr>
+            <td class="table-bak">联系地址</td>
+            <td colspan="3">{{insureData.companyAddress}}</td>
+            <td class="table-bak">邮编</td>
+            <td>{{insureData.postal}}</td>
+          </tr>
+          <tr>
+            <td colspan="2" class="table-bak">近三年损失情况(时间、原因、损失金额)</td>
+            <td colspan="5">{{insureData.lossInRecentYears}}</td>
+          </tr>
+        </table>
+      </el-tab-pane>
+      <el-tab-pane label="被保险人信息" name="10">
+        <el-table
+          :data="memberData"
+          style="width: 100%"
+          v-loading="loading"
+          stripe
+          @sort-change="sortChange"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column prop="companyMember.name" label="姓名" width="80"></el-table-column>
+          <el-table-column prop="companyMember.cardType" label="证件类型" width="100"></el-table-column>
+          <el-table-column prop="companyMember.cardNo" label="证件号码" width="200"></el-table-column>
+          <el-table-column prop="companyMember.status" label="审核状态" width="100"></el-table-column>
+          <el-table-column prop="companyMember.sex" label="性别" width="80">
+            <template slot-scope="{row}">{{row.companyMember.sex ? "男" : "女"}}</template>
+          </el-table-column>
+          <el-table-column prop="companyMember.age" label="年龄" width="100"></el-table-column>
+          <el-table-column prop="companyMember.jobName" label="岗位/工种" width="200"></el-table-column>
+          <el-table-column prop="companyMember.healthStatus" label="健康状况" width="100"></el-table-column>
+          <el-table-column prop="companyMember.cardFiles" label="身份证正面照" width="120">
+            <template slot-scope="scope">
+              <a :href="scope.row.companyMember.cardFiles" target="_blank">
+                <el-avatar
+                  size="small"
+                  :src="scope.row.companyMember.cardFiles+'?x-oss-process=image/resize,m_lfit,h_100,w_100'"
+                ></el-avatar>
+              </a>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination
+          :current-page.sync="pageIndex"
+          :total="totalElements"
+          :page-sizes="pageSizeList"
+          @current-change="changePage"
+          @size-change="pageSizeChange"
+          layout="total, sizes, prev, pager, next, jumper"
+        ></el-pagination>
+      </el-tab-pane>
+      <el-tab-pane label="承保信息" name="20">
+        <table border="1" style="border-collapse:collapse;width:100%">
+          <tr>
+            <td width="100" class="table-bak">险种</td>
+            <td colspan="6" class="table-bak">限额名称</td>
+            <td colspan="3" class="table-bak">责任限额/免赔额</td>
+          </tr>
+          <tr>
+            <td rowspan="100">{{insureData.definitionName}}</td>
+          </tr>
+          <tr v-for="(acceot,index) in acceptData.insuranceDefinitionLimitList" :key="index">
+            <td colspan="6">{{ acceot.name }}</td>
+            <td colspan="2">
+              {{ acceot.limit }}
+              {{ acceot.unit }}
+            </td>
+          </tr>
+        </table>
+        <table border="1" style="border-collapse:collapse;width:100%">
+          <tr>
+            <td colspan="2" class="table-bak">行业/职业类型</td>
+            <td class="table-bak">收费标准(年)</td>
+            <td class="table-bak">收费标准(月)</td>
+            <td class="table-bak">投保人数</td>
+            <td class="table-bak">保险费</td>
+          </tr>
+          <tr v-for="(job,index) in acceptData.jobsList" :key="index">
+            <td colspan="2">
+              <p>{{ job.name }}</p>
+              ({{job.content}})
+            </td>
+            <td>{{ job.chargesY }}元/年/人</td>
+            <td>{{ job.charges }}元/月/人</td>
+            <td>{{ job.number }}</td>
+            <td>{{ job.money }}</td>
+          </tr>
+          <tr>
+            <td colspan="2" class="table-bak">保险费合计(人民币)</td>
+            <td colspan="2">(大写):{{acceptData.cnMontrayUnit}}</td>
+            <td colspan="2">(小写):¥ {{acceptData.totalAmount}}</td>
+          </tr>
+          <tr>
+            <td colspan="2" class="table-bak">保险期间</td>
+            <td colspan="4">自 {{insureData.startTime}} 零时起 至 {{insureData.endTime}} 二十四时止。</td>
+          </tr>
+        </table>
+      </el-tab-pane>
+      <el-tab-pane label="附件信息" name="30">
+        <el-table
+          :data="filesData"
+          style="width: 100%"
+          v-loading="loading"
+          stripe
+        >
+          <el-table-column prop="index" label="序号" width="80"></el-table-column>
+          <!-- <el-table-column prop="insuredNumber" label="附件类型" width="150"></el-table-column> -->
+          <el-table-column prop="name" label="附件名称" width="500px"></el-table-column>
+          <el-table-column prop="file" label="操作" width="80">
+            <template slot-scope="scope">
+              <a :href="scope.row.file" target="_blank">下载</a>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-tab-pane>
+    </el-tabs>
+  </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import insuranceApplicationApi from "@/api/business/insuranceApplication";
+import approvalApi from "@/api/business/approval";
+
+export default {
+  props: ["id"],
+  data() {
+    return {
+      formModel: {},
+      showDialog: true,
+      loading: false,
+      submitting: false,
+      pageIndex: 1,
+      pageSize: 10,
+      totalPages: 0,
+      totalElements: 0,
+      field: "",
+      direction: "",
+      pageSizeList: [10, 20, 30],
+      multipleSelection: [],
+      definitionId: "",
+      policyId: "",
+      insureData: "",
+      acceptData: [],
+      recordData: [],
+      queryResult: [],
+      memberData: [],
+      pageIndexRecord: 1,
+      pageSizeRecord: 10,
+      totalPagesRecord: 0,
+      totalElementsRecord: 0,
+      filesData: [],
+      insuranceAgentlist: ""
+    };
+  },
+  methods: {
+    closeDialog() {
+      this.$emit("close", false);
+    },
+    tabsClick(tab, event) {
+      if (tab.name == "10") {
+        this.changePage(1);
+      } else if (tab.name == "20") {
+        this.acceptDetail();
+      } else if (tab.name == "30") {
+        this.attachmentList();
+      }
+    },
+    changePage(pageIndex) {
+      var self = this;
+
+      self.loading = true;
+
+      self.pageIndex = pageIndex;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex);
+      formData.append("pageSize", self.pageSize);
+
+      formData.append("applicationId", self.id);
+      formData.append("policyId", self.policyId);
+
+      approvalApi
+        .pageList(formData)
+        .then(function(response) {
+          self.loading = false;
+          var jsonData = response.data.data;
+          self.memberData = jsonData.data;
+          self.totalPages = jsonData.totalPages;
+          self.totalElements = jsonData.recordsTotal;
+        })
+        .catch(error => {
+          self.loading = false;
+          // self.$message.error(error + "");
+        });
+    },
+    pageSizeChange(pageSize) {
+      this.pageSize = pageSize;
+    },
+    sortChange(data) {
+      this.field = data.column.field;
+      this.direction = data.order;
+
+      this.changePage(this.pageIndex);
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    insureDetail() {
+      var self = this;
+      (function() {
+        if (self.id.length == 0) {
+          self.$message.error("没有传递ID");
+        } else {
+          var formData = new FormData();
+          formData.append("id", self.id);
+          formData.append("no", "1");
+          return insuranceApplicationApi.insureDetail(formData);
+        }
+      })()
+        .then(response => {
+          var jsonData = response.data;
+          self.loading = false;
+          if (jsonData.result) {
+            self.insureData = jsonData.data;
+            this.definitionId = self.insureData.definitionId;
+            this.policyId = self.insureData.insurancePolicy.id;
+          } else {
+            self.$message.error(jsonData.message + "");
+          }
+        })
+        .catch(error => {
+          self.$message.error(error + "");
+        });
+    },
+    acceptDetail(definitionId) {
+      var self = this;
+
+      var formData = new FormData();
+      formData.append("definitionId", self.definitionId);
+      formData.append("applicationId", self.id);
+      formData.append("policyId", self.policyId);
+
+      (function() {
+        if (self.definitionId.length == 0) {
+          self.$message.error("没有险种");
+        } else {
+          return approvalApi.acceptDetail(formData);
+        }
+      })()
+        .then(response => {
+          var jsonData = response.data;
+          self.loading = false;
+
+          if (jsonData.result) {
+            self.acceptData = jsonData.data;
+          } else {
+            self.$message.error(jsonData.message + "");
+          }
+        })
+        .catch(error => {
+          self.$message.error(error + "");
+        });
+    },
+    attachmentList() {
+      var self = this;
+
+      self.loading = true;
+
+      var formData = new FormData();
+
+      formData.append("applicationId", self.id);
+      formData.append("policyId", self.policyId);
+      formData.append("id", self.policyId);
+      approvalApi
+        .attachmentList(formData)
+        .then(function(response) {
+          self.loading = false;
+
+          var jsonData = response.data.data;
+          self.filesData = jsonData;
+        })
+        .catch(error => {
+          self.loading = false;
+          // self.$message.error(error + "");
+        });
+    }
+  },
+  async mounted() {
+    var self = this;
+    self.loading = true;
+    this.insureDetail();
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.application-panel td,
+.accept-panel td {
+  padding: 10px 0;
+  font-size: 14px;
+  border: 1px solid #efefef;
+}
+
+.el-tabs.el-tabs--card.el-tabs--top {
+  padding: 20px;
+}
+
+.table-bak {
+  background: #f6f6f6;
+}
+
+.el-tab-pane .title-von {
+  text-align: left;
+  padding: 10px 0;
+  border-bottom: 1px solid #efefef;
+  margin-bottom: 10px;
+}
+
+.el-tab-pane h4 {
+  margin: 0;
+  border-left: 2px solid red;
+  padding-left: 10px;
+}
+
+.user-panel,
+.application-panel,
+.accept-panel {
+  margin-bottom: 20px;
+}
+
+.el-pagination {
+  padding: 10px 15px;
+}
+
+.accept-panel td p {
+  font-weight: bold;
+  margin: 0;
+}
+
+.application-panel table {
+  width: 100%;
+}
+
+.el-container {
+  border-left: 1px solid #efefef;
+}
+
+.el-form td {
+  font-size: 14px;
+}
+</style>

+ 0 - 2
src/views/business/insuranceFirst-leftTab.vue

@@ -157,8 +157,6 @@
             style="width: 100%"
             v-loading="loading"
             stripe
-            @sort-change="sortChange"
-            @selection-change="handleSelectionChange"
           >
             <el-table-column prop="index" label="序号" width="80"></el-table-column>
             <!-- <el-table-column prop="insuredNumber" label="附件类型" width="150"></el-table-column> -->

+ 16 - 27
src/views/business/insuranceFirst-list.vue

@@ -76,16 +76,22 @@
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="statusN" label="状态" width="180"></el-table-column>
         <el-table-column prop="definitionName" label="保险种类" width="180"></el-table-column>
-        <el-table-column prop="insuredName" label="投保人姓名" width="180"></el-table-column>
-        <el-table-column prop="insuredTel" label="联系电话" width="180"></el-table-column>
-        <el-table-column prop="startTime" label="保障开始时间" width="180"></el-table-column>
-        <el-table-column prop="endTime" label="保障结束时间" width="180"></el-table-column>
-        <el-table-column prop="insuranceFee" label="保险费合计" width="100"></el-table-column>
+        <!-- <el-table-column prop="insuredName" label="投保人姓名" width="180"></el-table-column>
+        <el-table-column prop="insuredTel" label="联系电话" width="180"></el-table-column>-->
+        <el-table-column prop="insuredNumber" label="投保人数" width="100"></el-table-column>
+        <el-table-column label="投保期间" width="280">
+          <template slot-scope="{row}">{{row.startTime}}-{{row.endTime}}</template>
+        </el-table-column>
+        <el-table-column prop="insuranceFee" label="保险费合计" width="100">
+          <template slot-scope="scope">
+            <span class="insure-money">¥{{scope.row.insuranceFee}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="statusN" label="投保单状态" width="180"></el-table-column>
         <el-table-column label="操作" width="300">
           <template slot-scope="{row}">
-            <!-- <el-button size="mini" type="warning" @click="openFirstDetails(row)">查看详情</el-button> -->
+            <el-button size="mini" @click="openFirstDetails(row)">查看详情</el-button>&#12288;&#12288;
             <span v-if="row.status=='20'">
               <el-button size="mini" type="primary" @click="openFirstApproval(row)">处理</el-button>
             </span>
@@ -106,12 +112,7 @@
       @size-change="pageSizeChange"
       layout="total, sizes, prev, pager, next, jumper"
     ></el-pagination>
-    <first-details
-      v-if="showModal"
-      :businessKey="businessKey"
-      :title="modalTitle"
-      @close="onDetailModalClose"
-    ></first-details>
+    <first-details v-if="showModal" :id="id" @close="onDetailModalClose"></first-details>
   </div>
 </template>
 <script>
@@ -154,8 +155,7 @@ export default {
       pageSizeList: [10, 20, 30],
       multipleSelection: [],
       showModal: false,
-      modalTitle: "",
-      businessKey: "",
+      id: "",
       tabStatus: "",
       queryResult: []
     };
@@ -222,19 +222,8 @@ export default {
     handleReset(name) {
       this.$refs[name].resetFields();
     },
-    handleAdd() {
-      this.modalTitle = "新增";
-      this.businessKey = "";
-      this.showModal = true;
-    },
-    handleEdit(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
-      this.showModal = true;
-    },
     openFirstDetails(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
+      this.id = record.id;
       this.showModal = true;
     },
     openFirstApproval(record) {

+ 21 - 32
src/views/business/insuranceFirst-listPicc.vue

@@ -34,7 +34,7 @@
       </el-form-item>
       <!-- <el-form-item label="投保期间" prop="companyId">
         <el-input type="text" size="mini" v-model="queryModel.companyId"></el-input>
-      </el-form-item> -->
+      </el-form-item>-->
       <el-form-item>
         <el-button
           type="primary"
@@ -67,15 +67,21 @@
       >
         <el-table-column type="selection" width="55"></el-table-column>
         <el-table-column prop="definitionName" label="保险种类" width="180"></el-table-column>
-        <el-table-column prop="insuredName" label="投保人姓名" width="180"></el-table-column>
-        <el-table-column prop="insuredTel" label="联系电话" width="180"></el-table-column>
-        <el-table-column prop="startTime" label="保障开始时间" width="180"></el-table-column>
-        <el-table-column prop="endTime" label="保障结束时间" width="180"></el-table-column>
-        <el-table-column prop="insuranceFee" label="保险费合计" width="180"></el-table-column>
-        <el-table-column prop="statusN" label="状态" width="180"></el-table-column>
-        <el-table-column label="操作" fixed="right" width="120">
+        <!-- <el-table-column prop="insuredName" label="投保人姓名" width="180"></el-table-column>
+        <el-table-column prop="insuredTel" label="联系电话" width="180"></el-table-column>-->
+        <el-table-column prop="insuredNumber" label="投保人数" width="100"></el-table-column>
+        <el-table-column label="投保期间" width="280">
+          <template slot-scope="{row}">{{row.startTime}}-{{row.endTime}}</template>
+        </el-table-column>
+        <el-table-column prop="insuranceFee" label="保险费合计" width="100">
+          <template slot-scope="scope">
+            <span class="insure-money">¥{{scope.row.insuranceFee}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="statusN" label="投保单状态" width="180"></el-table-column>
+        <el-table-column label="操作" width="300">
           <template slot-scope="{row}">
-            <!-- <el-button size="mini" type="warning" @click="openFirstDetails(row)">查看详情</el-button> -->
+            <el-button size="mini" @click="openFirstDetails(row)">查看详情</el-button>&#12288;&#12288;
             <span v-if="row.status=='30'">
               <el-button size="mini" type="primary" @click="openSecondApproval(row)">处理</el-button>
             </span>
@@ -96,12 +102,7 @@
       @size-change="pageSizeChange"
       layout="total, sizes, prev, pager, next, jumper"
     ></el-pagination>
-    <openFirst-details
-      v-if="showModal"
-      :businessKey="businessKey"
-      :title="modalTitle"
-      @close="onDetailModalClose"
-    ></openFirst-details>
+    <first-details v-if="showModal" :id="id" @close="onDetailModalClose"></first-details>
   </div>
 </template>
 <script>
@@ -113,6 +114,9 @@ import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
 
 export default {
+  components: {
+    "first-details": firstDetails
+  },
   data() {
     var self = this;
 
@@ -140,8 +144,7 @@ export default {
       pageSizeList: [10, 20, 30],
       multipleSelection: [],
       showModal: false,
-      modalTitle: "",
-      businessKey: "",
+      id: "",
       tabStatus: "",
       queryResult: []
     };
@@ -208,19 +211,8 @@ export default {
     handleReset(name) {
       this.$refs[name].resetFields();
     },
-    handleAdd() {
-      this.modalTitle = "新增";
-      this.businessKey = "";
-      this.showModal = true;
-    },
-    handleEdit(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
-      this.showModal = true;
-    },
     openFirstDetails(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
+      this.id = record.id;
       this.showModal = true;
     },
     openSecondApproval(record) {
@@ -306,9 +298,6 @@ export default {
       var jsonData = response.data;
       this.queryResult = jsonData.data;
     });
-  },
-  components: {
-    //firstDetails: firstDetails
   }
 };
 </script>

+ 479 - 0
src/views/business/insurancePolicy-firstDetails.vue

@@ -0,0 +1,479 @@
+
+<style scoped>
+.user-panel {
+  margin: 10px auto;
+}
+</style>
+<template>
+  <el-dialog
+    :visible.sync="showDialog"
+    title="查看投保单"
+    :modal-append-to-body="false"
+    style="text-align:left;"
+    @close="closeDialog"
+    width="80%"
+  >
+    <el-tabs type="card" activeName="0" @tab-click="tabsClick">
+      <el-tab-pane label="投保信息" name="0">
+        <table border="1" style="border-collapse:collapse;">
+          <tr>
+            <td colspan="2" class="table-bak">投保人名称</td>
+            <td colspan="3">{{insureData.insuredName}}</td>
+            <td class="table-bak">联系电话</td>
+            <td>{{insureData.insuredTel}}</td>
+          </tr>
+          <tr>
+            <td rowspan="5" class="table-bak" width="10%">被保险人信息</td>
+            <td width="90" class="table-bak">企业名称</td>
+            <td colspan="3">{{insureData.companyName}}</td>
+            <td class="table-bak">营业性质</td>
+            <td>{{insureData.businessNature}}</td>
+          </tr>
+          <tr>
+            <td class="table-bak">证件类型</td>
+            <td colspan="3">组织机构代码证</td>
+            <td class="table-bak">证件号码</td>
+            <td>{{insureData.usccCode}}</td>
+          </tr>
+          <tr>
+            <td class="table-bak">营业范围</td>
+            <td colspan="3">{{insureData.businessScope}}</td>
+            <td class="table-bak">行业类型</td>
+            <td>{{insureData.industryType}}</td>
+          </tr>
+          <tr>
+            <td class="table-bak">雇员人数</td>
+            <td width="110">{{insureData.employeesNumber}}</td>
+            <td width="90" class="table-bak">投保人数</td>
+            <td width="110">{{insureData.insuredNumber}}</td>
+            <td class="table-bak">联系电话</td>
+            <td>{{insureData.tel}}</td>
+          </tr>
+          <tr>
+            <td class="table-bak">联系地址</td>
+            <td colspan="3">{{insureData.companyAddress}}</td>
+            <td class="table-bak">邮编</td>
+            <td>{{insureData.postal}}</td>
+          </tr>
+          <tr>
+            <td colspan="2" class="table-bak">近三年损失情况(时间、原因、损失金额)</td>
+            <td colspan="5">{{insureData.lossInRecentYears}}</td>
+          </tr>
+        </table>
+      </el-tab-pane>
+      <el-tab-pane label="被保险人信息" name="10">
+        <el-table
+          :data="memberData"
+          style="width: 100%"
+          v-loading="loading"
+          stripe
+          @sort-change="sortChange"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column prop="companyMember.name" label="姓名" width="80"></el-table-column>
+          <el-table-column prop="companyMember.cardType" label="证件类型" width="100"></el-table-column>
+          <el-table-column prop="companyMember.cardNo" label="证件号码" width="200"></el-table-column>
+          <el-table-column prop="companyMember.status" label="审核状态" width="100"></el-table-column>
+          <el-table-column prop="companyMember.sex" label="性别" width="80">
+            <template slot-scope="{row}">{{row.companyMember.sex ? "男" : "女"}}</template>
+          </el-table-column>
+          <el-table-column prop="companyMember.age" label="年龄" width="100"></el-table-column>
+          <el-table-column prop="companyMember.jobName" label="岗位/工种" width="200"></el-table-column>
+          <el-table-column prop="companyMember.healthStatus" label="健康状况" width="100"></el-table-column>
+          <el-table-column prop="companyMember.cardFiles" label="身份证正面照" width="120">
+            <template slot-scope="scope">
+              <a :href="scope.row.companyMember.cardFiles" target="_blank">
+                <el-avatar
+                  size="small"
+                  :src="scope.row.companyMember.cardFiles+'?x-oss-process=image/resize,m_lfit,h_100,w_100'"
+                ></el-avatar>
+              </a>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination
+          :current-page.sync="pageIndex"
+          :total="totalElements"
+          :page-sizes="pageSizeList"
+          @current-change="changePage"
+          @size-change="pageSizeChange"
+          layout="total, sizes, prev, pager, next, jumper"
+        ></el-pagination>
+      </el-tab-pane>
+      <el-tab-pane label="承保信息" name="20">
+        <table border="1" style="border-collapse:collapse;width:100%">
+          <tr>
+            <td width="100" class="table-bak">险种</td>
+            <td colspan="6" class="table-bak">限额名称</td>
+            <td colspan="3" class="table-bak">责任限额/免赔额</td>
+          </tr>
+          <tr>
+            <td rowspan="100">{{insureData.definitionName}}</td>
+          </tr>
+          <tr v-for="(acceot,index) in acceptData.insuranceDefinitionLimitList" :key="index">
+            <td colspan="6">{{ acceot.name }}</td>
+            <td colspan="2">
+              {{ acceot.limit }}
+              {{ acceot.unit }}
+            </td>
+          </tr>
+        </table>
+        <table border="1" style="border-collapse:collapse;width:100%">
+          <tr>
+            <td colspan="2" class="table-bak">行业/职业类型</td>
+            <td class="table-bak">收费标准(年)</td>
+            <td class="table-bak">收费标准(月)</td>
+            <td class="table-bak">投保人数</td>
+            <td class="table-bak">保险费</td>
+          </tr>
+          <tr v-for="(job,index) in acceptData.jobsList" :key="index">
+            <td colspan="2">
+              <p>{{ job.name }}</p>
+              ({{job.content}})
+            </td>
+            <td>{{ job.chargesY }}元/年/人</td>
+            <td>{{ job.charges }}元/月/人</td>
+            <td>{{ job.number }}</td>
+            <td>{{ job.money }}</td>
+          </tr>
+          <tr>
+            <td colspan="2" class="table-bak">保险费合计(人民币)</td>
+            <td colspan="2">(大写):{{acceptData.cnMontrayUnit}}</td>
+            <td colspan="2">(小写):¥ {{acceptData.totalAmount}}</td>
+          </tr>
+          <tr>
+            <td colspan="2" class="table-bak">保险期间</td>
+            <td colspan="4">自 {{insureData.startTime}} 零时起 至 {{insureData.endTime}} 二十四时止。</td>
+          </tr>
+        </table>
+      </el-tab-pane>
+      <el-tab-pane label="附件信息" name="30">
+        <el-table
+          :data="filesData"
+          style="width: 100%"
+          v-loading="loading"
+          stripe
+        >
+          <el-table-column prop="index" label="序号" width="80"></el-table-column>
+          <!-- <el-table-column prop="insuredNumber" label="附件类型" width="150"></el-table-column> -->
+          <el-table-column prop="name" label="附件名称" width="500px"></el-table-column>
+          <el-table-column prop="file" label="操作" width="80">
+            <template slot-scope="scope">
+              <a :href="scope.row.file" target="_blank">下载</a>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-tab-pane>
+    </el-tabs>
+  </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import insuranceApplicationApi from "@/api/business/insuranceApplication";
+import approvalApi from "@/api/business/approval";
+
+export default {
+  props: ["id", "policyId"],
+  data() {
+    return {
+      formModel: {},
+      showDialog: true,
+      loading: false,
+      submitting: false,
+      pageIndex: 1,
+      pageSize: 10,
+      totalPages: 0,
+      totalElements: 0,
+      field: "",
+      direction: "",
+      pageSizeList: [10, 20, 30],
+      multipleSelection: [],
+      definitionId: "",
+      insureData: "",
+      acceptData: [],
+      recordData: [],
+      queryResult: [],
+      memberData: [],
+      pageIndexRecord: 1,
+      pageSizeRecord: 10,
+      totalPagesRecord: 0,
+      totalElementsRecord: 0,
+      filesData: [],
+      insuranceAgentlist: ""
+    };
+  },
+  methods: {
+    closeDialog() {
+      this.$emit("close", false);
+    },
+    tabsClick(tab, event) {
+      if (tab.name == "10") {
+        this.changePage(1);
+      } else if (tab.name == "20") {
+        this.acceptDetail();
+      } else if (tab.name == "30") {
+        this.attachmentList();
+      }
+    },
+    changePage(pageIndex) {
+      var self = this;
+
+      self.loading = true;
+
+      self.pageIndex = pageIndex;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex);
+      formData.append("pageSize", self.pageSize);
+
+      formData.append("applicationId", self.id);
+      formData.append("policyId", self.policyId);
+
+      if (this.field != null) {
+        formData.append("field", this.field);
+      }
+
+      if (this.direction != null) {
+        formData.append("direction", this.direction);
+      }
+
+      approvalApi
+        .pageList(formData)
+        .then(function(response) {
+          self.loading = false;
+
+          var jsonData = response.data.data;
+
+          self.memberData = jsonData.data;
+          self.totalPages = jsonData.totalPages;
+          self.totalElements = jsonData.recordsTotal;
+        })
+        .catch(error => {
+          self.loading = false;
+          // self.$message.error(error + "");
+        });
+    },
+    pageSizeChange(pageSize) {
+      this.pageSize = pageSize;
+    },
+    sortChange(data) {
+      this.field = data.column.field;
+      this.direction = data.order;
+
+      this.changePage(this.pageIndex);
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    insureDetail() {
+      var self = this;
+      self.definitionId = self.id;
+      (function() {
+        if (self.id.length == 0) {
+          self.$message.error("没有传递ID");
+        } else {
+          var formData = new FormData();
+          formData.append("id", self.id);
+          formData.append("no", "1");
+          return insuranceApplicationApi.insureDetail(formData);
+        }
+      })()
+        .then(response => {
+          var jsonData = response.data;
+          self.loading = false;
+          if (jsonData.result) {
+            self.insureData = jsonData.data;
+          } else {
+            self.$message.error(jsonData.message + "");
+          }
+        })
+        .catch(error => {
+          self.$message.error(error + "");
+        });
+    },
+    acceptDetail() {
+      var self = this;
+
+      var formData = new FormData();
+      formData.append("definitionId", self.definitionId);
+      formData.append("applicationId", self.id);
+      formData.append("policyId", self.policyId);
+      (function() {
+        if (self.definitionId.length == 0) {
+          self.$message.error("没有险种");
+        } else {
+          return approvalApi.acceptDetail(formData);
+        }
+      })()
+        .then(response => {
+          var jsonData = response.data;
+          self.loading = false;
+
+          if (jsonData.result) {
+            self.acceptData = jsonData.data;
+          } else {
+            self.$message.error(jsonData.message + "");
+          }
+        })
+        .catch(error => {
+          self.$message.error(error + "");
+        });
+    },
+    changePageRecord(pageIndexRecord) {
+      var self = this;
+
+      self.loading = true;
+
+      self.pageIndexRecord = pageIndexRecord;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndexRecord);
+      formData.append("pageSize", self.pageSizeRecord);
+
+      formData.append("applicationId", self.id);
+      formData.append("policyId", self.policyId);
+
+      if (this.field != null) {
+        formData.append("field", this.field);
+      }
+
+      if (this.direction != null) {
+        formData.append("direction", this.direction);
+      }
+
+      approvalApi
+        .policyRecordPageList(formData)
+        .then(function(response) {
+          self.loading = false;
+
+          var jsonData = response.data.data;
+
+          self.recordData = jsonData.data;
+          self.totalPagesRecord = jsonData.totalPages;
+          self.totalElementsRecord = jsonData.recordsTotal;
+        })
+        .catch(error => {
+          self.loading = false;
+          // self.$message.error(error + "");
+        });
+    },
+    pageSizeChangeRecord(pageSize) {
+      this.pageSize = pageSize;
+    },
+    sortChangeRecord(data) {
+      this.field = data.column.field;
+      this.direction = data.order;
+
+      this.changePageRecord(this.pageIndex);
+    },
+    handleSelectionChangeRecord(val) {
+      this.multipleSelection = val;
+    },
+    attachmentList() {
+      var self = this;
+
+      self.loading = true;
+
+      var formData = new FormData();
+
+      formData.append("applicationId", self.id);
+      formData.append("policyId", self.policyId);
+      formData.append("id", self.policyId);
+
+      approvalApi
+        .attachmentList(formData)
+        .then(function(response) {
+          self.loading = false;
+
+          var jsonData = response.data.data;
+          self.filesData = jsonData;
+        })
+        .catch(error => {
+          self.loading = false;
+          // self.$message.error(error + "");
+        });
+    }
+  },
+  async mounted() {
+    var self = this;
+    self.loading = true;
+    this.insureDetail();
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.application-panel td,
+.accept-panel td {
+  padding: 10px 0;
+  font-size: 14px;
+  border: 1px solid #efefef;
+}
+
+.el-tabs.el-tabs--card.el-tabs--top {
+  padding: 20px;
+}
+
+.table-bak {
+  background: #f6f6f6;
+}
+
+.el-tab-pane .title-von {
+  text-align: left;
+  padding: 10px 0;
+  border-bottom: 1px solid #efefef;
+  margin-bottom: 10px;
+}
+
+.el-tab-pane h4 {
+  margin: 0;
+  border-left: 2px solid red;
+  padding-left: 10px;
+}
+
+.user-panel,
+.application-panel,
+.accept-panel {
+  margin-bottom: 20px;
+}
+
+.el-pagination {
+  padding: 10px 15px;
+}
+
+.accept-panel td p {
+  font-weight: bold;
+  margin: 0;
+}
+
+.application-panel table {
+  width: 100%;
+}
+
+.el-container {
+  border-left: 1px solid #efefef;
+}
+
+.el-form td {
+  font-size: 14px;
+}
+</style>

+ 3 - 1
src/views/business/insurancePolicy-issued.vue

@@ -65,7 +65,7 @@
               </tr>-->
               <tr>
                 <td colspan="2">
-                  <el-form-item label="保险代理人">{{policy.agentId}}</el-form-item>
+                  <el-form-item label="保险代理人">{{agent.name}}</el-form-item>
                 </td>
               </tr>
               <tr>
@@ -180,6 +180,7 @@ export default {
       filesData: [],
       insuranceAgentlist: "",
       policy: "",
+      agent:"",
       //上传地址
       uploadUrl: Constant.serverUrl + "/base/attachment/upload",
       uploadData: {
@@ -219,6 +220,7 @@ export default {
             approvalApi.otherDetail(formData).then(response => {
               var jsonData = response.data;
               this.policy = jsonData.data.policy;
+              this.agent =  jsonData.data.policy.agent;
             });
           } else {
             self.$message.error(jsonData.message + "");

+ 0 - 2
src/views/business/insurancePolicy-leftTab.vue

@@ -157,8 +157,6 @@
             style="width: 100%"
             v-loading="loading"
             stripe
-            @sort-change="sortChange"
-            @selection-change="handleSelectionChange"
           >
             <el-table-column prop="index" label="序号" width="80"></el-table-column>
             <!-- <el-table-column prop="insuredNumber" label="附件类型" width="150"></el-table-column> -->

+ 30 - 30
src/views/business/insurancePolicy-list.vue

@@ -34,7 +34,7 @@
       </el-form-item>
       <!-- <el-form-item label="投保期间" prop="companyId">
         <el-input type="text" size="mini" v-model="queryModel.companyId"></el-input>
-      </el-form-item> -->
+      </el-form-item>-->
       <el-form-item>
         <el-button
           type="primary"
@@ -70,16 +70,22 @@
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="policy.statusN" label="状态" width="100"></el-table-column>
         <el-table-column prop="application.definitionName" label="保险种类" width="180"></el-table-column>
-        <el-table-column prop="application.insuredName" label="投保人姓名" width="180"></el-table-column>
-        <el-table-column prop="application.insuredTel" label="联系电话" width="180"></el-table-column>
-        <el-table-column prop="application.startTime" label="保障开始时间" width="180"></el-table-column>
-        <el-table-column prop="application.endTime" label="保障结束时间" width="180"></el-table-column>
-        <el-table-column prop="application.insuranceFee" label="保险费合计" width="180"></el-table-column>
-        <el-table-column label="操作" fixed="right" width="120">
+
+        <!-- <el-table-column prop="application.insuredName" label="投保人姓名" width="180"></el-table-column>
+        <el-table-column prop="application.insuredTel" label="联系电话" width="180"></el-table-column>-->
+        <el-table-column label="投保期间" width="280">
+          <template slot-scope="{row}">{{row.policy.startTime}}-{{row.policy.endTime}}</template>
+        </el-table-column>
+        <el-table-column prop="insuranceFee" label="保险费合计" width="100">
+          <template slot-scope="scope">
+            <span class="insure-money">¥{{scope.row.policy.insuranceFee}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="policy.statusN" label="投保单状态" width="180"></el-table-column>
+        <el-table-column label="操作" width="320">
           <template slot-scope="{row}">
-            <!-- <el-button size="mini" type="warning" @click="openFirstDetails(row)">查看详情</el-button> -->
+            <el-button size="mini" @click="openPolicyDetails(row)">查看详情</el-button>&#12288;&#12288;
             <span v-if="row.policy.status=='20'">
               <el-button size="mini" type="primary" @click="openFirstApproval(row)">处理</el-button>
             </span>
@@ -100,23 +106,26 @@
       @size-change="pageSizeChange"
       layout="total, sizes, prev, pager, next, jumper"
     ></el-pagination>
-    <openFirst-details
+    <insuranceJobs-detail
       v-if="showModal"
-      :businessKey="businessKey"
-      :title="modalTitle"
+      :id="id"
+      :policyId="policyId"
       @close="onDetailModalClose"
-    ></openFirst-details>
+    ></insuranceJobs-detail>
   </div>
 </template>
 <script>
 import Constant from "@/constant";
-import firstDetails from "./insuranceFirst-firstDetails";
+import insuranceJobsDetail from "./insurancePolicy-firstDetails";
 import approvalApi from "@/api/business/approval";
 import insuranceDefinitionApi from "@/api/base/insuranceDefinition";
 import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
 
 export default {
+  components: {
+    "insuranceJobs-detail": insuranceJobsDetail
+  },
   data() {
     var self = this;
 
@@ -146,7 +155,8 @@ export default {
       multipleSelection: [],
       showModal: false,
       modalTitle: "",
-      businessKey: "",
+      id: "",
+      policyId: "",
       tabStatus: "",
       queryResult: []
     };
@@ -214,31 +224,21 @@ export default {
     handleReset(name) {
       this.$refs[name].resetFields();
     },
-    handleAdd() {
-      this.modalTitle = "新增";
-      this.businessKey = "";
-      this.showModal = true;
-    },
-    handleEdit(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
-      this.showModal = true;
-    },
-    openFirstDetails(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
+    openPolicyDetails(record) {
+      this.id = record.application.id;
+      this.policyId = record.policy.id;
       this.showModal = true;
     },
     openFirstApproval(record) {
       this.$router.push({
         path: "/business/insurancePolicy/firstApproval",
-        query: { id: record.application.id,policyId:record.policy.id }
+        query: { id: record.application.id, policyId: record.policy.id }
       });
     },
     openTransfer(record) {
       this.$router.push({
         path: "/business/insurancePolicy/transfer",
-        query: { id: record.application.id,policyId:record.policy.id }
+        query: { id: record.application.id, policyId: record.policy.id }
       });
     },
     handleDelete(record) {

+ 26 - 27
src/views/business/insurancePolicy-listPicc.vue

@@ -67,15 +67,20 @@
       >
         <el-table-column type="selection" width="55"></el-table-column>
         <el-table-column prop="application.definitionName" label="保险种类" width="180"></el-table-column>
-        <el-table-column prop="application.insuredName" label="投保人姓名" width="180"></el-table-column>
-        <el-table-column prop="application.insuredTel" label="联系电话" width="180"></el-table-column>
-        <el-table-column prop="application.startTime" label="保障开始时间" width="180"></el-table-column>
-        <el-table-column prop="application.endTime" label="保障结束时间" width="180"></el-table-column>
-        <el-table-column prop="application.insuranceFee" label="保险费合计" width="180"></el-table-column>
-        <el-table-column prop="policy.statusN" label="状态" width="180"></el-table-column>
-        <el-table-column label="操作" fixed="right" width="120">
+        <!-- <el-table-column prop="application.insuredName" label="投保人姓名" width="180"></el-table-column>
+        <el-table-column prop="application.insuredTel" label="联系电话" width="180"></el-table-column>-->
+        <el-table-column label="投保期间" width="280">
+          <template slot-scope="{row}">{{row.policy.startTime}}-{{row.policy.endTime}}</template>
+        </el-table-column>
+        <el-table-column prop="insuranceFee" label="保险费合计" width="100">
+          <template slot-scope="scope">
+            <span class="insure-money">¥{{scope.row.policy.insuranceFee}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="policy.statusN" label="投保单状态" width="180"></el-table-column>
+        <el-table-column label="操作" width="300">
           <template slot-scope="{row}">
-            <!-- <el-button size="mini" type="warning" @click="openFirstDetails(row)">查看详情</el-button> -->
+            <el-button size="mini" @click="openPolicyDetails(row)">查看详情</el-button>&#12288;&#12288;
             <span v-if="row.policy.status=='30'">
               <el-button size="mini" type="primary" @click="openSecondApproval(row)">处理</el-button>
             </span>
@@ -96,17 +101,17 @@
       @size-change="pageSizeChange"
       layout="total, sizes, prev, pager, next, jumper"
     ></el-pagination>
-    <openFirst-details
+    <insuranceJobs-detail
       v-if="showModal"
-      :businessKey="businessKey"
-      :title="modalTitle"
+      :id="id"
+      :policyId="policyId"
       @close="onDetailModalClose"
-    ></openFirst-details>
+    ></insuranceJobs-detail>
   </div>
 </template>
 <script>
 import Constant from "@/constant";
-import firstDetails from "./insuranceFirst-firstDetails";
+import insuranceJobsDetail from "./insurancePolicy-firstDetails";
 import insuranceApplicationApi from "@/api/business/insuranceApplication";
 import approvalApi from "@/api/business/approval";
 import insuranceDefinitionApi from "@/api/base/insuranceDefinition";
@@ -114,6 +119,9 @@ import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
 
 export default {
+  components: {
+    "insuranceJobs-detail": insuranceJobsDetail
+  },
   data() {
     var self = this;
 
@@ -142,7 +150,8 @@ export default {
       multipleSelection: [],
       showModal: false,
       modalTitle: "",
-      businessKey: "",
+      id: "",
+      policyId:"",
       tabStatus: "",
       queryResult: []
     };
@@ -209,19 +218,9 @@ export default {
     handleReset(name) {
       this.$refs[name].resetFields();
     },
-    handleAdd() {
-      this.modalTitle = "新增";
-      this.businessKey = "";
-      this.showModal = true;
-    },
-    handleEdit(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
-      this.showModal = true;
-    },
-    openFirstDetails(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
+    openPolicyDetails(record) {
+      this.id = record.application.id;
+      this.policyId = record.policy.id;
       this.showModal = true;
     },
     openSecondApproval(record) {

+ 12 - 1
src/views/business/insurancePolicy-secondApproval.vue

@@ -24,7 +24,7 @@
             <table>
               <tr>
                 <td>当前步骤</td>
-                <td>{{insureData.statusN}}</td>
+                <td>{{policy.statusN}}</td>
               </tr>
               <tr>
                 <td colspan="2">
@@ -123,6 +123,7 @@ export default {
       totalPagesRecord: 0,
       totalElementsRecord: 0,
       filesData: [],
+      policy: "",
       insuranceAgentlist: ""
     };
   },
@@ -146,6 +147,16 @@ export default {
 
           if (jsonData.result) {
             self.insureData = jsonData.data;
+
+            var formData = new FormData();
+
+            formData.append("applicationId", self.id);
+            formData.append("policyId", self.policyId);
+
+            approvalApi.otherDetail(formData).then(response => {
+              var jsonData = response.data;
+              this.policy = jsonData.data.policy;
+            });
           } else {
             self.$message.error(jsonData.message + "");
           }

+ 23 - 2
src/views/business/insurancePolicy-transfer.vue

@@ -72,7 +72,19 @@
               <tr>
                 <td colspan="2">
                   <el-form-item label="保险代理人" prop="agentId">
-                    <el-input placeholder="请输入保险代理人" v-model="formModel.agentId"></el-input>
+                    <el-select
+                      v-model="formModel.agentId"
+                      filterable
+                      placeholder="请选择"
+                      style="width:300px"
+                    >
+                      <el-option
+                        v-for="agent in agentData"
+                        :key="agent.id "
+                        :label="agent.name"
+                        :value="agent.id"
+                      ></el-option>
+                    </el-select>
                   </el-form-item>
                 </td>
               </tr>
@@ -111,6 +123,7 @@
 import Constant from "@/constant";
 import insuranceApplicationApi from "@/api/business/insuranceApplication";
 import approvalApi from "@/api/business/approval";
+import insuranceAgentApi from "@/api/base/insuranceAgent";
 import leftTab from "./insurancePolicy-leftTab.vue";
 import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
@@ -188,7 +201,8 @@ export default {
       totalElementsRecord: 0,
       filesData: [],
       insuranceAgentlist: "",
-      policy: ""
+      policy: "",
+      agentData:[]
     };
   },
   methods: {
@@ -220,6 +234,12 @@ export default {
               var jsonData = response.data;
               this.policy = jsonData.data.policy;
             });
+
+            insuranceAgentApi.list().then(response => {
+              var jsonData = response.data;
+              this.agentData = jsonData.data;
+              console.log(jsonData);
+            });
           } else {
             self.$message.error(jsonData.message + "");
           }
@@ -246,6 +266,7 @@ export default {
             formData.append("accountBank", self.formModel.accountBank);
             formData.append("issuingBank", self.formModel.issuingBank);
             formData.append("singlNumber", self.formModel.singlNumber);
+            formData.append("agentId", self.formModel.agentId);
 
             return approvalApi.transfer(formData);
           })().then(function(response) {