This commit is contained in:
许允枞 2025-04-11 17:55:17 +08:00
parent ba779a4aff
commit 924378fabd
8 changed files with 3562 additions and 3609 deletions

View File

@ -2,13 +2,13 @@
<view class="bottoms">
<view class="box" @click="getgogo(1)">
<view class="imgs">
<image src="../../static/tabBar/homex.png" v-show="aindex == 1" ></image>
<image src="../../static/tabBar/home.png" v-show="aindex != 1" ></image>
<image src="../../static/tabBar/homex.png" v-show="aindex == 1"></image>
<image src="../../static/tabBar/home.png" v-show="aindex != 1"></image>
</view>
<view class="xzz" v-show="aindex == 1">首页</view>
<view class="wxz" v-show="aindex != 1">首页</view>
<view class="wxz" v-show="aindex != 1">首页</view>
</view>
<view class="box" @click="getgogo(2)" >
<view class="box" @click="getgogo(2)">
<view class="imgs" style="position: relative;">
<view class="hongdian" v-if=" chuan != 0">
@ -18,40 +18,43 @@
<image src="../../static/tabBar/notice.png" v-show="aindex != 2"></image>
</view>
<view class="xzz" v-show="aindex == 2">通知</view>
<view class="wxz" v-show="aindex != 2">通知</view>
<view class="wxz" v-show="aindex != 2">通知</view>
</view>
<view class="box" @click="getgogo(3)">
<view class="imgs">
<image src="../../static/tabBar/myx.png" v-show="aindex == 3"></image>
<image src="../../static/tabBar/my.png" v-show="aindex != 3"></image>
<image src="../../static/tabBar/myx.png" v-show="aindex == 3"></image>
<image src="../../static/tabBar/my.png" v-show="aindex != 3"></image>
</view>
<view class="xzz" v-show="aindex == 3">我的</view>
<view class="wxz" v-show="aindex != 3">我的</view>
<view class="wxz" v-show="aindex != 3">我的</view>
</view>
</view>
</template>
<script>
const innerAudioContext = uni.createInnerAudioContext();
const innerAudioContext = uni.createInnerAudioContext();
import request from '../../utils/request';
export default{
data(){
return{
export default {
data() {
return {
aindex:1,
chuan:0,
arr:[
{text:'首页'},
{text:'个人中心'},
aindex: 1,
chuan: 0,
arr: [{
text: '首页'
},
{
text: '个人中心'
},
],
}
},
props:{
msg:String
props: {
msg: String
},
onLoad() {
this.aindex = this.msg
@ -66,7 +69,7 @@
},
methods:{
methods: {
dianyidain() {
innerAudioContext.src = 'https://www.nuoyunr.com/lananRsc/rescue/msgV.mp3';
//
@ -105,64 +108,64 @@
}
},
async getbottom(){
async getbottom() {
let data = {
partnerId:uni.getStorageSync('partnerId')
partnerId: uni.getStorageSync('partnerId')
}
let res = await request({
url:'/appInspection/news/newMsgNum',
url: '/appInspection/news/newMsgNum',
method: 'get',
params:data
params: data
})
if(res.code == 200){
if (res.code == 200) {
this.chuan = res.data
}
},
getgogo(index){
getgogo(index) {
if(index == 1){
if (index == 1) {
this.aindex = index
uni.reLaunch({
url:'/pages/index/newindex'
url: '/pages/index/newindex'
});
// uni.navigateTo({
// url:'/pages/index/index'
// })
}
if(index == 2){
if (index == 2) {
this.aindex = index
uni.reLaunch({
url:'/pages/xiaoxi/notice'
})
uni.reLaunch({
url: '/pages/xiaoxi/notice'
})
}
if(index == 3){
if (index == 3) {
this.aindex = index
uni.reLaunch({
url:'/pages/my/my'
})
uni.reLaunch({
url: '/pages/my/my'
})
}
if(index == 4){
if (index == 4) {
this.aindex = index
uni.showToast({
title:'此功能暂未开发',
icon:'none'
})
uni.showToast({
title: '此功能暂未开发',
icon: 'none'
})
}
}
},
beforeDestroy() {
clearInterval(this.interval);
},
beforeDestroy() {
clearInterval(this.interval);
},
}
</script>
<style scoped lang="scss">
.bottoms{
.bottoms {
width: 100%;
height: 50px;
position: fixed;
@ -172,15 +175,17 @@
justify-content: space-between;
font-size: 14px;
font-weight: 400;
z-index: 9999999999999999999999999999999999999999999999999999999;
z-index: 99999;
}
.box{
.box {
width: 50%;
text-align: center;
font-size: 12px;
// background-color: white;
}
.hongdian{
.hongdian {
width: 12px;
height: 12px;
background-color: crimson;
@ -196,20 +201,24 @@
color: white;
font-size: 2px;
}
.imgs{
margin: 0 auto;
margin-top: 10px;
.imgs {
margin: 0 auto;
margin-top: 10px;
width: 22px;
height: 20px;
image{
image {
width: 100%;
height: 100%;
}
}
.xzz{
.xzz {
color: #0D2E8D;
}
.wxz{
.wxz {
color: #AAAAAA;
}
</style>
</style>

1092
pages.json

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,6 @@
<!-- 新增线下订单-->
<template>
<view class="content">
<!-- <view style="width: 100%; height: 44px;"></view>-->
<!-- <view class="top-heder">-->
<!-- <view class="t-left" @click="getback()">-->
<!-- <uni-icons type="left" size="18"></uni-icons>-->
<!-- </view>-->
<!-- <view class="t-title">-->
<!-- <text>{{ title }}</text>-->
<!-- </view>-->
<!-- <view class="t-you"></view>-->
<!-- </view>-->
<headersVue :titles="title" style="position: static !important;">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
@ -34,7 +24,6 @@
<u-album :urls="driverLicenesImg"></u-album>
</view>
</view>
</view>
<!-- 名称 -->
@ -97,23 +86,10 @@
<input type="text" v-model="buyPhone" placeholder="请输入联系方式">
</view>
</view>
<view class="list-box">
<view class="l-left" @click="showMeetMan = true">
<text style="color: red;font-weight: bold;text-align: center;">*</text>
接车员
<text class="xixi">点击选择</text>
</view>
<view class="l-right">
<input type="text" v-model="meetName" placeholder="请输入接车员">
</view>
</view>
</view>
<view class="dlanniu" @click="getgoodes()" v-if="isInsert">
<view class="dlanniu" @click="getgoodes()">
<text>接车</text>
</view>
<view class="dlanniu" @click="edit()" v-else>
<text>确认修改</text>
</view>
<u-picker :show="show" :columns="columns" :defaultIndex="kehuDefaultIndex" @confirm="confirms"
@cancel="cancels" keyName="label"></u-picker>
@ -234,27 +210,6 @@
async onLoad(options) {
this.isLoading = true
await this.getinitialize()
await this.getLeadeMan()
await this.getMeetMan()
uni.$on('selectProject', (data) => {
this.inspectionWorkNodes = data
for (var i = 0; i < this.inspectionWorkNodes.length; i++) {
this.inspectionWorkNodeStr = this.inspectionWorkNodeStr + this.inspectionWorkNodes[i]
.projectName + " "
this.inspectionWorkNodes[i].orderNum = i + 1
}
});
if (options.inspectionInfoId) {
this.isInsert = false
this.inspectionId = options.inspectionInfoId
this.title = '修改线下订单'
await this.getInspectionInfo()
}
//
if (options.appointmentId) {
this.appointmentId = options.appointmentId
await this.getAppointmentDetail()
}
this.isLoading = false
},
onShow() {
@ -379,53 +334,6 @@
cancelRecord() {
this.showRecord = false
},
/*获取预约记录详情*/
async getAppointmentDetail() {
let res = await request({
url: `/inspection/appointment/${this.appointmentId}`,
method: 'get'
})
if (res.data) {
//
this.buyName = res.data.buyName
this.buyPhone = res.data.buyPhoneNum
//
this.carNum = res.data.carNo
//
this.carNature = res.data.carNature
//
this.carModel = res.data.carModel
//
this.carIdNo = res.data.carIdNo
//skuid
this.skuId = res.data.skuId
//
this.driverLicenesImg = res.data.driverLicenesImg == null ? undefined : [this.baseImageUrl + '/' +
res.data.driverLicenesImg
]
console.log('照片', this.driverLicenesImg)
//goodsId
this.goodsId = res.data.goodsId
this.goodstext = this.findItemById(this.columnData, this.skuId).label
//
this.carRegisterDate = res.data.carRegisterDate
this.carRegisterDateStr = formatDate(res.data.carRegisterDate)
//
this.userAddress = res.data.address
//change
// change
const mockEvent = {
columnIndex: 0, //
index: this.findGroupById(this.columnData, this.skuId).index, //
picker: this.$refs.uPicker //
};
this.changeHandler(mockEvent);
//goodsId
this.goodsDefaultIndex = [this.goodsone[0].findIndex(item => item.value === this.goodsId), this
.$refs.uPicker.getColumnValues(1).findIndex(item => item.value == this.skuId)
]
}
},
findItemById(data, id) {
for (const group of data) {
for (const item of group) {
@ -450,30 +358,6 @@
}
return null; // null
},
/*获取引车员信息*/
getLeadeMan() {
request({
url: '/system/role/getUsersByRoleCode',
method: 'get',
params: {
code: "jcycy"
}
}).then(res => {
this.leadManList.push(res.data)
})
},
/*获取接车员信息*/
getMeetMan() {
request({
url: '/system/role/getUsersByRoleCode',
method: 'get',
params: {
code: "jcjchc"
}
}).then(res => {
this.meetManList.push(res.data)
})
},
confirmsnature(e) {
this.naturetext = e.value[0].label
@ -526,26 +410,13 @@
})
},
async getgoodes() {
if (this.carNum == '' || this.customerSource == "" || this.skuId == '' || this.leadManId ==
undefined || this.carRegisterDate == '' || this.meetManId == undefined || this.meetManId ==
undefined) {
if (this.carNum == '' || this.carRegisterDate == '') {
uni.showToast({
title: '车牌号 客户来源 商品 引车员 车辆注册日期 接车人 必填!',
title: '车牌号 车辆注册日期 必填!',
icon: 'none'
})
return
}
if (this.inspectionWorkNodes.length == 0) {
uni.showToast({
title: '请选择检测流程!',
icon: 'none'
})
return
}
this.inspectionWorkNodes.map(item => {
item.id = undefined
})
let data = {
partnerId: uni.getStorageSync('partnerId'),
buyName: this.buyName,
@ -569,16 +440,17 @@
}
let res = await request({
url: '/system/info/add',
url: '/inspection-meet-car-order/add',
method: 'post',
data: data
})
if (res.code == 200) {
uni.showToast({
title: "检测已开始"
title: "可以接车了"
})
}
setTimeout(() => {
uni.$emit('refresh')
uni.navigateBack()
}, 2000);
},

View File

@ -1,6 +1,5 @@
<template>
<view class="content">
<view class="top_">
<view class="logo_imgs">
<image src="/static/imgs/logo.png" mode=""></image>
@ -112,7 +111,10 @@
</view>
<view class="hang_"></view>
<view class="list_">
<view class="title_">预约记录</view>
<view style="display: flex;justify-content:space-between">
<view class="title_">预约记录</view>
<view class="title_" @click="showScreen = true" style="color: rgb(60, 156, 255);">筛选</view>
</view>
<view style="margin-bottom: 30rpx;">
<u-search placeholder="请输入车牌号或手机号" v-model="phoneNum" @search="pageNum=1;goodsList=[];getappointment()"
@custom="pageNum=1;goodsList=[];getappointment()" @change="clearTime()"></u-search>
@ -170,6 +172,18 @@
</scroll-view>
</view>
<u-popup mode="top" z-index="999999" :show="showScreen" closeable round="20" @close="closeScreen"
@open="openScreen">
<view style="padding: 50rpx;">
<view class="title_">选择日期</view>
<view class="example-body" style="margin-top: 30rpx;">
<uni-datetime-picker v-model="range" type="daterange" @maskClick="maskClick" />
</view>
<view style="margin-top: 30rpx;">
<u-button text="确定" style="width: 50%;" type="primary" @click="screenTime()"></u-button>
</view>
</view>
</u-popup>
<!-- 底部 -->
<view style="width: 100%; height: 50px;"></view>
<tabBar :msg="msg "></tabBar>
@ -200,7 +214,9 @@
titlemodeal: '通知',
phoneNum: '',
isWorking: false,
showScreen: false,
user: {},
range: '',
baseUrl: '',
animate: false,
partnerId: '',
@ -282,39 +298,6 @@
// this.getappointment()
},
// onPullDownRefresh() {
// console.log("");
// uni.stopPullDownRefresh()
// },
// onReachBottom() {
// if (this.pageNum >= this.totalPages) {
// uni.showToast({
// title: '',
// icon: 'none'
// })
// } else {
// this.pageNum++
// this.getappointment()
// clearInterval(this.timer);
// this.timer = null;
// }
// },// onPullDownRefresh() {
// console.log("");
// uni.stopPullDownRefresh()
// },
// onReachBottom() {
// if (this.pageNum >= this.totalPages) {
// uni.showToast({
// title: '',
// icon: 'none'
// })
// } else {
// this.pageNum++
// this.getappointment()
// clearInterval(this.timer);
// this.timer = null;
// }
// },
onReady() {
//
this.calculateScrollHeight();
@ -322,6 +305,10 @@
methods: {
formatDateChinese,
closeScreen() {
this.showScreen = false
},
openScreen() {},
calculateScrollHeight() {
//
const screenHeight = uni.getSystemInfoSync().windowHeight;
@ -331,10 +318,24 @@
this.scrollHeight = screenHeight - topHeight;
},
clearTime() {
console.log('只能够了');
clearInterval(this.timer);
this.timer = null;
},
//
screenTime() {
console.log(this.range);
if (this.range) {
this.startTime = this.range[0]
this.endTime = this.range[1]
} else {
this.startTime = null
this.endTime = null
}
this.pageNum = 1
this.goodsList = []
this.getappointment()
this.showScreen = false
},
/**
* 上滑加载数据
*/
@ -624,7 +625,9 @@
partnerId: this.partnerId,
phoneNum: this.phoneNum,
pageSize: this.pageSize,
pageNum: this.pageNum
pageNum: this.pageNum,
startTime: this.startTime,
endTime: this.endTime
}
let res = await request({

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,7 @@
<scroll-view scroll-x="true" style="width: 100%;">
<view style="display: flex; align-items: center; white-space: nowrap;">
<view class="tap-box" v-for="(item, index) in tapList" :key="index" @click="tapqh(index)">
<view v-if="isExamine || getValueByText(item.text) !== '7'">
<view v-if="isExamine || !adminCanShow.includes(getValueByText(item.text))">
<view class="xhuihui" :class="{'xzhei': tapindex == index}"
style="white-space: nowrap;margin-right: 0.5rem">
{{ item.text }}{{ countMap.length !== 0 ? ('(' + countMap.get(getValueByText(item.text)) + ')') : '' }}
@ -34,7 +34,6 @@
<view class="mub">
<view class="top-ail">
<!-- 使用 scroll-view 包裹 SchoolInfo 组件 -->
<scroll-view class="school-scroll-view" scroll-y @scrolltolower="onReachBottomCus"
:style="{ height: scrollHeight + 'px' }" refresher-enabled @refresherrefresh="onRefresherrefresh"
:refresher-triggered="isTriggered">
@ -54,19 +53,22 @@
</view>
<view class="m-top">
<view class="top-left">
<view class="dhei">{{ item.goodsName }}</view>
<text class="xhui">车型{{ item.goodsTitle }}</text>
<text class="xhui" style="margin-left: 50rpx;">
<view class="top-left" v-if="tapValue != '6'">
<view class="dhei" v-if="item.goodsName">{{ item.goodsName }}</view>
<text class="xhui" v-if="item.goodsTitle">车型{{ item.goodsTitle }}</text>
<text class="xhui" style="margin-left: 50rpx;" v-if="item.skuName">
检测类型{{ item.skuName }}
</text>
</view>
<view class="top-left" v-else>
<view class="dhei">待接车</view>
</view>
<view @click="callUser(item.buyPhone)" class="top-right" v-if="isShowClient">
<image src="../../static/detection/teel.png" mode=""></image>
</view>
</view>
<view class="">
<view v-if="isShowClient">
<view v-if="isShowClient || isExamine">
<view class="on-input">
<uni-icons type="person" color="#999999" size="16"></uni-icons>
<text>客户</text>
@ -77,11 +79,11 @@
<text>电话</text>
<text>{{ item.buyPhone }}</text>
</view>
<view class="on-input">
<!-- <view class="on-input">
<uni-icons type="map" color="#999999" size="16"></uni-icons>
<text>客户来源</text>
<text>{{ item.customerSource }}</text>
</view>
</view> -->
<view class="on-input" v-if="item.otherPhone">
<uni-icons type="map" color="#999999" size="16"></uni-icons>
<text>代办人电话</text>
@ -95,10 +97,10 @@
</view>
<view class="on-input" v-if="item.nodeNames">
<uni-icons type="more" color="#999999" size="16"></uni-icons>
<text class="single-line" v-if="tapValue != '7'">检测内容</text>
<text class="single-line" v-if="!belowStandardShow.includes(tapValue)">检测内容</text>
<text class="single-line" style="color: red;" v-else>需重审项目</text>
<text class="multi-line"
:style="tapValue == '7' ? 'color:red' : ''">{{ item.nodeNames }}</text>
:style="belowStandardShow.includes(tapValue) ? 'color:red' : ''">{{ item.nodeNames }}</text>
</view>
<view class="bottom-di">
<view class="button-container">
@ -118,9 +120,12 @@
@click="getMeetMan();meetCarPhoto(item);showMeetMan = true" size="10">
更换人员
</u-button>
<u-button class="button" @click="hge=true;getProject(item.id)"
<u-button class="button" @click="hge=true;getProject(item)"
v-if="isExamine && tapValue == '7'" size="10">重审项目</u-button>
<u-button class="button" @click="godetails(item)" size="10">查看详情</u-button>
<u-button class="button" v-if="!detailButtonNoShow.includes(tapValue)"
@click="godetails(item)" size="10">查看详情</u-button>
<u-button class="button" v-if="tapValue == '8'" @click="goMeetOrderCreate(item)"
size="10">创建订单</u-button>
</view>
</view>
</view>
@ -160,8 +165,8 @@
</view>
</view>
<view class="lanniu-container" v-else>
<view class="lanniu" @click="gogogo">
<text>接车创建</text>
<view class="lanniu" @click="gogogoMeetCarOrder">
<text>接车</text>
</view>
</view>
@ -202,6 +207,9 @@
} from "../../uni_modules/uni-forms/components/uni-forms/utils";
import upload from "@/utils/upload";
import USearch from "@/uni_modules/uview-ui/components/u-search/u-search.vue";
import {
setStorageWithExpiry
} from '../../utils/auth';
export default {
data() {
@ -213,7 +221,7 @@
infoDatas: {},
openMeetCar: false,
isTriggered: false,
selectedInfoId: undefined,
selectedInfo: undefined,
partnerId: uni.getStorageSync("partnerId"),
goodsTitle: '',
tapindex: 0,
@ -259,6 +267,10 @@
text: "待检测",
value: "1"
},
{
text: "接车转订单",
value: "8",
},
{
text: "待接车",
value: "6",
@ -294,6 +306,9 @@
beginButtonShow: ['1', '3', '4'],
cancelButtonShow: ['2'],
meetCarButtonShow: ['6'],
adminCanShow: ['7', '8'],
detailButtonNoShow: ['6', '8'],
belowStandardShow: ['7', '4'],
countMap: [],
csId: [],
cstb: [{
@ -362,22 +377,32 @@
this.scrollHeight = screenHeight - topHeight;
},
//
getProject(id) {
this.inspectionInfoId = id
getProject(data) {
this.inspectionInfoId = data.id
request({
url: '/system/info/getWeorkNodesById',
method: 'get',
params: {
inspectionId: id
inspectionId: data.id
}
}).then(res => {
this.selectProject = res.data
//
this.csId = data.nodeIds
console.log('this.csId', this.csId);
})
},
closehge() {
this.hge = false
this.csId = []
},
goMeetOrderCreate(data) {
//data
setStorageWithExpiry('meetCarOrderData', data, 120)
uni.navigateTo({
url: `/pages/index/Neworder?meetCarId=${data.id}`
})
},
Nnimamadewen(value, index) {
this.geindex = index
this.type = value
@ -396,6 +421,7 @@
//
this.csId.push(data.id);
}
console.log('this.csId', this.csId);
},
/**
* 上滑加载数据
@ -501,14 +527,15 @@
},
/** 接车拍照提交*/
submit() {
submit(item) {
console.log('文件', this.fileList1)
console.log('infoid', this.selectedInfoId)
console.log('infoid', this.selectedInfo)
request({
url: '/system/info/meetCarPhoto',
data: {
inspectionInfoId: this.selectedInfoId,
meetCarId: this.selectedInfo.id,
remark: this.remark,
sourceType: this.selectedInfo.sourceType,
dealImages: this.fileList1.map(item => item.url).join(',')
},
method: 'post'
@ -574,14 +601,14 @@
},
confirmsMeetMan(e) {
const selectedUserId = e.value[0].id
console.log('选择的工单id', this.selectedInfoId)
console.log('选择的工单id', this.selectedInfo)
console.log('selectedUserId', e)
//
request({
url: '/system/info/updateLeadMan',
method: 'post',
data: {
id: this.selectedInfoId,
id: this.selectedInfo.id,
meetManId: selectedUserId
}
}).then(res => {
@ -691,31 +718,50 @@
}
console.log('此时的tapindex', this.tapindex);
const ids = this.infoDatas.filter(item => !item.nodeNames).map(item => item.id)
if (this.tapValue != '7') {
if (ids && ids.length > 0) {
const response = await request({
url: "/partnerOwn/partner/getProjectByIds?ids=" + ids,
method: 'get'
})
if (response.data) {
const data = response.data
this.infoDatas.forEach(item => {
this.$set(item, 'nodeNames', data[item.id])
if (this.tapValue != '6') {
if (!this.belowStandardShow.includes(this.tapValue)) {
if (ids && ids.length > 0) {
const response = await request({
url: "/partnerOwn/partner/getProjectByIds?ids=" + ids,
method: 'get'
})
if (response.data) {
const data = response.data
this.infoDatas.forEach(item => {
this.$set(item, 'nodeNames', data[item.id])
})
}
}
}
} else {
//
if (ids && ids.length > 0) {
const response = await request({
url: "/partnerOwn/partner/getProjectBelowStandardByIds?ids=" + ids,
method: 'get'
})
if (response.data) {
const data = response.data
this.infoDatas.forEach(item => {
this.$set(item, 'nodeNames', data[item.id])
} else {
//
if (ids && ids.length > 0) {
const response = await request({
url: `/partnerOwn/partner/getProjectBelowStandardByIds`,
method: 'get',
params: {
ids: ids.join(','),
status: this.tapValue == '4' ? '3' : '',
type: this.tapValue == '7' ? '0' : ''
}
})
if (response.data) {
const data = response.data
this.infoDatas.forEach(item => {
let nodeNamesArr = []
let nodeIds = []
if (data[item.id]) {
data[item.id].forEach(data => {
nodeNamesArr.push(data.name)
nodeIds.push(data.id)
})
const nodeNames = nodeNamesArr.join('、')
this.$set(item, 'nodeNames', nodeNames)
this.$set(item, 'nodeIds', nodeIds)
console.log('数据', item);
}
})
}
}
}
}
@ -778,7 +824,7 @@
},
/**接车拍照 */
meetCarPhoto(data) {
this.selectedInfoId = data.id
this.selectedInfo = data
},
gogogo() {
uni.navigateTo({
@ -790,6 +836,11 @@
url: '/pages/index/oldOrder'
})
},
gogogoMeetCarOrder() {
uni.navigateTo({
url: '/pages/index/meetCarOrder'
})
},
tapqh(index) {
//
if (this.tapList[index].value == '6') {
@ -1125,8 +1176,8 @@
.bottomx {
margin: 0 auto;
width: 225px;
height: 46px;
width: 425rpx;
height: 76rpx;
border-radius: 6px 6px 6px 6px;
opacity: 1;
border: 1px solid #0174F6;