Browse Source

linshi

master
王泽彦 10 months ago
parent
commit
1ae9814b14
  1. 31
      api/apiRoute.js
  2. 9
      common/config.js
  3. 179
      pages/market/clue/edit_clues_log.vue
  4. 33
      pages/market/clue/index.vue
  5. 10
      pages/market/my/firm_info.vue
  6. 48
      pages/market/my/index.vue
  7. 14
      pages/market/my/info.vue
  8. 157
      pages/market/my/update_pass.vue

31
api/apiRoute.js

@ -52,6 +52,22 @@ export default {
return res; return res;
}) })
}, },
//公共端-教师/销售端验证旧密码是否正确
common_personnelCheckOldPwd(data = {}) {
let url = '/personnel/checkOldPwd'
return http.post(url, data).then(res => {
return res;
})
},
//公共端-教师/销售端验证旧密码是否正确
common_personnelEdidPassword(data = {}) {
let url = '/personnel/edidPassword'
return http.post(url, data).then(res => {
return res;
})
},
@ -153,6 +169,13 @@ export default {
return res; return res;
}) })
}, },
//销售端-客户资源-获取修改日志列表
xs_customerResourcesGetEditLogList(data = {}) {
let url = '/customerResources/getEditLogList'
return http.get(url, data).then(res => {
return res;
})
},
//销售端-资源共享-列表 //销售端-资源共享-列表
xs_resourceSharingIndex(data = {}) { xs_resourceSharingIndex(data = {}) {
let url = '/resourceSharing/index' let url = '/resourceSharing/index'
@ -175,6 +198,14 @@ export default {
}) })
}, },
//销售端-沟通记录-添加
xs_communicationRecordsAdd(data = {}) {
let url = '/communicationRecords/add'
return http.post(url, data).then(res => {
return res;
})
},

9
common/config.js

@ -1,14 +1,19 @@
// 线上测试地址 // 线上测试地址
// const Api_url='http://aaaaaaaa.hksywl.cn/api' // const Api_url='http://146.56.228.75:20025/api'
// const img_domian = 'http://aaaaaaaa.hksywl.cn/' // const img_domian = 'http://146.56.228.75:20025/'
//本地测试地址 //本地测试地址
const Api_url='http://zhjwxt.test/api' const Api_url='http://zhjwxt.test/api'
const img_domian = 'http://zhjwxt.test/' const img_domian = 'http://zhjwxt.test/'
// const Api_url='https://zh.hnhbty.cn/api' // const Api_url='https://zh.hnhbty.cn/api'
// const img_domian = 'https://zh.hnhbty.cn/' // const img_domian = 'https://zh.hnhbty.cn/'
// const Api_url='http://146.56.228.75:20024/api'
// const img_domian = 'http://146.56.228.75:20024/'
const IsDemo = false const IsDemo = false
// const Api_url_B='http://hycrm.zeyan.wang/api/hygl' // const Api_url_B='http://hycrm.zeyan.wang/api/hygl'

179
pages/market/clue/edit_clues_log.vue

