MrShi
2024-01-31 e51fc2c088fb84f83d171dc4525b8f45104e4030
Mr.Shi
已添加4个文件
已修改8个文件
1164 ■■■■ 文件已修改
company/src/api/business/applyChange.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/member.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/settleClaims.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/system/common.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaSettleClaimsWindow.vue 388 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/common/upload.vue 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/onlineReporting.vue 395 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/selectSolutions.vue 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/supplementaryExplanation.vue 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/utils/request.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/settleClaims.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/enterprise/add_subtract.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/applyChange.js
@@ -21,3 +21,8 @@
export function getChangeCountCyclePriceVO (data) {
    return request.post('/business/applyChange/getChangeCountCyclePriceVO', data)
}
// åˆ—表查询
export function findList (data) {
    return request.post('/business/applyDetail/findList', data)
}
company/src/api/business/member.js
@@ -21,3 +21,8 @@
export function importExcel (data) {
    return request.post('/business/member/importExcel', data)
}
// åˆ—表查询
export function findList (data) {
    return request.post('/business/memberInsurance/findList', data)
}
company/src/api/business/settleClaims.js
@@ -56,6 +56,17 @@
export function findById (id) {
    return request.get(`business/settleClaims/${id}`)
}
export function delFile (id,fileId) {
    return request.get(`business/settleClaims/delFile/${id}/${fileId}`)
}
// æ–°å»º
export function create (data) {
    return request.post('/business/settleClaims/create', data)
}
// è¡¥å……说明
export function supplement (data) {
    return request.post('/business/settleClaims/supplement', data)
}
company/src/api/system/common.js
@@ -45,4 +45,9 @@
// ä¸Šä¼ æŽ¥å£
export function upload (data) {
  return request.post('/public/upload', data)
}
}
// åŒºåŸŸæ ‘列表
export function findTreeList (data) {
  return request.post('/business/areas/findTreeList', data)
}
company/src/components/business/OperaSettleClaimsWindow.vue
@@ -12,18 +12,24 @@
                    <span class="desc_label_left_title">
                        æŠ¥æ¡ˆè¯¦æƒ…
                    </span>
                    <span class="desc_label_left_time">
                    <span class="desc_label_left_time" :style="contrast(model.createDate, model.baoxianEndTime) ? 'rgba(249, 86, 1, 0.996)' : 'black'">
                        æŠ¥æ¡ˆæ—¥æœŸï¼š{{ model.createDate }}
                    </span>
                    <span class="desc_label_left_code">
                        æŠ¥æ¡ˆå·ï¼š{{ model.reportNum }}
                        æŠ¥æ¡ˆå·ï¼š{{ model.reportNum || '-' }}
                    </span>
                </div>
                <div class="desc_label_right">
                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('添加报案号',model,remarkLogList,1)">添加报案号</el-button>
                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('理赔处理',model,remarkLogList,2)">理赔处理</el-button>
                    <el-button type="primary" v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('结案提交',model,remarkLogList,4)">结案提交</el-button>
                    <el-button type="danger"  v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('撤销申请',model,remarkLogList,3)">撤销申请</el-button>
                    <template v-if="userInfo.type === 0">
                        <el-button type="primary" v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('添加报案号',model,remarkLogList,1)">添加报案号</el-button>
                        <el-button type="primary" v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('理赔处理',model,remarkLogList,2)">理赔处理</el-button>
                        <el-button type="primary" v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('结案提交',model,remarkLogList,4)">结案提交</el-button>
                        <el-button type="danger" v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('撤销申请',model,remarkLogList,3)">撤销申请</el-button>
                    </template>
                    <template v-else>
                        <el-button type="primary" @click="edit" v-if="model.status === 0">修改信息</el-button>
                        <el-button type="primary" @click="$refs.supplementaryExplanation.open('补充说明', model.id)" v-if="model.status === 0">补充说明</el-button>
                    </template>
                </div>
            </div>
            <div class="desc_list">
@@ -47,7 +53,7 @@
                    <div class="desc_list_item_label">
                        äº‹æ•…发生时间:
                    </div>
                    <div class="desc_list_item_val">
                    <div class="desc_list_item_val" :style="contrast24(model.createDate, model.baoxianStartTime) ? 'rgba(249, 86, 1, 0.996)' : 'black'">
                      {{ model.createDate }}
                    </div>
                </div>
