Ver código fonte

销售端新增获客链接新增Ipad加好友

cgp 3 semanas atrás
pai
commit
0905b03a85

+ 11 - 0
src/api/qw/acquisitionAssistant.js

@@ -116,3 +116,14 @@ export function extractLink(params) {
     data: params
   })
 }
+
+/**
+ * ipad加好友
+ */
+export function ipadBlindAdd(params) {
+  return request({
+    url: '/qw/linkInfo/ipadBlindAdd',
+    method: 'post',
+    data: params
+  })
+}

+ 245 - 1
src/views/qw/acquisitionAssistant/index.vue

@@ -163,6 +163,13 @@
             style="color: #409EFF;"
             @click="handleUploadPhones(scope.row)"
           >导入电话发送短信</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-mobile-phone"
+            style="color: #909399;"
+            @click="handleIpadBlindAdd(scope.row)"
+          >ipad加好友</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -486,6 +493,77 @@
         </template>
       </div>
     </el-dialog>
+
+    <!-- iPad获客链接加好友弹窗 -->
+    <el-dialog
+      title="iPad获客链接加好友"
+      :visible.sync="ipadBlindAddDialog.visible"
+      width="500px"
+      append-to-body
+      :close-on-click-modal="false"
+      @close="closeIpadBlindAddDialog"
+    >
+      <div v-loading="ipadBlindAddDialog.loading" element-loading-text="处理中...">
+        <el-form :model="ipadBlindAddDialog" label-width="100px">
+          <!-- 显示链接信息 -->
+          <el-form-item label="链接名称">
+            <span>{{ ipadBlindAddDialog.rowData ? ipadBlindAddDialog.rowData.linkName : '' }}</span>
+          </el-form-item>
+          <el-form-item label="链接ID">
+            <span>{{ ipadBlindAddDialog.rowData ? ipadBlindAddDialog.rowData.linkId : '' }}</span>
+          </el-form-item>
+
+          <!-- 成员选择 - 如果只有一个成员则自动选中,多个成员则需要手动选择 -->
+          <el-form-item label="选择成员" required>
+            <el-select
+              v-model="ipadBlindAddDialog.selectedUserId"
+              placeholder="请选择成员"
+              clearable
+              style="width: 100%"
+              :disabled="ipadBlindAddDialog.memberList.length === 1"
+            >
+              <el-option
+                v-for="item in ipadBlindAddDialog.memberList"
+                :key="item.id"
+                :label="`${item.qwUserName} (${item.qwUserId})`"
+                :value="item.id"
+              >
+                <span style="float: left">{{ item.qwUserName }}</span>
+                <span style="float: right; color: #8492a6; font-size: 13px">{{ item.qwUserId }}</span>
+                <div style="clear: both;"></div>
+                <div style="font-size: 12px; color: #999;" v-if="item.departmentName">
+                  部门:{{ item.departmentName }}
+                </div>
+              </el-option>
+            </el-select>
+            <div v-if="ipadBlindAddDialog.memberList.length === 1" class="el-form-item__tips" style="color: #67C23A; font-size: 12px; margin-top: 5px;">
+              该链接只有一名成员,已自动选中
+            </div>
+            <div v-else-if="ipadBlindAddDialog.memberList.length > 1" class="el-form-item__tips" style="color: #E6A23C; font-size: 12px; margin-top: 5px;">
+              该链接有 {{ ipadBlindAddDialog.memberList.length }} 名成员,请选择一名
+            </div>
+          </el-form-item>
+
+          <!-- 手机号码输入 -->
+          <el-form-item label="手机号码" required>
+            <el-input
+              v-model="ipadBlindAddDialog.phone"
+              placeholder="请输入手机号码"
+              clearable
+            />
+            <div class="el-form-item__tips" style="color: #909399; font-size: 12px; margin-top: 5px;">
+              请输入11位手机号码
+            </div>
+          </el-form-item>
+        </el-form>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="confirmIpadBlindAdd" :loading="ipadBlindAddDialog.loading">
+          确 定 添 加
+        </el-button>
+        <el-button @click="ipadBlindAddDialog.visible = false">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -501,7 +579,8 @@ import {
   qwUserCompanyList,
   sendMessageLink,
   batchCreateMessageLink,
-  extractLink
+  extractLink,
+  ipadBlindAdd
 } from '@/api/qw/acquisitionAssistant'
 
 import QRCode from 'qrcodejs2'
@@ -568,6 +647,15 @@ export default {
         fullUrl: '',
         rowData: null
       },
+      // iPad获客链接加好友弹窗数据
+      ipadBlindAddDialog: {
+        visible: false,
+        loading: false,
+        phone: '',
+        selectedUserId: null,
+        memberList: [],
+        rowData: null
+      },
       // 查询参数 - corpId作为全局筛选条件
       queryParams: {
         pageNum: 1,
@@ -1687,6 +1775,162 @@ export default {
         this.$message.warning('请先选择要上传的文件');
       }
     },
