|
|
@@ -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>
|