@@ -56,7 +62,7 @@
                        æ‰€å±žä¿å•号:
                    </div>
                    <div class="desc_list_item_val" style="cursor: pointer; color: rgba(39, 157, 255, 0.968627450980392);">
                      {{ model.applyCode }}
                      {{ model.applyCode || '-' }}
                        <el-button v-if="model.baoxiandanFile && model.baoxiandanFile.fileurlFull" type="primary" style="margin-left: 10px;" @click="openBaoxiandan">查看保险单</el-button>
                    </div>
                </div>
@@ -152,9 +158,10 @@
                    <div class="desc_list_item_label">
                        æŠ¥æ¡ˆè§†é¢‘:
                    </div>
                    <div v-if="model.reportFileList && model.reportFileList.length>0" class="desc_list_item_videos">
                        <div class="desc_list_item_imgs_video"   v-for="(item, index) in reportFileList" :key="index">
                            <video src="${item.fileurlFull}"></video>
                    <div class="desc_list_item_videos" v-if="model.reportFileList && model.reportFileList.length > 0">
                        <div class="desc_list_item_imgs_video" v-for="(item, index) in model.reportFileList" :key="index">
                            <img :src="item.fileurlFull" v-if="item.type === 2" />
                            <video controls autoplay :src="item.fileurlFull" v-if="item.type === 1"></video>
                        </div>
                    </div>
                    <div v-else class="desc_list_item_videos">-</div>
@@ -171,19 +178,24 @@
                    </span>
                </div>
                <div class="desc_label_right">
                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('备注标签',model,remarkLogList,5)">备注标签</el-button>
                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4" @click="submit(0)">资料确认</el-button>
                    <template v-if="userInfo.type === 0">
                        <el-button type="primary"  v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('备注标签',model,remarkLogList,5)">备注标签</el-button>
                        <el-button type="primary"  v-if="model.status !=1 && model.status !=4" @click="submit(0)">资料确认</el-button>
                    </template>
                    <el-button type="primary"  @click="submit(1)">资料下载</el-button>
                </div>
            </div>
            <div class="desc_data">
                <div class="desc_data_label">1. å‘˜å·¥å…³ç³»è¯æ˜Žèµ„æ–™</div>
                <div class="desc_data_list">
                    <template v-if="model.relationFileList && model.relationFileList">
                    <template v-if="model.relationFileList && model.relationFileList.length > 0">
                      <div class="desc_data_list_item" v-for="(item, index) in model.relationFileList" :key="index">
                        <div class="desc_data_list_item_dele" @click="delFile(item.id)">删除</div>
                        <div class="desc_data_list_item_img" v-if="item.type ==0 && item.fileurlFull!=null">
                        <div class="desc_data_list_item_img" v-if="item.type == 0 && item.fileurlFull != null">
                          <img :src="item.fileurlFull" />
                        </div>
                        <div class="desc_data_list_item_img" v-if="item.type == 1 && item.fileurlFull != null">
                            <video controls :src="item.fileurlFull" />
                        </div>
                        <div class="desc_data_list_item_info">
                          <span>{{ item.name }}</span>
@@ -192,33 +204,37 @@
                        </div>
                      </div>
                    </template>
                    <div class="desc_data_list_item">
                      <UploadFileCommon :uploadData="{ folder: 'settle' }" :file="file1" @uploadSuccess="file1Uploaded()" />
                      <div class="desc_data_list_item_upload">
                            <el-button type="primary">上传</el-button>
                            <el-button>取消</el-button>
                        </div>
                    </div>
                    <div class="desc_data_list_item1"></div>
                    <div class="desc_data_list_item1"></div>
                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 2)" />
<!--                    <div class="desc_data_list_item">-->
<!--                      <UploadFileCommon :uploadData="{ folder: 'settle' }" />-->
<!--                      <div class="desc_data_list_item_upload">-->
<!--                            <el-button type="primary">上传</el-button>-->
<!--                            <el-button>取消</el-button>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                    <div class="desc_data_list_item1"></div>-->
<!--                    <div class="desc_data_list_item1"></div>-->
                </div>
            </div>
            <div class="desc_data">
                <div class="desc_data_label">2. åŒ»ç–—资料</div>
                <div class="desc_data_cate">
                    <el-tabs v-model="activeName"  @tab-click="handleClick">
                    <el-tabs v-model="activeName" @tab-click="handleClick">
                        <el-tab-pane label="门诊" name="first"></el-tab-pane>
                        <el-tab-pane label="住院资料" name="second"></el-tab-pane>
                        <el-tab-pane label="伤残" name="third"></el-tab-pane>
                    </el-tabs>
                </div>
                <div class="desc_data_list" v-if="activeName=='first'">
                <div class="desc_data_list" v-if="activeName === 'first'">
                  <template v-if="model.outpatientFileList && model.outpatientFileList">
                    <div class="desc_data_list_item" v-for="(item, index) in model.outpatientFileList" :key="index">
                      <div class="desc_data_list_item_dele" @click="delFile(item.id)">删除</div>
                      <div class="desc_data_list_item_img" v-if="item.type ==0 && item.fileurlFull!=null">
                        <img :src="item.fileurlFull" />
                      </div>
                        <div class="desc_data_list_item_img" v-if="item.type == 0 && item.fileurlFull != null">
                            <img :src="item.fileurlFull" />
                        </div>
                        <div class="desc_data_list_item_img" v-if="item.type == 1 && item.fileurlFull != null">
                            <video controls :src="item.fileurlFull" />
                        </div>
                      <div class="desc_data_list_item_info">
                        <span>{{ item.name }}</span>
                        <span>操作员-{{ item.creatorName }}</span>