@ -1,15 +1,96 @@
<!--编辑客户--> <!--编辑客户-->
<template> <template>
<view class="assemble"> <view class="assemble">
<!--切换-->
<view class="tab_section">
<fui-segmented-control
:values="optionTable"
:current="(Number(optionTableId))"
type="button"
radius="8"
height="80"
color="#465cff"
bold="true"
@click="segmented">
</fui-segmented-control>
</view>
<!-- 客户资源修改记录-->
<scroll-view
v-show="filteredData.type == `resource`"
scroll-y="true"
:lower-threshold="lowerThreshold"
@scrolltolower="loadMoreData"
style="margin-top:40rpx;height: 80vh;"
>
<!--时间轴-->
<view class="table_list">
<fui-timeaxis background="#f8f8f8" :padding="['36rpx','16rpx']">
<fui-timeaxis-node
:lineColor="k<3?v.activeColor:'#ccc'"
:lined="k!==tableList.length-1"
v-for="(v,k) in tableList"
:key="k"
>
<!--inco-->
<view
class="fui-node"
:style="{borderColor:(k != tableList.length-1 ? '#465CFF' :'' ) }"
>
</view>
<template v-slot:right>
<view
class="fui-process__node table_itme"
:style="{paddingBottom:(k !== tableList.length-1 ? '50rpx' :'0rpx')}"
:class="{'fui-node__pb':k!==tableList.length-1}"
>
<view class="fui-title">
<!--修改时间-->
{{v.modification_time}}
</view>
<view class="itme_box">
<view class="title_name">修改人{{v.staff_id_name}} 修改了如下内容</view>
<view class="table_section">
<table class="table_box">
<!-- 自定义表头 -->
<thead>
<tr>
<th style="width: 30%; border: 1px solid #ddd; padding: 12rpx;">字段名称</th>
<th style="width: 35%; border: 1px solid #ddd; padding: 12rpx;">原数据</th>
<th style="width: 35%; border: 1px solid #ddd; padding: 12rpx;">新数据</th>
</tr>
</thead>
<!-- 自定义每一行数据 -->
<tbody>
<tr v-for="(row, index) in v.update_arr" :key="index">
<td style="border: 1px solid #ddd; padding: 12rpx;">{{ row.field_name_zh }}</td>
<td style="border: 1px solid #ddd; padding: 12rpx;">{{ row.old_value }}</td>
<td style="border: 1px solid #ddd; padding: 12rpx;">{{ row.new_value }}</td>
</tr>
</tbody>
</table>
</view>
</view>
</view>
</template>
</fui-timeaxis-node>
</fui-timeaxis>
</view>
</scroll-view>
<!-- 六要素修改记录-->
<scroll-view <scroll-view
v-show="filteredData.type == `six_speed`"
scroll-y="true" scroll-y="true"
:lower-threshold="lowerThreshold" :lower-threshold="lowerThreshold"
@scrolltolower="loadMoreData" @scrolltolower="loadMoreData"
style="margin-top:40rpx;height: 88vh;" style="margin-top:40rpx;height: 80vh;"
> >
<!--时间轴--> <!--时间轴-->
<view class="table_list"> <view class="table_list">
<fui-timeaxis background="#fff" :padding="['36rpx','16rpx']"> <fui-timeaxis background="#f8f8f8" :padding="['36rpx','16rpx']">
<fui-timeaxis-node <fui-timeaxis-node
:lineColor="k<3?v.activeColor:'#ccc'" :lineColor="k<3?v.activeColor:'#ccc'"
:lined="k!==tableList.length-1" :lined="k!==tableList.length-1"
@ -30,10 +111,12 @@
> >
<view class="fui-title"> <view class="fui-title">
2025-04-01 23:05:05 <!--修改时间-->
{{v.modification_time}}
</view> </view>
<view class="itme_box"> <view class="itme_box">
<view class="title_name">修改人张三 修改了如下内容</view> <view class="title_name">修改人{{v.staff_id_name}} 修改了如下内容</view>
<view class="table_section">
<table class="table_box"> <table class="table_box">
<!-- 自定义表头 --> <!-- 自定义表头 -->
<thead> <thead>
@ -46,20 +129,22 @@
<!-- 自定义每一行数据 --> <!-- 自定义每一行数据 -->
<tbody> <tbody>
<tr v-for="(row, index) in customTableData" :key="index"> <tr v-for="(row, index) in v.update_arr" :key="index">
<td style="border: 1px solid #ddd; padding: 12rpx;">{{ row.field }}</td> <td style="border: 1px solid #ddd; padding: 12rpx;">{{ row.field_name_zh }}</td>
<td style="border: 1px solid #ddd; padding: 12rpx;">{{ row.oldValue }}</td> <td style="border: 1px solid #ddd; padding: 12rpx;">{{ row.old_value }}</td>
<td style="border: 1px solid #ddd; padding: 12rpx;">{{ row.newValue }}</td> <td style="border: 1px solid #ddd; padding: 12rpx;">{{ row.new_value }}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</view> </view>
</view> </view>
</view>
</template> </template>
</fui-timeaxis-node> </fui-timeaxis-node>
</fui-timeaxis> </fui-timeaxis>
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
</template> </template>
@ -79,48 +164,33 @@ export default {
page:1,// page:1,//
limit:10,// limit:10,//
total:10,// total:10,//
resource_id: '',//id type:'resource',//|resource=,six_speed=
customer_resource_id: '',//id
}, },
// //
tableList:[{ tableList:[],//
title: '入场',
time: '07:00', //tab
activeColor: '#465CFF' optionTableId:0,//
}, { optionTable:[
title: '主场演讲',
time: '08:00',
descr: '马云(阿里巴巴)',
activeColor: '#465CFF'
}, {
title: '世界互联经济',
time: '08:30',
descr: '马云(阿里巴巴)',
activeColor: '#465CFF'
}, {
title: '打造自己的互联帝国',
time: '09:30',
descr: '马化腾(腾讯)',
activeColor: '#FFB703'
}, {
title: '散场',
time: '11:00',
descr: '请带走垃圾,有序散场。'
}],//
customTableData:[
{ {
field:'姓名', id: 0,
oldValue:'张三', name: '客户资源修改记录',
newValue:'11李四李四李四李四李四李四李四李四李四李四李四123', type:'resource',
},
{
id: 1,
name: '六要素修改记录',
type:'six_speed',
} }
] ]
} }
}, },
onLoad(options) { onLoad(options) {
this.filteredData.resource_id = options.resource_id//id this.filteredData.customer_resource_id = options.resource_id//id
}, },
onShow() { onShow() {
// this.init() this.init()
}, },
// //
async onPullDownRefresh() { async onPullDownRefresh() {
@ -150,7 +220,7 @@ export default {
this.filteredData.limit = 10// this.filteredData.limit = 10//
this.filteredData.total = 10// this.filteredData.total = 10//
}, },
//- //-
async getList(){ async getList(){
this.loading = true this.loading = true
@ -170,7 +240,7 @@ export default {
this.tableList = [] this.tableList = []
} }
let res = await apiRoute.xs_resourceSharingIndex(data) let res = await apiRoute.xs_customerResourcesGetEditLogList(data)
this.loading = false this.loading = false
this.isReachedBottom = false; this.isReachedBottom = false;
if (res.code != 1){ if (res.code != 1){
@ -181,6 +251,8 @@ export default {
return return
} }
console.log(123123123,res)
this.tableList = this.tableList.concat(res.data.data); // 使 concat this.tableList = this.tableList.concat(res.data.data); // 使 concat
console.log('列表1',this.tableList) console.log('列表1',this.tableList)
@ -189,6 +261,18 @@ export default {
}, },
//tag
async segmented(e) {
console.log('切换',e)
//e.id|0= 1=
let status = e.id
this.optionTableId = String(status)
this.filteredData.type = e.type//|resource=,six_speed=
await this.resetFilteredData()
await this.getList()
},
} }
} }
</script> </script>
@ -199,17 +283,20 @@ export default {
height: 100%; height: 100%;
//background-color: #292929; //background-color: #292929;
overflow: auto; overflow: auto;
.tab_section{
padding: 0 20rpx;
padding-top: 30rpx;
}
.table_list{ .table_list{
border: 1px solid red;
.itme_box { .itme_box {
margin-top: 30rpx; margin-top: 30rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 20rpx; gap: 25rpx;
.title_name{ .title_name{
font-size: 28rpx; font-size: 28rpx;
} }
.table_section{
.table_box{ .table_box{
width: 100%; width: 100%;
border-collapse: collapse; border-collapse: collapse;
@ -217,6 +304,8 @@ export default {
} }
} }
}
::v-deep .fui-timeaxis__wrap{ ::v-deep .fui-timeaxis__wrap{
} }

33
pages/market/clue/index.vue

@ -3,8 +3,6 @@
<fui-segmented-control :values="values" type="text" activeColor="#29d3b4" color="#fff" <fui-segmented-control :values="values" type="text" activeColor="#29d3b4" color="#fff"
@click="segmented"></fui-segmented-control> @click="segmented"></fui-segmented-control>
<!--我的客户--> <!--我的客户-->
<scroll-view <scroll-view
v-if="segmented_type == 1" v-if="segmented_type == 1"
@ -471,22 +469,33 @@ export default {
return; return;
} }
let param = { let param = {
sales_id: item.customerResource.id//线id staff_id: this.userInfo.id,//id
} resource_id: item.customerResource.id,//ID
// let res = await marketApi.setCallUp(param)// resource_type: '',//
// if (res.code != 1) { communication_type: 'phone',//: phone-, email-, meeting-, other-
// uni.showToast({ communication_result: 'success',//: success-, failure-, pending-
// title: res.msg, remarks: null,//
// icon: 'none' tag: null,//
// }) }
// return
// } let res = await apiRoute.xs_communicationRecordsAdd(param)//
if (res.code != 1) {
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: tel phoneNumber: tel
}) })
}, },
// //

