master
yujialong 2 years ago
parent a346cc0db3
commit 7bd7775908
  1. 31
      App.vue
  2. 4
      apis/modules/order.js
  3. 14
      apis/request.js
  4. 10
      libs/util.js
  5. 56
      order/addCourse/addCourse.vue
  6. 243
      order/curClient/curClient.vue
  7. 44
      order/editCourse/editCourse.vue
  8. 148
      order/orderDetail/orderDetail.vue
  9. 1
      order/ordered/ordered.vue
  10. 10
      order/orders/orders.vue
  11. 12
      pages.json
  12. 4
      pages/account/account.vue
  13. 9
      pages/clientDetail/clientDetail.vue
  14. 2
      pages/clients/clients.vue
  15. 4
      pages/email/email.vue
  16. 3
      pages/index/index.vue
  17. 1
      pages/person/person.vue
  18. 8
      pages/phone/phone.vue
  19. 2
      pages/plans/plans.vue
  20. 2
      pages/products/products.vue
  21. 20
      pages/setting/setting.vue
  22. BIN
      static/image/trash.png
  23. 2
      styles/common.scss

@ -4,7 +4,38 @@
},
onShow: function() {
console.log('App Launch');
const updateManager = uni.getUpdateManager();
//
updateManager.onCheckForUpdate(function (res) {
//
console.log('onCheckForUpdate', res.hasUpdate);
});
//
updateManager.onUpdateReady(function (res) {
console.log('onUpdateReady', res);
uni.showModal({
title: '更新提示',
content: '新版本已经准备好,点击确定重新启动',
showCancel:false,
success(res) {
if (res.confirm) {
// applyUpdate
updateManager.applyUpdate();
}
}
});
});
updateManager.onUpdateFailed(function (res) {
console.log('onUpdateFailed', res);
//
uni.showModal({
title: '已经有新版本了哟~',
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'
});
})
}
}
</script>

@ -25,6 +25,10 @@ export const list = (data) => {
return post('nakadai/applets/order/orderList', data)
}
export const orderList = (data) => {
return post('nakadai/nakadai/order/list', data)
}
export const del = (data) => {
return post('nakadai/nakadai/order/delete', data)
}