@@ -226,25 +242,29 @@
                      </div>
                    </div>
                  </template>
                    <div class="desc_data_list_item">
                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">
                            <i class="el-icon-plus"></i>
                        </div>
                        <div class="desc_data_list_item_upload">
                            <el-button type="primary">上传</el-button>
                            <el-button>取消</el-button>
                        </div>
                    </div>
                    <div class="desc_data_list_item1"></div>
                    <div class="desc_data_list_item1"></div>
                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 3)" />
<!--                    <div class="desc_data_list_item">-->
<!--                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">-->
<!--                            <i class="el-icon-plus"></i>-->
<!--                        </div>-->
<!--                        <div class="desc_data_list_item_upload">-->
<!--                            <el-button type="primary">上传</el-button>-->
<!--                            <el-button>取消</el-button>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                    <div class="desc_data_list_item1"></div>-->
<!--                    <div class="desc_data_list_item1"></div>-->
                </div>
                <div class="desc_data_list" v-if="activeName=='second'">
                  <template v-if="model.outpatientFileList && model.outpatientFileList">
                    <div class="desc_data_list_item" v-for="(item, index) in model.outpatientFileList" :key="index">
                <div class="desc_data_list" v-else-if="activeName === 'second'">
                  <template v-if="model.hospitalFileList && model.hospitalFileList">
                    <div class="desc_data_list_item" v-for="(item, index) in model.hospitalFileList" :key="index">
                      <div class="desc_data_list_item_dele" @click="delFile(item.id)">删除</div>
                      <div class="desc_data_list_item_img" v-if="item.type ==0 && item.fileurlFull!=null">
                        <img :src="item.fileurlFull" />
                      </div>
                        <div class="desc_data_list_item_img" v-if="item.type == 0 && item.fileurlFull != null">
                            <img :src="item.fileurlFull" />
                        </div>
                        <div class="desc_data_list_item_img" v-if="item.type == 1 && item.fileurlFull != null">
                            <video controls :src="item.fileurlFull" />
                        </div>
                      <div class="desc_data_list_item_info">
                        <span>{{ item.name }}</span>
                        <span>操作员-{{ item.creatorName }}</span>
@@ -252,25 +272,29 @@
                      </div>
                    </div>
                  </template>
                    <div class="desc_data_list_item">
                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">
                            <i class="el-icon-plus"></i>
                        </div>
                        <div class="desc_data_list_item_upload">
                            <el-button type="primary">上传</el-button>
                            <el-button>取消</el-button>
                        </div>
                    </div>
                    <div class="desc_data_list_item1"></div>
                    <div class="desc_data_list_item1"></div>
                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 4)" />
<!--                    <div class="desc_data_list_item">-->
<!--                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">-->
<!--                            <i class="el-icon-plus"></i>-->
<!--                        </div>-->
<!--                        <div class="desc_data_list_item_upload">-->
<!--                            <el-button type="primary">上传</el-button>-->
<!--                            <el-button>取消</el-button>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                    <div class="desc_data_list_item1"></div>-->
<!--                    <div class="desc_data_list_item1"></div>-->
                </div>
                <div class="desc_data_list" v-if="activeName=='third'">
                  <template v-if="model.outpatientFileList && model.outpatientFileList">
                    <div class="desc_data_list_item" v-for="(item, index) in model.outpatientFileList" :key="index">
                <div class="desc_data_list" v-else-if="activeName === 'third'">
                  <template v-if="model.disabilityFileList && model.disabilityFileList">
                    <div class="desc_data_list_item" v-for="(item, index) in model.disabilityFileList" :key="index">
                      <div class="desc_data_list_item_dele" @click="delFile(item.id)">删除</div>
                      <div class="desc_data_list_item_img" v-if="item.type ==0 && item.fileurlFull!=null">
                        <img :src="item.fileurlFull" />
                      </div>
                        <div class="desc_data_list_item_img" v-if="item.type == 0 && item.fileurlFull != null">
                            <img :src="item.fileurlFull" />
                        </div>
                        <div class="desc_data_list_item_img" v-if="item.type == 1 && item.fileurlFull != null">
                            <video controls :src="item.fileurlFull" />
                        </div>
                      <div class="desc_data_list_item_info">
                        <span>{{ item.name }}</span>
                        <span>操作员-{{ item.creatorName }}</span>
