busiDetail.html 14.3 KB
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>商机详情</title>
    <link rel="stylesheet" href="css/busiDetail.css">
</head>
<body>
    <div id="app" v-cloak>
        <div class="app-container" :class="{'worker-con': isWorker}">

            <img class="topImg" src="images/bg.png" alt="">
            <audio ref="audioObj" playsinline></audio>

            <!-- 状态显示 -->
            <div class="status-section" data-node-id="294:2278">
                <div class="status-content">
                    <h1 class="status-title" data-node-id="294:2279">{{ followNewInfo.statusName }}</h1>
                    <p class="status-desc" data-node-id="294:2280">{{ followNewInfo.des }}</p>
                </div>
            </div>

            <!-- 商机信息 -->
            <div class="business-info-section" data-node-id="294:2281">
                <div class="info-card" data-node-id="294:2282">
                    <h2 class="section-title" data-node-id="294:2284">商机信息</h2>
                    <div class="info-content" data-node-id="294:2285">
                        <!-- 客户地址 -->
                        <div class="info-row" data-node-id="294:2286">
                            <span class="info-label" data-node-id="294:2287">客户地址</span>
                            <span class="info-value" data-node-id="294:2288">{{ getAddressShow(businessDetail.customerAddress)}}</span>
                        </div>
                        <!-- 客户账号 -->
                        <!-- <div class="info-row" data-node-id="294:2289">
                            <span class="info-label" data-node-id="294:2290">客户账号</span>
                            <span class="info-value" data-node-id="294:2291">{{ businessDetail.maintenanceStaffPhone }}</span>
                        </div> -->
                        <!-- 客户电话 -->
                        <div class="info-row" data-node-id="294:2292">
                            <span class="info-label" data-node-id="294:2293">客户电话</span>
                            <div class="phone-container" data-node-id="294:2294">
                                <span class="info-value" data-node-id="294:2295">{{ businessDetail.customerPhone }}</span>
                                <img class="copy-icon" src="images/copy.png" data-node-id="294:2296" @click="copyPhone(1)"></img>
                            </div>
                        </div>

                        <!-- 装维师傅 -->
                        <div class="info-row" data-node-id="294:2298" v-if="!isWorker">
                            <span class="info-label" data-node-id="294:2299">装维师傅 </span>
                            <div class="phone-container" data-node-id="294:2300">
                                <span class="info-value" data-node-id="294:2301">{{ businessDetail.maintenanceStaffPhone }}</span>
                                <img class="copy-icon" src="images/copy.png" data-node-id="294:2302" @click="copyPhone(2)"></img>
                            </div>
                        </div>
                        <!-- 营销人员 -->
                        <div class="info-row" data-node-id="294:2298" v-else>
                            <span class="info-label" data-node-id="294:2299">营销人员</span>
                            <div class="phone-container" data-node-id="294:2300">
                                <span class="info-value" data-node-id="294:2301">{{ businessDetail.marketingStaffPhone }}</span>
                                <img class="copy-icon" src="images/copy.png" data-node-id="294:2302" @click="copyPhone(3)"></img>
                            </div>
                        </div>
                        
                        <!-- 营销类型 -->
                        <div class="info-row" data-node-id="294:2304">
                            <span class="info-label" data-node-id="294:2305">营销类型</span>
                            <div class="type-container" data-node-id="294:2306">
                                <div class="type-tag" v-for="item in businessDetail.tagNames">
                                    <span >{{ item }}</span>
                                </div>
                            </div>
                        </div>
                        <!-- 提交时间 -->
                        <div class="info-row" data-node-id="294:2311">
                            <span class="info-label" data-node-id="294:2312">提交时间</span>
                            <span class="info-value" data-node-id="294:2313">{{ switchTime(businessDetail.createTime) }}</span>
                        </div>
                    </div>

                    <!-- 操作按钮 -->
                    <div class="action-buttons"  v-if="isWorker">
                        <div class="action-button contact-marketer" data-node-id="294:2314" @click="takeCall('yx')">
                            <span data-node-id="294:2316">致电营销人员</span>
                        </div>
                    </div>
                    <div class="action-buttons"  v-else>
                        <div class="action-button contact-marketer" data-node-id="294:2317" @click="takeCall('customer')">
                            <span data-node-id="294:2319">联系客户</span>
                        </div>
                        <div class="action-button contact-customer" data-node-id="294:2314" @click="takeCall('zw')">
                            <span data-node-id="294:2316">致电装维师傅</span>
                        </div>
                    </div>

                </div>
            </div>

            <!-- 商机详情 -->
            <div class="business-detail-section" data-node-id="294:2363">
                <div class="detail-card">
                    <h2 class="section-title" data-node-id="294:2375">商机详情</h2>

                    <!-- 语音描述 -->
                    <div class="voice-section" v-if="businessDetail.voiceRecords && businessDetail.voiceRecords.length>0">
                        <h3 class="subtitle" data-node-id="294:2376">语音描述</h3>

                        <!-- 多条语音记录 -->
                        <div class="voiceList">
                            <div class="voiceLi" v-for="(item,index) in businessDetail.voiceRecords">
                                <div class="up">
                                    <div class="left" @click="playAudio(index)">
                                        <img v-if="item.isPlay" class="pause" src="images/play.png" alt="">
                                        <img v-else class="pause" src="images/pause.png" alt="">

                                        <img class="voice" src="images/voice.png" alt="">
                                        <div class="time">{{item.time}}</div>
                                    </div>
                                    <div class="right" v-if="!isWorker" @click="audioToText(index)">
                                        <img src="images/text.png" alt="">
                                        <div>转为文字</div>
                                    </div>
                                </div>
                                <div class="textDiv" v-if="!isWorker && item.text">{{item.text}}</div>
                            </div>
                        </div>
                    </div>

                    <!-- 文字描述 -->
                    <div class="text-section">
                        <h3 class="subtitle" data-node-id="294:2459">文字描述</h3>
                        <div class="text-content" data-node-id="294:2460">
                            <p data-node-id="294:2461">{{ businessDetail.textDescription||'暂无' }}</p>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 管理员备注 -->
            <div class="admin-notes-section" data-node-id="294:2359">
                <div class="notes-card">
                    <h2 class="section-title" data-node-id="294:2361">管理员备注</h2>
                    <div class="notes-content" data-node-id="294:2362">
                        <p data-node-id="294:2362">{{ businessDetail.adminRemark||'暂无' }}</p>
                    </div>
                </div>
            </div>

            <!-- 处理进度 -->
            <div class="progress-section" data-node-id="294:2693">
                <div class="progress-card">
                    <h2 class="section-title" data-node-id="294:2695">处理进度</h2>
                    <div class="progress-content" data-node-id="294:2696">
                        <!-- 跟进中 -->
                        <div class="progress-item" v-for="item in followList">
                            <div class="circle">
                                <div></div>
                            </div>
                            <div class="progress-status" data-node-id="294:2698">
                                <h3 class="progress-title">{{ getStatusName(item.status) }}</h3>
                                <div class="progress-details" data-node-id="294:2699">
                                    <p class="progress-time">{{ switchTime(item.createTime) }}</p>
                                    <p class="progress-desc">{{ item.followPersonName }}:{{ item.followContent }}</p>
                                    <div class="progress-img" v-if="followImgArr(item.followImages).length > 0">
                                        <img v-for="iitem in followImgArr(item.followImages)" :src="iitem">
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="botButt" v-if="!isWorker">
                <div class="bbli" @click="addBusiProcess" :style="{opacity: ifCanGj?1:0.3}">
                    <img src="images/genjin.png" alt="">
                    <div>写跟进</div>
                </div>
                <div class="bbli" @click="completeBusi" :style="{opacity: ifCanCd?1:0.3}">
                    <img src="images/chengdan.png" alt="">
                    <div>转为成单</div>
                </div>
                <div class="bbli" @click="closeBusi" :style="{opacity: ifCanGb?1:0.3}">
                    <img src="images/guanbi.png" alt="">
                    <div>关闭商机</div>
                </div>
            </div>
        </div>

        <div class="outAlertBg" v-if="gjStore.isShow">
            <div class="alertCon">
                <div class="title">写跟进</div>
                <div class="ali">
                    <div class="til">跟进内容</div>
                    <textarea v-model="gjStore.des" class="input" placeholder="请输入"></textarea>
                </div>
                <div class="ali">
                    <div class="til">上传图片(最多三张)</div>
                    <div class="imgList">
                        <div class="addImg" v-if="gjStore.imgArr.length<3">
                            <img class="add" src="images/add.png" alt="">
                            <input type="file" @change="fileChange" accept="image/*" multiple :disabled="gjStore.isLoading">
                        </div>
                        <div class="imgShow" v-for="(item,index) in gjStore.imgArr">
                            <img class="show" :src="item.url" alt="">
                            <img class="close" src="images/close.png" @click="removeImg(index)">
                        </div>
                    </div>
                    <div class="imgts">支持上传通话记录截图等凭证</div>
                </div>
                <div class="alertButt">
                    <div class="cancel" @click="gjStore.isShow = false">取消</div>
                    <div class="submit" @click="gjSubmit">提交</div>
                </div>
            </div>
        </div>

        <div class="outAlertBg" v-if="cdStore.isShow">
            <div class="alertCon">
                <div class="title">转为成单</div>
                <div class="ali">
                    <div class="til">成单理由</div>
                    <textarea v-model="cdStore.des" class="input" placeholder="请输入"></textarea>
                </div>
                <div class="alertButt">
                    <div class="cancel" @click="cdStore.isShow=false">取消</div>
                    <div class="submit" @click="cdSubmit">确认成单</div>
                </div>
                <div class="botTs">提交后将进入审核流程,审核通过前可以撤回</div>
            </div>
        </div>

        <div class="outAlertBg" v-if="gbStore.isShow">
            <div class="alertCon">
                <div class="ali">
                    <div class="til">请选择关闭原因</div>
                    <div class="choList">
                        <div class="choLi" v-for="(item,index) in gbStore.choArr" @click="gbReasonCho(index)">
                            <img v-if="!item.isCho" src="images/noCho.png" alt="">
                            <img v-else src="images/cho.png" alt="">
                            <div class="right">{{item.value}}</div>
                        </div>
                    </div>
                </div>
                <div class="alertButt">
                    <div class="cancel" @click="gbStore.isShow = false">取消</div>
                    <div class="submit" @click="gbSubmit">确认关闭</div>
                </div>
                <div class="botTs">关闭后将无法再进行任何编辑操作</div>
            </div>
        </div>

        <!-- <div class="outAlertBg">
            <div class="imgAlertCon">
                <div class="imgDiv">
                    <img src="https://pic1.arkoo.com/56D0B40F99F841DF8A2425762AE2565D/picture/o_1i4qop009177v1tgf14db15he1iaj1is.jpg" alt="">
                </div>

                <div class="choButt">
                    <div class="prev">prev</div>
                    <div class="next">next</div>
                </div>
            </div>
        </div> -->
    </div>

    <!-- 引入Vue.js -->
    <script src="js/vue.min.js"></script>
    <script src="js/axios.min.js"></script>
    <script src="js/util.js"></script>
    <script src="js/busiDetail.js?000"></script>
</body>
</html>