首次上传

This commit is contained in:
浅念
2025-03-14 16:55:12 +08:00
commit 6a3ae3d600
1537 changed files with 512730 additions and 0 deletions
+180
View File
@@ -0,0 +1,180 @@
<template>
<view>
<uni-nav-bar leftText=" " :fixed="true" :border="false" leftIcon="back" @clickLeft="leftClick" color="#000000" backgroundColor="#fff" :statusBar="true" title="信息录入"></uni-nav-bar>
<view class="content">
<view class="cell">
<view>客户称呼 <text class="red">*</text></view>
<view class="right">
<input placeholder="输入客户称呼" v-model="form.name" />
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>性别</view>
<view class="right">
<u-radio-group v-model="form.gender">
<u-radio name="男">男</u-radio>
<u-radio name="女">女</u-radio>
</u-radio-group>
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>联系方式 <text class="red">*</text></view>
<view class="right">
<input placeholder="输入联系方式" v-model="form.phone" />
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>客户偏好</view>
<view class="right select" @click="showbrand = true">
<input placeholder="选择客户偏好" disabled v-model="brandname" />
<u-picker :show="showbrand" @cancel="cancel('showbrand')" :columns="brandList" keyName="name" @confirm="changeHandler"></u-picker>
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>客户等级</view>
<view class="right select" @click="showtype = true">
<input placeholder="选择客户等级" disabled v-model="vehicle_type" />
<u-picker :show="showtype" @cancel="cancel('showtype')" :columns="typesList" keyName="name" @confirm="typesChange"></u-picker>
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>国家地区</view>
<view class="right select" @click="showenergy = true">
<input placeholder="选择国家地区" disabled v-model="vehicle_energy" />
<u-picker :show="showenergy" @cancel="cancel('showenergy')" :columns="energyList" keyName="name" @confirm="energyChange"></u-picker>
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>首次跟进</view>
<view class="right">
<input placeholder="首次跟进" type="digit" v-model="form.mileage"/>
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell1">
<view>详细情况</view>
<view class="">
<textarea auto-height v-model="form.condition_desc" placeholder="详细情况..."/>
</view>
</view>
<u-gap height="100" bgColor="#fff"></u-gap>
</view>
<view class="foot">
<button class="btn" @click="nextFn">提交</button>
</view>
</view>
</template>
<script>
import { request,showToast } from '@/api/apiT.js'
// import ldSelect from '@/components/ld-select/ld-select.vue'
export default {
data() {
return {
brandList:[],
energyList:[],
typesList:[],
form: {
name: '',
gender: '男',
phone: '',
preference: '赵野军',
level: '初步接触',
region: '',
firstFollow: '2025-03-11 12:00:01',
details: ''
}
}
},
onLoad() {
const { windowWidth, windowHeight } = uni.getSystemInfoSync();
this.x = windowWidth-70
this.y = windowHeight-185
},
methods: {
leftClick(){
uni.navigateBack({})
},
}
}
</script>
<style lang="scss">
textarea {
min-height: 200rpx;// 设置默认高度 ,解决设置自适应高度之后高度无效问题
margin-top: 15px;
background-color: #F6F6F6;
padding: 15px;
border-radius: 10px;
}
.u-divider{
margin: 0px 0px !important;
}
.uniui-right{
position: absolute;
top: 2px;
}
.red{
color: red;
}
.content{
padding-top: 10px;
background: #FFFFFF;
height: calc(100vh - 44px);
}
.cell{
position: relative;
display: flex;
justify-content:space-between;
padding: 18px 20px;
align-items: center;
font-size: 32rpx;
font-weight: 500;
font-size: 32rpx;
color: #666666;
}
.arrowright{
margin-right: -15px;
}
.cell1{
font-size: 32rpx;
padding: 18px 20px;
align-items: center;
font-weight: 500;
color: #666666;
}
.right{
text-align: right;
color: #222222;
}
.select{
display: flex;
position: relative;
margin-right: 10px;
}
.foot{
position: fixed;
bottom: 0px;
width: 100%;
height: 90px;
background: #FFFFFF;
z-index: 1;
}
.btn{
background: linear-gradient(to right, #3471FF, #6776FF);
color: white;
border-radius: 50px;
width: 92%;
margin-bottom: 40px;
margin: 15px 4%;
}
</style>
+279
View File
@@ -0,0 +1,279 @@
<template>
<view>
<uni-nav-bar leftText=" " :fixed="true" :border="false" leftIcon="back" @clickLeft="leftClick" color="#000000" backgroundColor="#fff" :statusBar="true" title="客户资料"></uni-nav-bar>
<view class="content">
<view class="cell">
<view>客户称呼</view>
<view class="right">
<input placeholder="输入客户称呼" v-model="form.name" />
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>性别</view>
<view class="right">
<u-radio-group v-model="form.gender">
<u-radio name="男">男</u-radio>
<u-radio name="女">女</u-radio>
</u-radio-group>
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>联系方式 </view>
<view class="right">
<input placeholder="输入联系方式" v-model="form.phone" />
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>Email</view>
<view class="right">
<input placeholder="输入Email" v-model="form.phone" />
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>客户偏好</view>
<view class="right select" @click="showbrand = true">
<input placeholder="选择客户偏好" disabled v-model="brandname" />
<u-picker :show="showbrand" @cancel="cancel('showbrand')" :columns="brandList" keyName="name" @confirm="changeHandler"></u-picker>
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>客户等级</view>
<view class="right select" @click="showtype = true">
<input placeholder="选择客户等级" disabled v-model="vehicle_type" />
<u-picker :show="showtype" @cancel="cancel('showtype')" :columns="typesList" keyName="name" @confirm="typesChange"></u-picker>
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>公司</view>
<view class="right select" @click="showenergy = true">
<input placeholder="去定位" disabled v-model="vehicle_energy" />
<u-picker :show="showenergy" @cancel="cancel('showenergy')" :columns="energyList" keyName="name" @confirm="energyChange"></u-picker>
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell1">
<view>备注(非必填)</view>
<view class="">
<textarea auto-height v-model="form.condition_desc" placeholder="详细情况..."/>
</view>
</view>
</view>
<u-gap height="10" bgColor="#F6F6F6"></u-gap>
<view class="steps">
<view class="title">
跟进记录 <text class="status">跟进中</text>
</view>
<u-steps current="0" direction="column" dot>
<u-steps-item title="在线跟进">
<view slot="desc">
<view class="">
时间:2025-03-11 12:00:01
</view>
<view class="">
<image src="/static/image/customer/addr.png" mode=""></image>
</view>
</view>
</u-steps-item>
<u-steps-item title="拜访跟进">
<view slot="desc" class="desc">
<view class="">
<view class="">
时间:2025-03-11 12:00:01
</view>
<view class="">地址:迪拜某某地方</view>
<view class="">拜访内容:讨论需求</view>
</view>
<view class="">
<image src="/static/image/customer/addr.png" mode=""></image>
</view>
</view>
</u-steps-item>
<u-steps-item title="拜访跟进">
<view slot="desc" class="desc">
<view class="">
<view class="">
时间:2025-03-11 12:00:01
</view>
<view class="">地址:迪拜某某地方</view>
<view class="">拜访内容:讨论需求</view>
</view>
<view class="">
<image src="/static/image/customer/addr.png" mode=""></image>
</view>
</view>
</u-steps-item>
</u-steps>
<!-- <empty :list="brandList"></empty> -->
</view>
<view class="zw"></view>
<view class="foot">
<button class="btn" @click="nextFn">提交</button>
</view>
</view>
</template>
<script>
import { request,showToast } from '@/api/apiT.js'
export default {
data() {
return {
id:'',
brandList:[],
energyList:[],
typesList:[],
brandList1:[],
energyList1:[],
typesList1:[],
showbrand: false,
showtype: false,
showenergy: false,
defaultIndex1:[0],
defaultIndex2:[0],
defaultIndex3:[0],
brandname:'',
vehicle_type:'',
vehicle_energy:'',
form:{
name:'',
vin:'',
brand:'',
price:'',
vehicle_type:'',
vehicle_energy:'',
mileage :'',
vehicle_age:'',
condition_desc:'',
front_45_degree:'',
front_left_45_degree:'',
front_left_headlight:'',
front_view:'',
lower_front:'',
wheel_hub:'',
front_right_seat:'',
right_lower_side:'',
rear_right_taillight:'',
rear_right_45_degree:'',
lower_rear:'',
trunk:'',
left_lower_side:'',
rear_seats:'',
center_console:'',
control_panel:'',
gear_shift:'',
car_key:'',
steering_wheel:'',
dashboard:'',
odometer_reading:'',
front_left_door_panel:'',
front_left_door_function_area:'',
front_left_seat:'',
interior_ceiling:'',
}
}
},
onLoad(options) {
console.log(options);
var that = this
},
methods: {
leftClick(){
uni.navigateBack({})
}
}
}
</script>
<style lang="scss">
uni-page-body {
background-color: #fff !important;
}
.u-divider{
margin: 0px 0px !important;
}
.zw{
height: 120px;
}
.uniui-right{
position: absolute;
top: 2px;
}
.content{
padding-top: 10px;
background: #FFFFFF;
}
.cell{
position: relative;
display: flex;
justify-content:space-between;
padding: 18px 20px;
align-items: center;
font-weight: 500;
}
.arrowright{
margin-right: -15px;
}
.cell1{
font-size: 32rpx;
padding: 18px 20px;
align-items: center;
font-weight: 500;
}
.right{
text-align: right;
}
.select{
display: flex;
position: relative;
margin-right: 10px;
}
.steps{
padding: 15px;
image{
width: 44px;
height:44px;
}
.desc{
display: flex;
justify-content: space-between;
align-items: center;
color: #999999;
}
.title{
color: #666666;
font-size: 32rpx;
margin-bottom: 15px;
.status{
font-size: 28rpx;
color: #3471FF;
margin-left: 10px;
}
}
}
.foot{
position: fixed;
bottom: 0px;
width: 100%;
height: 160rpx;
background: #FFFFFF;
z-index: 1;
}
.btn{
background: linear-gradient(to right, #3471FF, #6776FF);
color: white;
border-radius: 50px;
width: 92%;
margin-bottom: 40px;
margin: 15px 4%;
}
</style>
+297
View File
@@ -0,0 +1,297 @@
<template>
<view>
<uni-nav-bar leftText=" " :fixed="true" :border="false" leftIcon="back" @clickLeft="leftClick" color="#000000" backgroundColor="#fff" :statusBar="true" title="添加跟进"></uni-nav-bar>
<view class="content">
<view class="cell">
<view>跟进方式</view>
<view class="right">
<u-radio-group v-model="form.followType">
<u-radio name="1">在线跟进</u-radio>
<u-radio name="2">拜访</u-radio>
</u-radio-group>
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell">
<view>跟进时间</view>
<view class="right" @click="show = true">
<input placeholder="跟进时间" v-model="form.firstFollow" />
</view>
</view>
<u-divider text=""></u-divider>
<view class="cell1" v-if="form.followType==1">
<view>上传跟进最后聊天截图</view>
<view>
<uni-file-picker fileMediatype="image" limit="1" :del-icon="false" disable-preview @select="select" @delete="delfn('front_45_degree')">
<image src="/static/image/customer/upimg.png" mode="" class="addimg"></image>
</uni-file-picker>
</view>
</view>
<view class="cell" v-if="form.followType==2">
<view>当前位置</view>
<view class="right">
<input placeholder="输入当前位置" v-model="form.phone" />
</view>
</view>
<u-divider text="" v-if="form.followType==2"></u-divider>
<view class="cell1" v-if="form.followType==2">
<view>当前位置拍照上传</view>
<view style="margin-top: 10px;">
<uni-file-picker fileMediatype="image" limit="1" :del-icon="false" disable-preview @select="select" @delete="delfn('front_45_degree')">
<image src="/static/image/customer/upimg.png" mode="" class="addimg"></image>
</uni-file-picker>
</view>
</view>
<u-divider text="" v-if="form.followType==2"></u-divider>
<view class="cell1" v-if="form.followType==2">
<view>拜访内容</view>
<view class="yuyin">
<textarea auto-height v-model="form.condition_desc" placeholder="拜访内容..."/>
<image src="/static/image/customer/yuyin.png" mode=""></image>
</view>
</view>
<u-divider text="" v-if="form.followType==2"></u-divider>
<view class="cell1" v-if="form.followType==2">
<view>备注(非必填)</view>
<view class="">
<textarea auto-height v-model="form.condition_desc" placeholder="详细情况..."/>
</view>
</view>
</view>
<u-gap height="10" bgColor="#F6F6F6"></u-gap>
<view class="steps">
<view class="title">
跟进记录 <text class="status">跟进中</text>
</view>
<u-steps current="0" direction="column" dot>
<u-steps-item title="在线跟进">
<view slot="desc">
<view class="">
时间:2025-03-11 12:00:01
</view>
<view class="">
<image src="/static/image/customer/addr.png" mode=""></image>
</view>
</view>
</u-steps-item>
<u-steps-item title="拜访跟进">
<view slot="desc" class="desc">
<view class="">
<view class="">
时间:2025-03-11 12:00:01
</view>
<view class="">地址:迪拜某某地方</view>
<view class="">拜访内容:讨论需求</view>
</view>
<view class="">
<image src="/static/image/customer/addr.png" mode=""></image>
</view>
</view>
</u-steps-item>
<u-steps-item title="拜访跟进">
<view slot="desc" class="desc">
<view class="">
<view class="">
时间:2025-03-11 12:00:01
</view>
<view class="">地址:迪拜某某地方</view>
<view class="">拜访内容:讨论需求</view>
</view>
<view class="">
<image src="/static/image/customer/addr.png" mode=""></image>
</view>
</view>
</u-steps-item>
</u-steps>
<!-- <empty :list="brandList"></empty> -->
</view>
<u-gap height="100" bgColor="#fff"></u-gap>
<view class="foot">
<button class="btn1" @click="nextFn">下次跟进提醒</button>
<button class="btn" @click="nextFn">提交</button>
</view>
<u-datetime-picker
:show="show"
v-model="firstFollow"
mode="datetime"
@confirm="confirm"
@cancel="cancel"
@change="change"
></u-datetime-picker>
</view>
</template>
<script>
import { request,showToast } from '@/api/apiT.js'
// import ldSelect from '@/components/ld-select/ld-select.vue'
export default {
data() {
return {
brandList:[],
energyList:[],
typesList:[],
show:false,
firstFollow: '2025-03-11 12:00:01',
form: {
name: '',
followType: '1',
phone: '',
preference: '赵野军',
level: '初步接触',
region: '',
firstFollow: '2025-03-11 12:00:01',
details: ''
}
}
},
onLoad() {
const { windowWidth, windowHeight } = uni.getSystemInfoSync();
this.x = windowWidth-70
this.y = windowHeight-185
},
methods: {
leftClick(){
uni.navigateBack({})
},
cancel() {
this.show = false
},
confirm(e) {
this.show = false
this.form.firstFollow = this.result(e.value, e.mode)
console.log(this.result(e.value, e.mode))
console.log(this.form.firstFollow )
},
change(e) {
// console.log('change', e)
},
result(time, mode) {
const timeFormat = uni.$u.timeFormat
switch (mode) {
case 'datetime':
return timeFormat(time, 'yyyy-mm-dd hh:MM')
case 'date':
return timeFormat(time, 'yyyy-mm-dd')
case 'year-month':
return timeFormat(time, 'yyyy-mm')
case 'time':
return time
default:
return ''
}
},
}
}
</script>
<style lang="scss">
uni-page-body {
background-color: #fff !important;
}
textarea {
min-height: 200rpx;// 设置默认高度 ,解决设置自适应高度之后高度无效问题
margin-top: 15px;
background-color: #F6F6F6;
padding: 15px;
border-radius: 10px;
}
.u-divider{
margin: 0px 0px !important;
}
.content{
padding-top: 10px;
background: #FFFFFF;
// height: calc(100vh - 44px);
}
.cell{
position: relative;
display: flex;
justify-content:space-between;
padding: 18px 20px;
align-items: center;
font-size: 32rpx;
font-weight: 500;
font-size: 32rpx;
color: #666666;
}
.arrowright{
margin-right: -15px;
}
.cell1{
font-size: 32rpx;
padding: 18px 20px;
align-items: center;
font-weight: 500;
color: #666666;
}
.right{
text-align: right;
color: #222222;
}
.foot{
position: fixed;
bottom: 0px;
width: 100%;
height: 90px;
background: #FFFFFF;
z-index: 1;
display: flex;
padding-top: 20px;
}
.btn{
background: linear-gradient(to right, #3471FF, #6776FF);
color: white;
border-radius: 50px;
width: 45%;
height: 96rpx;
line-height: 96rpx;
margin-top: 20px;
}
.btn1{
border: 1px solid #3471FF;
background: #fff;
color: #3471FF;
border-radius: 50px;
width: 45%;
height: 96rpx;
line-height: 96rpx;
margin-top: 20px;
}
.addimg{
width: 110px;
height:110px;
}
.yuyin{
position: relative;
image{
width: 20px;
height:24px;
position: absolute;
right: 15px;
bottom: 10px;
}
}
.steps{
padding: 15px;
image{
width: 44px;
height:44px;
}
.desc{
display: flex;
justify-content: space-between;
align-items: center;
color: #999999;
}
.title{
color: #666666;
font-size: 32rpx;
margin-bottom: 15px;
.status{
font-size: 28rpx;
color: #3471FF;
margin-left: 10px;
}
}
}
</style>