This commit is contained in:
Vinjor 2024-11-04 17:05:19 +08:00
commit 100c310c42
2 changed files with 115 additions and 24 deletions

View File

@ -45,9 +45,17 @@
<view > <view >
<u-modal showCancelButton @cancel="doVoidCancel" @confirm = "doVoidConfirm" :show="show" :title="title"> <u-modal showCancelButton @cancel="doVoidCancel" @confirm = "doVoidConfirm" :show="show" :title="title">
<input type="text" v-model="voidData.remark" placeholder="请输入作废原因" > <input type="text" v-model="voidData.remark" placeholder="请输入作废原因" >
</u-modal> </u-modal>
</view> </view>
<!-- 普通弹窗---拍照上传 -->
<uni-popup ref="popup" background-color="#fff">
<view class="popup-content">
<view class="dl-avatar-box">
<uni-file-picker :value="fileList" :sizeType="sizeType" @select="afterRead" @delete="deleteFile" limit="9" title="请上传诊断维修单和车辆维修前照片"></uni-file-picker>
</view>
<button type="primary" @click="receiveOrder">保存</button>
</view>
</uni-popup>
<view class="footer"> <view class="footer">
<view @click="projectDis" v-if="order.ticketsStatus == '04' && (userInfo.roleCodes.includes('service_advisor') || userInfo.roleCodes.includes('general_inspection'))" class="btn pg"> <view @click="projectDis" v-if="order.ticketsStatus == '04' && (userInfo.roleCodes.includes('service_advisor') || userInfo.roleCodes.includes('general_inspection'))" class="btn pg">
项目派工 项目派工
@ -60,7 +68,7 @@
<!--服务顾问和总检可以重新派工--> <!--服务顾问和总检可以重新派工-->
重新派工 重新派工
</view> </view>
<view @click="receiveOrder(order.id)" v-if="order.ticketsStatus == '05' && order.ticketsWorkStatus=='01' && roleCanJd" class="btn qc"> <view @click="openFile(order.id)" v-if="order.ticketsStatus == '05' && order.ticketsWorkStatus=='01' && roleCanJd" class="btn qc">
接单 接单
</view> </view>
<!-- <view @click="doOrder(order.id)" v-if="order.ticketsStatus == '05' && order.ticketsWorkStatus=='04' && roleCanSg" class="btn qc">--> <!-- <view @click="doOrder(order.id)" v-if="order.ticketsStatus == '05' && order.ticketsWorkStatus=='04' && roleCanSg" class="btn qc">-->
@ -91,6 +99,8 @@ import {
getStrData getStrData
} from '@/utils/auth'; } from '@/utils/auth';
import request from '@/utils/request'; import request from '@/utils/request';
import config from "@/config";
import upload from "@/utils/upload";
export default { export default {
name: "orderCard", name: "orderCard",
props: { props: {
@ -111,6 +121,9 @@ export default {
}, },
data() { data() {
return { return {
//
fileList: [],
sizeType:['compressed'],
show:false, show:false,
title:'作废', title:'作废',
voidData:{}, voidData:{},
@ -123,6 +136,7 @@ export default {
// //
userInfo:{}, userInfo:{},
ifLeader:false, ifLeader:false,
takeOrderId:'',
} }
}, },
mounted(){ mounted(){
@ -145,6 +159,33 @@ export default {
}, },
methods: { methods: {
/**
* 接单上传附件
*/
openFile(id){
this.takeOrderId = id
this.$refs.popup.open("bottom")
},
afterRead(file) {
for (let i = 0; i < file.tempFilePaths.length; i++) {
upload({
url:'/admin-api/infra/file/upload',
filePath: file.tempFilePaths[i]
}).then((res)=>{
this.fileList.push({
url: config.baseImageUrl+res.data
})
console.log(this.fileList)
})
}
},
deleteFile(file, index) {
this.fileList.splice(index, 1);
},
getFlagColor(flag) { getFlagColor(flag) {
if (flag == 1) { if (flag == 1) {
return '#E8A321' return '#E8A321'
@ -155,11 +196,15 @@ export default {
/** /**
* 接单 * 接单
*/ */
receiveOrder(id){ receiveOrder(){
let fileStr = this.fileList.map(item=>item.url.replace(config.baseImageUrl,"")).join(",")
request({ request({
url: '/admin-api/repair/tickets/take', url: '/admin-api/repair/tickets/take',
method: 'get', method: 'get',
params:{id:id} params:{
id:this.takeOrderId,
image:fileStr
}
}).then((res) => { }).then((res) => {
console.log(res) console.log(res)
if (res.code == 200) { if (res.code == 200) {
@ -246,6 +291,14 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.popup-content {
@include flex;
align-items: center;
justify-content: center;
padding: 15px;
height: auto;
background-color: #fff;
}
.orderCard { .orderCard {
background: #FFFFFF; background: #FFFFFF;
border-radius: 8rpx 8rpx 8rpx 8rpx; border-radius: 8rpx 8rpx 8rpx 8rpx;

View File

@ -29,11 +29,20 @@
</view> </view>
</view> </view>
</view> </view>
<!-- 普通弹窗---拍照上传 -->
<uni-popup ref="popup" background-color="#fff">
<view class="popup-content">
<view class="dl-avatar-box">
<uni-file-picker :value="fileList" :sizeType="sizeType" @select="afterRead" @delete="deleteFile" limit="9" title="请拍照上传图片最多上传9张"></uni-file-picker>
</view>
<button type="primary" @click="confirmOpe('yes')">保存</button>
</view>
</uni-popup>
<view v-if="canOperate" class="footer"> <view v-if="canOperate" class="footer">
<view class="no" @click="confirmOpe('no')"> <view class="no" @click="confirmOpe('no')">
{{ backText }} {{ backText }}
</view> </view>
<view class="yes" @click="confirmOpe('yes')"> <view class="yes" @click="openFile">
{{ yesText }} {{ yesText }}
</view> </view>
</view> </view>
@ -44,36 +53,24 @@
import VNavigationBar from "@/components/VNavigationBar.vue"; import VNavigationBar from "@/components/VNavigationBar.vue";
import request from '@/utils/request'; import request from '@/utils/request';
import {getDictTextByCodeAndValue} from "@/utils/utils"; import {getDictTextByCodeAndValue} from "@/utils/utils";
import config from "@/config";
import upload from "@/utils/upload";
export default { export default {
components: { components: {
VNavigationBar VNavigationBar
}, },
data() { data() {
return { return {
//
fileList: [],
sizeType:['compressed'],
viewType:"", viewType:"",
id:"", id:"",
title:"", title:"",
canOperate:false, canOperate:false,
backText:"", backText:"",
yesText:"", yesText:"",
repairList: [ repairList: []
// {
// name: '7',
// num: 3,
// type: '',
// unit: '',
// total: 35,
// code: 'XCQHCJYS7 SPI SP 5W30 4L'
// },
// {
// name: '7',
// num: 3,
// type: '',
// unit: '',
// total: 35,
// code: 'XCQHCJYS7 SPI SP 5W30 4L'
// }
]
}; };
}, },
onLoad(data){ onLoad(data){
@ -83,6 +80,35 @@ export default {
this.getDetail() this.getDetail()
}, },
methods:{ methods:{
/**
* 接单上传附件
*/
openFile(){
this.$refs.popup.open("bottom")
},
afterRead(file) {
for (let i = 0; i < file.tempFilePaths.length; i++) {
upload({
url:'/admin-api/infra/file/upload',
filePath: file.tempFilePaths[i]
}).then((res)=>{
this.fileList.push({
url: config.baseImageUrl+res.data
})
console.log(this.fileList)
})
}
},
deleteFile(file, index) {
this.fileList.splice(index, 1);
},
getDetail(){ getDetail(){
let url; let url;
let params={}; let params={};
@ -150,7 +176,11 @@ export default {
confirmOpe(type){ confirmOpe(type){
if("yes"==type){ if("yes"==type){
let url; let url;
let params={id:this.id}; let fileStr = this.fileList.map(item=>item.url.replace(config.baseImageUrl,"")).join(",")
let params={
id:this.id,
image:fileStr
};
if("receive"==this.viewType) { if("receive"==this.viewType) {
// //
url = "/admin-api/repair/so/confirmGet" url = "/admin-api/repair/so/confirmGet"
@ -202,6 +232,14 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.popup-content {
@include flex;
align-items: center;
justify-content: center;
padding: 15px;
height: auto;
background-color: #fff;
}
.container { .container {
height: 100%; height: 100%;
background: #F3F5F7; background: #F3F5F7;