MrShi
2024-03-05 84b74d64ecc519882b89278f1011f7ac7525d190
company/src/components/business/OperaCompanyDescWindow.vue
@@ -1,7 +1,8 @@
<template>
    <GlobalWindow
        :title="title"
        width="80%"
        width="100%"
        :withFooter="false"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
@@ -9,7 +10,10 @@
        <div class="info">
            <div class="info_label">
                <span>企业详情</span>
                <el-button type="primary" @click="$refs.operaCompanyWindow.open('编辑企业信息', row)">修改企业信息</el-button>
                <div>
                    <el-button type="primary" @click="$refs.modification.open('修改保险方案', form)">更改保险方案</el-button>
                    <el-button type="primary" @click="$refs.operaCompanyWindow.open('编辑企业信息', form)">修改企业信息</el-button>
                </div>
            </div>
            <div class="info_list">
                <div class="info_list_item">
@@ -56,7 +60,7 @@
                    <div class="info_list_item_val">{{form.invoiceEmail || '-'}}</div>
                </div>
                <div class="info_list_item" style="width: 100%;">
                    <div class="info_list_item_label">电子发票接收地址:</div>
                    <div class="info_list_item_label">纸质发票接收地址:</div>
                    <div class="info_list_item_val">{{form.invoiceAddr || '-'}}</div>
                </div>
            </div>
@@ -90,27 +94,49 @@
                <div class="info_list_item">
                    <div class="info_list_item_label" style="width: 100px;">营业执照:</div>
                    <div class="info_list_item_val">
                        <div class="image" v-if="form.businessImg.fileurl">
                            <img :src="form.businessImg.fileurlFull + form.businessImg.fileurl" alt="">
                        <div class="image" v-if="form.businessImg.fileurlFull">
                          <el-image
                              v-if="form.businessImg.fileurlFull!=null"
                              style="width: 90px; height: 90px"
                              :src="form.businessImg.fileurlFull"
                              :preview-src-list="[form.businessImg.fileurlFull]">
                          </el-image>
                        </div>
                    </div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label" style="width: 100px;">法人身份证:</div>
                    <div class="info_list_item_val">
                        <div class="image" v-if="form.idcardImgList[0].fileurl">
                            <img :src="form.idcardImgList[0].fileurlFull + form.idcardImgList[0].fileurl" alt="">
                        <div class="image" v-if="form.idcardImgList[0].fileurlFull">
                          <el-image
                              append-to-body
                              v-if="form.idcardImgList[0].fileurlFull"
                              style="width: 90px; height: 90px"
                              :src="form.idcardImgList[0].fileurlFull"
                              :preview-src-list="[form.idcardImgList[0].fileurlFull]">
                          </el-image>
                        </div>
                        <div class="image" v-if="form.idcardImgList[1].fileurl">
                            <img :src="form.idcardImgList[1].fileurlFull + form.idcardImgList[1].fileurl" alt="">
                        <div class="image" v-if="form.idcardImgList[1].fileurlFull">
                          <el-image
                              append-to-body
                              v-if="form.idcardImgList[1].fileurlFull"
                              style="width: 90px; height: 90px"
                              :src="form.idcardImgList[1].fileurlFull"
                              :preview-src-list="[form.idcardImgList[1].fileurlFull]">
                          </el-image>
                        </div>
                    </div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label" style="width: 100px;">企业签章:</div>
                    <div class="info_list_item_val">
                        <div class="image" v-if="form.signImg.fileurl">
                            <img :src="form.signImg.fileurlFull + form.signImg.fileurl" alt="">
                        <div class="image" v-if="form.signImg.fileurlFull">
                          <el-image
                              v-if="form.signImg.fileurlFull!=null"
                              style="width: 90px; height: 90px"
                              :src="form.signImg.fileurlFull"
                              :preview-src-list="[form.signImg.fileurlFull]">
                          </el-image>
                        </div>
                    </div>
                </div>
@@ -118,6 +144,9 @@
        </div>
        <!-- 新建/修改 -->
        <OperaCompanyWindow ref="operaCompanyWindow" @success="callback"/>
        <!-- 修改保险方案 -->
        <modification ref="modification" @success="callback"/>
        <!-- 修改手机号 -->
        <el-dialog
            title="更改绑定手机号"
            :visible.sync="visiblePhone"
