renkang
2025-01-24 d492850f1cc64ddcfaf43798af9c76c2505414fd
admin/src/views/finance/components/call.vue
@@ -2,32 +2,27 @@
    <GlobalWindow
        :title="title"
        :visible.sync="visible"
        width="100%">
        <el-form :model="form" label-position="top" ref="paramRef" :rules="rules">
            <el-form-item label="通知方式" prop="title">
                <el-checkbox-group v-model="form.title">
                    <el-checkbox label="美食/餐厅线上活动" name="1"></el-checkbox>
                    <el-checkbox label="地推活动" name="2"></el-checkbox>
                    <el-checkbox label="线下主题活动" name="3"></el-checkbox>
                    <el-checkbox label="单纯品牌曝光" name="4"></el-checkbox>
            :isDownload="true"
            width="100%"
            @downloadFile="downloadFile"
            @confirm="confirm">
        <el-form :model="form" label-position="top" ref="paramRef">
            <el-form-item label="通知方式">
                <el-checkbox-group v-model="form.type">
                    <el-checkbox label="短信"></el-checkbox>
                    <el-checkbox label="邮件"></el-checkbox>
                </el-checkbox-group>
            </el-form-item>
            <el-form-item label="通知接收人" prop="companyId">
                <div style="display: flex; flex-direction: column;">
                    <div style="display: flex; align-items: center; margin-bottom: 20px;">
                        <span style="font-size: 14px; color: black; margin-right: 10px;">张三</span>
                        <el-select v-model="form.companyId" placeholder="请选择">
                            <el-option label="区域一" value="0"></el-option>
                            <el-option label="区域二" value="1"></el-option>
            <el-form-item label="通知接收人">
                <div style="display: flex; align-items: center; margin-bottom: 10px;" v-for="(item, index) in userList" :key="index">
                    <span style="margin-right: 15px; font-size: 15px; color: #222222;">{{item.customerName}}</span>
                    <el-select v-model="item.userId" placeholder="请选择">
                        <el-option
                                v-for="(item, index) in item.memberList"
                                :key="index"
                                :label="item.name"
                                :value="item.id" />
                        </el-select>
                    </div>
                    <div style="display: flex; align-items: center;">
                        <span style="font-size: 14px; color: black; margin-right: 10px;">XXXX公司</span>
                        <el-select v-model="form.companyId" placeholder="请选择">
                            <el-option label="区域一" value="0"></el-option>
                            <el-option label="区域二" value="1"></el-option>
                        </el-select>
                    </div>
                </div>
            </el-form-item>
        </el-form>
@@ -37,24 +32,59 @@
<script>
  import GlobalWindow from '@/components/common/GlobalWindow'
  import BaseOpera from '@/components/base/BaseOpera'
  import { getNoticeCustomerData, downloadCallFeeDoc, sendSmsEmail } from '@/api/ywContractBill'
  export default {
    name: "call",
    components: { GlobalWindow },
    extends: BaseOpera,
    data() {
      return {
        ids: null,
        form: {
          title: '1',
          companyId: '0'
          type: []
        },
        rules: {
          title: [{ required: true, message: '请输入' }],
          companyId: [{ required: true, message: '请选择' }],
        }
        userList: []
      }
    },
    methods: {
      open (title, ids) {
        this.title = title
        this.ids = ids
        this.form.type = []
        this.userList = []
        this.visible = true
        this.getUser()
      },
      downloadFile() {
        downloadCallFeeDoc(this.ids)
          .then(response => {
            this.download(response)
          })
          .catch(e => {
            this.$tip.apiFailed(e)
          })
      },
      getUser() {
        getNoticeCustomerData(this.ids)
          .then(res => {
            this.userList = res
          })
      },
      confirm() {
        if (this.form.type.length === 0) return this.$message.warning('通知方式不能为空')
        let arr = this.userList.map(item => {
          return {
            billId: item.billId,
            sendEmail: this.form.type.includes('邮件') ? 1 : 0,
            sendSms: this.form.type.includes('短信') ? 1 : 0,
            userId: item.userId
          }
        })
        sendSmsEmail(arr).then(res => {
          this.$message.success('发送成功!')
          this.visible = false
        })
      }
    }
  }
</script>