@@ -278,18 +302,19 @@
                      </div>
                    </div>
                  </template>
                    <div class="desc_data_list_item">
                      <UploadFileCommon :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
<!--                      <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">
                            <i class="el-icon-plus"></i>
                        </div>-->
                        <div class="desc_data_list_item_upload">
                            <el-button type="primary">上传</el-button>
                            <el-button>取消</el-button>
                        </div>
                    </div>
                    <div class="desc_data_list_item1"></div>
                    <div class="desc_data_list_item1"></div>
                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 5)" />
<!--                    <div class="desc_data_list_item">-->
<!--                      <UploadFileCommon :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />-->
<!--&lt;!&ndash;                      <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">-->
<!--                            <i class="el-icon-plus"></i>-->
<!--                        </div>&ndash;&gt;-->
<!--                        <div class="desc_data_list_item_upload">-->
<!--                            <el-button type="primary">上传</el-button>-->
<!--                            <el-button>取消</el-button>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                    <div class="desc_data_list_item1"></div>-->
<!--                    <div class="desc_data_list_item1"></div>-->
                </div>
            </div>
            <div class="desc_data">
@@ -298,9 +323,12 @@
                  <template v-if="model.compensationFileList && model.compensationFileList">
                    <div class="desc_data_list_item" v-for="(item, index) in model.compensationFileList" :key="index">
                      <div class="desc_data_list_item_dele" @click="delFile(item.id)">删除</div>
                      <div class="desc_data_list_item_img" v-if="item.type ==0 && item.fileurlFull!=null">
                        <img :src="item.fileurlFull" />
                      </div>
                        <div class="desc_data_list_item_img" v-if="item.type == 0 && item.fileurlFull != null">
                            <img :src="item.fileurlFull" />
                        </div>
                        <div class="desc_data_list_item_img" v-if="item.type == 1 && item.fileurlFull != null">
                            <video controls :src="item.fileurlFull" />
                        </div>
                      <div class="desc_data_list_item_info">
                        <span>{{ item.name }}</span>
                        <span>操作员-{{ item.creatorName }}</span>
@@ -308,17 +336,18 @@
                      </div>
                    </div>
                  </template>
                    <div class="desc_data_list_item">
                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">
                            <i class="el-icon-plus"></i>
                        </div>
                        <div class="desc_data_list_item_upload">
                            <el-button type="primary">上传</el-button>
                            <el-button>取消</el-button>
                        </div>
                    </div>
                    <div class="desc_data_list_item1"></div>
                    <div class="desc_data_list_item1"></div>
                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 6)" />
<!--                    <div class="desc_data_list_item">-->
<!--                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">-->
<!--                            <i class="el-icon-plus"></i>-->
<!--                        </div>-->
<!--                        <div class="desc_data_list_item_upload">-->
<!--                            <el-button type="primary">上传</el-button>-->
<!--                            <el-button>取消</el-button>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                    <div class="desc_data_list_item1"></div>-->
<!--                    <div class="desc_data_list_item1"></div>-->
                </div>
            </div>
            <div class="desc_label">
@@ -371,6 +400,10 @@
        <el-button @click="visible=false">返回</el-button>
      </template>
      <OperaSettleClaimsCheckWindow ref="operaInsuranceApplyCheckWindow"  @success="callback" />
        <!--    åœ¨çº¿æŠ¥æ¡ˆ    -->
        <onlineReporting ref="onlineReporting" @success="callback" />
        <!--    è¡¥å……说明    -->
        <supplementaryExplanation ref="supplementaryExplanation" @success="callback" />
    </GlobalWindow>
