#
whycq
2023-09-04 cd9ceab877c858ed339f043c554abc35f029acbf
#
1个文件已添加
313 ■■■■■ 已修改文件
pages/business/saleManage/saleManageDetails.vue 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/business/saleManage/saleManageDetails.vue
New file
@@ -0,0 +1,313 @@
<template>
    <view>
        <scroll-view scroll-y="true" >
            <view class="header">
                <view class="cstmr-name">
                    <image src="../../../static/image/zuzhibumen.png" mode="aspectFit"></image>
                    <view>{{saleManage.name}}</view>
                </view>
                <view class="cstmr-tel">
                    {{saleManage.company$}} |
                    {{saleManage.money ? saleManage.pcd$ : '--'}} |
                    {{saleManage.director$ ? saleManage.pcd$ : '--'}}
                </view>
            </view>
            <view class="container">
                <view><y-title title="基本信息"></y-title></view><view></view>
                <view class="list-item1">跟踪项目</view><view class="list-item2">{{saleManage.name}}</view>
                <view class="list-item1">所属公司</view><view class="list-item2">{{saleManage.company$}}</view>
                <view class="list-item1">省市区</view><view class="list-item2">{{saleManage.pcd$ ? saleManage.pcd$ : '--'}}</view>
                <view class="list-item1">负责人</view><view class="list-item2">{{saleManage.director$ ? saleManage.director$ : '--'}}</view>
                <view class="list-item1">甲方单位</view><view class="list-item2">{{saleManage.cstmrId$  ? saleManage.cstmrId$ : '--'}}</view>
                <view class="list-item1">项目金额</view><view class="list-item2 color-main">{{saleManage.money ? saleManage.money : '--'}}</view>
                <view class="list-item1">项目地址</view><view class="list-item2">{{saleManage.addr ? saleManage.addr : '--'}}</view>
                <view class="list-item1">备注</view><view class="list-item2">{{saleManage.memo  ? saleManage.memo : '--'}}</view>
            </view>
            <view class="container">
                <view><y-title title="其他信息"></y-title></view><view></view>
                <view class="list-item1">添加人员</view><view class="list-item2 color-main">{{saleManage.createBy$}}</view>
                <view class="list-item1">添加时间</view><view class="list-item2">{{saleManage.createTime$}}</view>
                <view class="list-item1">修改人员</view><view class="list-item2">{{saleManage.updateBy$}}</view>
                <view class="list-item1">修改时间</view><view class="list-item2 color-main">{{saleManage.updateTime$}}</view>
            </view>
            <view class="container">
                <view><y-title title="跟进人"></y-title></view><view></view><view><uni-icons @click="addPerson()" type="plus" size="20" color="#55aaff"></uni-icons></view>
                <view class="list" v-for="(item,index) in followers" :key="index">
                    <view class="list-left">{{item.userName}}</view>
                    <view class="list-right"><button size="mini" style="float: right;" type="warn" @click="removeFollowers(item.userId)">移除</button></view>
                </view>
                <view class="list-none" v-show="followers.length == 0">
                    <text>暂无跟进人</text>
                </view>
            </view>
        </scroll-view>
        <view class="foot">
            <button  size="mini" type="warn" @click="del(id)">删除</button>
        </view>
        <view>
            <!-- 输入框示例 -->
            <uni-popup ref="inputDialog" type="dialog">
                <uni-popup-dialog ref="inputClose" mode="input" title="添加跟进人" value="对话框预置提示内容!"
                    placeholder="请输入内容" @confirm="confirm">
                        <uni-combox :candidates="addFollower.followers" placeholder="请选择"
                        v-model="addFollower.follower" @input="autoLoad('follower',addFollower.follower)"></uni-combox>
                </uni-popup-dialog>
            </uni-popup>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                id: 0,
                saleManage: {},
                cstmr: {
                    id: '',
                    name: '',
                    tel: '',
                    addr: '',
                    cstman: ''
                },
                addFollower: {
                    follower: '',
                    followers: '',
                    followerList: []
                },
                followers: [],
                followerIds: [],
                cstmrId: ''
            }
        },
        onLoad(option) {
            this.id = option.id
            this.init()
            this.autoLoad('follower','')
            setTimeout(()=>{
                this.getFollowers()
            },500)
        },
        methods: {
            init() {
                let that = this
                uni.request({
                    url: that.baseUrl + '/order/' + that.id +'/auth',
                    header: {'token' : uni.getStorageSync('token')},
                    method: 'GET',
                    success(res) {
                        res = res.data
                        that.saleManage = res.data
                        that.cstmr = res.data
                        that.cstmrId = that.cstmr.id
                    }
                })
            },
            del(e) {
                let that = this
                e = Number(e)
                uni.request({
                    url: that.baseUrl + '/cstmr/delete/one/' + e,
                    header: {'token' : uni.getStorageSync('token'),
                    },
                    method: 'GET',
                    success(res) {
                        res = res.data
                        if (res.code === 200) {
                            uni.navigateBack()
                        } else if (res.code === 403) {
                            uni.showToast({title: res.msg, icon: "none", position: 'top'})
                            setTimeout(() => {
                                uni.reLaunch({
                                    url: '../../login/login'
                                });
                            }, 1000);
                        } else {
                            uni.showToast({title: res.msg, icon: "none",position: 'top'})
                        }
                    }
                })
            },
            addPerson() {
                this.$refs.inputDialog.open()
            },
            // 确认选择工作人
            confirm() {
                let that = this
                var followerId
                var followerList = that.addFollower.followerList
                for (var i = 0;i < followerList.length; i++) {
                    if (followerList[i].name == this.addFollower.follower) {
                        followerId =followerList[i].value
                    }
                }
                uni.request({
                    url: that.baseUrl + '/order/followers/add/json',
                    header:{'token':uni.getStorageSync('token'),},
                    data: {
                        orderId: that.cstmrId,
                        followerIds:followerId},
                    method: 'POST',
                    success(result) {
                        var res = result.data
                        that.getFollowers()
                    }
                })
                this.addFollower.follower = ''
            },
            // 工作人列表
            autoLoad(type,condition) {
                let that = this
                that.addFollower.followers = []
                that.addFollower.followerList = []
                uni.request({
                    url: that.baseUrl + '/user/all/get/kv',
                    header:{'token':uni.getStorageSync('token')},
                    data: {condition:condition},
                    method: 'POST',
                    success(result) {
                        var res = result.data
                        if (res.code === 200) {
                            var element;
                            if (type == 'follower') {
                                for(element of res.data) {
                                    that.addFollower.followers.push(element.name)
                                    that.addFollower.followerList.push(element)
                                }
                                return
                            }
                        }
                    }
                })
            },
            getFollowers() {
                let that = this
                uni.request({
                    url: that.baseUrl + '/order/followers/table/auth',
                    header:{'token':uni.getStorageSync('token')},
                    data: {orderId:that.cstmrId},
                    method:'GET',
                    success(res) {
                        res = res.data
                        that.followers = res.data
                    }
                })
            },
            removeFollowers(userId) {
                let that = this
                uni.request({
                    url: that.baseUrl + '/order/followers/remove/auth',
                    header:{
                        'token':uni.getStorageSync('token'),
                        'content-type': 'application/x-www-form-urlencoded'
                    },
                    data: {
                        orderId:that.cstmrId,
                        userId: userId
                        },
                    method:'POST',
                    success(res) {
                        res = res.data
                        that.getFollowers()
                    }
                })
            }
        }
    }
