<template>
|
<view>
|
<scroll-view scroll-y="true" >
|
<view class="header">
|
<view class="detl-name">
|
<image src="../../../static/image/dingdanguanli.png" mode="aspectFit"></image>
|
<view>{{detl.name}}</view>
|
</view>
|
<view class="detl-tel">{{detl.createBy$}} | {{detl.orderId$}} | {{detl.cstmrId$}}</view>
|
</view>
|
<!-- 步骤条 -->
|
<view style="background-color: #FFF;margin-top: 10px;padding-top: 20px;padding-bottom: 20px;">
|
<uni-steps :options="list1" :active="current" />
|
</view>
|
<!-- <view style="background-color: #FFF;margin-top: 10px;padding-top: 20px;padding-bottom: 20px;">
|
<u-steps :current="current">
|
<u-steps-item :title="`${item.title}`" :desc="item.username" v-for="item in list1" />
|
</u-steps>
|
</view> -->
|
|
<!-- 基本信息 -->
|
<view class="container">
|
<view><y-title title="基本信息"></y-title></view><view></view>
|
<view class="list-item1">规划单号</view><view class="list-item2">{{detl.uuid}}</view>
|
<view class="list-item1">申请日期</view><view class="list-item2">{{detl.appleTime$}}</view>
|
<view class="list-item1">跟踪项目</view><view class="list-item2">{{detl.orderId$}}</view>
|
<view class="list-item1">客户名称</view><view class="list-item2">{{detl.cstmrId$}}</view>
|
<view class="list-item1">业务员</view><view class="list-item2">{{detl.userId$}}</view>
|
<view class="list-item1">审批状态</view><view class="list-item2">{{detl.settle$}}</view>
|
<view class="list-item1">业务类型</view><view class="list-item2">{{detl.planType$}}</view>
|
</view>
|
<!-- 其他信息 -->
|
|
<view class="container" v-show="info.length > 0">
|
<view><y-title title="个性化"></y-title></view><view></view>
|
</view>
|
<view class="detail-box">
|
<plan-detail :info="info"></plan-detail>
|
</view>
|
|
|
<!-- 售前规划 -->
|
<view class="container">
|
<view><y-title title="售前规划"></y-title></view><view></view>
|
<view class="list-item1">规划员</view><view class="list-item2">{{detl.planner$}}</view>
|
<view class="list-item1">完成时间</view><view class="list-item2">{{detl.finishTime$}}</view>
|
<view class="list-item1">更改方案</view><view class="list-item2">{{detl.change}}</view>
|
<view class="list-item1">更改次数</view><view class="list-item2">{{detl.changeTime}}</view>
|
<view class="list-item1">更改原因</view><view class="list-item2">{{detl.changeReason}}</view>
|
<view class="list-item1">规格奖金</view><view class="list-item2">{{detl.planBonus}}</view>
|
<view class="list-item1">组长奖金</view><view class="list-item2">{{detl.planLeaderBonus}}</view>
|
</view>
|
<!-- 系统信息 -->
|
<view class="container">
|
<view><y-title title="系统信息"></y-title></view><view></view>
|
<view class="list-item1">添加人员</view><view class="list-item2">{{detl.createBy$}}</view>
|
<view class="list-item1">添加时间</view><view class="list-item2">{{detl.createTime$}}</view>
|
<view class="list-item1">修改人员</view><view class="list-item2">{{detl.updateBy$}}</view>
|
<view class="list-item1">修改时间</view><view class="list-item2">{{detl.updateTime$}}</view>
|
</view>
|
</scroll-view>
|
|
<view>
|
<!-- 输入框示例 -->
|
<uni-popup ref="inputDialog" type="dialog">
|
<uni-popup-dialog ref="inputClose" mode="input" title="选择规划员"
|
placeholder="请输入内容" @confirm="confirm">
|
<uni-combox :candidates="planners" placeholder="请选择"
|
v-model="planner" @input="autoLoad('planner',planner)"></uni-combox>
|
</uni-popup-dialog>
|
</uni-popup>
|
</view>
|
|
<view class="foot">
|
<button v-show="((((detl.settle == 2 || detl.settle == 3) && detl.settleSize==4) || detl.settle == 1) && user.id == detl.director)"
|
size="mini" type="primary" @click="approval(id)">审批</button>
|
<button v-show="(((detl.settle == 2 || detl.settle == 3)&& detl.settleSize==4) && user.id == detl.director)"
|
size="mini" type="primary" @click="approvalEnd(id)">回退审批</button>
|
<button v-show="(detl.settle == 1 && user.id == detl.userId)"
|
size="mini" type="primary" @click="edite(id)">修改</button>
|
<!-- <button size="mini" type="warn" @click="del(id)">删除</button> -->
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import user from '@/pages/api/user/user.js'
|
export default {
|
data() {
|
return {
|
planner: '',
|
plannerId: '',
|
planners: [],
|
plannerList: [],
|
nowUserId: '', // 当前登录人员 user.userId
|
director: '', // 当前节点审核 dire
|
userId: '', // 当前任务业务员 userid
|
user: {
|
username: '',
|
id: 0,
|
type: ''
|
},
|
current: 1,
|
id: 0,
|
detl: {
|
id: '',
|
name: '',
|
tel: '',
|
addr: '',
|
cstman: ''
|
},
|
addFollower: {
|
follower: '',
|
followers: '',
|
followerList: []
|
},
|
followers: [],
|
cstmrId: '',
|
active: 0,
|
steps: [],
|
list1: [{
|
title: '开始',
|
desc: '123'
|
}, {
|
title: '组长审核',
|
desc: ''
|
}, {
|
title: '售前审核',
|
desc: ''
|
}, {
|
title: '规划员审核',
|
desc: ''
|
},{
|
title: '审核通过',
|
desc: ''
|
}],
|
info: []
|
}
|
},
|
onLoad(option) {
|
this.current = 1
|
if (JSON.stringify(option) != "{}") {
|
this.id = option.id
|
this.init()
|
} else {
|
let _this = this
|
const eventChannel = this.getOpenerEventChannel();
|
eventChannel.on('saleManage', function(data) {
|
_this.id = data.data
|
_this.init()
|
})
|
}
|
},
|
onShow() {
|
this.getDetail()
|
},
|
methods: {
|
// 获取用户信息
|
async getDetail() {
|
let res = await user.getDetail()
|
if (res.code === 200) {
|
this.user.username = res.data.username
|
this.user.id = res.data.id
|
} else if (res.code === 403) {
|
this.backLogin(res)
|
}
|
},
|
// 初始化
|
init() {
|
let that = this
|
that.info = []
|
uni.request({
|
url: that.baseUrl + '/plan/' + that.id +'/auth',
|
header: {'token' : uni.getStorageSync('token')},
|
method: 'GET',
|
success(res) {
|
res = res.data
|
if (res.code === 200) {
|
that.detl = res.data
|
that.active = res.data.settle
|
that.list1 = JSON.parse(res.data.settleMsg)
|
for (let key of that.list1) {
|
key.desc = key.username
|
}
|
that.current = res.data.settle-1
|
if (res.data.planType == 4) {
|
switch(res.data.select_2) {
|
case 'value1':
|
res.data.select_2 = '横梁式'
|
break;
|
case 'value2':
|
res.data.select_2 = '驶入式'
|
break;
|
case 'value3':
|
res.data.select_2 = '悬梁式'
|
break;
|
case 'value4':
|
res.data.select_2 = '流利式'
|
break;
|
case 'value5':
|
res.data.select_2 = '重力式'
|
break;
|
case 'value6':
|
res.data.select_2 = '其他'
|
break;
|
}
|
that.info.push(
|
{name:'货物规格',val:res.data.input_1},
|
{name:'货物重量',val:res.data.input_2},
|
{name:'仓库温度',val:res.data.input_6},
|
{name:'顶部最低点离地距离',val:res.data.input_8},
|
{name:'进叉方向',val:res.data.input_4},
|
{name:'厂房可用高度',val:res.data.input_5},
|
{name:'通道大小有无要求',val:res.data.input_7},
|
{name:'平库货架类型',val:res.data.select_2},
|
{name:'是否需要跨梁',val:res.data.radio_1 == 'value1' ? '是' : '否'},
|
{name:'是否需要网层板',val:res.data.radio_2 == 'value1' ? '是' : '否'},
|
{name:'是否需要层板',val:res.data.radio_8 == 'value1' ? '是' : '否'},
|
{name:'地面有无电缆沟',val:res.data.radio_3 == 'value1' ? '是' : '否'},
|
{name:'地面平整度和地面沉降是否满足标准',val:res.data.radio_5 == 'value1' ? '是' : '否'},
|
{name:'布局区域是否提供CAD场地图纸/场地',val:res.data.radio_7 == 'value1' ? '是' : '否'},
|
{name:'其他要求及注意点',val:res.data.textarea_2 ? res.data.textarea_2 : '--'},
|
)
|
} else if(res.data.planType == 5) {
|
switch(res.data.select_3) {
|
case 'value1':
|
res.data.select_3 = '牛腿式'
|
break;
|
case 'value2':
|
res.data.select_3 = '横梁式'
|
break;
|
case 'value3':
|
res.data.select_3 = '新能源'
|
break;
|
case 'value4':
|
res.data.select_3 = '其他'
|
break;
|
}
|
that.info.push(
|
{name:'货物规格',val:res.data.input_2},
|
{name:'货物重量',val:res.data.input_5},
|
{name:'厂房可用高度',val:res.data.input_4},
|
{name:'顶部最低点离地距离',val:res.data.input_9},
|
{name:'进叉方向',val:res.data.input_3},
|
{name:'仓库温度',val:res.data.input_7},
|
{name:'抗震设防烈度',val:res.data.input_6},
|
{name:'基本地震加速度',val:res.data.input_11},
|
{name:'客户技术对接联系方式(选填)',val:res.data.input_8},
|
{name:'立体库货架类型',val:res.data.select_3},
|
{name:'是否有消防要求',val:res.data.radio_5 == 'value1' ? '是' : '否'},
|
{name:'否需要货架背网',val:res.data.radio_8 == 'value1' ? '是' : '否'},
|
{name:'地面有无电缆沟',val:res.data.radio_7 == 'value1' ? '是' : '否'},
|
{name:'布局区域是否提供CAD场地图纸/场地',val:res.data.radio_6 == 'value1' ? '是' : '否'},
|
{name:'地面平整度和地面沉降是否满足标准',val:res.data.radio_10 == 'value1' ? '是' : '否'},
|
{name:'其他要求及注意点',val:res.data.textarea_2 ? res.data.textarea_2 : '--'},
|
)
|
}
|
}
|
}
|
})
|
},
|
// 删除
|
del(e) {
|
let that = this
|
e = Number(e)
|
uni.request({
|
url: that.baseUrl + '/detl/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()
|
},
|
// 工作人列表
|
autoLoad(type,condition) {
|
let that = this
|
uni.request({
|
url: that.baseUrl + '/plan/planner/list/auth',
|
header:{
|
'token':uni.getStorageSync('token'),
|
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
},
|
sslVerify: false,
|
data: {planId:condition},
|
method: 'POST',
|
success(result) {
|
var res = result.data
|
if (res.code === 200) {
|
if (res.data) {
|
for (let k of res.data) {
|
that.planners.push(k.name)
|
that.plannerList.push(k)
|
}
|
}
|
}
|
}
|
})
|
},
|
edite(id) {
|
let _this = this,url = '';
|
switch(this.detl.planType) {
|
case 4:
|
url = `/pages/business/plan/modiPlan?id=${id}`
|
break
|
case 5:
|
url = `/pages/business/plan/modiPlan2?id=${id}`
|
break
|
case 6:
|
url = `/pages/business/plan/modiPlan3?id=${id}`
|
break
|
case 7:
|
url = `/pages/business/plan/modiPlan4?id=${id}`
|
break
|
case 8:
|
url = `/pages/business/plan/modiPlan5?id=${id}`
|
break
|
case 9:
|
url = `/pages/business/plan/modiPlan6?id=${id}`
|
break
|
case 11:
|
url = `/pages/business/plan/modiPlan7?id=${id}`
|
break
|
|
}
|
uni.navigateTo({
|
url: url
|
})
|
},
|
// 审批
|
approval() {
|
let _this = this
|
this.$refs.inputDialog.open()
|
this.autoLoad("type",this.detl.id)
|
},
|
// 规划员审批
|
confirm() {
|
for (let element of this.plannerList) {
|
if(element.value == this.planner) {
|
this.plannerId = element.value
|
}
|
}
|
let _this = this
|
uni.request({
|
url: `${_this.baseUrl}/plan/approval/auth`,
|
header: {
|
'token':uni.getStorageSync('token'),
|
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
},
|
sslVerify: false,
|
data: {
|
planId: _this.detl.id,
|
plannerId: _this.plannerId
|
},
|
method: 'POST',
|
success(res) {
|
res = res.data
|
uni.showToast({title: res.msg, icon: "none", position: 'top'})
|
uni.navigateBack()
|
}
|
})
|
},
|
approvalEnd() {
|
let _this = this
|
uni.request({
|
url: `${_this.baseUrl}/plan/approvalEnd/auth`,
|
header: {
|
'token':uni.getStorageSync('token'),
|
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
},
|
sslVerify: false,
|
data: { planId: _this.detl.id },
|
method: 'POST',
|
success(res) {
|
res = res.data
|
uni.showToast({title: res.msg, icon: "none", position: 'top'})
|
uni.navigateBack()
|
}
|
})
|
},
|
backLogin(res) {
|
uni.showToast({title: res.msg, icon: "none", position: 'top'})
|
setTimeout(() => {
|
uni.reLaunch({
|
url: '../../login/login'
|
});
|
}, 1000);
|
},
|
}
|
}
|
</script>
|
|
<style>
|
.header {
|
width: auto;
|
min-height: 110rpx;
|
background-color: #fff;
|
padding: 30px 20px 10px 20px;
|
}
|
.detl-name {
|
display: flex;
|
height: 35rpx;
|
line-height: 35rpx;
|
text-indent: 10rpx;
|
font-size: 36rpx;
|
color: #606266;
|
}
|
.detl-name image {
|
width: 35rpx;
|
height: 35rpx;
|
}
|
.detl-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;
|
}
|
.detail-box {
|
background-color: #fff;
|
}
|
</style>
|