工单的编辑
This commit is contained in:
parent
364e84a3af
commit
6053ab110b
@ -210,14 +210,51 @@
|
||||
<input type="text" style="text-align: left" v-model="formData.maintenanceMileage" placeholder="请填写最近保养公里数"/>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">年检到期时间</text>
|
||||
<picker
|
||||
mode="date"
|
||||
:value="formData.nextInspectionDate"
|
||||
start="2020-01-01"
|
||||
@change="bindDateChange4">
|
||||
<view style="margin-left: 10rpx">
|
||||
{{ formData.nextInspectionDate}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">保险到期时间</text>
|
||||
<picker
|
||||
mode="date"
|
||||
:value="formData.insuranceExpiryDate"
|
||||
start="2020-01-01"
|
||||
@change="bindDateChange5">
|
||||
<view style="margin-left: 10rpx">
|
||||
{{ formData.insuranceExpiryDate}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">保险名称</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.insuranceName" placeholder="请填写保险名称"/>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">管理费</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.managerMoney" placeholder="请填写管理费"/>
|
||||
<text class="label">承保险种</text>
|
||||
<uni-data-checkbox multiple v-model="insuranceTypeArray" :localdata="insuranceTypeList"></uni-data-checkbox>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">上年保费</text>
|
||||
<view style="display: flex">
|
||||
交:<input type="decimal" style="text-align: left" v-model="formData.jiaoqiang" placeholder="请输入交强险保费"/>
|
||||
商:<input type="decimal" style="text-align: left" v-model="formData.shangye" placeholder="请输入商业险保费"/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
@ -235,12 +272,9 @@
|
||||
<text class="label">定损费</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.confirmFaultMoney" placeholder="请填写定损费"/>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1" v-if="repairTypes && repairTypes.length>0">
|
||||
<text class="label">维修类型</text>
|
||||
<picker @change="repairTypeChange" :value="repairTypeIndex" :range="repairTypes" range-key="label" >
|
||||
<view class="uni-input">{{ repairTypes[repairTypeIndex].label}}</view>
|
||||
</picker>
|
||||
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">管理费</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.managerMoney" placeholder="请填写管理费"/>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
@ -250,7 +284,26 @@
|
||||
<view class="uni-input">{{ partDisposals[partDisposalIndex].label}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1" v-if="repairTypes && repairTypes.length>0">
|
||||
<text class="label">维修类型</text>
|
||||
<picker @change="repairTypeChange" :value="repairTypeIndex" :range="repairTypes" range-key="label" >
|
||||
<view class="uni-input">{{ repairTypes[repairTypeIndex].label}}</view>
|
||||
</picker>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view style="display: flex;align-items: center">-->
|
||||
<!-- <view class="infoItem" style="flex: 1">-->
|
||||
<!-- <text class="label">维修建议</text>-->
|
||||
<!-- <textarea style="height: 50px" auto-height v-model="formData.repairAdvice" placeholder="请填写维修建议"/>-->
|
||||
<!-- </view>-->
|
||||
<!-- </view>-->
|
||||
<!-- <view style="display: flex;align-items: center">-->
|
||||
<!-- <view class="infoItem" style="flex: 1">-->
|
||||
<!-- <text class="label">备注</text>-->
|
||||
<!-- <textarea style="height: 50px" auto-height v-model="formData.remark" placeholder="请填写备注"/>-->
|
||||
<!-- </view>-->
|
||||
<!-- </view>-->
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
@ -344,11 +397,34 @@ export default {
|
||||
confirmFaultMoney:0.00,
|
||||
partDisposal:null,
|
||||
repairType:null,
|
||||
nextInspectionDate:null,
|
||||
insuranceExpiryDate:null,
|
||||
jiaoqiang:null,
|
||||
shangye:null,
|
||||
},
|
||||
options: [
|
||||
{label: 'A单', value: '01'},
|
||||
{label: 'B单', value: '02'}
|
||||
],
|
||||
//承保险种-、三者、车损、驾乘、不计
|
||||
insuranceTypeList:[{
|
||||
text: '交强',
|
||||
value: '交强'
|
||||
}, {
|
||||
text: '三者',
|
||||
value: '三者'
|
||||
}, {
|
||||
text: '车损',
|
||||
value: '车损'
|
||||
},{
|
||||
text: '驾乘',
|
||||
value: '驾乘'
|
||||
},{
|
||||
text: '不计',
|
||||
value: '不计'
|
||||
}],
|
||||
//选中的险种
|
||||
insuranceTypeArray:[],
|
||||
imgUrlPrex: config.baseImageUrl,
|
||||
ticketNo: '',
|
||||
//前一个页面传过来的参数
|
||||
@ -374,11 +450,14 @@ export default {
|
||||
this.formData.inTime = formatDate(Date.now())
|
||||
this.formData.outTime = formatDate(Date.now())
|
||||
this.formData.maintenanceDate = formatDate(Date.now())
|
||||
this.formData.nextInspectionDate = formatDate(Date.now())
|
||||
this.formData.insuranceExpiryDate = formatDate(Date.now())
|
||||
this.ticketNo = this.createUniqueCodeByHead('GD')
|
||||
if (data.phone) {
|
||||
this.phone = data.phone
|
||||
this.listUserInfo()
|
||||
}
|
||||
this.initDict("insurance_type")
|
||||
this.initDict("repair_type")
|
||||
this.initDict("repair_part_disposal")
|
||||
},
|
||||
@ -394,6 +473,14 @@ export default {
|
||||
bindDateChange3(e) {
|
||||
this.formData.maintenanceDate = e.target.value; // 更新选择的日期到data中的date变量
|
||||
},
|
||||
// 日期选择 事件
|
||||
bindDateChange4(e) {
|
||||
this.formData.nextInspectionDate = e.target.value; // 更新选择的日期到data中的date变量
|
||||
},
|
||||
// 日期选择 事件
|
||||
bindDateChange5(e) {
|
||||
this.formData.insuranceExpiryDate = e.target.value; // 更新选择的日期到data中的date变量
|
||||
},
|
||||
|
||||
// 日期选择 事件
|
||||
bindDateChange2(e) {
|
||||
@ -428,8 +515,10 @@ export default {
|
||||
if("repair_type"==dictCode){
|
||||
this.repairTypes = res.data
|
||||
this.buildRepairType()
|
||||
}else{
|
||||
}else if("repair_part_disposal"){
|
||||
this.partDisposals = res.data
|
||||
}else if("insurance_type"){
|
||||
this.buildInsuranceTypeList()
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -439,12 +528,29 @@ export default {
|
||||
if("repair_type"==dictCode){
|
||||
this.repairTypes = dictArray
|
||||
this.buildRepairType()
|
||||
}else{
|
||||
}else if("repair_part_disposal"){
|
||||
this.partDisposals = dictArray
|
||||
}else if("insurance_type"){
|
||||
this.buildInsuranceTypeList()
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 组装承保险种待选值
|
||||
*/
|
||||
buildInsuranceTypeList(data){
|
||||
if(data && data.length>0){
|
||||
this.insuranceTypeList=[]
|
||||
data.map((item)=>{
|
||||
let thisObj={
|
||||
text:item.label,
|
||||
value:item.value
|
||||
}
|
||||
this.insuranceTypeList.push(thisObj)
|
||||
})
|
||||
}
|
||||
},
|
||||
buildRepairType(){
|
||||
if(this.pageData.repairType){
|
||||
this.repairTypes.map((item,index)=>{
|
||||
@ -525,6 +631,9 @@ export default {
|
||||
fileStr:fileStr,
|
||||
...this.formData,
|
||||
}
|
||||
if(this.insuranceTypeArray.length>0){
|
||||
data.insuranceType= this.insuranceTypeArray.join(",")
|
||||
}
|
||||
if(this.pageData && this.pageData.hasOwnProperty("bookingId")){
|
||||
data.bookingId = this.pageData.bookingId
|
||||
}
|
||||
|
727
pages-order/addOrder/editOrder.vue
Normal file
727
pages-order/addOrder/editOrder.vue
Normal file
@ -0,0 +1,727 @@
|
||||
<template>
|
||||
<view class="container">
|
||||
<view class="containerBody">
|
||||
<VNavigationBar background-color="rgba(0,0,0,0)" title="编辑工单" title-color="#333"></VNavigationBar>
|
||||
<view class="body">
|
||||
<view class="card cardInfo userCard">
|
||||
<template>
|
||||
<view class="userTitle">工单信息</view>
|
||||
<view class="userContainer" style="padding-bottom: 20rpx">
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">客户姓名</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.userName" placeholder="请填写客户姓名"/>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">客户电话</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.userMobile" placeholder="请填写客户电话"/>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">经办人姓名</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.handleName" placeholder="请填写经办人姓名"/>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">经办人电话</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.handleMobile" placeholder="请填写经办人电话"/>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">进厂时间</text>
|
||||
|
||||
<picker
|
||||
mode="date"
|
||||
:value="formData.inTime"
|
||||
start="2020-01-01"
|
||||
end="2030-12-31"
|
||||
@change="bindDateChange1">
|
||||
<view style="margin-left: 10rpx">
|
||||
{{ formData.inTime}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">预计完工</text>
|
||||
<picker
|
||||
mode="date"
|
||||
:value="formData.outTime"
|
||||
start="2020-01-01"
|
||||
end="2030-12-31"
|
||||
@change="bindDateChange2">
|
||||
<view style="margin-left: 10rpx">
|
||||
{{ formData.outTime}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">表显里程</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.mileageTraveled" placeholder="请填写表显里程"/>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">三包单位</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.threePackUnits" placeholder="请填写三包单位"/>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">最近保养日期</text>
|
||||
<picker
|
||||
mode="date"
|
||||
:value="formData.maintenanceDate"
|
||||
start="2020-01-01"
|
||||
@change="bindDateChange3">
|
||||
<view style="margin-left: 10rpx">
|
||||
{{ formData.maintenanceDate}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">最近保养公里数</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.maintenanceMileage" placeholder="请填写最近保养公里数"/>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">年检到期时间</text>
|
||||
<picker
|
||||
mode="date"
|
||||
:value="formData.nextInspectionDate"
|
||||
start="2020-01-01"
|
||||
@change="bindDateChange4">
|
||||
<view style="margin-left: 10rpx">
|
||||
{{ formData.nextInspectionDate}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">保险到期时间</text>
|
||||
<picker
|
||||
mode="date"
|
||||
:value="formData.insuranceExpiryDate"
|
||||
start="2020-01-01"
|
||||
@change="bindDateChange5">
|
||||
<view style="margin-left: 10rpx">
|
||||
{{ formData.insuranceExpiryDate}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">保险名称</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.insuranceName" placeholder="请填写保险名称"/>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">承保险种</text>
|
||||
<uni-data-checkbox multiple v-model="insuranceTypeArray" :localdata="insuranceTypeList"></uni-data-checkbox>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">上年保费</text>
|
||||
<view style="display: flex">
|
||||
交:<input type="decimal" style="text-align: left" v-model="formData.jiaoqiang" placeholder="请输入交强险保费"/>
|
||||
商:<input type="decimal" style="text-align: left" v-model="formData.shangye" placeholder="请输入商业险保费"/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">救援费</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.rescueMoney" placeholder="请填写救援费"/>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">三包费</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.threePackMoney" placeholder="请填写救援费"/>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">定损费</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.confirmFaultMoney" placeholder="请填写定损费"/>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1">
|
||||
<text class="label">管理费</text>
|
||||
<input type="text" style="text-align: left" v-model="formData.managerMoney" placeholder="请填写管理费"/>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center">
|
||||
<view class="infoItem" style="flex: 1" v-if="partDisposals && partDisposals.length>0">
|
||||
<text class="label">旧件处置方式</text>
|
||||
<picker @change="partDisposalChange" :value="partDisposalIndex" :range="partDisposals" range-key="label" >
|
||||
<view class="uni-input">{{ partDisposals[partDisposalIndex].label}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="infoItem" style="flex: 1" v-if="repairTypes && repairTypes.length>0">
|
||||
<text class="label">维修类型</text>
|
||||
<picker @change="repairTypeChange" :value="repairTypeIndex" :range="repairTypes" range-key="label" >
|
||||
<view class="uni-input">{{ repairTypes[repairTypeIndex].label}}</view>
|
||||
</picker>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
</view>
|
||||
<view class="footer">
|
||||
<view class="btn" @click="submitUpload">保存工单</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import VNavigationBar from '@/components/VNavigationBar.vue'
|
||||
import request from "@/utils/request";
|
||||
import {getToken, setUserInfo, getUserInfo,getStorageWithExpiry,setStorageWithExpiry} from '@/utils/auth.js'
|
||||
import {getDictByCode,formatDate} from "@/utils/utils";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
VNavigationBar,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
phone: '',
|
||||
repairTypes:[],
|
||||
repairTypeIndex:0,
|
||||
partDisposals:[],
|
||||
partDisposalIndex:0,
|
||||
formData:{
|
||||
userName: "",
|
||||
userMobile: "",
|
||||
inTime: null,
|
||||
outTime: null,
|
||||
handleName: null,
|
||||
handleMobile: null,
|
||||
mileageTraveled:null,
|
||||
threePackUnits:null,
|
||||
insuranceName:null,
|
||||
managerMoney:0.00,
|
||||
rescueMoney:0.00,
|
||||
threePackMoney:0.00,
|
||||
confirmFaultMoney:0.00,
|
||||
partDisposal:null,
|
||||
repairType:null,
|
||||
nextInspectionDate:null,
|
||||
insuranceExpiryDate:null,
|
||||
jiaoqiang:null,
|
||||
shangye:null,
|
||||
},
|
||||
//承保险种-、三者、车损、驾乘、不计
|
||||
insuranceTypeList:[{
|
||||
text: '交强',
|
||||
value: '交强'
|
||||
}, {
|
||||
text: '三者',
|
||||
value: '三者'
|
||||
}, {
|
||||
text: '车损',
|
||||
value: '车损'
|
||||
},{
|
||||
text: '驾乘',
|
||||
value: '驾乘'
|
||||
},{
|
||||
text: '不计',
|
||||
value: '不计'
|
||||
}],
|
||||
//选中的险种
|
||||
insuranceTypeArray:[],
|
||||
//ticketId 工单Id
|
||||
ticketId:null,
|
||||
}
|
||||
},
|
||||
onLoad(data) {
|
||||
this.ticketId = data.ticketId
|
||||
// this.formData.inTime = formatDate(Date.now())
|
||||
// this.formData.outTime = formatDate(Date.now())
|
||||
// this.formData.maintenanceDate = formatDate(Date.now())
|
||||
this.initDict("insurance_type")
|
||||
this.initDict("repair_type")
|
||||
this.initDict("repair_part_disposal")
|
||||
this.getOrderDetail()
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
methods: {
|
||||
getOrderDetail(){
|
||||
request({
|
||||
url: '/admin-api/repair/tickets/getById',
|
||||
method: 'get',
|
||||
params:{id:this.ticketId}
|
||||
}).then((res)=> {
|
||||
let resultObj= res.data
|
||||
//进厂日期
|
||||
if (null != resultObj.inTime){
|
||||
resultObj.inTime = formatDate(resultObj.inTime)
|
||||
}
|
||||
//最近保养日期
|
||||
if (null != resultObj.maintenanceDate){
|
||||
resultObj.maintenanceDate = formatDate(resultObj.maintenanceDate)
|
||||
}
|
||||
//预计竣工日期
|
||||
if (null != resultObj.outTime){
|
||||
resultObj.outTime = formatDate(resultObj.outTime)
|
||||
}
|
||||
//年检到期时间
|
||||
if (null != resultObj.nextInspectionDate){
|
||||
resultObj.nextInspectionDate = formatDate(resultObj.nextInspectionDate)
|
||||
}
|
||||
//保险到期时间
|
||||
if (null != resultObj.insuranceExpiryDate){
|
||||
resultObj.insuranceExpiryDate = formatDate(resultObj.insuranceExpiryDate)
|
||||
}
|
||||
if(resultObj.insuranceType){
|
||||
this.insuranceTypeArray = resultObj.insuranceType.split(",")
|
||||
}
|
||||
this.formData = resultObj
|
||||
})
|
||||
},
|
||||
// 日期选择 事件
|
||||
bindDateChange1(e) {
|
||||
this.formData.inTime = e.target.value; // 更新选择的日期到data中的date变量
|
||||
},
|
||||
// 日期选择 事件
|
||||
bindDateChange3(e) {
|
||||
this.formData.maintenanceDate = e.target.value; // 更新选择的日期到data中的date变量
|
||||
},
|
||||
// 日期选择 事件
|
||||
bindDateChange4(e) {
|
||||
this.formData.nextInspectionDate = e.target.value; // 更新选择的日期到data中的date变量
|
||||
},
|
||||
// 日期选择 事件
|
||||
bindDateChange5(e) {
|
||||
this.formData.insuranceExpiryDate = e.target.value; // 更新选择的日期到data中的date变量
|
||||
},
|
||||
// 日期选择 事件
|
||||
bindDateChange2(e) {
|
||||
this.formData.outTime = e.target.value; // 更新选择的日期到data中的date变量
|
||||
},
|
||||
repairTypeChange(event){
|
||||
const newIndex = event.detail.value;
|
||||
this.repairTypeIndex = newIndex;
|
||||
this.formData.repairType = this.repairTypes[newIndex].value;
|
||||
},
|
||||
partDisposalChange(event){
|
||||
const newIndex = event.detail.value;
|
||||
this.partDisposalIndex = newIndex;
|
||||
this.formData.partDisposal = this.repairTypes[newIndex].value;
|
||||
},
|
||||
async initDict(dictCode){
|
||||
let dictArray = getStorageWithExpiry(dictCode);
|
||||
console.log(dictArray,"partDisposals")
|
||||
if(null==dictArray || undefined==dictArray){
|
||||
request({
|
||||
url: '/admin-api/system/dict-data/type',
|
||||
method: 'get',
|
||||
params:{type:dictCode}
|
||||
}).then((res) => {
|
||||
console.log(res)
|
||||
if (res.code == 200) {
|
||||
setStorageWithExpiry(dictCode,res.data,3600)
|
||||
this.$nextTick(()=>{
|
||||
if("repair_type"==dictCode){
|
||||
this.repairTypes = res.data
|
||||
this.buildRepairType()
|
||||
}else if("repair_part_disposal"){
|
||||
this.partDisposals = res.data
|
||||
}else if("insurance_type"){
|
||||
this.buildInsuranceTypeList()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}else{
|
||||
this.$nextTick(()=>{
|
||||
if("repair_type"==dictCode){
|
||||
this.repairTypes = dictArray
|
||||
this.buildRepairType()
|
||||
}else if("repair_part_disposal"){
|
||||
this.partDisposals = dictArray
|
||||
}else if("insurance_type"){
|
||||
this.buildInsuranceTypeList()
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 组装承保险种待选值
|
||||
*/
|
||||
buildInsuranceTypeList(data){
|
||||
if(data && data.length>0){
|
||||
this.insuranceTypeList=[]
|
||||
data.map((item)=>{
|
||||
let thisObj={
|
||||
text:item.label,
|
||||
value:item.value
|
||||
}
|
||||
this.insuranceTypeList.push(thisObj)
|
||||
})
|
||||
}
|
||||
},
|
||||
buildRepairType(){
|
||||
if(this.pageData.repairType){
|
||||
this.repairTypes.map((item,index)=>{
|
||||
if(item.value==this.pageData.repairType){
|
||||
this.repairTypeIndex = index
|
||||
this.formData.repairType = this.repairTypes[index].value;
|
||||
return
|
||||
}
|
||||
})
|
||||
}else{
|
||||
//默认选中第一个
|
||||
this.repairTypeIndex = 0
|
||||
this.formData.repairType = this.repairTypes[0].value;
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 创建工单前上传图片
|
||||
*/
|
||||
submitUpload(){
|
||||
let dataObj = this.formData
|
||||
if(this.insuranceTypeArray.length>0){
|
||||
dataObj.insuranceType= this.insuranceTypeArray.join(",")
|
||||
}
|
||||
request({
|
||||
url: '/admin-api/repair/tickets/updateById',
|
||||
method: 'POST',
|
||||
data: this.formData
|
||||
}).then(res => {
|
||||
uni.showToast({
|
||||
title: '修改成功',
|
||||
icon: 'success'
|
||||
})
|
||||
setTimeout(()=>{
|
||||
uni.navigateTo({
|
||||
url: `/pages-home/home/home`
|
||||
});
|
||||
},600)
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.popup-content {
|
||||
@include flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 15px;
|
||||
height: auto;
|
||||
background-color: #fff;
|
||||
}
|
||||
.container {
|
||||
height: 100%;
|
||||
background-color: #F3F5F7;
|
||||
|
||||
.containerBody {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: linear-gradient(180deg, #C1DEFF 0%, rgba(193, 222, 255, 0) 100%);
|
||||
background-size: 100% 500rpx;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.body {
|
||||
flex: 1;
|
||||
height: 0;
|
||||
overflow: auto;
|
||||
|
||||
.card {
|
||||
background: #FFFFFF;
|
||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||
margin: 20rpx 32rpx;
|
||||
}
|
||||
|
||||
.phone {
|
||||
background: #0174F6;
|
||||
|
||||
.phoneHeader {
|
||||
padding: 20rpx 30rpx;
|
||||
|
||||
.title {
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #FFFFFF;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.desc {
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
}
|
||||
}
|
||||
|
||||
.phoneBody {
|
||||
background: #FFFFFF;
|
||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||
padding: 0 30rpx;
|
||||
|
||||
.searchBox {
|
||||
padding: 40rpx 0;
|
||||
border-bottom: 1rpx solid #EEEEEE;
|
||||
}
|
||||
|
||||
.btn {
|
||||
padding: 40rpx 0;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
column-gap: 10rpx;
|
||||
|
||||
font-weight: 500;
|
||||
font-size: 32rpx;
|
||||
color: #0174F6;
|
||||
|
||||
.btnIcon {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.cardInfo {
|
||||
&.none {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.cardNoneIcon {
|
||||
width: 336rpx;
|
||||
}
|
||||
|
||||
.btn {
|
||||
position: absolute;
|
||||
bottom: 40rpx;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 10rpx;
|
||||
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #0174F6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.projTitle, .userTitle, .carTitle {
|
||||
padding: 30rpx;
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.carCard {
|
||||
.carListTab {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 32rpx;
|
||||
padding: 0 26rpx 22rpx;
|
||||
|
||||
.carTabItem {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
row-gap: 10rpx;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #333333;
|
||||
|
||||
&.active {
|
||||
.carImage {
|
||||
border: 2rpx solid #0174F6;
|
||||
}
|
||||
|
||||
color: #0174F6;
|
||||
}
|
||||
|
||||
.carImage {
|
||||
width: 128rpx;
|
||||
height: 80rpx;
|
||||
background: #F2F2F7;
|
||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.carTabItemNew {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
row-gap: 10rpx;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #333333;
|
||||
border: 2rpx solid #0174F6; /* 默认边框颜色为透明 */
|
||||
justify-content: center; /* 垂直居中 */
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
padding: 10rpx; /* 可以根据需要调整内边距 */
|
||||
width: 128rpx; /* 与 .carImage 宽度一致 */
|
||||
height: 80rpx; /* 与 .carImage 高度一致 */
|
||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||
margin-top: -37rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.carDetail {
|
||||
background: linear-gradient(180deg, rgba(1, 116, 246, 0.15) 0%, rgba(255, 255, 255, 0) 100%) no-repeat;
|
||||
background-size: 100% 184rpx;
|
||||
padding: 30rpx 30rpx 0;
|
||||
|
||||
.carHeader {
|
||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 20rpx;
|
||||
|
||||
padding-bottom: 30rpx;
|
||||
|
||||
.carImage {
|
||||
width: 192rpx;
|
||||
height: 120rpx;
|
||||
background: #F2F2F7;
|
||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||
}
|
||||
|
||||
.carHeaderRight {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
row-gap: 20rpx;
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
|
||||
.carType {
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #858BA0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.carBody {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
row-gap: 30rpx;
|
||||
padding-top: 30rpx;
|
||||
border-top: 1rpx solid #DDDDDD;
|
||||
}
|
||||
|
||||
.carFoot {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.projCard {
|
||||
.projList {
|
||||
padding: 0 30rpx;
|
||||
display: flex;
|
||||
gap: 20rpx;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.projItem {
|
||||
padding: 10rpx 16rpx;
|
||||
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||
border: 2rpx solid #0174F6;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #0174F6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.userCard {
|
||||
.userContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
row-gap: 30rpx;
|
||||
margin: 0 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.infoItem {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.label {
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #858BA0;
|
||||
}
|
||||
|
||||
.value {
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
|
||||
.projFoot, .userFoot, .carFoot {
|
||||
padding: 30rpx;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #0174F6;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
column-gap: 6rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.footer {
|
||||
height: 136rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.btn {
|
||||
width: 510rpx;
|
||||
height: 76rpx;
|
||||
background: #0174F6;
|
||||
border-radius: 38rpx 38rpx 38rpx 38rpx;
|
||||
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #FFFFFF;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.radio-label {
|
||||
//display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.radio-label text {
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
@ -91,6 +91,10 @@
|
||||
<view class="label">车辆注册日期</view>
|
||||
<view class="value">{{ ticketInfo.carRegisterDate }}</view>
|
||||
</view>
|
||||
<view class="infoItem">
|
||||
<view class="label">车龄(年)</view>
|
||||
<view class="value">{{ ticketInfo.carInfo.carYear }}</view>
|
||||
</view>
|
||||
<view class="infoItem">
|
||||
<view class="label">年检到期时间</view>
|
||||
<view class="value">{{ ticketInfo.nextInspectionDate}}</view>
|
||||
@ -99,6 +103,14 @@
|
||||
<view class="label">保险到期时间</view>
|
||||
<view class="value">{{ ticketInfo.insuranceExpiryDate}}</view>
|
||||
</view>
|
||||
<view class="infoItem">
|
||||
<view class="label">承保险种</view>
|
||||
<view class="value">{{ ticketInfo.insuranceType}}</view>
|
||||
</view>
|
||||
<view class="infoItem">
|
||||
<view class="label">上年保费</view>
|
||||
<view class="value">交:{{ ticketInfo.jiaoqiang}} 商:{{ ticketInfo.shangye}}</view>
|
||||
</view>
|
||||
<view class="infoItem">
|
||||
<view class="label">最近保养日期</view>
|
||||
<view class="value">{{ ticketInfo.maintenanceDate}}</view>
|
||||
@ -111,7 +123,12 @@
|
||||
<view class="label">最近保养公里数</view>
|
||||
<view class="value">{{ ticketInfo.maintenanceMileage}}</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="projList">
|
||||
<view class="projImg" v-if="carImgList.length>0">
|
||||
<image v-for="(img, imgIndex) in carImgList" @click="prviewImage(carImgList,imgIndex)" :key="imgIndex" :src="imgUrlPrex + img.image"
|
||||
class="projImgItem"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -466,7 +483,8 @@ export default {
|
||||
delProjId:[],
|
||||
activeProjTabKey: 0,
|
||||
activePartTabKey: 0,
|
||||
processList: [{}, {}]
|
||||
processList: [{}, {}],
|
||||
carImgList:[]
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
@ -823,7 +841,12 @@ export default {
|
||||
this.content = []
|
||||
if(this.loginUser.roleCodes.includes("service_advisor")){
|
||||
//服务顾问
|
||||
this.canOpenCus = true
|
||||
this.canOpenCus = true
|
||||
if(this.isDetail=='1'){
|
||||
this.content.push({
|
||||
text: '编辑工单', active: false,code:"edit"
|
||||
})
|
||||
}
|
||||
//服务顾问可以进行出厂检验 和通知客户取车
|
||||
if("05"==this.ticketInfo.ticketsStatus) {
|
||||
this.content.push({
|
||||
@ -849,10 +872,20 @@ export default {
|
||||
if(this.loginUser.roleCodes.includes("weixiu")){
|
||||
//维修管理员
|
||||
this.canOpenCus = true
|
||||
if(this.isDetail=='1'){
|
||||
this.content.push({
|
||||
text: '编辑工单', active: false,code:"edit"
|
||||
})
|
||||
}
|
||||
}
|
||||
if(this.loginUser.roleCodes.includes("general_inspection")){
|
||||
//维修总检
|
||||
this.canOpenCus = true
|
||||
if(this.isDetail=='1'){
|
||||
this.content.push({
|
||||
text: '编辑工单', active: false,code:"edit"
|
||||
})
|
||||
}
|
||||
if(this.ticketInfo.nowRepairId==this.loginUser.id && "05"==this.ticketInfo.ticketsStatus){
|
||||
//当前用户就是处理人,可以进行总检拍照
|
||||
this.content.push({
|
||||
@ -920,7 +953,11 @@ export default {
|
||||
})
|
||||
}else if("callCus"==e.item.code){
|
||||
this.show = true
|
||||
|
||||
}else if("edit"==e.item.code){
|
||||
//编辑工单
|
||||
uni.navigateTo({
|
||||
url: '/pages-order/addOrder/editOrder?ticketId='+this.ticketId
|
||||
})
|
||||
}
|
||||
// uni.showModal({
|
||||
// title: '提示',
|
||||
@ -1196,6 +1233,13 @@ export default {
|
||||
// })
|
||||
// resultObj.projects =newWaresGroupList
|
||||
}
|
||||
if(resultObj.carInfo.carLicenseImg){
|
||||
resultObj.carInfo.carLicenseImg.split(",").map((item)=>{
|
||||
this.carImgList.push({
|
||||
image:item
|
||||
})
|
||||
})
|
||||
}
|
||||
this.$nextTick(()=>{
|
||||
this.ticketInfo = resultObj
|
||||
//判断当前角色及工单状态显示操作按钮
|
||||
@ -2056,4 +2100,18 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
.projImg {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, 120rpx);
|
||||
justify-content: space-between;
|
||||
gap: 20rpx;
|
||||
padding: 20rpx 0;
|
||||
|
||||
.projImgItem {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
background-color: #efefef;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -102,6 +102,9 @@
|
||||
{
|
||||
"path": "addOrder/addOrder"
|
||||
},
|
||||
{
|
||||
"path": "addOrder/editOrder"
|
||||
},
|
||||
{
|
||||
"path": "appointOrder/appointOrder"
|
||||
},
|
||||
|
@ -503,7 +503,7 @@
|
||||
align-items: center;
|
||||
position: relative;
|
||||
margin: 5px 0;
|
||||
margin-right: 25px;
|
||||
margin-right: 15px;
|
||||
|
||||
.hidden {
|
||||
position: absolute;
|
||||
|
Loading…
Reference in New Issue
Block a user