|  |  | 
 |  |  | <template> | 
 |  |  |     <GlobalWindow | 
 |  |  |         :title="title" | 
 |  |  |         width="70%" | 
 |  |  |         text="修改" | 
 |  |  |         :withFooter="userInfo.type !== 1" | 
 |  |  |         width="100%" | 
 |  |  |         :withFooter="false" | 
 |  |  |         :visible.sync="visible" | 
 |  |  |         :confirm-working="isWorking" | 
 |  |  |         @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_label">{{userInfo.type!=1?'子方案:':'方案:'}}</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">{{form.insuranceName}}</div> | 
 |  |  |                 <div class="info_list_item" v-if="userInfo.type !== 1"> | 
 |  |  |                     <div class="info_list_item_label">主方案:</div> | 
 |  |  |                     <div class="info_list_item_val"><a @click="$refs.operaSolutionsBaseDescWindow.open('主方案详情', { id: form.parentId })" style="cursor: pointer;color: #2E68EC;">{{form.solutionBaseName}}</a></div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="info_list_item"> | 
 |  |  |                     <div class="info_list_item_label">承保公司:</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" v-if="form.type === 0 "> 直保</div> | 
 |  |  |                 <div class="info_list_item_val" v-if="form.type === 1">委托投保</div> | 
 |  |  |               </div> | 
 |  |  |               <div class="info_list_item" v-if="form.type === 1"> | 
 |  |  |                 <div class="info_list_item_label">委托商户:</div> | 
 |  |  |                 <div class="info_list_item_val" > {{form.shopName}}</div> | 
 |  |  |               </div> | 
 |  |  |                 <div class="info_list_item"> | 
 |  |  |                     <div class="info_list_item_label">投保年龄:</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> | 
 |  |  |                     <div class="info_list_item_label">方案费用:</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> | 
 |  |  |                         {{form.price}}元/人/<template v-if="form.timeUnit === 0">天</template><template v-if="form.timeUnit === 2">月</template><template v-if="form.timeUnit === 3">季度</template><template v-if="form.timeUnit === 4">半年</template><template v-if="form.timeUnit === 5">年</template> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="info_list_item"> | 
 |  |  |                     <div class="info_list_item_label">投保周期:</div> | 
 |  |  |                     <div class="info_list_item_label">批改计费规则:</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> | 
 |  |  |                         <span v-if="form.insureCycleUnit === 3">季度</span> | 
 |  |  |                         <span v-if="form.insureCycleUnit === 4">半年</span> | 
 |  |  |                         <span v-if="form.insureCycleUnit === 5">年</span> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="info_list_item"> | 
 |  |  |                     <div class="info_list_item_label">生效时间:</div> | 
 |  |  |                     <div class="info_list_item_val">{{form.validType === 0 ? form.validTypeNum + '日后生效' : '次月生效'}}</div> | 
 |  |  |                     <div class="info_list_item_label">投保类型:</div> | 
 |  |  |                     <div class="info_list_item_val" v-if="form.type === 0 ">直保</div> | 
 |  |  |                     <div class="info_list_item_val" v-if="form.type === 1">委托投保</div> | 
 |  |  |                 </div> | 
 |  |  |  | 
 |  |  |                 <div class="info_list_item"> | 
 |  |  |                     <div class="info_list_item_label">委托商户:</div> | 
 |  |  |                     <div class="info_list_item_val" > {{form.shopName}}</div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="info_list_item"> | 
 |  |  |                     <div class="info_list_item_label">派遣单位:</div> | 
 |  |  |                     <div class="info_list_item_val" v-if="form.hasDispatchUnit === 1">无</div> | 
 |  |  |                     <div class="info_list_item_val" v-else-if="form.hasDispatchUnit === 0">有</div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="info_list_item"> | 
 |  |  |                     <div class="info_list_item_label">接收文件邮箱:</div> | 
 |  |  |                     <div class="info_list_item_val">{{form.email}}</div> | 
 |  |  |                 </div> | 
 |  |  |               <div class="info_list_item" style="width: 100%" v-if="form.type==1"> | 
 |  |  |                 <div class="info_list_item_label">方案确认书:</div> | 
 |  |  |                 <div class="info_list_item_val" ><a v-if="form.fanganFile && form.fanganFile.fileurlFull" style="cursor: pointer;color: #2E68EC" title="点击查看" @click="openFile(form.fanganFile.fileurlFull)">{{ form.fanganFile.name || '点击查看' }}</a></div> | 
 |  |  |               <div class="info_list_item"> | 
 |  |  |                 <div class="info_list_item_label">批改支持:</div> | 
 |  |  |                 <div class="info_list_item_val"> | 
 |  |  |                   <span style="margin-right: 50px">加保 <i  :class="form.canAdd ==1?'el-icon-circle-check':'el-icon-circle-close'" :style="form.canAdd ==1?'color:green;font-weight:bold':'color:red;font-weight:bold'"></i></span> | 
 |  |  |                   <span  style="margin-right: 50px">减保  <i   :class="form.canReduce ==1?'el-icon-circle-check':'el-icon-circle-close'" :style="form.canReduce ==1?'color:green;font-weight:bold':'color:red;font-weight:bold'"></i></span> | 
 |  |  |                   <span>更换派遣单位 <i   :class="form.canChangeUnit ==1?'el-icon-circle-check':'el-icon-circle-close'" :style="form.canChangeUnit ==1?'color:green;font-weight:bold':'color:red;font-weight:bold'"></i></span> | 
 |  |  |                 </div> | 
 |  |  |               </div> | 
 |  |  |               <div class="info_list_item"> | 
 |  |  |                 <div class="info_list_item_label">批减仅支持替换:</div> | 
 |  |  |                 <div class="info_list_item_val">{{form.delOnlyReplace ==1?'是':'否'}}</div> | 
 |  |  |               </div> | 
 |  |  |                 <div class="info_list_item" style="width: 100%"> | 
 |  |  |                     <div class="info_list_item_label">方案确认书:</div> | 
 |  |  |                     <div class="info_list_item_val" ><a v-if="form.fanganFile && form.fanganFile.fileurlFull" style="cursor: pointer;color: #2E68EC" title="点击查看" @click="openFile(form.fanganFile.fileurlFull)">{{ form.fanganFile.name || '点击查看' }}</a></div> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <div style="font-size: 18px; font-weight: bold; margin-bottom: 10px;" v-if="userInfo.type === 0">方案使用情况</div> | 
 |  |  |             <el-table | 
 |  |  |                 :data="form.worktypeList" | 
 |  |  |                 v-if="userInfo.type === 0" | 
 |  |  |                 :data="list" | 
 |  |  |                 border | 
 |  |  |                 style="width: 100%; margin-bottom: 20px;"> | 
 |  |  |                 <el-table-column | 
 |  |  | 
 |  |  |                     </template> | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                     prop="worktypeName" | 
 |  |  |                     prop="companyName" | 
 |  |  |                     align="center" | 
 |  |  |                     label="工种名称"> | 
 |  |  |                     label="企业名称"> | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                     align="center" | 
 |  |  |                     label="签章情况"> | 
 |  |  |                     <template slot-scope="{row}"> | 
 |  |  |                         <span v-if="row.signStatus === 0">待签章</span> | 
 |  |  |                         <span v-if="row.signStatus === 1">已签章</span> | 
 |  |  |                     </template> | 
 |  |  |                 </el-table-column> | 
 |  |  |             </el-table> | 
 |  |  |             <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> | 
 |  |  | <!--            <el-table--> | 
 |  |  | <!--                :data="form.worktypeList"--> | 
 |  |  | <!--                border--> | 
 |  |  | <!--                style="width: 100%; margin-bottom: 20px;">--> | 
 |  |  | <!--                <el-table-column--> | 
 |  |  | <!--                    label="序号"--> | 
 |  |  | <!--                    align="center"--> | 
 |  |  | <!--                    width="80">--> | 
 |  |  | <!--                    <template slot-scope="scope">--> | 
 |  |  | <!--                        <span>{{scope.$index + 1}}</span>--> | 
 |  |  | <!--                    </template>--> | 
 |  |  | <!--                </el-table-column>--> | 
 |  |  | <!--                <el-table-column--> | 
 |  |  | <!--                    prop="worktypeName"--> | 
 |  |  | <!--                    align="center"--> | 
 |  |  | <!--                    label="工种名称">--> | 
 |  |  | <!--                </el-table-column>--> | 
 |  |  | <!--            </el-table>--> | 
 |  |  |         </div> | 
 |  |  |         <!-- 修改 --> | 
 |  |  |         <OperaSolutionsWindow ref="operaSolutionsWindow" @success="callback"/> | 
 |  |  |         <OperaPdfViewerWindow ref="OperaPdfViewerWindow"  /> | 
 |  |  |         <OperaSolutionsBaseDescWindow ref="operaSolutionsBaseDescWindow" /> | 
 |  |  |     </GlobalWindow> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script> | 
 |  |  |     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, | 
 |  |  |         components: { GlobalWindow, OperaSolutionsWindow }, | 
 |  |  |         data () { | 
 |  |  |             return { | 
 |  |  |                 // 表单数据 | 
 |  |  |                 form: { | 
 |  |  |                     id: null, | 
 |  |  |                     name: '', | 
 |  |  |                     companyName: '', | 
 |  |  |                     insuranceId: '', | 
 |  |  |                     validType: 0, | 
 |  |  |                     type: 0, | 
 |  |  |                     minAge: '', | 
 |  |  |                     maxAge: '', | 
 |  |  |                     price: '', | 
 |  |  |                     timeUnit: '', | 
 |  |  |                     insureCycle: '', | 
 |  |  |                     shopName:'', | 
 |  |  |                     insureCycleUnit: '', | 
 |  |  |                     validTypeNum: '', | 
 |  |  |                     email: '', | 
 |  |  |                     specialAgreement: '', | 
 |  |  |                     specialInfo: '', | 
 |  |  |                     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.form = { | 
 |  |  |                     id: null, | 
 |  |  |                     name: '', | 
 |  |  |                     companyName: '', | 
 |  |  |                     insuranceId: '', | 
 |  |  |                     validType: 0, | 
 |  |  |                     type: 0, | 
 |  |  |                     minAge: '', | 
 |  |  |                     maxAge: '', | 
 |  |  |                     price: '', | 
 |  |  |                     timeUnit: '', | 
 |  |  |                     insureCycle: '', | 
 |  |  |                     shopName:'', | 
 |  |  |                     insureCycleUnit: '', | 
 |  |  |                     validTypeNum: '', | 
 |  |  |                     email: '', | 
 |  |  |                     specialAgreement: '', | 
 |  |  |                     specialInfo: '', | 
 |  |  |                     ortherInfo: '', | 
 |  |  |                     fanganFile:null, | 
 |  |  |                     insuranceName: '', | 
 |  |  |                     signKeyword: '', | 
 |  |  |                     worktypeList: [], | 
 |  |  |                     worktypeIdList: [] | 
 |  |  |               } | 
 |  |  |  | 
 |  |  |                 this.$nextTick(() => { | 
 |  |  |                     for (const key in this.form) { | 
 |  |  |                         this.form[key] = target[key] | 
 |  |  |                     } | 
 |  |  |                     this.getDetails() | 
 |  |  |                 }) | 
 |  |  |             }, | 
 |  |  |           openFile (url) { | 
 |  |  |             setTimeout(() => { | 
 |  |  |               window.open(url) | 
 |  |  |             }, 500) | 
 |  |  |           }, | 
 |  |  |             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 | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  | import BaseOpera from '@/components/base/BaseOpera' | 
 |  |  | import GlobalWindow from '@/components/common/GlobalWindow' | 
 |  |  | import OperaSolutionsWindow from '@/components/business/OperaSolutionsWindow' | 
 |  |  | import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow' | 
 |  |  | import OperaSolutionsBaseDescWindow from '@/components/business/OperaSolutionsBaseDescWindow' | 
 |  |  | import { solutionsId, listForCompany } from '@/api/business/solutions' | 
 |  |  | import { mapState } from 'vuex' | 
 |  |  | export default { | 
 |  |  |   name: 'OperaSolutionsDescWindow', | 
 |  |  |   extends: BaseOpera, | 
 |  |  |   components: { GlobalWindow, OperaPdfViewerWindow,OperaSolutionsWindow, OperaSolutionsBaseDescWindow }, | 
 |  |  |   data () { | 
 |  |  |     return { | 
 |  |  |       // 表单数据 | 
 |  |  |       form: { | 
 |  |  |         id: null, | 
 |  |  |         name: '', | 
 |  |  |         companyName: '', | 
 |  |  |         insuranceId: '', | 
 |  |  |         validType: 0, | 
 |  |  |         type: 0, | 
 |  |  |         minAge: '', | 
 |  |  |         maxAge: '', | 
 |  |  |         price: '', | 
 |  |  |         timeUnit: '', | 
 |  |  |         insureCycle: '', | 
 |  |  |         parentId: '', | 
 |  |  |         shopName: '', | 
 |  |  |         insureCycleUnit: '', | 
 |  |  |         hasDispatchUnit: '', | 
 |  |  |         solutionBaseName: '', | 
 |  |  |         validTypeNum: '', | 
 |  |  |         email: '', | 
 |  |  |         canReduce: 0, | 
 |  |  |         canChangeUnit: 0, | 
 |  |  |         addValidDays: 0, | 
 |  |  |         delValidDays: 0, | 
 |  |  |         delOnlyReplace: 0, | 
 |  |  |         canAdd: 0, | 
 |  |  |         specialAgreement: '', | 
 |  |  |         specialInfo: '', | 
 |  |  |         ortherInfo: '', | 
 |  |  |         insuranceName: '', | 
 |  |  |         signKeyword: '', | 
 |  |  |         worktypeList: [], | 
 |  |  |         worktypeIdList: [] | 
 |  |  |       }, | 
 |  |  |       list: [] | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   computed: { | 
 |  |  |     ...mapState(['userInfo']) | 
 |  |  |   }, | 
 |  |  |   created () { | 
 |  |  |     this.config({ | 
 |  |  |       api: '/business/solutions', | 
 |  |  |       'field.id': 'id' | 
 |  |  |     }) | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     open (title, target) { | 
 |  |  |       this.title = title | 
 |  |  |       this.visible = true | 
 |  |  |       this.form = { | 
 |  |  |         id: null, | 
 |  |  |         name: '', | 
 |  |  |         companyName: '', | 
 |  |  |         insuranceId: '', | 
 |  |  |         validType: 0, | 
 |  |  |         type: 0, | 
 |  |  |         minAge: '', | 
 |  |  |         maxAge: '', | 
 |  |  |         parentId: '', | 
 |  |  |         price: '', | 
 |  |  |         timeUnit: '', | 
 |  |  |         insureCycle: '', | 
 |  |  |         hasDispatchUnit: '', | 
 |  |  |         shopName: '', | 
 |  |  |         insureCycleUnit: '', | 
 |  |  |         validTypeNum: '', | 
 |  |  |         email: '', | 
 |  |  |         specialAgreement: '', | 
 |  |  |         solutionBaseName: '', | 
 |  |  |         specialInfo: '', | 
 |  |  |         ortherInfo: '', | 
 |  |  |         fanganFile: null, | 
 |  |  |         canReduce: 0, | 
 |  |  |         canChangeUnit: 0, | 
 |  |  |         addValidDays: 0, | 
 |  |  |         delValidDays: 0, | 
 |  |  |         delOnlyReplace: 0, | 
 |  |  |         canAdd: 0, | 
 |  |  |         insuranceName: '', | 
 |  |  |         signKeyword: '', | 
 |  |  |         worktypeList: [], | 
 |  |  |         worktypeIdList: [] | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       this.$nextTick(() => { | 
 |  |  |         for (const key in this.form) { | 
 |  |  |           this.form[key] = target[key] | 
 |  |  |         } | 
 |  |  |         this.getDetails() | 
 |  |  |         this.getList() | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     getList() { | 
 |  |  |       listForCompany({ solutionId: this.form.id }) | 
 |  |  |         .then(res => { | 
 |  |  |           this.list = res | 
 |  |  |         }) | 
 |  |  |     }, | 
 |  |  |     openFile (url) { | 
 |  |  |       setTimeout(() => { | 
 |  |  |         this.$refs.OperaPdfViewerWindow.open('方案确认书',url) | 
 |  |  |         // window.open(url) | 
 |  |  |       }, 500) | 
 |  |  |     }, | 
 |  |  |     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> | 
 |  |  |  | 
 |  |  | <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; |