10
pages/market/my/firm_info.vue

@ -87,16 +87,6 @@ import memberApi from '@/api/member.js';
console.log(123,this.dataInfo) console.log(123,this.dataInfo)
}, },
privacy_agreement(type){
uni.navigateTo({
url: '/pages/common/privacy_agreement?type='+type
})
},
update_pass(){
uni.navigateTo({
url: '/pages/market/my/update_pass'
})
}
} }
} }
</script> </script>

48
pages/market/my/index.vue

@ -20,12 +20,16 @@
<view class="btn"></view> <view class="btn"></view>
</view> </view>
</view> </view>
<view class="bottom"> <view class="bottom" v-for="(v,k) in userInfo.cameus_dept_arr">
<view class="title">部门</view> <view class="left">
<view class="title">{{userInfo.department_name_str}}</view> <view class="title">校区</view>
<view class="title">{{v.campus_id_name}}</view>
</view>
<view class="division"></view> <view class="division"></view>
<view class="title">等级</view> <view class="right">
<view class="title">S5</view> <view class="title">部门</view>
<view class="title dept">{{v.dept_name_str}}</view>
</view>
</view> </view>
</view> </view>
@ -84,10 +88,10 @@
</view> </view>
<view class="section_box"> <view class="section_box">
<view class="item" @click="openViewFeedback()"> <!-- <view class="item" @click="openViewFeedback()">-->
<view>意见反馈</view> <!-- <view>意见反馈</view>-->
<view></view> <!-- <view></view>-->
</view> <!-- </view>-->
<view class="item" @click="openViewSetUp()"> <view class="item" @click="openViewSetUp()">
<view>设置</view> <view>设置</view>
@ -165,6 +169,16 @@ export default {
}) })
return return
} }
res.data.cameus_dept_arr.forEach((v,k)=>{
let d_arr = []
v.dept_arr.forEach((dv,dk)=>{
d_arr.push(dv.dept_name)
})
//
v.dept_name_str = d_arr.join(',')
})
this.userInfo = res.data this.userInfo = res.data
}, },
@ -275,7 +289,7 @@ export default {
// //
.user_section { .user_section {
background-color: #29D3B4; background-color: #29D3B4;
padding-top: 58rpx; padding-top: 10rpx;
padding-bottom: 42rpx; padding-bottom: 42rpx;
color: #fff; color: #fff;
font-size: 28rpx; font-size: 28rpx;
@ -314,15 +328,27 @@ export default {
padding: 0rpx 40rpx; padding: 0rpx 40rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: flex-start;
.title{ .title{
font-size: 28rpx; font-size: 28rpx;
} }
//线
.division{ .division{
width: 2px; width: 2px;
height: 35rpx; height: 35rpx;
background-color: #fff; background-color: #fff;
} }
.left{
width: 48%;
display: flex;
}
.right{
width: 48%;
display: flex;
.dept{
width: 70%;
}
}
} }
} }

