MrShi
2024-01-27 706f7a1328df01219b663826bd5c6e8ebb0ef185
company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -10,18 +10,18 @@
            <div class="desc_item">
                <div class="desc_item_label">
                    <div class="desc_item_label_left">
                        <span>投保企业:安徽平安人力资源有限公司</span>
                        <span>保单状态:待出单</span>
                        <span>提交时间:2023-09-11 00:00:00</span>
                        <span>投保企业:{{ model.companyName }}</span>
                        <span>保单状态:{{ model.statusInfo }}</span>
                        <span>提交时间:{{ model.createDate }}</span>
                    </div>
                    <div class="desc_item_label_right">
                        <el-button type="primary" @click="$refs.InsuranceDetails.open('投保详情单')">导出详单</el-button>
                        <el-button type="primary" @click="visible2 = true">上传投保单</el-button>
                        <el-button type="primary" @click="visible3 = true">上传保险单</el-button>
                        <el-button type="primary" @click="visible5 = true">驳回退回申请</el-button>
                        <el-button type="primary" @click="$refs.InsuranceDetails.open('投保详情单')">投保审核</el-button>
                        <el-button type="danger" @click="visible1 = true">退回投保</el-button>
                        <el-button type="danger" @click="visible4 = true">修改保险单</el-button>
                        <el-button type="primary" @click="$refs.InsuranceDetails.open('投保详情单',model,0)">导出详单</el-button>
                        <el-button v-if="model.status == 0 " type="primary"  @click="$refs.OperaInsuranceApplyCheckWindow.open('上传投保单',model,2)">上传投保单</el-button>
                        <el-button v-if="model.status == 3 "  type="primary"  @click="$refs.OperaInsuranceApplyCheckWindow.open('上传保险单',model,3)">上传保险单</el-button>
                        <el-button  v-if="model.status == 6 || model.status == 7|| model.status == 8" type="primary"  @click="$refs.OperaInsuranceApplyCheckWindow.open('处理退回申请',model,5)">处理退回申请</el-button>
                        <el-button v-if="model.status == 0 "  type="primary" @click="$refs.InsuranceDetails.open('投保审核',model,1)">投保审核</el-button>
                        <el-button v-if="model.status != 5 " type="danger"  @click="$refs.OperaInsuranceApplyCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                        <el-button v-if="model.status == 5 "  type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('修改保险单',model,4)">修改保险单</el-button>
                    </div>
                </div>
                <div class="desc_item_from">
@@ -30,37 +30,37 @@
                        border
                        style="width: 100%">
                        <el-table-column
                            prop="date"
                            prop="code"
                            label="保单号">
                        </el-table-column>
                        <el-table-column
                            prop="name"
                            prop="solutionsName"
                            label="保险方案"
                            width="180">
                        </el-table-column>
                        <el-table-column
                            prop="address"
                            prop="startTime"
                            label="保险生效起期">
                        </el-table-column>
                        <el-table-column
                            prop="address"
                            prop="endTime"
                            label="保险生效止期">
                        </el-table-column>
                        <el-table-column
                            prop="address"
                            prop="insureNum"
                            label="投保人数">
                        </el-table-column>
                        <el-table-column
                            prop="address"
                            prop="serviceDays"
                            label="在保时长(天)">
                        </el-table-column>
                        <el-table-column
                            prop="address"
                            label="当前费用">
                            prop="currentFee"
                            label="当前费用(元)">
                        </el-table-column>
                        <el-table-column
                            prop="address"
                            label="总费用">
                            prop="fee"
                            label="总费用(元)">
                        </el-table-column>
                    </el-table>
                </div>
