jiangping
2024-03-05 7b336b5d570dece2d283d33221874e8dae1a2118
company/src/components/business/OperaSolutionsDescWindow.vue
@@ -2,28 +2,29 @@
    <GlobalWindow
        :title="title"
        width="50%"
        submitText="修改"
        text="修改"
        :withFooter="userInfo.type !== 1"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="$refs.operaSolutionsWindow.open('编辑方案')"
        @confirm="$refs.operaSolutionsWindow.open('编辑方案', form)"
    >
        <div class="info">
            <div class="info_list">
                <div class="info_list_item">
                    <div class="info_list_item_label">方案名称:</div>
                    <div class="info_list_item_val">平安保险雇主责任险A版</div>
                    <div class="info_list_item_val">{{form.name}}</div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">保险公司:</div>
                    <div class="info_list_item_val">平安保险</div>
                    <div class="info_list_item_val">{{form.insuranceName}}</div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">承保公司:</div>
                    <div class="info_list_item_val">安徽平安保险有限公司</div>
                    <div class="info_list_item_val">{{form.companyName}}</div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">投保年龄:</div>
                    <div class="info_list_item_val">25至65</div>
                    <div class="info_list_item_val">{{form.minAge}}至{{form.maxAge}}</div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">投保类型:</div>
@@ -31,31 +32,39 @@
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">保险费用:</div>
                    <div class="info_list_item_val">200元/人/年</div>
                    <div class="info_list_item_val">
                        {{form.price}}元/人/
                        <span v-if="form.timeUnit === 0">天</span>
                        <span v-if="form.timeUnit === 1">半月</span>
                        <span v-if="form.timeUnit === 2">月</span>
                        <span v-if="form.timeUnit === 3">年</span>
                    </div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">投保周期:</div>
                    <div class="info_list_item_val">1月</div>
                    <div class="info_list_item_val">
                        {{form.insureCycle}}
                        <span v-if="form.insureCycleUnit === 0">天</span>
                        <span v-if="form.insureCycleUnit === 1">半月</span>
                        <span v-if="form.insureCycleUnit === 2">月</span>
                        <span v-if="form.insureCycleUnit === 3">年</span>
                    </div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">生效时间:</div>
                    <div class="info_list_item_val">1日后生效</div>
                    <div class="info_list_item_val">{{form.validType === 0 ? form.validTypeNum + '日后生效' : '次月生效'}}</div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">投保类型:</div>
                    <div class="info_list_item_val">直保</div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">单独指派工种:</div>
                    <div class="info_list_item_val">否</div>
                    <div class="info_list_item_val">{{form.type === 0 ? '直保' : '委托投保'}}</div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">接收文件邮箱:</div>
                    <div class="info_list_item_val">111@163.com</div>
                    <div class="info_list_item_val">{{form.email}}</div>
                </div>
            </div>
            <el-table
                :data="tableData"
                :data="form.worktypeList"
                border
                style="width: 100%; margin-bottom: 20px;">
                <el-table-column
@@ -67,15 +76,19 @@
                    </template>
                </el-table-column>
                <el-table-column
                    prop="code"
                    prop="worktypeName"
                    align="center"
                    label="所属工种">
                </el-table-column>
            </el-table>
            <div class="info_fwb">富文本内容</div>
            <div class="info_agree">
                <div class="info_agree_label">特别约定:{{form.specialAgreement}}</div>
                <div class="info_agree_label">特别说明:{{form.specialInfo}}</div>
                <div class="info_agree_label">其他说明:{{form.ortherInfo}}</div>
            </div>
        </div>
        <!-- 修改 -->
        <OperaSolutionsWindow ref="operaSolutionsWindow" @success="handlePageChange"/>
        <OperaSolutionsWindow ref="operaSolutionsWindow" @success="callback"/>
    </GlobalWindow>
</template>
@@ -83,6 +96,8 @@
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import OperaSolutionsWindow from '@/components/business/OperaSolutionsWindow'
    import { solutionsId } from '@/api/business/solutions'
    import {mapState} from "vuex";
    export default {
        name: 'OperaSolutionsDescWindow',
        extends: BaseOpera,
@@ -93,31 +108,65 @@
                form: {
                    id: null,
                    name: '',
                    companyName: '',
                    insuranceId: '',
                    validType: '',
                    type: '',
                    validType: 0,
                    type: 0,
                    minAge: '',
                    maxAge: '',
                    price: '',
                    timeUnit: '',
                    insureCycle: '',
                    insureCycleUnit: '',
                    priceCycleUnit: '',
                    validTypeNum: '',
                    email: '',
                    specialAgreement: '',
                    specialInfo: '',
                    ortherInfo: ''
                },
                // 验证规则
                rules: {
                },
                tableData: []
                    ortherInfo: '',
                    insuranceName: '',
                    signKeyword: '',
                    worktypeList: [],
                    worktypeIdList: []
                }
            }
        },
        computed: {
            ...mapState(['userInfo'])
        },
        created () {
            this.config({
                api: '/business/solutions',
                'field.id': 'id'
            })
        },
        methods: {
            open (title, target) {
                this.title = title
                this.visible = true
                this.$nextTick(() => {
                    for (const key in this.form) {
                        this.form[key] = target[key]
                    }
                    this.getDetails()
                })
            },
            getDetails() {
                solutionsId(this.form.id)
                    .then(res => {
                        for (const key in this.form) {
                            this.form[key] = res[key]
                        }
                        this.form.worktypeIdList = res.worktypeList.map(item => {
                            return {
                                worktypeId: item.worktypeId
                            }
                        })
                    })
            },
            callback() {
                this.$emit('success')
                this.visible = false
            }
        }
    }
</script>
@@ -125,6 +174,24 @@
<style lang="scss" scoped>
    .info {
        width: 100%;
        .info_agree {
            width: 100%;
            display: flex;
            flex-direction: column;
            margin-top: 20px;
            .info_agree_label {
                font-size: 14px;
                font-weight: 500;
                color: #000000;
                margin-top: 5px;
            }
            .info_agree_val {
                font-size: 14px;
                font-weight: 500;
                color: #000000;
                margin-top: 5px;
            }
        }
        .info_label {
            width: 100%;
            display: flex;
@@ -152,7 +219,7 @@
                align-items: start;
                margin-bottom: 20px;
                .info_list_item_label {
                    width: 130px;
                    flex-shrink: 0;
                }
                .info_list_item_val {