<template> 
 | 
    <GlobalWindow 
 | 
        :title="title" 
 | 
        width="60%" 
 | 
        :visible.sync="visible" 
 | 
        :confirm-working="isWorking" 
 | 
        @confirm="confirm" 
 | 
    > 
 | 
        <el-form :model="form" ref="form" :rules="rules" style="width: 50%;"> 
 | 
            <el-form-item label="公司名称" prop="name"> 
 | 
                <el-input v-model="form.name" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="统一信用代码" prop="code"> 
 | 
                <el-input v-model="form.code" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="法人姓名" prop="legalName"> 
 | 
                <el-input v-model="form.legalName" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="绑定手机号" prop="phone" v-if="!form.id"> 
 | 
                <div style="width: 100%; display: flex; align-items: center;"> 
 | 
                    <el-input v-model="form.phone" maxlength="11" type="number" style="flex: 1;" placeholder="请输入" v-trim/> 
 | 
                    <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" @click="send" v-if="num === 0">发送验证码</el-button> 
 | 
                    <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" v-else>{{num}}s</el-button> 
 | 
                </div> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="验证码" prop="captche" v-if="form.type !== 1"> 
 | 
                <el-input v-model="form.captche" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="公司账号" prop="username" v-if="form.type !== 1"> 
 | 
                <el-input v-model="form.username" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="认证邮箱" prop="email" > 
 | 
                <el-input v-model="form.email" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="纳税人识别号" prop="taxCode"> 
 | 
                <el-input v-model="form.taxCode" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="银行账号" prop="taxAccount"> 
 | 
                <el-input v-model="form.taxAccount" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="开户行" prop="taxBank"> 
 | 
                <el-input v-model="form.taxBank" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="地址、电话" prop="taxAddr"> 
 | 
                <el-input v-model="form.taxAddr" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="电子发票接收地址" prop="invoiceEmail"> 
 | 
                <el-input v-model="form.invoiceEmail" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="纸质发票接收地址" prop="invoiceAddr"> 
 | 
                <el-input v-model="form.invoiceAddr" placeholder="请输入" v-trim/> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="营业执照" prop="businessImg"> 
 | 
                <div style="width: 100%; height: 100px; display: flex; align-items: center;"> 
 | 
                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file" @uploadSuccess="result" /> 
 | 
                </div> 
 | 
            </el-form-item> 
 | 
            <el-form-item label="法人身份证" prop="idcardImgList"  style="height: 120px"> 
 | 
                <div style="width: 100%; display: flex; align-items: center;"> 
 | 
                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file1" @uploadSuccess="result1" /> 
 | 
                    <div style="width: 15px;height: 100%;"></div> 
 | 
                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file2" @uploadSuccess="result2" /> 
 | 
                </div> 
 | 
            </el-form-item> 
 | 
<!--            <el-form-item label="电子签章" prop="signImg">--> 
 | 
<!--                <div style="width: 100%; height: 100px; display: flex; align-items: center;">--> 
 | 
<!--                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file3" @uploadSuccess="result3" />--> 
 | 
<!--                </div>--> 
 | 
<!--            </el-form-item>--> 
 | 
        </el-form> 
 | 
        <el-button type="primary" style="margin-bottom: 15px;" @click="add" v-if="form.type !== 1">添加</el-button> 
 | 
        <el-table 
 | 
            v-if="form.type !== 1" 
 | 
            :data="form.solutionList" 
 | 
            border 
 | 
            style="width: 100%"> 
 | 
            <el-table-column 
 | 
                label="序号" 
 | 
                align="center" 
 | 
                width="80"> 
 | 
                <template slot-scope="scope"> 
 | 
                    <span>{{scope.$index + 1}}</span> 
 | 
                </template> 
 | 
            </el-table-column> 
 | 
            <el-table-column 
 | 
                align="center" 
 | 
                label="保险方案"> 
 | 
                <template slot-scope="scope"> 
 | 
                  <el-select  v-model="scope.row.solution"  value-key="id" placeholder="请选择" change="changeSolution($event,scope.$index)"> 
 | 
                    <el-option 
 | 
                        v-for="item in programme" 
 | 
                        :key="item.id" 
 | 
                        :label="item.name" 
 | 
                        :value="item"> 
 | 
                    </el-option> 
 | 
                  </el-select> 
 | 
                </template> 
 | 
            </el-table-column> 
 | 
            <el-table-column 
 | 
                align="center" 
 | 
                label="加减保功能"> 
 | 
                <template slot-scope="{row}"> 
 | 
                    <el-checkbox :true-label="1" :false-label="0" v-model="row.canAdd">加保</el-checkbox> 
 | 
                    <el-checkbox :true-label="1" :false-label="0" v-model="row.canReduce">减保</el-checkbox> 
 | 
                </template> 
 | 
            </el-table-column> 
 | 
            <el-table-column 
 | 
                label="操作" 
 | 
                align="center" 
 | 
                width="100"> 
 | 
                <template slot-scope="scope"> 
 | 
                    <el-button type="text" size="small" style="color: red;" @click="dele(scope.$index)">删除</el-button> 
 | 
                </template> 
 | 
            </el-table-column> 
 | 
        </el-table> 
 | 
    </GlobalWindow> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