+    /** iPad获客链接加好友按钮操作 */
+    handleIpadBlindAdd(row) {
+      // 重置弹窗数据
+      this.ipadBlindAddDialog = {
+        visible: true,
+        loading: false,
+        phone: '',
+        selectedUserId: null,
+        memberList: [],
+        rowData: row
+      }
+
+      // 获取该链接关联的成员列表
+      this.loadLinkMembers(row)
+    },
+
+    /** 加载链接关联的成员列表 */
+    loadLinkMembers(row) {
+      // 解析成员ID列表
+      let memberIds = []
+
+      if (row.qwUserTableIdList) {
+        if (typeof row.qwUserTableIdList === 'string') {
+          try {
+            // 处理类似 "[28462]" 的字符串
+            const parsed = JSON.parse(row.qwUserTableIdList)
+            memberIds = Array.isArray(parsed) ? parsed : [parsed]
+          } catch (e) {
+            // 如果不是标准JSON格式,尝试按逗号分割
+            memberIds = row.qwUserTableIdList
+              .replace(/[\[\]"]/g, '')
+              .split(',')
+              .filter(id => id.trim())
+              .map(id => parseInt(id.trim()))
+          }
+        } else if (Array.isArray(row.qwUserTableIdList)) {
+          memberIds = row.qwUserTableIdList
+        }
+      }
+
+      console.log('解析出的成员ID列表:', memberIds)
+
+      if (memberIds.length === 0) {
+        this.$message.warning('该链接没有关联任何成员')
+        this.ipadBlindAddDialog.visible = false
+        return
+      }
+
+      // 从已加载的用户选项中查找成员信息
+      const memberList = []
+      memberIds.forEach(id => {
+        const user = this.qwUserOptions.find(u => u.id === id)
+        if (user) {
+          memberList.push(user)
+        }
+      })
+
+      this.ipadBlindAddDialog.memberList = memberList
+
+      // 如果只有一个成员,自动选中
+      if (memberList.length === 1) {
+        this.ipadBlindAddDialog.selectedUserId = memberList[0].id
+      }
+
+      // 如果本地没有用户数据,需要从接口获取
+      if (memberList.length === 0 && memberIds.length > 0) {
+        this.loadMembersFromApi(memberIds)
+      }
+    },
+
+    /** 从接口加载成员信息 */
+    loadMembersFromApi(memberIds) {
+      this.ipadBlindAddDialog.loading = true
+
+      getQwUserListByIds(memberIds).then(response => {
+        const members = response.data || []
+        this.ipadBlindAddDialog.memberList = members
+
+        // 将加载的用户添加到全局用户选项中,方便后续使用
+        members.forEach(user => {
+          const exists = this.qwUserOptions.some(opt => opt.id === user.id)
+          if (!exists) {
+            this.qwUserOptions.push(user)
+          }
+        })
+
+        // 如果只有一个成员,自动选中
+        if (members.length === 1) {
+          this.ipadBlindAddDialog.selectedUserId = members[0].id
+        }
+
+        this.ipadBlindAddDialog.loading = false
+      }).catch(error => {
+        console.error('加载成员信息失败:', error)
+        this.$message.error('加载成员信息失败')
+        this.ipadBlindAddDialog.loading = false
+      })
+    },
+
+    /** 确认iPad获客链接加好友 */
+    confirmIpadBlindAdd() {
+      // 验证手机号码
+      const phone = this.ipadBlindAddDialog.phone.trim()
+      if (!phone) {
+        this.$message.warning('请输入手机号码')
+        return
+      }
+
+      // 验证手机号码格式
+      const phoneRegex = /^1[3-9]\d{9}$/
+      if (!phoneRegex.test(phone)) {
+        this.$message.warning('请输入正确的11位手机号码')
+        return
+      }
+
+      // 验证是否选择了成员
+      if (!this.ipadBlindAddDialog.selectedUserId) {
+        this.$message.warning('请选择成员')
+        return
+      }
+
+      // 发送请求
+      this.ipadBlindAddDialog.loading = true
+
+      // 构建请求参数
+      const params = {
+        linkId: this.ipadBlindAddDialog.rowData.linkId,
+        userId: this.ipadBlindAddDialog.selectedUserId,
+        phone: phone,
+        qwAcquisitionAssistantId: this.ipadBlindAddDialog.rowData.id
+      }
+
+      // 调用接口
+      this.ipadBlindAdd(params).then(response => {
+        if (response.code === 200) {
+          this.$message.success(response.msg || '添加成功')
+          this.ipadBlindAddDialog.visible = false
+        } else {
+          this.$message.error(response.msg || '添加失败')
+        }
+      }).catch(error => {
+        const errorMsg = error.response?.data?.msg || error.message || '添加失败'
+        this.$message.error(errorMsg)
+      }).finally(() => {
+        this.ipadBlindAddDialog.loading = false
+      })
+    },
+
+    /** 关闭iPad获客链接加好友弹窗 */
+    closeIpadBlindAddDialog() {
+      this.ipadBlindAddDialog.visible = false
+      this.ipadBlindAddDialog.phone = ''
+      this.ipadBlindAddDialog.selectedUserId = null
+      this.ipadBlindAddDialog.memberList = []
+      this.ipadBlindAddDialog.rowData = null
+    },
   }
 }
 </script>