@@ -130,87 +159,184 @@
                <div class="form_item">
                    <div class="form_item_label">绑定手机号:</div>
                    <div class="form_item_val">
                        <input type="text" placeholder="请输入" />
                        <el-input v-model="phone" placeholder="请输入"></el-input>
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label">验证码:</div>
                    <div class="form_item_val">
                        <input type="text" placeholder="请输入" />
                        <el-button type="primary" style="margin-left: 20px;">发送验证码</el-button>
                        <el-input v-model="code" placeholder="请输入"></el-input>
                        <el-button type="primary" style="margin-left: 20px;" @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>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visiblePhone = false">取 消</el-button>
                <el-button type="primary" @click="visiblePhone = false">提 交</el-button>
                <el-button @click="close">取 消</el-button>
                <el-button type="primary" @click="updatePhoneEvent">提 交</el-button>
            </span>
        </el-dialog>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
    import { getById } from '@/api/business/company'
    import { listForCompany } from '@/api/business/solutions'
    export default {
        name: 'OperaCompanyDescWindow',
        extends: BaseOpera,
        components: { GlobalWindow, OperaCompanyWindow },
        data () {
            return {
                ruleForm: {
                    phone: '',
                    code: ''
                },
                // 表单数据
                form: {},
                visiblePhone: false,
                options: [],
                tableData: []
            }
        },
        created () {
            this.config({
                api: '/business/company',
                'field.id': 'id'
            })
        },
        methods: {
            open (title, target) {
                const that = this;
                this.title = title
                getById(target.id)
                    .then(res => {
                        this.form = res
                        listForCompany({ companyId: target.id })
                            .then(resa => {
                                that.form.solutionList = resa.map(item => {
                                    return {
                                        solutionBaseId: item.solutionBaseId,
                                        canAdd: item.canAdd,
                                        canReduce: item.canReduce
                                    }
                                })
                                that.form.solutionListName = resa.map(item => {
                                    return {
                                        solutionName: item.solutionName,
                                        canAdd: item.canAdd,
                                        canReduce: item.canReduce
                                    }
                                })
                                that.visible = true
                            })
                    })
            },
            callback() {
                this.$emit('success')
                this.visible = false
            }
        }
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
import modification from '@/components/business/modification'
import { getById, updatePhone } from '@/api/business/company'
import { listForCompany } from '@/api/business/solutions'
import { sendSms } from '@/api/business/smsEmail'
export default {
  name: 'OperaCompanyDescWindow',
  extends: BaseOpera,
  components: { GlobalWindow, OperaCompanyWindow, modification },
  data () {
    return {
      ruleForm: {
        phone: '',
        code: ''
      },
      dataId: null,
      num: 0,
      timer: null,
      // 表单数据
      form: {},
      phone: '',
      code: '',
      visiblePhone: false,
      options: [],
      tableData: []
    }
  },
  created () {
    this.config({
      api: '/business/company',
      'field.id': 'id'
    })
  },
  methods: {
    close () {
      this.visiblePhone = false
      this.phone = ''
      this.code = ''
      clearInterval(this.timer)
      this.num = 0
    },
    updatePhoneEvent () {
      if (!this.phone) {
        this.$message.warning('请输入手机号')
        return
      }
      if (!this.code) {
        this.$message.warning('请输入验证码')
        return
      }
      updatePhone({
        id: this.form.id,
        captche: this.code,
        phone: this.phone
      }).then(res => {
        this.form.phone = JSON.parse(JSON.stringify(this.phone))
        this.$message.success('操作成功')
        this.visiblePhone = false
        this.phone = ''
        this.code = ''
        clearInterval(this.timer)
        this.num = 0
      })
    },
    send () {
      if (!this.phone) {
        this.$message.warning('请输入手机号')
        return
      }
      sendSms({ phone: this.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) {
      const that = this
      this.title = title
      this.dataId = target.id
      this.phone = ''
      this.code = ''
      clearInterval(this.timer)
      this.num = 0
      this.getDetail()
    },
    getDetail () {
      var that =this
      getById(this.dataId)
        .then(res => {
          this.form = res
          this.form.type = 1
          this.form.file = {
            imgurl: '',
            imgurlfull: ''
          }
          this.form.file1 = {
            imgurl: '',
            imgurlfull: ''
          }
          this.form.file2 = {
            imgurl: '',
            imgurlfull: ''
          }
          this.form.file3 = {
            imgurl: '',
            imgurlfull: ''
          }
          this.form.file.imgurl = res.businessImg.fileurl
          this.form.file.imgurlfull = res.businessImg.fileurlFull
          this.form.file1.imgurl = res.idcardImgList[0].fileurl
          this.form.file1.imgurlfull = res.idcardImgList[0].fileurlFull
          this.form.file2.imgurl = res.idcardImgList[1].fileurl
          this.form.file2.imgurlfull = res.idcardImgList[1].fileurlFull
          this.form.file3.imgurl = res.signImg.fileurl
          this.form.file3.imgurlfull = res.signImg.fileurlFull
          listForCompany({ companyId: this.dataId })
            .then(resa => {
              that.form.solutionList = resa.map(item => {
                return {
                  solutionBaseId: item.solutionBaseId,
                  canAdd: item.canAdd,
                  canReduce: item.canReduce
                }
              })
              that.form.solutionListName = resa.map(item => {
                return {
                  solutionName: item.solutionName,
                  canAdd: item.canAdd,
                  canReduce: item.canReduce
                }
              })
              console.log(that.form)
              that.visible = true
            })
        })
    },
    callback () {
      this.getDetail()
      this.$emit('success')
      // this.visible = false
    }
  }
}
</script>
<style lang="scss" scoped>
@@ -275,7 +401,7 @@
                align-items: start;
                margin-bottom: 20px;
                .info_list_item_label {
                    width: 150px;
                    /*width: 150px;*/
                    flex-shrink: 0;
                }
                .info_list_item_val {