@@ -181,320 +181,97 @@
                        <el-timeline-item
                            v-for="(activity, index) in activities"
                            :key="index"
                            :timestamp="activity.timestamp">
                            {{activity.content}}
                            :timestamp="activity.createDate">
                            {{activity.title}}
                        </el-timeline-item>
                    </el-timeline>
                </div>
            </div>
        </div>
        <InsuranceDetails ref="InsuranceDetails" @success="successEvent" />
        <OperaInsuranceApplyCheckWindow ref="OperaInsuranceApplyCheckWindow" @success="successEvent" />
        <!--    退回投保    -->
        <el-dialog
            title="退回投保"
            :visible.sync="visible1"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_item">
                    <div class="form_item_label"><span>*</span>填写退回说明:</div>
                    <div class="form_item_val">
                        <textarea placeholder="请输入"></textarea>
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible1 = false">取 消</el-button>
                <el-button type="primary" @click="visible1 = false">确 定</el-button>
            </span>
        </el-dialog>
        <!--    上传投保单    -->
        <el-dialog
            title="上传投保单"
            :visible.sync="visible2"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_item">
                    <div class="form_item_label">上传投保单:</div>
                    <div class="form_item_val">
                        <el-upload
                            class="upload-demo"
                            action="https://jsonplaceholder.typicode.com/posts/"
                            :on-preview="handlePreview"
                            :on-remove="handleRemove"
                            :before-remove="beforeRemove"
                            multiple
                            :limit="1"
                            :on-exceed="handleExceed"
                            :file-list="fileList">
                            <el-button size="small" type="primary">点击上传</el-button>
                            <div slot="tip" class="el-upload__tip">只能上传pdf文件,且不超过5mb</div>
                        </el-upload>
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible2 = false">取 消</el-button>
                <el-button type="primary" @click="visible2 = false">确 定</el-button>
            </span>
        </el-dialog>
        <!--    上传保险单    -->
        <el-dialog
            title="上传保险单"
            :visible.sync="visible3"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_item">
                    <div class="form_item_label">客户期望保险生效起期:</div>
                    <div class="form_item_val">2023-10-01 00:00:00</div>
                </div>
                <div class="form_item">
                    <div class="form_item_label">保险生效起期是否一致:</div>
                    <div class="form_item_val">
                        <el-radio-group v-model="radio">
                            <el-radio :label="0">与保单一致</el-radio>
                            <el-radio :label="1">与保单不一致</el-radio>
                        </el-radio-group>
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label"><span>*</span>保险生效起期:</div>
                    <div class="form_item_val">
                        <el-date-picker
                            v-model="value1"
                            type="date"
                            placeholder="选择日期">
                        </el-date-picker>
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label">保险生效起期:</div>
                    <div class="form_item_val">2023-10-01 00:00:00</div>
                </div>
                <div class="form_item">
                    <div class="form_item_label"><span>*</span>保单号:</div>
                    <div class="form_item_val">
                        <el-input placeholder="请输入"></el-input>
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label">上传保险单:</div>
                    <div class="form_item_val">
                        <el-upload
                            class="upload-demo"
                            action="https://jsonplaceholder.typicode.com/posts/"
                            :on-preview="handlePreview"
                            :on-remove="handleRemove"
                            :before-remove="beforeRemove"
                            multiple
                            :limit="1"
                            :on-exceed="handleExceed"
                            :file-list="fileList">
                            <el-button size="small" type="primary">点击上传</el-button>
                            <div slot="tip" class="el-upload__tip">只能上传pdf文件,且不超过5mb</div>
                        </el-upload>
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible3 = false">取 消</el-button>
                <el-button type="primary" @click="visible3 = false">确 定</el-button>
            </span>
        </el-dialog>
        <!--    修改保险单    -->
        <el-dialog
            title="修改保险单"
            :visible.sync="visible4"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_item">
                    <div class="form_item_label"><span>*</span>保险生效起期:</div>
                    <div class="form_item_val">
                        <el-date-picker
                            v-model="value1"
                            type="date"
                            placeholder="选择日期">
                        </el-date-picker>
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label"><span>*</span>保单号:</div>
                    <div class="form_item_val">
                        <el-input placeholder="请输入"></el-input>
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label"><span>*</span>上传保险单:</div>
                    <div class="form_item_val">
                        <el-upload
                            class="upload-demo"
                            action="https://jsonplaceholder.typicode.com/posts/"
                            :on-preview="handlePreview"
                            :on-remove="handleRemove"
                            :before-remove="beforeRemove"
                            multiple
                            :limit="1"
                            :on-exceed="handleExceed"
                            :file-list="fileList">
                            <el-button size="small" type="primary">点击上传</el-button>
                            <div slot="tip" class="el-upload__tip">只能上传pdf文件,且不超过5mb</div>
                        </el-upload>
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label"><span>*</span>修改原因:</div>
                    <div class="form_item_val">
                        <el-input placeholder="请输入"></el-input>
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible4 = false">取 消</el-button>
                <el-button type="primary" @click="visible4 = false">确 定</el-button>
            </span>
        </el-dialog>
        <!--    驳回退回申请    -->
        <el-dialog
            title="驳回退回申请"
            :visible.sync="visible5"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_item">
                    <div class="form_item_label"><span>*</span>填写说明:</div>
                    <div class="form_item_val">
                        <textarea placeholder="请输入"></textarea>
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible5 = false">取 消</el-button>
                <el-button type="primary" @click="visible5 = false">确 定</el-button>
            </span>
        </el-dialog>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import InsuranceDetails from '@/components/business/InsuranceDetails'
    export default {
        name: 'OperaInsuranceApplyWindow',
        extends: BaseOpera,
        components: { GlobalWindow, InsuranceDetails },
        data () {
            return {
                // 表单数据
                form: {
                    id: null,
                    editDate: ''
                },
                // 验证规则
                rules: {
                },
                formInline: {
                    user: '',
                    region: ''
                },
                value1: '',
                visible1: false,
                visible2: false,
                visible3: false,
                visible4: false,
                visible5: false,
                reverse: true,
                radio: 0,
                fileList: [
                    {name: 'food.pdf', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}
                ],
                activities: [{
                    content: '活动按期开始',
                    timestamp: '2018-04-15'
                }, {
                    content: '通过审核',
                    timestamp: '2018-04-13'
                }, {
                    content: '创建成功',
                    timestamp: '2018-04-11'
                }],
                tableData: [],
                activeName: 'first',
                currentPage: 1
            }
        },
        created () {
            this.config({
                api: '/business/insuranceApply',
                'field.id': 'id'
            })
        },
        methods: {
            open (title, target) {
                this.title = title
                this.visible = true
                // 新建
                // if (target == null) {
                //     this.$nextTick(() => {
                //         this.$refs.form.resetFields()
                //         this.form[this.configData['field.id']] = null
                //     })
                //     return
                // }
                // 编辑
                this.$nextTick(() => {
                    for (const key in this.form) {
                        this.form[key] = target[key]
                    }
                })
            },
            handleRemove(file, fileList) {
                console.log(file, fileList);
            },
            handlePreview(file) {
                console.log(file);
            },
            handleExceed(files, fileList) {
                this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
            },
            beforeRemove(file, fileList) {
                return this.$confirm(`确定移除 ${ file.name }?`);
            },
            successEvent() {
            },
            handleSizeChange(val) {
                console.log(`每页 ${val} 条`);
            },
            handleCurrentChange(val) {
                console.log(`当前页: ${val}`);
            },
            handleClick(tab, event) {
                console.log(tab, event);
            },
            onSubmit() {
            }
        }
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import InsuranceDetails from '@/components/business/InsuranceDetails'
import OperaInsuranceApplyCheckWindow from '@/components/business/OperaInsuranceApplyCheckWindow'
import {getDetail} from "@/api/business/insuranceApply";
import {all as solutionAll} from "@/api/business/solutions";
export default {
  name: 'OperaInsuranceApplyWindow',
  extends: BaseOpera,
  components: { GlobalWindow, InsuranceDetails ,OperaInsuranceApplyCheckWindow},
  data () {
    return {
      // 表单数据
      dataId:null,
      model: {},
      form: {
          id: null,
          editDate: ''
      },
      // 验证规则
      rules: {
      },
      formInline: {
          user: '',
          region: ''
      },
      visible1: false,
      visible2: false,
      visible3: false,
      visible4: false,
      visible5: false,
      reverse: true,
      radio: 0,
      fileList: [
          {name: 'food.pdf', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}
      ],
      activities: [{
          content: '活动按期开始',
          timestamp: '2018-04-15'
      }, {
          content: '通过审核',
          timestamp: '2018-04-13'
      }, {
          content: '创建成功',
          timestamp: '2018-04-11'
      }],
      tableData: [],
      activeName: 'first',
      currentPage: 1
    }
  },
  created () {
      this.config({
          api: '/business/insuranceApply',
          'field.id': 'id'
      })
  },
  methods: {
     open(title,target){
       this.visible=true;
       this.dataId=target.id
      this.getDetail();
     },
    getDetail(){
      getDetail(this.dataId).then(res => {
        this.model = res
        this.tableData = new Array()
        this.tableData.push(res)
        this.activities=res.applyLogList
      }).catch(err => {
      })
    }
  }
}
</script>
<style>
    .v-modal {
        z-index: 2000 !important;
    }
</style>
<style lang="scss" scoped>
    .form {