@ -5,11 +5,11 @@ const request = options => {
HTTP_COUNT++
if (config.showLoading) {
// 请求数据时的loading
uni.showToast({
title: '加载中',
duration: 200,
icon: 'loading'
})
// uni.showToast({
// title: '加载中',
// duration: 200,
// icon: 'loading'
// })
}
const header = Object.assign({}, config.headers, {
token: uni.getStorageSync('token')
@ -59,8 +59,8 @@ const request = options => {
},
complete: () => {
if (config.showLoading) {
HTTP_COUNT--
HTTP_COUNT || uni.hideLoading()
// HTTP_COUNT--
// HTTP_COUNT || uni.hideLoading()
}
}
})

@ -13,16 +13,18 @@ export default {
})
},
// 成功提示
sucMsg(title) {
sucMsg(title, duration = 1500) {
uni.showToast({
title
title,
duration
})
},
// 错误提示
errMsg(title) {
errMsg(title, duration = 1500) {
uni.showToast({
title,
icon: 'none'
icon: 'none',
duration
})
},
// 如果非数字,则返回0

@ -9,8 +9,8 @@
</ul>
<ul class="list">
<li v-for="item in list">
<uni-data-checkbox class="check" multiple v-model="item.check" :localdata="item.checkData"></uni-data-checkbox>
<li v-for="(item, i) in list">
<uni-data-checkbox class="check" multiple v-model="item.check" :localdata="item.checkData" @change="e => checkChange(e, i)"></uni-data-checkbox>
<image v-if="item.miniProgramPictureAddress" class="icon" :src="item.miniProgramPictureAddress" mode="widthFix"></image>
{{ item.productName }}
</li>
@ -18,8 +18,8 @@
<uni-load-more :status="status" />
<view class="btn-wrap">
<uni-data-checkbox class="check" multiple v-model="checkAll" :localdata="checkAllData" @change="checkChange"></uni-data-checkbox>
<view class="btn" @click="submit">确定</view>
<uni-data-checkbox class="check" multiple v-model="checkAll" :localdata="checkAllData" @change="allChange"></uni-data-checkbox>
<view class="btn" @click="submit">确定({{ checked.length }})</view>
</view>
</view>
</template>
@ -70,6 +70,7 @@
text: '全部',
value: 1
}],
checked: uni.getStorageSync('courses') || [], //
courses: uni.getStorageSync('courses') || []
}
},
@ -77,7 +78,7 @@
keyword () {
clearTimeout(this.searchTimer)
this.searchTimer = setTimeout(() => {
this.getList()
this.initList()
}, 500)
}
},
@ -108,30 +109,34 @@
getList() {
AppletsDataProductList({
sort: '',
keywords: '',
keywords: this.keyword,
productType: this.curTab,
pageNum: this.page,
pageSize: this.pageSize
}).then(({ data }) => {
const { records } = data
const list = this.courses
const all = this.checkAll.length //
const pageChange = this.reachBottom > 0 //
const { checked } = this //
//
records.map(e => {
const checkData = {
text: '',
value: 1
}
e.check = []
e.check = (all && pageChange) || checked.find(n => n.id === e.id && n.productType === e.productType) ? [1] : []
//
if (list.find(n => n.dataOrCourseId == e.id)) {
checkData.disable = true //
if (list.find(n => n.dataOrCourseId == e.id && n.productType == e.productType)) {
//
checkData.disable = true
e.check = [1]
}
e.checkData = [checkData]
})
// list
this.list = this.reachBottom > 0 ? [...this.list, ...records] : records
this.list = pageChange ? [...this.list, ...records] : records
this.page++ // page+1
const noMore = this.list.length === data.total //
this.status = noMore ? 'noMore' : 'more' // noMore
@ -148,14 +153,29 @@
this.curTab = tab.id
this.initList()
},
//
checkChange(e, i) {
const { checked } = this
const item = this.list[i]
const { id, productType } = item
const include = checked.findIndex(e => e.id === id && e.productType === productType)
// pushpush
if (e.detail.value.length) {
include === -1 && checked.push(item)
} else {
//
include === -1 || checked.splice(include, 1)
}
},
//
checkChange(e) {
allChange(e) {
const checked = !!e.detail.value.length
this.list.map(e => e.check = [checked ? 1 : '']) // [1][]
this.list.map(e => e.check = checked ? [1] : []) // [1][]
},
//
createParam(e) {
const { orderType } = this
const trial = orderType == 2 //
return {
dataOrCourseId: e.id, // id
productName: e.productName, //
@ -165,17 +185,17 @@
remainingPeriod: '', //
marketValue: '', //
marketPrice: e.marketPrice, //
finalPrice: orderType == 2 ? 0 : '', //
discountRate: '', //
finalPrice: trial ? 0 : '', //
discountRate: trial ? '0%' : '', //
accountNum: e.productType === 2 ? '' : 1, //
totalAmount: '', //
isEnable: 1, // 10
ship: 0, // 01
authority: e.productType === 2 ? 0 : 1, // 01
productType: e.productType, // (0-> 1- 2 )
options: 1,
options: 2,
miniProgramPictureAddress: e.miniProgramPictureAddress, //
settlementPrice: orderType == 2 ? 0 : '', //
settlementPrice: trial ? 0 : '', //
settlementMethod: e.settlementMethod, // 01
settlementPriceUnit: e.settlementPrice, //
businessProportion: e.businessProportion, //
@ -204,7 +224,7 @@
},
//
submit() {
const list = this.list.filter(e => e.check.length) //
const list = this.checked //
if (list.length) {
const result = this.courses
const courseIds = []
@ -212,7 +232,7 @@
const { customerId } = this
list.map(e => {
// id
if (!result.find(n => n.dataOrCourseId == e.id && n.authority == e.authority)) {
if (!result.find(n => (n.dataOrCourseId == e.id || n.dataOrCourseId == e.dataOrCourseId) && ((n.authority && e.productType != 2) || (!n.authority && e.productType == 2)))) {
e.productType === 2 ? dataIds.push(e.id) : courseIds.push(e.id)
result.push(this.createParam(e))
}

@ -0,0 +1,243 @@
<template>
<view>
<view class="filter">
<uni-search-bar class="search" radius="30" placeholder="请输入订单号、内容" v-model="keyword" clearButton="auto" cancelButton="none" />
<uni-icons class="icon" custom-prefix="iconfont" type="icon-filter" size="22" color="#007eff" @click="popup = true"></uni-icons>
</view>
<template v-if="list.length">
<view class="list">
<uni-swipe-action>
<uni-swipe-action-item
v-for="item in list"
:threshold="0"
:right-options="delOption"
@click="del(item)"
>
<view class="item" @click="toDetail(item)">
<view class="c-name">{{ item.orderNumber }}</view>
<view class="info">
<view class="left">
<view v-if="curTab" class="line">
<text class="name">商务经理</text>
<text class="val">{{ item.businessManagerName }}</text>
</view>
<view class="line">
<text class="name">订单名称</text>
<text class="val">{{ item.customerName }}</text>
</view>
<view class="line">
<text class="name">订单金额</text>
<text class="val">{{ item.orderAmount }}</text>
</view>
<view class="line">
<text class="name">订单内容</text>
<view class="val ell-wrap">
<view :class="{ell: !item.toggle}">{{ item.orderContent }}</view>
<view v-if="item.orderContent.length > 14" class="toggle" @click.stop="toggle(item)">{{ item.toggle ? '收起' : '展开' }}</view>
</view>
</view>
<view class="line">
<text class="name">下单日期</text>
<text class="val">{{ item.createTime }}</text>
</view>
</view>
<view :class="['type', 'type' + item.orderStatus]">
{{ filterData[0].data.find(e => e.value === item.orderStatus).title }}
</view>
</view>
</view>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
</template>
<empty v-else></empty>
<uni-icons class="plus" type="plus-filled" size="60" color="#007eff" @click="$util.to(`../orderDetail/orderDetail?customerId=${customerId}`)"></uni-icons>
<filter-popup :data="filterData" :form.sync="filterForm" v-model="popup" title="全部筛选" height="1104rpx" @finsh="subFinsh"></filter-popup>
</view>
</template>
<script>
import { orderList, del } from '@/apis/modules/order.js'
export default {
data() {
return {
customerId: '',
customerName: '',
popup: false,
//
filterData: [
{
children: false,//
title: "订单状态",
key: "orderStatus", //
keyValue: "value", //
isRadio: true, //
data: [
{
title: "待发货",
value: 0
},
{
title: "已完成",
value: 1
},
],
}
],
filterForm: {},
isFilter: 0, // 0->,1->
searchTimer: null,
orderStatus: '',
keyword: '',
list: [],
listAll: [],
page: 1,
pageSize: 10,
delOption: [{
text: '删除',
style: {
backgroundColor: '#F56C6C'
}
}]
}
},
watch: {
keyword () {
clearTimeout(this.searchTimer)
this.searchTimer = setTimeout(() => {
this.filter()
}, 500)
}
},
//
onPullDownRefresh() {
this.getList()
setTimeout(() => {
uni.stopPullDownRefresh()
}, 1500)
},
onShow() {
const pages = getCurrentPages()
const { options } = pages[pages.length - 1]
this.customerId = options.customerId
this.customerName = options.name
this.getList()
},
methods: {
getList() {
orderList({
cityId: '',
customerName: this.customerName,
orderStatus: this.orderStatus,
orderType: '',
pageNo: 1,
pageSize: 10000,
provinceId: ''
}).then(({ orderPage }) => {
const { orders } = orderPage
this.list = orders
this.listAll = orders
}).catch(e => {})
},
//
toggle(item) {
item.toggle = !item.toggle
},
//
subFinsh(val) {
const { orderStatus } = val
this.orderStatus = orderStatus.length ? orderStatus[0] : ''
this.getList()
},
//
filter() {
const list = this.listAll
const { keyword } = this
this.list = list.filter(e => e.orderNumber.includes(keyword) || e.orderContent.includes(keyword))
},
//
toDetail(item) {
this.$util.to(`../orderDetail/orderDetail?orderId=${item.orderId}&show=1`)
},
//
del(e) {
const that = this
uni.showModal({
title: '提示',
content: '确定要删除吗?',
success(res) {
if (res.confirm) {
del({
ids: [e.orderId]
}).then(res => {
that.$util.sucMsg('删除成功')
that.getList()
}).catch(res => {})
}
}
})
},
}
}
</script>
<style scoped lang="scss">
.list {
margin-top: 20rpx;
background-color: #fff;
.item {
padding: 20rpx 40rpx;
border-bottom: 1px solid #f1f1f1;
}
.c-name {
font-size: 30rpx;
color: #333;
}
.info {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10rpx;
}
.left {
max-width: 70%;
}
.line {
display: flex;
padding: 10rpx 0;
}
.name {
margin-right: 10rpx;
white-space: nowrap;
font-size: 28rpx;
color: #999;
}
.val {
max-width: 88%;
font-size: 28rpx;
color: #333;
}
.ell {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.toggle {
margin-top: 10rpx;
white-space: nowrap;
font-size: 24rpx;
color: #0e92ef;
}
.type {
margin-left: 20rpx;
font-size: 28rpx;
color: #ff7b2d;
white-space: nowrap;
}
.type1 {
color: #bdbdbd;
}
}
</style>

@ -16,15 +16,15 @@
<view class="form-list">
<view class="line">
<view class="name">产品类型</view>
<view class="val">{{ item.provinceName }}</view>
<view class="val">{{ productTypes.find(e => e.id === item.productType).name }}</view>
</view>
<view class="line req">
<view class="name">使用期限</view>
<input type="text" v-model="item.periodOfUse" placeholder="请输入" @change="calcDate(item, !item.authority)">
<input type="number" v-model="item.periodOfUse" placeholder="请输入" @change="calcDate(item, !item.authority)">
</view>
<view class="line">
<view class="name">使用期限单位</view>
<uni-data-picker class="picker-input" placeholder="请选择" popup-title="请选择" preload :clear-icon="false" :localdata="units" v-model="item.options" @change="calcDate(item)"></uni-data-picker>
<uni-data-picker class="picker-input" placeholder="请选择" popup-title="请选择" :clear-icon="false" :localdata="units" v-model="item.options" @change="calcDate(item)"></uni-data-picker>
</view>
<view class="line req">
<view class="name">起止日期</view>
@ -37,7 +37,7 @@
<view class="line req">
<view class="name">数量</view>
<view v-if="item.authority" class="val">1</view>
<input v-else type="text" v-model="item.accountNum" placeholder="请输入" @change="calcFinalPrice(item)">
<input v-else type="number" v-model="item.accountNum" placeholder="请输入" @change="calcFinalPrice(item)">
</view>
<view class="line">
<view class="name">{{ item.authority ? '市场价' : '市场单价' }}</view>
@ -58,7 +58,7 @@
<view class="line req">
<view class="name">成交价</view>
<view class="inline">
<input type="text" v-model="item.finalPrice" placeholder="请输入" @change="calcFinalValue(item)">
<input type="number" v-model="item.finalPrice" placeholder="请输入" @change="calcFinalValue(item)">
</view>
</view>
@ -89,6 +89,20 @@
text: '年',
value: 2
}],
productTypes: [
{
name: '实训课程',
id: 1
},
{
name: '理论课程',
id: 0
},
{
name: '数据产品',
id: 2
}
],
courses: {} , //
orderRepeat: [],
repeatMsg: ''
@ -129,8 +143,10 @@
type === 1 ?
courses.practice.list.push(e) :
courses.data.list.push(e)
})
this.courses = courses
console.log(22, this.courses, this.classes)
try {
uni.removeStorageSync('courses')
} catch (e) {}
@ -172,16 +188,14 @@
row.remainingPeriod = endYears
const unit = row.options // 使
const useUnit = row.periodOfUse // 使
//
if (row.authority) {
const price = row.marketPrice //
// //365,/12)
row.marketValue = (!unit ?
price / 365 * useUnit :
unit === 1 ?
price / 12 * useUnit :
price * useUnit).toFixed(2)
}
//
const price = row.marketPrice //
// //365,/12)
row.marketValue = (!unit ?
price / 365 * useUnit :
unit === 1 ?
price / 12 * useUnit :
price * useUnit).toFixed(2)
this.dealSettlePrice(row)
// +1
if (!fromData) {

@ -22,7 +22,7 @@
</view>
<view class="line">
<view class="name">联系人</view>
<view class="val">{{ form.name }}</view>
<view class="val">{{ form.orderContact }}</view>
</view>
<view class="line">
<view class="name">电话</view>
@ -57,13 +57,13 @@
<view class="l-title">{{ c.name }}</view>
<uni-icons class="arrow" type="top" size="20" color="#007EFF" @click="toggle(c)"></uni-icons>
<ul class="pro-list" v-show="!c.shrink">
<li v-for="(item, i) in c.list">
<li v-for="(item, i) in c.list" @click.stop="editCourse(c, i)">
<view class="name">
<view class="left">
<image v-if="item.miniProgramPictureAddress" class="icon" :src="item.miniProgramPictureAddress" mode="widthFix"></image>
{{ item.productName }}
</view>
<uni-icons v-if="!isDetail" class="del" type="trash" size="25" color="#ADADAD" @click="delCourse(c, i)"></uni-icons>
<image v-if="!isDetail" class="del" src="@/static/image/trash.png" mode="widthFix" @click.stop="delCourse(c, i)"></image>
</view>
<view class="info">
<view class="line">
@ -97,15 +97,17 @@
</template>
<view class="bottom">
<view v-if="!orderId" class="add-btn" @click="toAdd">
<uni-icons class="icon" type="plus" color="#007FFF"></uni-icons>
添加产品
<view v-if="!orderId" class="add-wrap">
<view class="add-btn" @click="toAdd">
<uni-icons class="icon" type="plus" color="#007FFF"></uni-icons>
添加产品
</view>
</view>
<view class="product">
<view :class="['product', isDetail ? 'show' : 'edit']">
<view class="text">
<view class="total">
已选
{{ isDetail ? '共' : '' }}
<text class="num">{{ courses.length }}</text>
个产品&emsp;
总成交价合计
@ -113,10 +115,12 @@
</view>
<view class="info">
总采购成本:
<text class="num num1">{{ form.purchaseCost }}</text>
总产品利润:
<text class="num"> {{ form.profit }}</text>
<view class="line">
总采购成本:<text class="num">{{ form.purchaseCost }}</text>
</view>
<view class="line">
总产品利润:<text class="num"> {{ form.profit }}</text>
</view>
</view>
</view>
<view v-if="!isDetail" class="btn" @click="submit">提交</view>
@ -165,7 +169,7 @@
orderAmount: 0,
customerName: '',
profit: 0, //
purchaseCost: '', //
purchaseCost: 0, //
teamId: uni.getStorageSync('team').teamId,
businessManagerId: this.$util.getBmId()
},
@ -308,7 +312,7 @@
form.cityName = e.cityName
form.phone = e.phone
form.email = e.email
form.name = e.name
form.orderContact = e.name
}).catch(e => {})
this.closeCustomer()
},
@ -320,13 +324,32 @@
this.$util.to(`../addCourse/addCourse?orderType=${orderType}&customerId=${customerId}`) :
this.$util.errMsg('请先选择客户!')
},
//
editCourse(c, i) {
if (this.isDetail) return false
uni.setStorageSync('courses', this.courses)
const { customerId, orderType } = this.form
this.$util.to(`../editCourse/editCourse?orderType=${orderType}&customerId=${customerId}`)
},
//
delCourse(c, i) {
const that = this
uni.showModal({
title: '提示',
content: '确定要删除吗?',
success(res) {
res.confirm && c.list.splice(i, 1)
if (res.confirm) {
c.list.splice(i, 1)
const courses = []
const list = that.courseList
for (const j in list) {
list[j].list.map(n => {
courses.push(n)
})
}
that.courses = courses
that.calcTotal()
}
}
})
},
@ -337,31 +360,28 @@
//
calcTotal() {
const { form } = this
//
if (!form.purchaseCost && !form.profit) {
let total = 0
const list = this.courses
let purchase = 0 //
let profit = 0 //
/**
* 1总采购成本+总产品利润=总成交价格
let total = 0
const list = this.courses
let purchase = 0 //
let profit = 0 //
/**
* 1总采购成本+总产品利润=总成交价格
2单个产品采购成本 =结算价+平台服务费
2单个产品采购成本 =结算价+平台服务费
3平台服务费=结算价*10%
3平台服务费=结算价*10%
4单个产品的利润=成交价-采购成本
4单个产品的利润=成交价-采购成本
总成本和总利润为单个产品的采购成本价和利润的和
*/
list.map(e => {
const curPurchase = +e.settlementPrice + +e.serviceFee
purchase += curPurchase
profit += +e.finalPrice - curPurchase
})
form.purchaseCost = Math.round(purchase)
form.profit = Math.round(profit)
}
总成本和总利润为单个产品的采购成本价和利润的和
*/
list.map(e => {
const curPurchase = +e.settlementPrice + +e.serviceFee
purchase += curPurchase
profit += +e.finalPrice - curPurchase
})
form.purchaseCost = Math.round(purchase)
form.profit = Math.round(profit)
form.orderAmount = +form.purchaseCost + +form.profit
},
//
@ -431,6 +451,9 @@
display: inline-flex;
align-items: center;
}
.del {
width: 40rpx;
}
.icon {
width: 60rpx;
height: 60rpx;
@ -473,13 +496,17 @@
padding-bottom: env(safe-area-inset-bottom);
width: 100%;
background-color: #fff;
box-shadow: 0 -2px 2px #f5f5f5;
box-sizing: border-box;
}
.add-wrap {
padding: 16rpx 24rpx 40rpx;
background-color: #f5f5f5;
}
/deep/.add-btn {
display: flex;
justify-content: center;
align-items: center;
margin: 16rpx 24rpx;
font-size: 28rpx;
line-height: 88rpx;
color: #007EFF;
@ -498,33 +525,52 @@
justify-content: flex-end;
align-items: center;
padding: 24rpx;
margin-top: 40rpx;
background-color: #fff;
.total {
margin-bottom: 10rpx;
font-size: 24rpx;
color: #666;
white-space: nowrap;
}
&.show {
padding: 24rpx 50rpx;
.total {
margin-bottom: 30rpx;
font-size: 30rpx;
font-weight: 600;
color: #333;
.num {
color: #007EFF;
}
}
.line {
text-align: right;
&:first-child {
margin-bottom: 8px;
}
}
}
&.edit {
.total {
margin-bottom: 10rpx;
font-size: 24rpx;
color: #666;
}
.num {
margin: 0 5rpx;
font-size: 34rpx;
color: #007EFF;
}
.info {
display: flex;
}
}
.info {
font-size: 24rpx;
color: #333;
.num {
margin: 0 5rpx;
font-size: 32rpx;
color: #007EFF;
}
}
.num1 {
margin-right: 10rpx;
white-space: nowrap;
}
.btn {
width: 196rpx;
margin-left: 27rpx;
width: 180rpx;
margin-left: 10rpx;
line-height: 80rpx;
font-size: 32rpx;
text-align: center;

@ -128,7 +128,6 @@
}, 1500)
},
onShow() {
console.log(33, this.normalIcon, product)
const pages = getCurrentPages()
this.customerId = pages[pages.length - 1].options.customerId
this.getList()

@ -1,7 +1,7 @@
<template>
<view>
<view class="filter">
<uni-search-bar class="search" radius="30" placeholder="请输入姓名、订单号" v-model="keyword" clearButton="auto" cancelButton="none" />
<uni-search-bar class="search" radius="30" placeholder="请输入学校名称,商务经理,订单号" v-model="keyword" clearButton="auto" cancelButton="none" />
<view :class="['sort', sort]" @click="switchSort"></view>
<uni-icons class="icon" custom-prefix="iconfont" type="icon-filter" size="22" color="#007eff" @click="popup = true"></uni-icons>
</view>
@ -22,6 +22,10 @@
<view class="c-name">{{ item.orderNumber }}</view>
<view class="info">
<view class="left">
<view v-if="curTab" class="line">
<text class="name">商务经理</text>
<text class="val">{{ item.businessManagerName }}</text>
</view>
<view class="line">
<text class="name">订单名称</text>
<text class="val">{{ item.customerName }}</text>
@ -34,7 +38,7 @@
<text class="name">订单内容</text>
<view class="val ell-wrap">
<view :class="{ell: !item.toggle}">{{ item.orderContent }}</view>
<view v-if="!item.toggle" class="toggle" @click.stop="toggle(item)">展开</view>
<view v-if="item.orderContent.length > 14" class="toggle" @click.stop="toggle(item)">{{ item.toggle ? '收起' : '展开' }}</view>
</view>
</view>
<view class="line">
@ -170,7 +174,7 @@
getList() {
const data = {
businessManagerId: this.$util.getBmId(),
teamId: uni.getStorageSync('team').teamId,
teamId: uni.getStorageSync('team').partnerClassificationId,
keywords: this.keyword,
pageNum: this.page,
pageSize: this.pageSize,

@ -171,8 +171,16 @@
"navigationBarTitleText": "编辑产品",
"enablePullDownRefresh": false
}
}
]
},
{
"path" : "curClient/curClient",
"style" :
{
"navigationBarTitleText": "订单记录",
"enablePullDownRefresh": false
}
}
]
}],
"preloadRule": {
"order/orders/orders": {

@ -39,9 +39,7 @@
changeAccount(account).then(res => {
this.$util.sucMsg('修改成功!')
setTimeout(() => {
uni.reLaunch({
url: '../person/person'
})
uni.navigateBack()
}, 1000)
}).catch(e => {})
}

@ -42,7 +42,7 @@
<view class="line">
<view class="name">手机</view>
<view v-if="isDetail" class="val">{{ form.phone }}</view>
<input v-else type="text" maxlength="11" placeholder="请输入" v-model="form.phone">
<input v-else type="number" maxlength="11" placeholder="请输入" v-model="form.phone">
</view>
<view class="line req">
<view class="name">账号</view>
@ -79,7 +79,7 @@
<uni-icons class="icon" custom-prefix="iconfont" type="icon-product" size="20" color="#959595"></uni-icons>
<view class="text">已订阅产品</view>
</view>
<view class="item" @click="toPage('/order/orders/orders')">
<view class="item" @click="toPage(`/order/curClient/curClient?customerId=${customerId}&name=${form.customerName}`)">
<uni-icons class="icon" custom-prefix="iconfont" type="icon-dingdan" size="20" color="#959595"></uni-icons>
<view class="text">订单</view>
</view>
@ -269,7 +269,7 @@
}).catch(res => {})
} else {
addCustomer(form).then(res => {
this.$util.sucMsg('创建客户成功!你现在可以去订单给客户下单了。')
this.$util.errMsg('创建客户成功!你现在可以去订单给客户下单了。')
setTimeout(() => {
uni.navigateBack()
}, 1500)
@ -283,8 +283,6 @@
<style scoped lang="scss">
.page {
padding-bottom: 170rpx;
// height: calc(100vh - 120rpx - env(safe-area-inset-bottom));
// overflow: auto;
-webkit-overflow-scrolling: touch;
}
.info {
@ -305,6 +303,7 @@
padding-bottom: env(safe-area-inset-bottom);
background-color: #fff;
border-top: 1px solid #f3f3f3;
box-shadow: 0 -2px 2px #f5f5f5;
box-sizing: border-box;
.item {
text-align: center;

@ -1,7 +1,7 @@
<template>
<view class="page">
<view class="filter">
<uni-search-bar class="search" radius="30" placeholder="请输入客户名称" v-model="keyword" clearButton="auto" cancelButton="none" />
<uni-search-bar class="search" radius="30" placeholder="请输入112客户名称" v-model="keyword" clearButton="auto" cancelButton="none" />
<uni-icons class="icon" custom-prefix="iconfont" type="icon-filter" size="22" color="#007eff" @click="popup = true"></uni-icons>
</view>
<ul class="tab">

@ -87,9 +87,7 @@
}).then(res => {
this.$util.sucMsg('修改成功!')
setTimeout(() => {
uni.reLaunch({
url: '../person/person'
})
uni.navigateBack()
}, 1500)
}).catch(res => {})
}

@ -141,7 +141,6 @@
})
}
generateAuth(permissionMenu[0].children, '')
console.log(333, auth)
uni.setStorageSync('auth', auth)
this.initRole()
}).catch(e => {})
@ -151,7 +150,7 @@
getTeamsByAccountId().then(({ data }) => {
data.map(e => {
const n = e.partnerClassificationList
e.teamId = n.id
e.teamId = e.partnerClassificationId
e.partnerClassificationName = n.partnerClassificationName
delete e.partnerClassificationList
})

@ -79,7 +79,6 @@
teamId: team.teamId
}).then(({ my }) => {
this.my = my
uni.setStorageSync('info', my.info)
}).catch(e => {})
},
// 退