</template>
@@ -380,32 +413,27 @@
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import OperaSettleClaimsCheckWindow from '@/components/business/OperaSettleClaimsCheckWindow'
    import onlineReporting from '@/components/enterprise/onlineReporting'
    import supplementaryExplanation from '@/components/enterprise/supplementaryExplanation'
    import upload from '@/components/common/upload'
    import {confirmFile, findById,exportFiles,claimsUploadFile,delFile} from '@/api/business/settleClaims'
    import { mapState } from 'vuex'
    export default {
        name: 'OperaSettleClaimsWindow',
        extends: BaseOpera,
        components: { GlobalWindow, OperaSettleClaimsCheckWindow,UploadFileCommon },
        components: { GlobalWindow, OperaSettleClaimsCheckWindow,UploadFileCommon, onlineReporting, supplementaryExplanation, upload },
        data () {
            return {
              doneFileDate:null,
              remarkLogList:[],
                // è¡¨å•数据
                form: {
                    id: null,
                },
              model:{},
                // éªŒè¯è§„则
                rules: {
                },
                activeName: 'first',
                reverse: true,
                 file1:null,
                 file2:null,
                 file3:null,
                 file4:null,
                 file5:null,
                 file6:null
              doneFileDate: null,
              remarkLogList: [],
              list: [],
              model: {},
              activeName: 'first',
              reverse: true
            }
        },
        computed: {
            ...mapState(['userInfo'])
        },
        created () {
            this.config({
@@ -415,84 +443,95 @@
        },
        methods: {
          open(title,target){
            this.model ={}
            this.model = {}
            this.model = target
            this.title=title
            this.visible=true
            this.doneFileDate=null
            this.remarkLogList=[]
            this. file1=null
            this.file2 = null
            this.file3 = null
            this.file4 = null
            this.file5 = null
            this.file6 = null
            this.title = title
            this.visible = true
            this.doneFileDate = null
            this.remarkLogList = []
            this.getDetail()
          },
            // åˆ¤æ–­ä¸¤ä¸ªæ—¶é—´ä¹‹é—´ç›¸å·®æ˜¯å¦
            contrast24(time1, time2) {
              if (time1 && time2) {
                  let a = new Date(time1)
                  let b = new Date(time2)
                  let timeDiff = Math.abs(a.getTime() - b.getTime());
                  return Math.ceil(timeDiff / (3600 * 1000)) <= 24;
              } else {
                  return false
              }
            },
            contrast(time1, time2) {
              if (time1 && time2) {
                  let a = new Date(time1).getTime()
                  let b = new Date(time2).getTime()
                  return a > b
              } else {
                  return false
              }
            },
            edit() {
              let obj = JSON.parse(JSON.stringify(this.model))
                obj.areaId = obj.areaId.split(',').map(item => Number(item))
              this.$refs.onlineReporting.open('修改信息', obj)
            },
          openBaoxiandan(){
            window.open(this.model.baoxiandanFile.fileurlFull);
          },
          delFile(id){
            this.$dialog.messageConfirm('确认删除该附件吗,一旦删除无法撤回?')
                .then(() => {
                  // this.isWorking = true
                  delFile(this.model.id,id).then(response => {
                        that.getDetail()
                      }).catch(err => {
                    this.$tip.apiFailed(err)
                  })
                    delFile(this.model.id, id).then(response => {
                        this.getDetail()
                    }).catch(err => {
                        this.$tip.apiFailed(err)
                    })
                })
          },
          getDetail(){
            findById( this.model.id)
                .then(res => {
              this.model = res
              this.remarkLogList=[]
              var logList = this.model.settleClaimsLogList
              if(logList){
                logList.forEach(item => {
                   if( item.objType==2){
                     this.doneFileDate = item.createDate
                   }
                  if(item.objType==7){
                    this.remarkLogList.push(item)
                  this.model = res
                  this.remarkLogList = []
                  var logList = this.model.settleClaimsLogList
                  if (logList) {
                    logList.forEach(item => {
                       if (item.objType == 2) {
                         this.doneFileDate = item.createDate
                       }
                      if (item.objType==7) {
                        this.remarkLogList.push(item)
                      }
                    })
                  }
                }).catch(err => {
                })
              }
            }).catch(err => {
            })
          },
            handleClick(tab, event) {
                console.log(tab, event);
            handleClick(tab) {
                this.activeName = tab.name
            },
          callback(){
            this.getDetail()
            this.$emit('success')
          },
          claimsUploadFile(type) {
            var param = {}
            if(type == 2){
              param =  this.file2
            }else if(type == 3){
              param =  this.file3
            }else if(type == 4){
              param =  this.file4
            }else if(type == 5){
              param =  this.file5
            }else if(type == 6){
              param =  this.file6
            }
             claimsUploadFile(param)
                    .then(response => {
                      that.getDetail()
                    }).catch(err => {
                  this.$tip.apiFailed(err)
          claimsUploadFile(e, objType) {
                claimsUploadFile({
                    id: this.model.id,
                    objType,
                    fileUrl: e.imgaddr,
                    fileName: e.originname,
                    fileType: e.type
                }).then(response => {
                    this.getDetail()
                }).catch(err => {
                    this.$tip.apiFailed(err)
                })
              },
            },
            submit(type) {
              var that =this
              if(type ==0){
              var that = this
              if (type == 0) {
                this.$dialog.messageConfirm('理赔材料收集完成,请及时提交保险公司!')
                    .then(() => {
                      // this.isWorking = true
@@ -503,7 +542,7 @@
                        this.$tip.apiFailed(err)
                      })
                    })
              }else if(type==1){
              }else if(type == 1){
                //资料下载
                this.$dialog.exportConfirm('确认进行资料下载吗?')
                    .then(() => {
@@ -521,10 +560,8 @@
                    .catch(() => {
                    })
              }
            }
        }
    }
</script>
<style>
@@ -617,7 +654,8 @@
                }
                .desc_label_left_time {
                    font-size: 14px;
                    color: rgba(249, 86, 1, 0.996);
                    color: black;
                    /*color: rgba(249, 86, 1, 0.996);*/
                    margin-left: 10px;
                }
                .desc_label_left_code {
@@ -658,13 +696,20 @@
                    align-items: center;
                    flex-wrap: wrap;
                    .desc_list_item_imgs_video {
                        width: 150px;
                        height: 150px;
                        width: 120px;
                        height: 120px;
                        background: black;
                        margin-right: 10px;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        overflow: hidden;
                        video {
                            width: 100%;
                            height: 100%;
                        }
                        img {
                            width: 100%;
                        }
                    }
                }
@@ -696,7 +741,6 @@
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                justify-content: space-between;
                .desc_data_list_item1 {
                    width: 24.5%;
                }
@@ -710,6 +754,10 @@
                    justify-content: space-between;
                    position: relative;
                    margin-bottom: 10px;
                    margin-right: 20px;
                    &:last-child {
                        margin-right: 0 !important;
                    }
                    .desc_data_list_item_dele {
                        position: absolute;
                        top: 10px;
@@ -733,6 +781,7 @@
                        align-items: center;
                        justify-content: center;
                        overflow: hidden;
                        margin-right: 10px;
                        .el-icon-plus {
                            font-size: 26px;
                            color: #ffffff;
@@ -741,6 +790,9 @@
                            width: 100%;
                            height: 100%;
                        }
                        video {
                            width: 100%;
                        }
                    }
                    .desc_data_list_item_info {
                        flex: 1;
company/src/components/common/upload.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,140 @@
<template>
    <div class="file">
        <div class="file_list">
            <div class="file_list_item" :style="{width: width, height: height}" v-for="(item, index) in list" :key="index">
                <div class="dele" @click="deleItem(index)">
                    <i class="el-icon-close"></i>
                </div>
                <img :src="item.url" v-if="fileType(item.url) === 'img'" />
                <video controls autoplay :src="item.url" v-else></video>
            </div>
            <div class="file_list_item" :style="{width: width, height: height, cursor: 'pointer'}" @click="$refs.file.click()">
                <i class="el-icon-plus"></i>
            </div>
        </div>
        <input type="file" ref="file" :accept="accept" @change="getFile" />
    </div>
</template>
<script>
    import axios from 'axios';
    export default {
        props: {
            width: {
                type: String,
                default: '90px'
            },
            height: {
                type: String,
                default: '90px'
            },
            list: {
                type: Array,
                default: []
            },
            accept: {
                type: String,
                default: ''
            },
            folder: {
                type: String,
                default: ''
            }
        },
        data() {
            return {
                uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload'
            }
        },
        methods: {
            fileType(url) {
                if (url.indexOf('.mp4') !== -1) {
                    return 'video'
                } else {
                    return 'img'
                }
            },
            getFile(e) {
                if (e.target && e.target.files.length > 0) {
                    const formdate = new FormData()
                    formdate.append('file', e.target.files[0])
                    formdate.append('folder', this.folder)
                    axios.post(this.uploadImgUrl, formdate)
                        .then(res => {
                            this.$emit('success', res.data.data)
                        })
                        .catch(e => {
                            this.$message.error(e)
                        })
                        .finally(() => {
                            this.$refs.file.value = null
                        })
                }
            },
            deleItem(index) {
                this.$emit('dele', index)
            }
        }
    }
</script>
<style lang="scss" scoped>
    .file {
        /*width: 100%;*/
        /*height: 90px;*/
        margin: 10px 0;
        input {
            opacity: 0;
        }
        .file_list {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            .file_list_item {
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                overflow: hidden;
                border-radius: 5px;
                border: 1px solid #d5d5d5;
                margin-left: 15px;
                position: relative;
                &:first-child {
                    margin: 0 !important;
                }
                .dele {
                    position: absolute;
                    right: 0;
                    top: 0;
                    width: 20px;
                    height: 20px;
                    background: red;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    cursor: pointer;
                    .el-icon-close {
                        color: #ffffff;
                        font-size: 19px;
                    }
                }
                .el-icon-plus {
                    font-size: 30px;
                    color: black;
                }
                img {
                    width: 100%;
                }
                video {
                    width: 100%;
                    height: 100%;
                }
            }
        }
    }
</style>
company/src/components/enterprise/onlineReporting.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,395 @@
<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">
                <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">
                    å°Šæ•¬çš„客户:
                é¦–先感谢您对于我们的信任与支持,我们很荣幸成为贵司的保险咨询服务商!
                é‰´äºŽè¿‘期出现个别客户存在:当天投保当天出险(即先出工伤或意外、再进行投保操作)的个别诈骗保险金的案例,错误使用“即时生效”条款。针对此种情况本公司郑重告知各位客户:
                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))
                    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) {
                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>
company/src/components/enterprise/selectSolutions.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
<template>
    <GlobalWindow
        :title="title"
        width="100%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <el-table
            :data="list"
            border
            ref="table"
            @selection-change="handleSelectionChange"
            style="width: 100%">
            <el-table-column
                type="selection"
                width="55">
            </el-table-column>
            <el-table-column label="序号" width="80px">
                <template slot-scope="scope">
                    <span>{{scope.$index + 1}}</span>
                </template>
            </el-table-column>
            <el-table-column
                prop="solutionName"
                label="保险方案">
            </el-table-column>
            <el-table-column
                prop="bdCode"
                label="保单号">
            </el-table-column>
            <el-table-column
                prop="applyChangeId"
                label="批单号">
            </el-table-column>
            <el-table-column
                prop="duName"
                label="派遣单位">
            </el-table-column>
            <el-table-column
                prop="worktypeName"
                label="所属工种">
            </el-table-column>
            <el-table-column
                prop="startTime"
                label="保险生效起期">
            </el-table-column>
            <el-table-column
                prop="endTime"
                label="保险生效止期">
            </el-table-column>
        </el-table>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import { findList } from '@/api/business/member'
    export default {
        name: 'selectSolutions',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                id: null,
                list: [],
                seleData: []
            }
        },
        created () {
            this.config({
                api: '/business/dispatchUnit',
                'field.id': 'id'
            })
        },
        methods: {
            open (title, id) {
                this.list = []
                this.seleData = []
                this.id = id
                this.title = title
                this.visible = true
                this.getList()
            },
            confirm() {
                this.$emit('success', this.seleData[0])
                this.visible = false
            },
            handleSelectionChange (rows) {
                if (rows.length > 1) {
                    this.$refs.table.clearSelection()
                    this.$refs.table.toggleRowSelection(rows.pop())
                }
                this.seleData = rows
                console.log(this.seleData)
            },
            getList() {
                findList({
                    memberId: this.id
                }).then(res => {
                    this.list = res
                })
            }
        }
    }
</script>
<style lang="scss" scoped>
    .el-checkbox::v-deep {
        display: none;
    }
</style>
company/src/components/enterprise/supplementaryExplanation.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
<template>
    <GlobalWindow
        :title="title"
        width="40%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
            <el-form-item label="补充说明" prop="supplement">
                <el-input type="textarea" :rows="5" placeholder="请输入" v-model="form.supplement"></el-input>
            </el-form-item>
        </el-form>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import { supplement } from '@/api/business/settleClaims'
    export default {
        name: 'supplementaryExplanation',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                form: {
                    id: null,
                    supplement: ''
                },
                rules: {
                    supplement: [
                        { required: true, message: '请输入补充说明' }
                    ]
                }
            }
        },
        methods: {
            open (title, id) {
                this.title = title
                this.form.id = id
                this.form.supplement = ''
                this.visible = true
            },
            confirm() {
                this.$refs.form.validate((valid) => {
                    if (!valid) {
                        return
                    }
                    // è°ƒç”¨æ–°å»ºæŽ¥å£
                    this.isWorking = true
                    supplement({
                        objType: 0,
                        supplement: this.form.supplement,
                        id: this.form.id,
                    }).then(() => {
                        this.visible = false
                        this.$tip.apiSuccess('修改成功')
                        this.$emit('success')
                    })
                    .catch(e => {
                        this.$tip.apiFailed(e)
                    })
                    .finally(() => {
                        this.isWorking = false
                    })
                })
            }
        }
    }
</script>
<style lang="scss" scoped>
</style>
company/src/utils/request.js
@@ -3,7 +3,7 @@
import pkg from '../../package'
import { trim } from './util'
import cache from '../plugins/cache'
import { Message } from 'element-ui'
import { Message, Loading } from 'element-ui'
axios.defaults.headers.common['Content-Type'] = 'application/json;charset=UTF-8'
const axiosInstance = axios.create({
@@ -41,7 +41,6 @@
// æ–°å»ºå“åº”拦截器
axiosInstance.interceptors.response.use((response) => {
  // console.log(response.status)
  // debugger
  // è¯·æ±‚失败
company/src/views/business/settleClaims.vue
@@ -6,7 +6,7 @@
                <el-input v-model="searchForm.memberName" placeholder="请输入" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="报案单位" prop="companyId" v-if="userInfo.type === 0">
                <el-select v-model="searchForm.companyId" placeholder="请选择" @keypress.enter.native="search">
                <el-select v-model="searchForm.companyId" placeholder="请选择" @change="search">
                    <el-option
                        v-for="item in companyList"
                        :key="item.id"
@@ -16,7 +16,7 @@
                </el-select>
            </el-form-item>
            <el-form-item label="保险方案" prop="baseSolutionId">
                <el-select v-model="searchForm.baseSolutionId" placeholder="请选择" @keypress.enter.native="search">
                <el-select v-model="searchForm.baseSolutionId" placeholder="请选择" @change="search">
                    <el-option
                        v-for="item in solutionList"
                        :key="item.id"
@@ -26,7 +26,7 @@
                </el-select>
            </el-form-item>
            <el-form-item label="案件状态" prop="status">
                <el-select v-model="searchForm.status" placeholder="请选择" @keypress.enter.native="search">
                <el-select v-model="searchForm.status" placeholder="请选择" @change="search">
                    <el-option label="处理中" value="0"></el-option>
                    <el-option label="已撤案" value="1"></el-option>
                    <el-option label="已结案" value="2"></el-option>
@@ -42,6 +42,9 @@
        </el-form>
        <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
        <template v-slot:table-wrap>
            <ul class="toolbar" v-if="userInfo.type === 1">
                <li><el-button type="primary" @click="$refs.onlineReporting.open('提交报案')">在线报案</el-button></li>
            </ul>
            <el-table
                v-loading="isWorking.search"
                :data="tableData.list"
@@ -74,7 +77,7 @@
                    fixed="right"
                >
                    <template slot-scope="{row}">
                        <el-button type="text" @click="$refs.operaSettleClaimsWindow.open('报案理赔申请表', row)" icon="el-icon-view" v-permissions="['business:settleclaims:update']">查看详情</el-button>
                        <el-button type="text" @click="$refs.operaSettleClaimsWindow.open('报案详情', row)" v-permissions="['business:settleclaims:update']">查看详情</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -85,8 +88,10 @@
            >
            </pagination>
        </template>
        <!-- æ–°å»º/修改 -->
        <!-- è¯¦æƒ… -->
        <OperaSettleClaimsWindow ref="operaSettleClaimsWindow" @success="handlePageChange"/>
        <!--    åœ¨çº¿æŠ¥æ¡ˆ    -->
        <onlineReporting ref="onlineReporting" @success="handlePageChange" />
    </TableLayout>
</template>
@@ -95,13 +100,14 @@
    import TableLayout from '@/layouts/TableLayout'
    import Pagination from '@/components/common/Pagination'
    import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
    import onlineReporting from '@/components/enterprise/onlineReporting'
    import {all as solutionAll} from '@/api/business/solutions'
    import {pageAll as companyAll} from '@/api/business/company'
    import { mapState } from 'vuex'
    export default {
        name: 'SettleClaims',
        extends: BaseTable,
        components: { TableLayout, Pagination, OperaSettleClaimsWindow },
        components: { TableLayout, Pagination, OperaSettleClaimsWindow, onlineReporting },
        data () {
            return {
                // æœç´¢
company/src/views/enterprise/add_subtract.vue
@@ -42,9 +42,6 @@
        </el-form>
        <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
        <template v-slot:table-wrap>
            <ul class="toolbar" v-permissions="['business:applychange:create']">
                <li><el-button type="primary" @click="$refs.operaApplyChangeWindow.open('加减保详情')" v-permissions="['business:applychange:create']">新建</el-button></li>
            </ul>
            <el-table
                v-loading="isWorking.search"
                :data="tableData.list"