|
|
@ -8,7 +8,6 @@ |
|
|
|
<view v-if="orderId" class="val">{{ form.customerName }}</view> |
|
|
|
<view v-if="orderId" class="val">{{ form.customerName }}</view> |
|
|
|
<view v-else class="customer-wrap"> |
|
|
|
<view v-else class="customer-wrap"> |
|
|
|
<view :class="['ph', {val: form.customerName}]" @click="customerVisible = true">{{ form.customerName || '请选择客户' }}</view> |
|
|
|
<view :class="['ph', {val: form.customerName}]" @click="customerVisible = true">{{ form.customerName || '请选择客户' }}</view> |
|
|
|
<view class="create" @click="toClient">找不到客户?马上创建</view> |
|
|
|
|
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="line" v-if="form.customerName"> |
|
|
|
<view class="line" v-if="form.customerName"> |
|
|
@ -46,6 +45,7 @@ |
|
|
|
<view v-if="isDetail" class="val">{{ form.businessManagerName }}</view> |
|
|
|
<view v-if="isDetail" class="val">{{ form.businessManagerName }}</view> |
|
|
|
<uni-data-picker v-else class="picker-input" placeholder="请选择商务经理" popup-title="请选择商务经理" preload :localdata="bms" :map="{text: 'userName', value: 'partnerId'}" v-model="form.businessManagerId" :readonly="form.teamId ? false : true"></uni-data-picker> |
|
|
|
<uni-data-picker v-else class="picker-input" placeholder="请选择商务经理" popup-title="请选择商务经理" preload :localdata="bms" :map="{text: 'userName', value: 'partnerId'}" v-model="form.businessManagerId" :readonly="form.teamId ? false : true"></uni-data-picker> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<template v-if="edited"> |
|
|
|
<view class="line"> |
|
|
|
<view class="line"> |
|
|
|
<view class="name">订单编号</view> |
|
|
|
<view class="name">订单编号</view> |
|
|
|
<view class="val">{{ form.orderNumber }}</view> |
|
|
|
<view class="val">{{ form.orderNumber }}</view> |
|
|
@ -58,6 +58,7 @@ |
|
|
|
<view class="name">订单金额(元)</view> |
|
|
|
<view class="name">订单金额(元)</view> |
|
|
|
<view class="val">{{ form.orderAmount }}</view> |
|
|
|
<view class="val">{{ form.orderAmount }}</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
</template> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
@ -81,7 +82,7 @@ |
|
|
|
<button v-if="auth('订单管理:发货')" class="course-btn" type="primary" @click.stop="handleDeliver(n, i)">{{ item.ship ? '取消' : ''}}发货</button> |
|
|
|
<button v-if="auth('订单管理:发货')" class="course-btn" type="primary" @click.stop="handleDeliver(n, i)">{{ item.ship ? '取消' : ''}}发货</button> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<button v-else-if="!isDetail && auth('订单管理:启用')" class="course-btn" type="primary" @click.stop="handleEnable(n, i)">{{ item.isEnable ? '禁用' : '启用'}}</button> |
|
|
|
<button v-else-if="!isDetail && auth('订单管理:启用')" class="course-btn" type="primary" @click.stop="handleEnable(n, i)">{{ item.isEnable ? '禁用' : '启用'}}</button> |
|
|
|
<button v-if="auth('订单管理:发货') && (item.authority == 3 || item.authority == 4) && (!isDetail || (isDetail && item.shipContent))" class="course-btn mg" type="primary" @click.stop="showShip(item)">发货信息</button> |
|
|
|
<button v-if="auth('订单管理:发货') && (item.authority == 0 || item.authority == 3 || item.authority == 4) && (!isDetail || (isDetail && item.shipContent))" class="course-btn mg" type="primary" @click.stop="showShip(item)">发货信息</button> |
|
|
|
<image v-if="!orderId || isRenew || isHandle" class="del" src="@/static/image/trash.png" mode="widthFix" @click.stop="delCourse(c, i)"></image> |
|
|
|
<image v-if="!orderId || isRenew || isHandle" class="del" src="@/static/image/trash.png" mode="widthFix" @click.stop="delCourse(c, i)"></image> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -137,7 +138,7 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view :class="['line req', {err: err === 'finalPrice' + item.dataOrCourseId + item.authority}]"> |
|
|
|
<view :class="['line req', {err: err === 'finalPrice' + item.dataOrCourseId + item.authority}]"> |
|
|
|
<view class="label">成交价</view> |
|
|
|
<view class="label">成交价</view> |
|
|
|
<view v-if="isDetail || (isEdit && !item.authority)" class="ph">{{ item.finalPrice }}</view> |
|
|
|
<view v-if="isDetail" class="ph">{{ item.finalPrice }}</view> |
|
|
|
<view class="inline" v-else> |
|
|
|
<view class="inline" v-else> |
|
|
|
<input type="number" v-model="item.finalPrice" placeholder="请输入" @input="calcFinalValue(item)" @change="handleErr(item, 'finalPrice')"> |
|
|
|
<input type="number" v-model="item.finalPrice" placeholder="请输入" @input="calcFinalValue(item)" @change="handleErr(item, 'finalPrice')"> |
|
|
|
元 |
|
|
|
元 |
|
|
@ -150,8 +151,14 @@ |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<view class="bottom"> |
|
|
|
<view class="bottom"> |
|
|
|
|
|
|
|
<template v-if="!edited && !orderId"> |
|
|
|
|
|
|
|
<view class="next-wrap"> |
|
|
|
|
|
|
|
<view class="lg-btn next" @click="toAdd(0)">下一步</view> |
|
|
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
<template v-else> |
|
|
|
<view v-if="!orderId || isHandle" class="add-wrap"> |
|
|
|
<view v-if="!orderId || isHandle" class="add-wrap"> |
|
|
|
<view class="add-btn" @click="toAdd"> |
|
|
|
<view class="lg-btn" @click="toAdd"> |
|
|
|
<uni-icons class="icon" type="plus" color="#007FFF"></uni-icons> |
|
|
|
<uni-icons class="icon" type="plus" color="#007FFF"></uni-icons> |
|
|
|
添加产品 |
|
|
|
添加产品 |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -177,6 +184,7 @@ |
|
|
|
<view v-if="auth('订单管理:发货') && (isHandle || (!orderId && courses.length))" class="btn" @click="batchDeliver">{{ courses.find(e => !e.ship) ? '一键发货' : '取消全部发货' }}</view> |
|
|
|
<view v-if="auth('订单管理:发货') && (isHandle || (!orderId && courses.length))" class="btn" @click="batchDeliver">{{ courses.find(e => !e.ship) ? '一键发货' : '取消全部发货' }}</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
</template> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<view v-if="isDetail" class="action"> |
|
|
|
<view v-if="isDetail" class="action"> |
|
|
@ -186,7 +194,7 @@ |
|
|
|
<uni-icons class="icon" custom-prefix="iconfont" type="icon-edit" size="30" color="#959595"></uni-icons> |
|
|
|
<uni-icons class="icon" custom-prefix="iconfont" type="icon-edit" size="30" color="#959595"></uni-icons> |
|
|
|
<view class="text">修改</view> |
|
|
|
<view class="text">修改</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="item" v-if="auth('订单管理:续费')" @click="toAction(`../orderDetail/orderDetail?orderId=${orderId}&action=renew`)"> |
|
|
|
<view class="item" @click="toAction(`../orderDetail/orderDetail?orderId=${orderId}&action=renew`)"> |
|
|
|
<uni-icons class="icon" custom-prefix="iconfont" type="icon-product" size="30" color="#959595"></uni-icons> |
|
|
|
<uni-icons class="icon" custom-prefix="iconfont" type="icon-product" size="30" color="#959595"></uni-icons> |
|
|
|
<view class="text">续费</view> |
|
|
|
<view class="text">续费</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -207,6 +215,7 @@ |
|
|
|
<view class="top">请选择客户</view> |
|
|
|
<view class="top">请选择客户</view> |
|
|
|
<uni-icons class="close" type="closeempty" size="20" @click="closeCustomer"></uni-icons> |
|
|
|
<uni-icons class="close" type="closeempty" size="20" @click="closeCustomer"></uni-icons> |
|
|
|
<uni-search-bar class="search" radius="5" placeholder="请输入客户名称" v-model="keyword" clearButton="auto" cancelButton="none" /> |
|
|
|
<uni-search-bar class="search" radius="5" placeholder="请输入客户名称" v-model="keyword" clearButton="auto" cancelButton="none" /> |
|
|
|
|
|
|
|
<view class="create" @click="toClient">找不到客户?马上创建</view> |
|
|
|
<view class="list"> |
|
|
|
<view class="list"> |
|
|
|
<view class="item" v-for="item in customerList" @click="customerChange(item)">{{ item.customerName }}</view> |
|
|
|
<view class="item" v-for="item in customerList" @click="customerChange(item)">{{ item.customerName }}</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -242,6 +251,7 @@ |
|
|
|
isEdit: 0, // 编辑 |
|
|
|
isEdit: 0, // 编辑 |
|
|
|
isHandle: 0, // 处理 |
|
|
|
isHandle: 0, // 处理 |
|
|
|
isRenew: 0, // 续费 |
|
|
|
isRenew: 0, // 续费 |
|
|
|
|
|
|
|
edited: false, |
|
|
|
orderId: '', |
|
|
|
orderId: '', |
|
|
|
orderTypes: [{ |
|
|
|
orderTypes: [{ |
|
|
|
text: '正式', |
|
|
|
text: '正式', |
|
|
@ -328,6 +338,7 @@ |
|
|
|
this.isEdit = action === 'edit' |
|
|
|
this.isEdit = action === 'edit' |
|
|
|
this.isHandle = action === 'handle' |
|
|
|
this.isHandle = action === 'handle' |
|
|
|
this.isRenew = action === 'renew' |
|
|
|
this.isRenew = action === 'renew' |
|
|
|
|
|
|
|
this.edited = uni.getStorageSync('orderEdited') |
|
|
|
const store = uni.getStorageSync('courses') |
|
|
|
const store = uni.getStorageSync('courses') |
|
|
|
this.getTeam(!store) |
|
|
|
this.getTeam(!store) |
|
|
|
if (store) { |
|
|
|
if (store) { |
|
|
@ -338,11 +349,11 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
this.courseList = store |
|
|
|
this.courseList = store |
|
|
|
this.courses = list |
|
|
|
this.courses = list |
|
|
|
this.$nextTick(() => { |
|
|
|
// this.$nextTick(() => { |
|
|
|
uni.pageScrollTo({ |
|
|
|
// uni.pageScrollTo({ |
|
|
|
selector: '#products', |
|
|
|
// selector: '#products', |
|
|
|
}) |
|
|
|
// }) |
|
|
|
}) |
|
|
|
// }) |
|
|
|
try { |
|
|
|
try { |
|
|
|
uni.removeStorageSync('courses') |
|
|
|
uni.removeStorageSync('courses') |
|
|
|
} catch (e) {} |
|
|
|
} catch (e) {} |
|
|
@ -382,7 +393,7 @@ |
|
|
|
const item = this.teams.find(e => e.id == teamId) |
|
|
|
const item = this.teams.find(e => e.id == teamId) |
|
|
|
if (item) this.form.partnerClassificationName = item.partnerClassificationName |
|
|
|
if (item) this.form.partnerClassificationName = item.partnerClassificationName |
|
|
|
if (!this.isDetail) { |
|
|
|
if (!this.isDetail) { |
|
|
|
this.form.businessManagerId = +this.form.businessManagerId |
|
|
|
if (this.form.businessManagerId) this.form.businessManagerId = +this.form.businessManagerId |
|
|
|
this.getBm() |
|
|
|
this.getBm() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -837,8 +848,8 @@ |
|
|
|
}, 500) |
|
|
|
}, 500) |
|
|
|
}, |
|
|
|
}, |
|
|
|
dealSettlePrice(row) { |
|
|
|
dealSettlePrice(row) { |
|
|
|
// 如果是试用,结算价和平台服务费都是0 |
|
|
|
// 如果是试用或者没选择,结算价和平台服务费都是0 |
|
|
|
if (this.form.orderType == 2) { |
|
|
|
if (this.form.orderType != 1) { |
|
|
|
row.settlementPrice = 0 |
|
|
|
row.settlementPrice = 0 |
|
|
|
row.serviceFee = 0 |
|
|
|
row.serviceFee = 0 |
|
|
|
} else { |
|
|
|
} else { |
|
|
@ -997,12 +1008,13 @@ |
|
|
|
.customer-wrap { |
|
|
|
.customer-wrap { |
|
|
|
text-align: right; |
|
|
|
text-align: right; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
.create { |
|
|
|
.create { |
|
|
|
margin-top: 10rpx; |
|
|
|
padding: 0 20rpx; |
|
|
|
font-size: 20rpx; |
|
|
|
font-size: 20rpx; |
|
|
|
|
|
|
|
text-align: right; |
|
|
|
color: #f00; |
|
|
|
color: #f00; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.pro-wrap { |
|
|
|
.pro-wrap { |
|
|
|
position: relative; |
|
|
|
position: relative; |
|
|
|
padding: 0; |
|
|
|
padding: 0; |
|
|
@ -1059,13 +1071,16 @@ |
|
|
|
.line { |
|
|
|
.line { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
justify-content: space-between; |
|
|
|
padding: 12rpx 0; |
|
|
|
padding: 28rpx 0; |
|
|
|
margin: 5px 0; |
|
|
|
|
|
|
|
font-size: 12px; |
|
|
|
font-size: 12px; |
|
|
|
|
|
|
|
border-bottom: 1px solid #E6E8ED; |
|
|
|
|
|
|
|
&:last-child { |
|
|
|
|
|
|
|
border-bottom: 0; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
.label { |
|
|
|
.label { |
|
|
|
font-size: 28rpx; |
|
|
|
font-size: 28rpx; |
|
|
|
color: #999; |
|
|
|
color: #333; |
|
|
|
} |
|
|
|
} |
|
|
|
.ph { |
|
|
|
.ph { |
|
|
|
font-size: 28rpx; |
|
|
|
font-size: 28rpx; |
|
|
@ -1086,6 +1101,12 @@ |
|
|
|
font-size: 32rpx; |
|
|
|
font-size: 32rpx; |
|
|
|
color: #007EFF; |
|
|
|
color: #007EFF; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.period { |
|
|
|
|
|
|
|
flex: none; |
|
|
|
|
|
|
|
width: 100rpx; |
|
|
|
|
|
|
|
font-size: 28rpx; |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
.bottom { |
|
|
|
.bottom { |
|
|
|
z-index: 2; |
|
|
|
z-index: 2; |
|
|
@ -1096,12 +1117,14 @@ |
|
|
|
background-color: #fff; |
|
|
|
background-color: #fff; |
|
|
|
box-shadow: 0 -2px 2px #f5f5f5; |
|
|
|
box-shadow: 0 -2px 2px #f5f5f5; |
|
|
|
box-sizing: border-box; |
|
|
|
box-sizing: border-box; |
|
|
|
} |
|
|
|
|
|
|
|
.add-wrap { |
|
|
|
.add-wrap { |
|
|
|
padding: 16rpx 24rpx 40rpx; |
|
|
|
padding: 16rpx 24rpx 40rpx; |
|
|
|
background-color: #f5f5f5; |
|
|
|
background-color: #f5f5f5; |
|
|
|
} |
|
|
|
} |
|
|
|
/deep/.add-btn { |
|
|
|
.next-wrap { |
|
|
|
|
|
|
|
padding: 24rpx 24rpx 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/deep/.lg-btn { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
justify-content: center; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
@ -1117,6 +1140,11 @@ |
|
|
|
.uni-icons { |
|
|
|
.uni-icons { |
|
|
|
font-size: 38rpx !important; |
|
|
|
font-size: 38rpx !important; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
&.next { |
|
|
|
|
|
|
|
color: #fff; |
|
|
|
|
|
|
|
background-color: #007EFF; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
.product { |
|
|
|
.product { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
@ -1220,12 +1248,6 @@ |
|
|
|
margin-left: 10rpx; |
|
|
|
margin-left: 10rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
.period { |
|
|
|
|
|
|
|
flex: none; |
|
|
|
|
|
|
|
width: 100rpx; |
|
|
|
|
|
|
|
font-size: 28rpx; |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.ship-info { |
|
|
|
.ship-info { |
|
|
|
height: 400rpx; |
|
|
|
height: 400rpx; |
|
|
|
padding: 30rpx; |
|
|
|
padding: 30rpx; |
|
|
|