</script>
<style>
    .header {
        width: auto;
        min-height: 110rpx;
        background-color: #fff;
        padding: 30px 20px 10px 20px;
    }
    .cstmr-name {
        display: flex;
        height: 35rpx;
        line-height: 35rpx;
        text-indent: 10rpx;
        font-size: 36rpx;
        color: #606266;
    }
    .cstmr-name image {
        width: 35rpx;
        height: 35rpx;
    }
    .cstmr-tel {
        min-height: 60rpx;
        line-height: 60rpx;
        font-size: 24rpx;
        color: #303133;
    }
    .container {
        margin-top: 10px;
        padding: 10rpx 20rpx 0 20rpx;
        background-color: #fff;
        display: grid;
        grid-template-columns: 1fr 3fr;
    }
    .container:last-child {
        grid-template-columns: 5fr 5fr 2fr;
        margin-bottom: 120rpx;
    }
    .list-item1 {
        min-height: 45rpx;
        line-height: 45rpx;
        color: #909399;
        text-indent: 30rpx;
    }
    .list-item2 {
        min-height: 45rpx;
        line-height: 45rpx;
        color: black;
    }
    .color-main {
        color: #55aaff
    }
    .foot {
        position: fixed;
        width: 100%;
        min-height: 100rpx;
        bottom: 0;
        margin-bottom: 0;
        background-color: #fff;
        border-top: 1px solid #efefef;
        display: flex;
        align-items: center;
    }
    .list {
        min-height: 60rpx;
        margin-top: 20rpx;
        grid-column: 1 / 10;
        display: grid;
        grid-template-columns: 1fr 1fr;
        position: relative;
    }
    .list-left {
        min-height: 60rpx;
        line-height: 60rpx;
        padding-left: 20rpx;
        color: #55aaff
    }
    .list-right {
        min-height: 60rpx;
        line-height: 60rpx;
        /* background-color: #222; */
        padding-right: 30rpx;
    }
    .list-none {
        min-height: 60rpx;
        margin-top: 20rpx;
        text-align: center;
        /* background-color: #303133; */
        color: #b1b3b8;
        grid-column: 1 / 10;
        display: grid;
        position: relative;
    }
</style>