import BaseOpera from '@/components/base/BaseOpera' 
 | 
import GlobalWindow from '@/components/common/GlobalWindow' 
 | 
import UploadAvatarImage from '@/components/common/UploadAvatarImage' 
 | 
import { all } from '@/api/business/solutions' 
 | 
import { sendSms } from '@/api/business/smsEmail' 
 | 
export default { 
 | 
  name: 'OperaCompanyWindow', 
 | 
  extends: BaseOpera, 
 | 
  components: { GlobalWindow, UploadAvatarImage }, 
 | 
  data () { 
 | 
    return { 
 | 
      // 表单数据 
 | 
      initParam:{ 
 | 
        id: null, 
 | 
        name: '', 
 | 
        code: '', 
 | 
        legalName: '', 
 | 
        taxCode: '', 
 | 
        taxAccount: '', 
 | 
        username: '', 
 | 
        taxBank: '', 
 | 
        taxAddr: '', 
 | 
        invoiceEmail: '', 
 | 
        invoiceAddr: '', 
 | 
        phone: '', 
 | 
        email: '', 
 | 
        captche: '', 
 | 
        businessImg: { 
 | 
          fileurl: '', 
 | 
          name: '' 
 | 
        }, 
 | 
        idcardImgList: [], 
 | 
        signImg: { 
 | 
          fileurl: '', 
 | 
          name: '' 
 | 
        }, 
 | 
        solutionList: [ 
 | 
          { 
 | 
            solution: null, 
 | 
            canAdd: 0, 
 | 
            canReduce: 0 
 | 
          } 
 | 
        ], 
 | 
        type: '0', 
 | 
        file: { 
 | 
          imgurl: '', 
 | 
          imgurlfull: '' 
 | 
        }, 
 | 
        file1: { 
 | 
          imgurl: '', 
 | 
          imgurlfull: '' 
 | 
        }, 
 | 
        file2: { 
 | 
          imgurl: '', 
 | 
          imgurlfull: '' 
 | 
        }, 
 | 
        file3: { 
 | 
          imgurl: '', 
 | 
          imgurlfull: '' 
 | 
        }, 
 | 
      }, 
 | 
      form: {}, 
 | 
      timer: null, 
 | 
      num: 0, 
 | 
      // 验证规则 
 | 
      rules: { 
 | 
        name: [ 
 | 
          { required: true, message: '请输入公司名称' } 
 | 
        ], 
 | 
        code: [ 
 | 
          { required: true, message: '请输入统一信用代码' } 
 | 
        ], 
 | 
        captche: [ 
 | 
          { required: true, message: '请输入验证码' } 
 | 
        ], 
 | 
        legalName: [ 
 | 
          { required: true, message: '请输入法人姓名' } 
 | 
        ], 
 | 
        phone: [ 
 | 
          { required: true, message: '请输入手机号' } 
 | 
        ], 
 | 
        // taxAccount: [ 
 | 
        //   { required: true, message: '请输入银行卡' } 
 | 
        // ], 
 | 
        email: [ 
 | 
          { required: true, message: '请输入认证邮箱' } 
 | 
        ], 
 | 
        businessImg: [ 
 | 
          { required: true, message: '请上传营业执照' } 
 | 
        ], 
 | 
        idcardImgList: [ 
 | 
          { required: true, message: '请上传法人身份证' } 
 | 
        ], 
 | 
        signImg: [ 
 | 
          { required: true, message: '请上传电子签章' } 
 | 
        ], 
 | 
        username: [ 
 | 
          { required: true, message: '请输入公司账号' } 
 | 
        ] 
 | 
      }, 
 | 
  
 | 
      programme: [] 
 | 
    } 
 | 
  }, 
 | 
  created () { 
 | 
    this.config({ 
 | 
      api: '/business/company', 
 | 
      'field.id': 'id' 
 | 
    }) 
 | 
  }, 
 | 
  watch: { 
 | 
    visible: { 
 | 
      handler (news) { 
 | 
        if (news) { 
 | 
          clearInterval(this.timer) 
 | 
          this.num = 0 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  }, 
 | 
  methods: { 
 | 
    changeSolution(row,index){ 
 | 
     this.form.solutionList[index].solution=row 
 | 
   //   console.log(this.form.solutionList) 
 | 
    }, 
 | 
    send () { 
 | 
      if (!this.form.phone) { 
 | 
        this.$message.warning('请输入手机号') 
 | 
        return 
 | 
      } 
 | 
      sendSms({ phone: this.form.phone }) 
 | 
        .then(res => { 
 | 
          this.num = 60 
 | 
          this.setTime() 
 | 
        }) 
 | 
    }, 
 | 
    setTime () { 
 | 
      this.timer = setInterval(() => { 
 | 
        this.num -= 1 
 | 
        if (this.num === 0) { 
 | 
          clearInterval(this.timer) 
 | 
          this.num = 0 
 | 
        } 
 | 
      }, 1000) 
 | 
    }, 
 | 
    open (title, target,type) { 
 | 
      this.title = title 
 | 
      this.visible = true 
 | 
      this.form = this.initParam 
 | 
      this.getAll() 
 | 
      // 新建 
 | 
      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] 
 | 
        } 
 | 
      }) 
 | 
    }, 
 | 
    // 获取全部方案 
 | 
    getAll () { 
 | 
      all({}) 
 | 
        .then(res => { 
 | 
          this.programme = res 
 | 
        }) 
 | 
    }, 
 | 
    dele (index) { 
 | 
      if (this.form.solutionList.length === 1) { 
 | 
        this.$message.warning('至少保留一项') 
 | 
        return 
 | 
      } 
 | 
      this.form.solutionList.splice(index, 1) 
 | 
    }, 
 | 
    add () { 
 | 
      this.form.solutionList.push({ 
 | 
        solutionId:null, 
 | 
        solution: {}, 
 | 
        canAdd: '', 
 | 
        canReduce: '' 
 | 
      }) 
 | 
    }, 
 | 
    handleRemove (file, fileList) { 
 | 
      console.log(file, fileList) 
 | 
    }, 
 | 
    // 接收营业执照数据 
 | 
    result (data) { 
 | 
      this.form.businessImg = { 
 | 
        fileurl: '', 
 | 
        name: '' 
 | 
      } 
 | 
      this.form.businessImg.fileurl = data.imgurl 
 | 
      this.form.businessImg.name = data.name 
 | 
    }, 
 | 
    // 身份证照片1 
 | 
    result1 (data) { 
 | 
      this.form.idcardImgList[0] = { 
 | 
        fileurl: '', 
 | 
        name: '' 
 | 
      } 
 | 
      this.form.idcardImgList[0] = { fileurl: data.imgurl, name: data.name } 
 | 
    }, 
 | 
    // 身份证照片2 
 | 
    result2 (data) { 
 | 
      this.form.idcardImgList[1] = { 
 | 
        fileurl: '', 
 | 
        name: '' 
 | 
      } 
 | 
      this.form.idcardImgList[1] = { fileurl: data.imgurl, name: data.name } 
 | 
    }, 
 | 
    // 电子签章 
 | 
    result3 (data) { 
 | 
      this.form.signImg = { 
 | 
        fileurl: '', 
 | 
        name: '' 
 | 
      } 
 | 
      this.form.signImg.fileurl = data.imgurl 
 | 
      this.form.signImg.name = data.name 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</script> 
 |