| <template> | 
|     <GlobalWindow | 
|         :title="title" | 
|         width="100%" | 
|         :visible.sync="visible" | 
|         :confirm-working="isWorking" | 
|         @confirm="confirm" | 
|     > | 
|         <el-form :model="form" ref="form" :rules="rules"> | 
|             <el-form-item label="出险人姓名" prop="memberId" v-if="!form.id"> | 
|                 <el-select v-model="form.memberId" filterable @change="getSolutions" placeholder="请选择"> | 
|                     <el-option | 
|                         v-for="item in user" | 
|                         :key="item.id" | 
|                         :label="item.name + ' - ' + item.idcardNo" | 
|                         :value="item.id"> | 
|                     </el-option> | 
|                 </el-select> | 
|             </el-form-item> | 
|             <el-form-item label="保险方案" prop="solutionId" v-if="!form.id"> | 
|                 <div style="display: flex; align-items: center;"> | 
|                     <span>{{form.solutionName}}</span> | 
|                     <el-button type="primary" @click="openS" style="margin-left: 10px;">选择方案</el-button> | 
|                 </div> | 
|             </el-form-item> | 
|             <el-form-item label="派遣单位" prop="duId" v-if="form.duName && !form.id"> | 
|                 <span>{{form.duName}}</span> | 
|             </el-form-item> | 
|             <el-form-item label="所属工种" prop="worktypeId" v-if="form.worktypeName && !form.id"> | 
|                 <span>{{form.worktypeName}}</span> | 
|             </el-form-item> | 
|             <el-form-item label="事故发生时间" prop="happenTime" v-if="!form.id"> | 
|                 <el-date-picker | 
|                     v-model="form.happenTime" | 
|                     type="datetime" | 
|                     format="yyyy-MM-dd HH:mm:ss" | 
|                     value-format="yyyy-MM-dd HH:mm:ss" | 
|                     placeholder="选择日期时间"> | 
|                 </el-date-picker> | 
|             </el-form-item> | 
|             <el-form-item label="就诊医疗机构" prop="hospital" v-if="!form.id"> | 
|                 <el-input v-model="form.hospital" placeholder="请输入"></el-input> | 
|             </el-form-item> | 
|             <el-form-item label="出险地区" prop="areaId"> | 
|                 <el-cascader | 
|                     v-model="form.areaId" | 
|                     :options="area" | 
|                     :props="{ value: 'id', label: 'name', children: 'childAreasList' }" | 
|                     @change="handleChange" /> | 
|             </el-form-item> | 
|             <el-form-item label="事故类型" prop="type"> | 
|                 <el-radio-group v-model="form.type"> | 
|                     <el-radio :label="0">工作期间受伤</el-radio> | 
|                     <el-radio :label="1">上下班途中受伤</el-radio> | 
|                     <el-radio :label="2">非工作时间受伤</el-radio> | 
|                     <el-radio :label="3">意外受伤</el-radio> | 
|                 </el-radio-group> | 
|             </el-form-item> | 
|             <el-form-item label="是否住院" prop="inHospital"> | 
|                 <el-radio-group v-model="form.inHospital"> | 
|                     <el-radio :label="0">是</el-radio> | 
|                     <el-radio :label="1">否</el-radio> | 
|                 </el-radio-group> | 
|             </el-form-item> | 
|             <el-form-item label="是否有医疗保险" prop="medicalInsurance"> | 
|                 <el-radio-group v-model="form.medicalInsurance"> | 
|                     <el-radio :label="0">是</el-radio> | 
|                     <el-radio :label="1">否</el-radio> | 
|                 </el-radio-group> | 
|             </el-form-item> | 
|             <el-form-item label="事故描述" prop="content" v-if="!form.id"> | 
|                 <el-input type="textarea" :rows="5" placeholder="请输入内容" v-model="form.content"></el-input> | 
|             </el-form-item> | 
|             <el-form-item label="上传事故视频/照片" prop="list" v-if="!form.id"> | 
|                 <upload :list="form.list" :accept="'.mp4,.jpg,.png,.jpeg'" folder="settle" @dele="deleFile" @success="getData" /> | 
|             </el-form-item> | 
|             <el-form-item label="报案人姓名" prop="informantName"> | 
|                 <el-input v-model="form.informantName" placeholder="请输入"></el-input> | 
|             </el-form-item> | 
|             <el-form-item label="报案人联系方式" prop="informantPhone"> | 
|                 <el-input maxlength="11" v-model="form.informantPhone" placeholder="请输入"></el-input> | 
|             </el-form-item> | 
|         </el-form> | 
|         <!--    弹窗提醒    --> | 
|         <el-dialog | 
|             title="温馨提示" | 
|             :modal="false" | 
|             :close-on-click-modal="false" | 
|             :show-close="false" | 
|             :visible.sync="centerDialogVisible" | 
|             width="50%" | 
|             center> | 
|             <div class="fuwenben" style="font-size: 12px"> | 
|                     尊敬的客户: | 
|   | 
|                 首先感谢您对于我们的信任与支持,我们很荣幸成为贵司的保险咨询服务商! | 
|   | 
|                 鉴于近期出现个别客户存在:当天投保当天出险(即先出工伤或意外、再进行投保操作)的个别诈骗保险金的案例,错误使用“即时生效”条款。针对此种情况本公司郑重告知各位客户: | 
|   | 
|                 1.诈骗保险金的行为属于违法行为,一旦发现,本公司将提交公安机关处理并保留追究法律责任; | 
|   | 
|                 2.为了顺利理赔结案,按照保险公司的理赔审查要求,当天投保当天出险需要提供出险监控视频或者能佐证具体时间点的任何证据; | 
|   | 
|                 3.请您深刻理解保险中“如实告知”的投保人义务,我们致力于为您转移用工风险和法律风险。但这一切的前提是:合规合法合理。 | 
|   | 
|                 附件一: | 
|   | 
|                 《中华人民共和国刑法》第一百九十八条 【保险诈骗罪】有下列情形之一,进行保险诈骗活动,数额较大的,处五年以下有期徒刑或者拘役, 并处一万元以上十万元以下罚金;数额巨大或者有其他严重情节的,处五年以上十年以下有期徒刑,并处二万元以上二十万元以下罚金;数额特别巨大或者有其他特别严重情节的,处十年以上有期徒 刑,并处二万元以上二十万元以下罚金或者没收财产: | 
|   | 
|                 (一)投保人故意虚构保险标的,骗取保险金的; | 
|   | 
|                 (二)投保人、被保险人或者受益人对发生的保险事故编造虚假的原因或者夸大损失的程度,骗取保险金的; | 
|   | 
|                 (三)投保人、被保险人或者受益人编造未曾发生的保险事故,骗取保险金的; | 
|   | 
|                 (四)投保人、被保险人故意造成财产损失的保险事故,骗取保险金的; | 
|   | 
|                 (五)投保人、受益人故意造成被保险人死亡、伤残或者疾病,骗取保险金的。 | 
|   | 
|                 有前款第四项、第五项所列行为,同时构成其他犯罪的,依照数罪并罚的规定处罚。 单位犯第一款罪的,对单位判处罚金,并对其直接负责的主管人员和 其他直接责任人员,处五年以下有期徒刑或者拘役;数额巨大或者有 其他严重情节的,处五年以上十年以下有期徒刑;数额特别巨大或者 有其他特别严重情节的,处十年以上有期徒刑。 保险事故的鉴定人、证明人、财产评估人故意提供虚假的证明文件,为他人诈骗提供条件的,以保险诈骗的共犯论处。 | 
|   | 
|                 附件二: | 
|   | 
|                 《中华人民共和国保险法》第二十七条 未发生保险事故,被保险人或者受益人谎称发生了保险事故,向保险人提出赔偿或者给付保险金请求的,保险人有权解除合同,并不退还保险费。 | 
|   | 
|                 投保人、被保险人故意制造保险事故的,保险人有权解除合同,不承担赔偿或者给付保险金的责任;除本法第四十三条规定外,不退还保险费。 | 
|   | 
|                 保险事故发生后,投保人、被保险人或者受益人以伪造、变造的有关证明、资料或者其他证据,编造虚假的事故原因或者夸大损失程度的,保险人对其虚报的部分不承担赔偿或者给付保险金的责任。 | 
|   | 
|                 投保人、被保险人或者受益人有前三款规定行为之一,致使保险 人支付保险金或者支出费用的,应当撤销或者赔偿。 | 
|             </div> | 
|             <span slot="footer" class="dialog-footer"> | 
|                 <el-button type="primary" @click="centerDialogVisible = false">我已知晓</el-button> | 
|             </span> | 
|         </el-dialog> | 
|         <!--    选择保险方案    --> | 
|         <selectSolutions ref="selectSolutions" @success="getVal" /> | 
|     </GlobalWindow> | 
| </template> | 
|   | 
| <script> | 
|     import BaseOpera from '@/components/base/BaseOpera' | 
|     import GlobalWindow from '@/components/common/GlobalWindow' | 
|     import upload from '@/components/common/upload' | 
|     import selectSolutions from '@/components/enterprise/selectSolutions' | 
|     import { findListByDTO } from '@/api/business/member' | 
|     import { findList } from '@/api/business/applyChange' | 
|     import { findTreeList } from '@/api/system/common' | 
|     import { create, updateById } from '@/api/business/settleClaims' | 
|     export default { | 
|         name: 'onlineReporting', | 
|         extends: BaseOpera, | 
|         components: { GlobalWindow, upload, selectSolutions }, | 
|         data () { | 
|             return { | 
|                 form: { | 
|                     id: null, | 
|                     insuranceApplyId: '', | 
|                     memberId: '', | 
|                     solutionId: '', | 
|                     solutionName: '', | 
|                     duId: '', | 
|                     duName: '', | 
|                     worktypeId: '', | 
|                     worktypeName: '', | 
|                     happenTime: '', | 
|                     hospital: '', | 
|                     areaId: '', | 
|                     areaInfo: '', | 
|                     type: 0, | 
|                     inHospital: 0, | 
|                     medicalInsurance: 0, | 
|                     content: '', | 
|                     informantName: '', | 
|                     informantPhone: '', | 
|                     list: [], | 
|                     reportFileList: [] | 
|                 }, | 
|                 rules: { | 
|                     memberId: [ | 
|                         { required: true, message: '请选择出险人' } | 
|                     ], | 
|                     solutionId: [ | 
|                         { required: true, message: '请选择保险方案' } | 
|                     ], | 
|                     duId: [ | 
|                         { required: true, message: '请选择派遣单位' } | 
|                     ], | 
|                     worktypeId: [ | 
|                         { required: true, message: '请选择所属工种' } | 
|                     ], | 
|                     happenTime: [ | 
|                         { required: true, message: '请选择事故发生时间' } | 
|                     ], | 
|                     type: [ | 
|                         { required: true, message: '请选择事故类型' } | 
|                     ], | 
|                     inHospital: [ | 
|                         { required: true, message: '请选择是否住院' } | 
|                     ], | 
|                     medicalInsurance: [ | 
|                         { required: true, message: '请选择是否有医疗保险' } | 
|                     ], | 
|                     content: [ | 
|                         { required: true, message: '请输入事故描述' } | 
|                     ], | 
|                     informantName: [ | 
|                         { required: true, message: '请输入报案人姓名' } | 
|                     ], | 
|                     informantPhone: [ | 
|                         { required: true, message: '请输入报案人联系方式' } | 
|                     ] | 
|                 }, | 
|                 centerDialogVisible: false, | 
|                 user: [], | 
|                 options: [], | 
|                 area: [] | 
|             } | 
|         }, | 
|         created () { | 
|             this.config({ | 
|                 api: '/business/settleClaims', | 
|                 'field.id': 'id' | 
|             }) | 
|         }, | 
|         methods: { | 
|             open (title, target) { | 
|                 this.title = title | 
|                 this.visible = true | 
|                 this.form.list = [] | 
|                 this.form.reportFileList = [] | 
|                 this.getUser() | 
|                 this.getArea() | 
|                 // 新建 | 
|                 if (target == null) { | 
|                     this.$nextTick(() => { | 
|                         this.$refs.form.resetFields() | 
|                         this.form[this.configData['field.id']] = null | 
|                         setTimeout(() => { | 
|                             this.centerDialogVisible = true | 
|                         }, 300) | 
|                     }) | 
|                     return | 
|                 } | 
|                 // 编辑 | 
|                 this.$nextTick(() => { | 
|                     for (const key in this.form) { | 
|                         this.form[key] = target[key] | 
|                     } | 
|                 }) | 
|             }, | 
|             handleTreeData(data) { | 
|                 for (var i = 0; i < data.length; i++) { | 
|                     if (data[i].childAreasList.length < 1) { | 
|                         data[i].childAreasList = undefined; // 看后端返的是child字段还是children字段,自行改变 | 
|                     } else { | 
|                         this.handleTreeData(data[i].childAreasList) // children若不为空数组,则继续 递归调用 本方法 | 
|                     } | 
|                 } | 
|                 return data; | 
|             }, | 
|             __confirmEdit () { | 
|                 this.$refs.form.validate((valid) => { | 
|                     if (!valid) { | 
|                         return | 
|                     } | 
|                     // 调用新建接口 | 
|                     this.isWorking = true | 
|                     let obj = JSON.parse(JSON.stringify(this.form)) | 
|                     obj.areaId = obj.areaId.join(',') | 
|                     updateById(obj) | 
|                         .then(() => { | 
|                             this.visible = false | 
|                             this.$tip.apiSuccess('修改成功') | 
|                             this.$emit('success') | 
|                         }) | 
|                         .catch(e => { | 
|                             this.$tip.apiFailed(e) | 
|                         }) | 
|                         .finally(() => { | 
|                             this.isWorking = false | 
|                         }) | 
|                 }) | 
|             }, | 
|             __confirmCreate () { | 
|                 this.$refs.form.validate((valid) => { | 
|                     if (!valid) { | 
|                         return | 
|                     } | 
|                     // 调用新建接口 | 
|                     this.isWorking = true | 
|                     let obj = JSON.parse(JSON.stringify(this.form)) | 
|                     if (obj.areaId) { | 
|                         obj.areaId = obj.areaId.join(',') | 
|                     } | 
|                     create(obj) | 
|                         .then(() => { | 
|                             this.visible = false | 
|                             this.$tip.apiSuccess('新建成功') | 
|                             this.$emit('success') | 
|                         }) | 
|                         .catch(e => { | 
|                             this.$tip.apiFailed(e) | 
|                         }) | 
|                         .finally(() => { | 
|                             this.isWorking = false | 
|                         }) | 
|                 }) | 
|             }, | 
|             // 查询区域数据 | 
|             getArea() { | 
|                 findTreeList({}) | 
|                     .then(res => { | 
|                         this.area = this.handleTreeData(res) | 
|                     }) | 
|             }, | 
|             getVal(e) { | 
|                 console.log(e) | 
|                 this.form.insuranceApplyId = e.applyId | 
|                 this.form.solutionId = e.solutionId | 
|                 this.form.solutionName = e.solutionName | 
|                 this.form.duId = e.duId | 
|                 this.form.duName = e.duName | 
|                 this.form.worktypeId = e.worktypeId | 
|                 this.form.worktypeName = e.worktypeName | 
|             }, | 
|             openS() { | 
|                 if (!this.form.memberId) { | 
|                     this.$message.warning('请先选择出险人') | 
|                     return | 
|                 } | 
|                 this.$refs.selectSolutions.open('选择保险方案', this.form.memberId) | 
|             }, | 
|             getUser() { | 
|                 findListByDTO({}) | 
|                     .then(res => { | 
|                         this.user = res | 
|                     }) | 
|             }, | 
|             getSolutions(id) { | 
|                 findList({ memberId: id }) | 
|                     .then(res => { | 
|                         this.form.solutionId = '' | 
|                         this.form.worktypeId = '' | 
|                         this.form.duId = '' | 
|                         this.options = res | 
|                     }) | 
|             }, | 
|             getTreeName(list, id){ | 
|                 let _this = this | 
|                 for (let i = 0; i < list.length; i++) { | 
|                     let a = list[i] | 
|                     if (a.id === id) { | 
|                         return a.name | 
|                     } else { | 
|                         if (a.childAreasList && a.childAreasList.length > 0) { | 
|                             let res = _this.getTreeName(a.childAreasList, id) | 
|                             if (res) { | 
|                                 return res | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|             }, | 
|             handleChange(value) { | 
|                 let info = '' | 
|                 value.forEach(item => { | 
|                     info += this.getTreeName(this.area, item) | 
|                 }) | 
|                 this.form.areaInfo = info | 
|             }, | 
|             getData(data) { | 
|                 this.form.list.push(data) | 
|                 this.form.reportFileList.push({ | 
|                     fileurl: data.imgaddr, | 
|                     name: data.originname, | 
|                     type: data.type | 
|                 }) | 
|             }, | 
|             deleFile(index) { | 
|                 this.form.reportFileList.splice(index, 1) | 
|                 this.form.list.splice(index, 1) | 
|             } | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
|     .fuwenben { | 
|         width: 100%; | 
|         height: 400px; | 
|         font-size: 16px; | 
|         color: black; | 
|         overflow-y: scroll; | 
|         word-break: break-all; | 
|         overflow-wrap: break-word; | 
|     } | 
| </style> |