14
pages/market/my/info.vue

@ -39,7 +39,8 @@
部门 <text class="required"></text> 部门 <text class="required"></text>
</view> </view>
<view class="input"> <view class="input">
<input disabled :placeholder="formData.department_name_str" /> <!-- <input disabled :placeholder="formData.department_name_str" />-->
<view class="dept disabled">{{formData.department_name_str || '暂无'}}</view>
</view> </view>
</view> </view>
@ -455,6 +456,7 @@ export default {
.btn{} .btn{}
.title{ .title{
min-width: 100rpx;
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 26rpx; font-size: 26rpx;
@ -465,9 +467,19 @@ export default {
} }
} }
.input{ .input{
display: flex;
justify-content: flex-end;
input{ input{
text-align: right; text-align: right;
} }
.dept{
width: 50%;
}
.disabled{
color: #808080;
//
cursor: not-allowed;
}
} }
} }
} }

157
pages/market/my/update_pass.vue

@ -2,7 +2,7 @@
<template> <template>
<view> <view>
<view class="title"> <view class="title">
<view :class="{'green-text': tset_style === 1}">1.验证手机号</view> <view :class="{'green-text': tset_style === 1}">1.验证旧密</view>
<view :class="{'green-text': tset_style === 2}">2.设置新密码</view> <view :class="{'green-text': tset_style === 2}">2.设置新密码</view>
</view> </view>
<view :style="{'background-color':'#fff','width':'100%','height':'100vh' }"> <view :style="{'background-color':'#fff','width':'100%','height':'100vh' }">
@ -12,24 +12,36 @@
为保障您的账号安全修改密码前请填写原密码 为保障您的账号安全修改密码前请填写原密码
</view> </view>
<view style="width: 95%;margin:30rpx auto;"> <view style="width: 95%;margin:30rpx auto;">
<fui-input borderTop placeholder="请输入原登录密码" v-model="user" @input="input" <fui-input borderTop placeholder="请输入原登录密码" v-model="old_password"
backgroundColor="#f2f2f2"></fui-input> backgroundColor="#f2f2f2"></fui-input>
</view> </view>
</view> </view>
<view v-if="tset_style == 2"> <view v-if="tset_style == 2">
<view style="width: 95%;margin:30rpx auto;"> <view style="width: 95%;margin:30rpx auto;">
<fui-input borderTop placeholder="请设置6-20位新的登录密码" v-model="user" @input="input" <fui-input borderTop placeholder="请设置6-20位新的登录密码" v-model="formData.new_password" @input="input"
backgroundColor="#f2f2f2"></fui-input> backgroundColor="#f2f2f2"></fui-input>
</view> </view>
<view style="width: 95%;margin: auto;"> <view style="width: 95%;margin: auto;">
<fui-input borderTop :padding="['20rpx','32rpx']" v-model="code" placeholder="请再次输入新的登录密码" @input="input" <fui-input borderTop :padding="['20rpx','32rpx']" v-model="formData.new_password_2" placeholder="请再次输入新的登录密码" @input="input"
backgroundColor="#f2f2f2"> backgroundColor="#f2f2f2">
</fui-input> </fui-input>
</view> </view>
</view> </view>
<view style="width: 95%;margin:60rpx auto;"> <view style="width: 95%;margin:60rpx auto;">
<fui-button background="#00be8c" radius="5rpx" @click="nextStep" v-if="tset_style == 1">下一步</fui-button> <view class="btn_box">
<fui-button
background="#465cff"
radius="5rpx"
@click="nextStep(1)"
v-if="tset_style != 1">上一步
</fui-button>
<fui-button background="#00be8c" radius="5rpx" @click="nextStep(2)" v-if="tset_style == 1">下一步</fui-button>
<fui-button background="#00be8c" radius="5rpx" @click="submit" v-if="tset_style == 2">提交</fui-button> <fui-button background="#00be8c" radius="5rpx" @click="submit" v-if="tset_style == 2">提交</fui-button>
</view>
<view style="width: 95%;margin:60rpx auto;"> <view style="width: 95%;margin:60rpx auto;">
<fui-button background="#fff" radius="5rpx" @click="forgot" color="#999999" v-if="tset_style == 1">忘记原密码</fui-button> <fui-button background="#fff" radius="5rpx" @click="forgot" color="#999999" v-if="tset_style == 1">忘记原密码</fui-button>
</view> </view>
@ -39,35 +51,138 @@
</template> </template>
<script> <script>
import apiRoute from '@/api/apiRoute.js';
export default { export default {
data() { data() {
return { return {
code: '', code: '',
user: '', user: '',
tset_style: 1, tset_style: 1,//tab|1=,2=
old_password:'',//
formData:{
phone:'',//
new_password:'',//
new_password_2:'',//
key_value:'',//key_value
},
} }
}, },
onLoad() { onLoad() {},
onShow() {
this.init()//
}, },
methods: { methods: {
sendCode() { //
// async init(){
setTimeout(() => { await this.getUserInfo()
// },
//... //
//success async getUserInfo() {
this.$refs.fui_cdv && this.$refs.fui_cdv.success() let res = await apiRoute.getPersonnelInfo({})
}, 800) if (res.code != 1) {
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
this.formData.phone = res.data.phone//
}, },
nextStep(){
this.tset_style = 2 ///
async nextStep(tset_style){
//tset_style|1=,2=
if(tset_style == 2){
if(!this.old_password){
uni.showToast({
title: '请输入原登录密码',
icon: 'none'
})
return
}
//
let params = {
old_password: this.old_password
}
//
let res = await apiRoute.common_personnelCheckOldPwd(params)
if(!res.code){
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
this.formData.key_value = res.data.key_value
}
this.tset_style = Number(tset_style)
}, },
//
forgot() { forgot() {
uni.navigateTo({ uni.navigateTo({
url: '/pages/student/login/forgot' url: '/pages/student/login/forgot'
}) })
}, },
//
async submit() {
//
if (!this.formData.new_password) {
uni.showToast({
title: '请输入新密码',
icon: 'none'
})
return
}
if (this.formData.new_password.length < 6 || this.formData.new_password.length > 20) {
uni.showToast({
title: '新密码长度为6-20位',
icon: 'none'
})
return
}
if (!this.formData.new_password) {
uni.showToast({
title: '请输入新密码',
icon: 'none'
})
return
}
//
if (this.formData.new_password != this.formData.new_password_2) {
uni.showToast({
title: '两次密码不一致',
icon: 'none'
})
return
}
let res = await apiRoute.common_personnelEdidPassword(this.formData)
if(!res.code){
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
uni.showToast({
title: res.msg,
icon: 'success'
})
//1s
setTimeout(() => {
//-
uni.navigateTo({
url: `/pages/market/my/index`
})
}, 1000)
},
} }
} }
</script> </script>
@ -104,4 +219,10 @@
color: #999999; color: #999999;
padding-left: 30rpx; padding-left: 30rpx;
} }
.btn_box{
display: flex;
flex-direction: column;
gap: 40rpx;
}
</style> </style>
Loading…
Cancel
Save