MrShi
2025-04-11 3a45da15c947c2d478a44a51bd0f926647b1b841
company/src/components/business/OperaCompanyWindow.vue
@@ -16,17 +16,17 @@
            <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.type !== 1">
            <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-form-item label="验证码" prop="captche" v-if="!form.id">
                <el-input v-model="form.captche" placeholder="请输入" v-trim/>
            </el-form-item>
            <el-form-item label="公司账号" prop="username" v-if="form.type !== 1">
            <el-form-item label="公司账号" prop="username" v-if="!form.id">
                <el-input v-model="form.username" placeholder="请输入" v-trim/>
            </el-form-item>
            <el-form-item label="认证邮箱" prop="email" >
@@ -50,8 +50,10 @@
            <el-form-item label="纸质发票接收地址" prop="invoiceAddr">
                <el-input v-model="form.invoiceAddr" placeholder="请输入" v-trim/>
            </el-form-item>
            <el-form-item label="营业执照" prop="businessImg"  style="height: 120px">
                <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file" @uploadSuccess="result" />
            <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;">
@@ -60,13 +62,15 @@
                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file2" @uploadSuccess="result2" />
                </div>
            </el-form-item>
            <el-form-item label="电子签章" prop="signImg" style="height: 120px">
                <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file3" @uploadSuccess="result3" />
            </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-button type="primary" style="margin-bottom: 15px;" @click="add" v-if="!form.id">添加</el-button>
        <el-table
            v-if="form.type !== 1"
            v-if="!form.id"
            :data="form.solutionList"
            border
            style="width: 100%">
@@ -82,12 +86,26 @@
                align="center"
                label="保险方案">
                <template slot-scope="scope">
                  <el-select  v-model="scope.row.solution"  value-key="id" placeholder="请选择" change="changeSolution($event,scope.$index)">
                  <el-select v-model="scope.row.solution.id" @change="changeSolution($event, scope.$index)" placeholder="请选择">
                    <el-option
                        v-for="item in programme"
                        :key="item.id"
                        :label="item.name"
                        :value="item">
                        :value="item.id">
                    </el-option>
                  </el-select>
                </template>
            </el-table-column>
            <el-table-column
                align="center"
                label="委托商户">
                <template slot-scope="scope">
                  <el-select  v-model="scope.row.shopId"  :disabled="scope.row.solution.type ==1" clearable value-key="id" placeholder="请选择" >
                    <el-option
                        v-for="item in shops"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id">
                    </el-option>
                  </el-select>
                </template>
@@ -96,8 +114,8 @@
                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>
                    <el-checkbox :true-label="1" :false-label="0" disabled v-model="row.canAdd">加保</el-checkbox>
                    <el-checkbox :true-label="1" :false-label="0" disabled v-model="row.canReduce">减保</el-checkbox>
                </template>
            </el-table-column>
            <el-table-column
@@ -118,11 +136,19 @@
import UploadAvatarImage from '@/components/common/UploadAvatarImage'
import { all } from '@/api/business/solutions'
import { sendSms } from '@/api/business/smsEmail'
import { pageAll as shopList } from '@/api/business/company'
export default {
  name: 'OperaCompanyWindow',
  extends: BaseOpera,
  components: { GlobalWindow, UploadAvatarImage },
  data () {
      var idcardImgList = (rule, value, callback) => {
          if (value.length === 0) {
              callback(new Error('请上传法人身份证'));
          } else {
              callback();
          }
      };
    return {
      // 表单数据
      initParam:{
@@ -151,12 +177,14 @@
        },
        solutionList: [
          {
            solution: null,
            canAdd: 0,
            canReduce: 0
            solution: { id: null, baseId: null,type:0 },
            canAdd: 1,
            shopId:null,
            canReduce: 1
          }
        ],
        type: '0',
        actionType: '0',
        file: {
          imgurl: '',
          imgurlfull: ''
@@ -194,9 +222,9 @@
        phone: [
          { required: true, message: '请输入手机号' }
        ],
        taxAccount: [
          { required: true, message: '请输入手机号' }
        ],
        // taxAccount: [
        //   { required: true, message: '请输入银行卡' }
        // ],
        email: [
          { required: true, message: '请输入认证邮箱' }
        ],
@@ -204,7 +232,7 @@
          { required: true, message: '请上传营业执照' }
        ],
        idcardImgList: [
          { required: true, message: '请上传法人身份证' }
          { required: true, validator: idcardImgList }
        ],
        signImg: [
          { required: true, message: '请上传电子签章' }
@@ -213,8 +241,8 @@
          { required: true, message: '请输入公司账号' }
        ]
      },
      programme: []
      programme: [],
      shops:[]
    }
  },
  created () {
@@ -234,9 +262,21 @@
    }
  },
  methods: {
    changeSolution(row,index){
     this.form.solutionList[index].solution=row
   //   console.log(this.form.solutionList)
    changeSolution(e,index){
      let baseId = ''
      this.programme.forEach(item => {
        if (item.id === e) {
          baseId = item.baseId
          this.form.solutionList[index].solution.type = item.type
          if(item.type == 1){
            this.form.solutionList[index].shopId =item.shopId
          }
        }
      })
      this.form.solutionList[index].solution.baseId = baseId
     // this.form.solutionList[index].solution=row
    },
    send () {
      if (!this.form.phone) {
@@ -275,6 +315,7 @@
      this.$nextTick(() => {
        for (const key in this.form) {
          this.form[key] = target[key]
          this.form.username=null
        }
      })
    },
@@ -284,6 +325,11 @@
        .then(res => {
          this.programme = res
        })
      shopList({ type: 1, status: 0 })
          .then(res => {
            console.log(res)
            this.shops = res
          })
    },
    dele (index) {
      if (this.form.solutionList.length === 1) {
@@ -294,10 +340,11 @@
    },
    add () {
      this.form.solutionList.push({
        solutionId:null,
        solutionId: null,
        solution: {},
        canAdd: '',
        canReduce: ''
        shopId: null,
        canAdd: 1,
        canReduce: 1
      })
    },
    handleRemove (file, fileList) {
@@ -319,6 +366,7 @@
        name: ''
      }
      this.form.idcardImgList[0] = { fileurl: data.imgurl, name: data.name }
        this.$forceUpdate()
    },
    // 身份证照片2
    result2 (data) {
@@ -327,6 +375,7 @@
        name: ''
      }
      this.form.idcardImgList[1] = { fileurl: data.imgurl, name: data.name }
        this.$forceUpdate()
    },
    // 电子签章
    result3 (data) {