li-guang
2021-01-07 86eb96901916b29f7cec87de88b9aefc77fcbcbf
忘记密码,跟进记录
2 files added
5 files modified
393 ■■■■ changed files
hive-app/App.vue 2 ●●● patch | view | raw | blame | history
hive-app/pages.json 11 ●●●●● patch | view | raw | blame | history
hive-app/pages/mine/changePassword.vue 68 ●●●●● patch | view | raw | blame | history
hive-app/pages/mine/setting.vue 4 ●●●● patch | view | raw | blame | history
hive-app/pages/workbench/followRecords/addRecord.vue 76 ●●●●● patch | view | raw | blame | history
hive-app/pages/workbench/followRecords/filter.vue 130 ●●●●● patch | view | raw | blame | history
hive-app/pages/workbench/followRecords/index.vue 102 ●●●● patch | view | raw | blame | history
hive-app/App.vue
@@ -23,5 +23,5 @@
    /*每个页面公共css */
@import url("./common/styles/index");
@import url("./static/iconfont/iconfont.css");
@import url("//at.alicdn.com/t/font_2263696_23nguodii0y.css");
@import url("//at.alicdn.com/t/font_2263696_ghdgvj09btt.css");
</style>
hive-app/pages.json
@@ -663,6 +663,17 @@
                    "scrollIndicator": "none"
                }
            }
        },
        {
            "path": "pages/mine/changePassword",
            "style": {
                "navigationBarTitleText": "修改密码",
                "navigationBarBackgroundColor":"#FFFFFF",
                "navigationBarTextStyle":"black",
                "app-plus":{
                    "scrollIndicator": "none"
                }
            }
        }
    ],
    "globalStyle": {
hive-app/pages/mine/changePassword.vue
New file
@@ -0,0 +1,68 @@
<template>
    <!-- 修改密码 -->
    <view class="container">
        <view class="mt-30">
            <input placeholder="旧密码" type="password" v-model="oldPassword" placeholder-class="placeholder" class="input-group-row"/>
            <input placeholder="新密码" type="password" v-model="newPassword" placeholder-class="placeholder" class="input-group-row"/>
            <input placeholder="确认密码" type="password" v-model="password" placeholder-class="placeholder" class="input-group-row"/>
        </view>
        <button :disabled="isDisabled" class="blue-btn btn" @click="change">确认修改</button>
    </view>
</template>
<script>
    export default{
        data(){
            return{
                oldPassword:'',
                newPassword:'',
                password:'',
                isDisabled:false
            }
        },
        methods:{
            valid(){
                if(!this.oldPassword.trim()){
                    this.$toast.info('请输入旧密码');
                    return false;
                }
                if(!this.newPassword.trim()){
                    this.$toast.info('请输入新密码');
                    return false;
                }
                if(this.newPassword.trim()!==this.password.trim()){
                    this.$toast.info('两次密码不一致');
                    return false;
                }
            },
            change(){
                if(this.valid() === false){
                    return;
                }
                this.isDisabled = true;
                this.$httpUtils.request('/api/user/modifyPwd',{
                    oldPwd: this.oldPassword.trim(),
                    newPwd: this.newPassword.trim()
                },'post').then((res)=>{
                    if(res.status == 200){
                        this.$toast.info(res.info);
                        uni.navigateBack();
                        this.isDisabled = false;
                    }
                }).catch((err) => {
                    this.$toast.info(res.info);
                    this.isDisabled = false;
                })
            }
        }
    }
</script>
<style>
    .container{
        padding: 0 30px;
    }
    .btn{
        margin-top: 40px;
    }
</style>
hive-app/pages/mine/setting.vue
@@ -1,10 +1,10 @@
<template>
    <!-- 设置 -->
    <view class="container">
        <view class="flex justify-between content-row mb-20">
        <navigator url="./changePassword" hover-class="none" class="flex justify-between content-row mb-20">
            <text class="font-16">修改登录密码</text>
            <text class="iconfont iconarrow-backimg gray"></text>
        </view>
        </navigator>
        <button class="blue-btn" @click="loginOut" v-if="isLogin==1">退出登录</button>
    </view>
</template>
hive-app/pages/workbench/followRecords/addRecord.vue
@@ -1,8 +1,84 @@
<template>
    <view class="font-14 container">
        <view class="content-row">
            <view>
                <input placeholder="请填写跟进记录" placeholder-class="placeholder font-14"/>
            </view>
            <view class="mt-15">
                <view class="add-img">
                    <text class="iconfont iconxiangji gray icon"></text>
                </view>
            </view>
        </view>
        <view class="content-row flex align-center justify-between">
            <text>客户</text>
            <navigator url="../../member/selectCustomer" hover-class="none" class="gray flex align-center">
                <text>刘亦菲</text>
                <text class="iconfont iconarrow-backimg"></text>
            </navigator>
        </view>
        <view class="content-row flex align-center justify-between">
            <text>相关订单</text>
            <navigator url="../../member/selectCustomer" hover-class="none" class="gray flex align-center">
                <text>水光面膜等三件产品</text>
                <text class="iconfont iconarrow-backimg"></text>
            </navigator>
        </view>
        <view class="content-row flex align-center justify-between">
            <text>下次跟进提醒</text>
            <picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
                <view class="gray flex align-center">
                    <text>请选择</text>
                    <text class="iconfont iconarrow-backimg"></text>
                </view>
            </picker>
        </view>
        <view class="content-row flex align-center justify-between">
            <text>设置可见范围</text>
            <view>
                <radio-group name="privacy" @change="privacyChange">
                    <label class="mr-20"><radio value="公共" color="#518EFF"  class="radio" :checked="sex==='公共'"/>公开</label>
                    <label><radio value="私人" color="#518EFF" class="radio" :checked="sex==='私人'"/>仅自己可见</label>
                </radio-group>
            </view>
        </view>
        <button class="blue-btn sticky-footer">提交跟进</button>
    </view>
</template>
<script>
    export default{
        data(){
            return{
                privacy: '私人',
            }
        },
        methods:{
            privacyChange(e){
                this.privacy = e.detail.value;
            }
        }
    }
</script>
<style>
    .container{
        padding: 0 10px;
    }
    .content-row{
        border-bottom: 1px solid #EDEAF4;
        padding: 15px 0;
    }
    .add-img{
        width: 40px;
        height: 40px;
        border: 1px solid #EDEAF4;
        padding: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .icon{
        font-size: 30px;
    }
</style>
hive-app/pages/workbench/followRecords/filter.vue
New file
@@ -0,0 +1,130 @@
<template>
    <!-- 弹窗 -->
    <uni-popup ref="popup" type="top">
        <view class="popup-container" :style="{'height':windowHeight}">
            <view class="popup-content">
                <view class="filter-content-time">
                    <text>开始时间</text>
                    <picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
                        <view class="gray flex align-center">
                            <text>请选择</text>
                            <text class="iconfont iconarrow-backimg"></text>
                        </view>
                    </picker>
                </view>
                <view class="filter-content-time">
                    <text>结束时间</text>
                    <picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
                        <view class="gray flex align-center">
                            <text>请选择</text>
                            <text class="iconfont iconarrow-backimg"></text>
                        </view>
                    </picker>
                </view>
                <view class="filter-content-row">
                    <view>
                        <text>客户</text>
                    </view>
                    <view class="img-box">
                        <image class="header-img mr-20" src="../../../static/images/default-avatar.png"></image>
                        <navigator url="../../member/selectCustomer" hover-class="none">
                            <text class="iconfont iconjia gray-outline-btn-circle ml-5"></text>
                        </navigator>
                    </view>
                </view>
                <view class="filter-content-row">
                    <view>
                        <text>员工</text>
                    </view>
                    <view class="img-box">
                        <image class="header-img mr-20" src="../../../static/images/default-avatar.png"></image>
                        <navigator url="../../manager/selectEmployee" hover-class="none">
                            <text class="iconfont iconjia gray-outline-btn-circle ml-5"></text>
                        </navigator>
                    </view>
                </view>
            </view>
            <view class="btn-group">
                <button class="white-btn flex-1">重置</button>
                <button class="blue-btn flex-1 ml-10">确定</button>
            </view>
        </view>
    </uni-popup>
</template>
<script>
    import uniPopup from '../../../components/uni-popup/uni-popup'
    import DateTimePicker from '../../../components/bory-dateTimePicker/bory-dateTimePicker.vue'
    export default {
        components: {
            uniPopup,
            DateTimePicker
        },
        data() {
            return{
                windowHeight: "200px",
            }
        },
        props:{
            isShow: {
                default: false
            }
        },
        watch:{
            isShow(newVal){
                if(newVal){
                    this.$refs.popup.open()
                }else{
                    this.$refs.popup.close()
                }
            }
        },
        mounted() {
            uni.getSystemInfo({
                success: (res) => {
                    this.windowHeight = res.windowHeight+"px";
            } })
        },
        methods:{
            showTime () {
                this.$refs['date-time'].show();
            }
        }
    }
</script>
<style>
    .popup-container{
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        background: #FFFFFF;
        padding: 0 10px;
    }
    .filter-content-time{
        display: flex;
        align-items: center;
        justify-content: space-between;
        border-bottom: 1px solid #EDEAF4;
        padding: 10px 0;
    }
    .filter-content-row{
        padding: 10px 0;
        border-bottom: 1px solid #EDEAF4;
    }
    .img-box{
        display: flex;
        align-items: center;
        padding: 0 10px;
        margin-top: 10px;
    }
    .header-img{
        width: 45px;
        height: 45px;
        border-radius: 50%;
    }
    .btn-group{
        display: flex;
        margin: 20px 0;
    }
</style>
hive-app/pages/workbench/followRecords/index.vue
@@ -16,51 +16,7 @@
                @tabClick="tabClick($event)"
            />
        </view>
        <view v-if="isShow" class="filter-content font-14">
            <view class="filter-content-time">
                <text>开始时间</text>
                <view class="gray flex align-center" @click="showTime()">
                    <text>请选择</text>
                    <text class="iconfont iconarrow-backimg"></text>
                </view>
                <date-time-picker ref='date-time' type='datetime' @change='dateTimeChange'></date-time-picker>
            </view>
            <view class="filter-content-time">
                <text>结束时间</text>
                <view class="gray flex align-center" @click="showTime()">
                    <text>请选择</text>
                    <text class="iconfont iconarrow-backimg"></text>
                </view>
                <date-time-picker ref='date-time' type='datetime' @change='dateTimeChange'></date-time-picker>
            </view>
            <view class="filter-content-row">
                <view>
                    <text>客户</text>
                </view>
                <view class="img-box">
                    <image class="header-img mr-20" src="../../../static/images/default-avatar.png"></image>
                    <navigator url="../../member/selectCustomer" hover-class="none">
                        <text class="iconfont iconjia gray-outline-btn-circle ml-5"></text>
                    </navigator>
                </view>
            </view>
            <view class="filter-content-row">
                <view>
                    <text>员工</text>
                </view>
                <view class="img-box">
                    <image class="header-img mr-20" src="../../../static/images/default-avatar.png"></image>
                    <navigator url="../../manager/selectEmployee" hover-class="none">
                        <text class="iconfont iconjia gray-outline-btn-circle ml-5"></text>
                    </navigator>
                </view>
            </view>
            <view class="flex sticky-footer">
                <button class="white-btn flex-1">重置</button>
                <button class="blue-btn flex-1 ml-10">确定</button>
            </view>
        </view>
        <view v-else class="content-row font-14" v-for="item in 2">
        <view class="content-row font-14" v-for="item in 2">
            <view class="flex align-center">
                <image class="header-img" src="../../../static/images/default-avatar.png"></image>
                <view class="flex flex-v ml-10">
@@ -71,8 +27,8 @@
            <view class="mt-10">
                <text>截图服务了杨姐,她的面部比较干燥暗沉色斑较多,约下次来做一个面部护理</text>
            </view>
            <view class="mt-10 flex">
                <image v-for="(item,index) in imgList" @click="previewImg(item.imgurl)" class="content-img mr-10" :src="item.imgurl"></image>
            <view class="mt-10 flex" :start="num">
                <image v-for="(item,index) in imgList" @click="previewImg(index)" class="content-img mr-10" :src="item"></image>
            </view>
            <view class="flex align-center justify-between mt-5">
                <text>客户:杨依依</text>
@@ -96,6 +52,7 @@
                <text>李贝: 好的,继续跟进</text>
            </view>
        </view>
        <fillter :isShow="isShowFilter" @change="changeFilter"></fillter>
        <view v-show="messageShow" class="message-row">
            <input type="text" cursor-spacing="10" :focus="messageShow" class="message-input" placeholder="评论" placeholder-class="placeholder"/>
            <button class="green-btn message-btn">发送</button>
@@ -105,11 +62,11 @@
<script>
    import HTabs from "@/components/liuyuno-tabs/liuyuno-tabs.vue";
    import DateTimePicker from '../../../components/bory-dateTimePicker/bory-dateTimePicker.vue'
    import fillter from './filter'
    export default {
        components: {
            HTabs,
            DateTimePicker
            fillter
        },
        data() {
          return {
@@ -128,21 +85,24 @@
                }
            ],
            imgList:[
                {'imgurl':'../../../static/images/banner.jpg'},
                {'imgurl':'../../../static/images/product.jpg'}
                '../../../static/images/banner.jpg',
                '../../../static/images/product.jpg'
            ],
            isShow:false,
            messageShow:false,
            isShowFilter: false,
            num:0
          }  
        },
        methods:{
            // 预览图片
            previewImg(image) {
                let imgArr=[]
                imgArr[0]=image
            previewImg(index) {
                // let imgArr=[]
                // imgArr.push(image)
                //预览图片
                uni.previewImage({
                    urls: imgArr
                    urls: this.imgList,
                    indicator:'default',
                    loop:true
                })
            },
            onNavigationBarButtonTap(e){
@@ -152,11 +112,8 @@
                    })
                }
                if(e.width && e.index==1){
                    this.isShow=!this.isShow
                    this.isShowFilter = !this.isShowFilter;
                }
            },
            showTime () {
                this.$refs['date-time'].show();
            },
            showMessage(){
                this.messageShow=!this.messageShow
@@ -190,31 +147,6 @@
        line-height: 20px;
        background: #F6F6F8;
        padding: 5px;
        margin-top: 10px;
    }
    .filter-content{
        position: fixed;
        left: 0;
        right: 0;
        height: 100%;
        background: #FFFFFF;
        padding: 0px 10px;
    }
    .filter-content-time{
        display: flex;
        align-items: center;
        justify-content: space-between;
        border-bottom: 1px solid #EDEAF4;
        padding: 10px 0;
    }
    .filter-content-row{
        padding: 10px 0;
        border-bottom: 1px solid #EDEAF4;
    }
    .img-box{
        display: flex;
        align-items: center;
        padding: 0 10px;
        margin-top: 10px;
    }
    .message-row{