@ -1,10 +1,10 @@
<template>
<view class="page">
<view class="input">
<uni-easyinput v-model="form.phone" placeholder="请填写你的手机号" maxlength="11" :clearable="false" />
<uni-easyinput type="number" v-model="form.phone" placeholder="请填写你的手机号" maxlength="11" :clearable="false" />
</view>
<view class="input code-wrap">
<uni-easyinput class="code" v-model="form.code" placeholder="验证码" maxlength="6" :clearable="false" />
<uni-easyinput class="code" type="number" v-model="form.code" placeholder="验证码" maxlength="6" :clearable="false" />
<view class="send-code" @click="sendCode" :disabled="codeDisabled">{{ btnText }}</view>
</view>
<button type="primary" @click="submit">确认</button>
@ -78,9 +78,7 @@
changePhoneNumber(phone, code).then(res => {
this.$util.sucMsg('修改成功!')
setTimeout(() => {
uni.reLaunch({
url: '../person/person'
})
uni.navigateBack()
}, 1500)
}).catch(res => {})
}

@ -17,7 +17,7 @@
<view class="name">产品</view>
<view class="val ell-wrap">
<view :class="{ell: !item.toggle}" v-html="item.product"></view>
<view v-if="!item.toggle" class="toggle" @click.stop="toggle(item)">展开</view>
<view v-if="item.product.length > 14" class="toggle" @click.stop="toggle(item)">{{ item.toggle ? '收起' : '展开' }}</view>
</view>
</view>
<view class="line">

@ -20,7 +20,7 @@
<text class="name">产品简介</text>
<view class="val ell-wrap">
<view :class="{ell: !item.toggle}">{{ item.briefIntroduction }}</view>
<view v-if="!item.toggle" class="toggle" @click="toggle(item)">展开</view>
<view class="toggle" @click="toggle(item)">{{ item.toggle ? '收起' : '展开' }}</view>
</view>
</view>
<view class="line">

@ -10,6 +10,7 @@
</template>
<script>
import { my } from '@/apis/modules/parner.js'
export default {
data() {
return {
@ -33,10 +34,27 @@
size: '22',
type: 'locked'
},
info: uni.getStorageSync('info')
info: {
account: '',
phone: '',
email: ''
}
}
},
onShow() {
this.getInfo()
},
methods: {
//
getInfo() {
const team = uni.getStorageSync('team')
my({
partnerId: team.partnerId,
teamId: team.teamId
}).then(({ my }) => {
this.info = my.info
}).catch(e => {})
},
toPage(path) {
this.$util.to(path)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

@ -41,7 +41,7 @@ ul {
flex: 1;
}
.uni-searchbar__box {
height: 60rpx;
height: 70rpx;
}
.sort {
margin: 0 20rpx 0 10rpx;

Loading…
Cancel
Save