仓管修改配件价格

This commit is contained in:
Vinjor 2024-11-15 14:46:55 +08:00
parent fb101bad59
commit e99df47c2e
3 changed files with 145 additions and 48 deletions

View File

@ -70,6 +70,9 @@
<view v-if="(order.ticketsStatus == '04' || order.ticketsStatus == '05')&& (userInfo.roleCodes.includes('weixiu') || userInfo.roleCodes.includes('service_advisor') || userInfo.roleCodes.includes('general_inspection'))" @click="addProj(order)" class="btn pg"> <view v-if="(order.ticketsStatus == '04' || order.ticketsStatus == '05')&& (userInfo.roleCodes.includes('weixiu') || userInfo.roleCodes.includes('service_advisor') || userInfo.roleCodes.includes('general_inspection'))" @click="addProj(order)" class="btn pg">
修改项目 修改项目
</view> </view>
<view @click="editWaresPrice" v-if="userInfo.roleCodes.includes('repair_warehouse')" class="btn pg">
修改价格
</view>
<view @click="gotoDetail" class="btn pg"> <view @click="gotoDetail" class="btn pg">
<!-- 在什么都不能操作的情况下可以查看详情--> <!-- 在什么都不能操作的情况下可以查看详情-->
查看详情 查看详情
@ -167,6 +170,14 @@ export default {
url: '/pages-order/orderDetail/orderDetail?id=' + this.order.id + '&isDetail=' + '1' url: '/pages-order/orderDetail/orderDetail?id=' + this.order.id + '&isDetail=' + '1'
}) })
}, },
/**
* 修改配件价格
*/
editWaresPrice(){
uni.navigateTo({
url: `/pages-order/orderDetail/orderDetail?id=${this.order.id}&isDetail=0`
});
},
/** /**
* 作废 * 作废

View File

@ -120,7 +120,7 @@
<view class="projList"> <view class="projList">
<template> <template>
<view v-for="(item,index) in ticketInfo.projects" :key="item.id" class="projEditItem"> <view v-for="(item,index) in ticketInfo.projects" :key="item.id" class="projEditItem">
<view v-if="isDetail == '0'" class="del-proj-box" @click="delProj(item.id,index)"><uni-icons type="trash" size="25" style="color: #0174F6"></uni-icons></view> <view v-if="(loginUser.roleCodes.includes('weixiu') || loginUser.roleCodes.includes('service_advisor')||loginUser.roleCodes.includes('general_inspection')) && isDetail == '0'" class="del-proj-box" @click="delProj(item.id,index)"><uni-icons type="trash" size="25" style="color: #0174F6"></uni-icons></view>
<view class="projEditLine1"> <view class="projEditLine1">
<text>{{ item.itemName }}</text> <text>{{ item.itemName }}</text>
<text v-if="canSeeMoney" class="projAmount">{{ item.itemMoney }}</text> <text v-if="canSeeMoney" class="projAmount">{{ item.itemMoney }}</text>
@ -133,7 +133,7 @@
<view v-if="canSeeMoney">折扣<input @input="onKeyInput('zk',item)" style="background: white;padding: 0 10rpx" type="decimal" placeholder="请输入折扣0-1" v-model="item.itemDiscount" /></view> <view v-if="canSeeMoney">折扣<input @input="onKeyInput('zk',item)" style="background: white;padding: 0 10rpx" type="decimal" placeholder="请输入折扣0-1" v-model="item.itemDiscount" /></view>
<view v-if="canSeeMoney">金额<input type="number" disabled placeholder="请输入售价" v-model="item.itemMoney" /></view> <view v-if="canSeeMoney">金额<input type="number" disabled placeholder="请输入售价" v-model="item.itemMoney" /></view>
</view> </view>
<view v-else class="projBaseInfo" v-if="(loginUser.roleCodes.includes('weixiu') || loginUser.roleCodes.includes('service_advisor')||loginUser.roleCodes.includes('general_inspection')) && isDetail != '0'" > <view v-else class="projBaseInfo" >
<!-- 只读 --> <!-- 只读 -->
<view v-if="canSeeMoney">售价{{ item.itemPrice || "" }}</view> <view v-if="canSeeMoney">售价{{ item.itemPrice || "" }}</view>
<view>数量{{ item.itemCount || "" }}</view> <view>数量{{ item.itemCount || "" }}</view>
@ -150,11 +150,11 @@
<text >{{item.saleName || ""}} <text >{{item.saleName || ""}}
</text> </text>
</view> </view>
<image v-if="isDetail == '0'" src="/static/icons/edit.png" style="width: 28rpx;height: 28rpx" <image v-if="(loginUser.roleCodes.includes('weixiu') || loginUser.roleCodes.includes('service_advisor')||loginUser.roleCodes.includes('general_inspection')) && isDetail == '0'" src="/static/icons/edit.png" style="width: 28rpx;height: 28rpx"
@click="editPeople('xs', item)"></image> @click="editPeople('xs', item)"></image>
</view> </view>
</template> </template>
<template v-if="isDetail == '0'"> <template v-if="(loginUser.roleCodes.includes('weixiu') || loginUser.roleCodes.includes('service_advisor')||loginUser.roleCodes.includes('general_inspection')) && isDetail == '0'">
<image @click="editPeople('xs', item)"src="/pages-order/static/addIcon.png" style="width: 28rpx;height: 28rpx"></image> <image @click="editPeople('xs', item)"src="/pages-order/static/addIcon.png" style="width: 28rpx;height: 28rpx"></image>
<!-- <text class="addText" @click="editPeople('xs', item)">添加服务顾问</text>--> <!-- <text class="addText" @click="editPeople('xs', item)">添加服务顾问</text>-->
</template> </template>
@ -167,11 +167,11 @@
<text class="label">施工人员</text> <text class="label">施工人员</text>
<text >{{ item.repairNames || ""}}</text> <text >{{ item.repairNames || ""}}</text>
</view> </view>
<image v-if="isDetail == '0'" src="/static/icons/edit.png" style="width: 28rpx;height: 28rpx" <image v-if="(loginUser.roleCodes.includes('weixiu') || loginUser.roleCodes.includes('service_advisor')||loginUser.roleCodes.includes('general_inspection')) && isDetail == '0'" src="/static/icons/edit.png" style="width: 28rpx;height: 28rpx"
@click="editPeople('sg', item)"></image> @click="editPeople('sg', item)"></image>
</view> </view>
</template> </template>
<template v-if="isDetail == '0'"> <template v-if="(loginUser.roleCodes.includes('weixiu') || loginUser.roleCodes.includes('service_advisor')||loginUser.roleCodes.includes('general_inspection')) && isDetail == '0'">
<image @click="editPeople('sg', item)" src="/pages-order/static/addIcon.png" style="width: 28rpx;height: 28rpx"></image> <image @click="editPeople('sg', item)" src="/pages-order/static/addIcon.png" style="width: 28rpx;height: 28rpx"></image>
<!-- <text class="addText" @click="editPeople('sg', item)">添加施工人员</text>--> <!-- <text class="addText" @click="editPeople('sg', item)">添加施工人员</text>-->
</template> </template>
@ -187,12 +187,18 @@
<view class="projList"> <view class="projList">
<template> <template>
<view v-for="item in ticketInfo.wares" :key="item.id" class="projEditItem"> <view v-for="item in ticketInfo.wares" :key="item.id" class="projEditItem">
<view class="projEditLine1"> <view class="projEditLine1">
<text>{{ item.itemName }}</text> <text>{{ item.itemName }}</text>
<text v-if="canSeeMoney" class="projAmount">{{ item.itemMoney }}</text> <text v-if="canSeeMoney" class="projAmount">{{ item.itemMoney }}</text>
</view> </view>
<view class="projBaseInfo"> <view class="projBaseInfo" v-if="loginUser.roleCodes.includes('repair_warehouse') && isDetail == '0'" >
<view v-if="canSeeMoney">售价<input @input="onKeyInput('sj',item)" style="background: white;padding: 0 10rpx" type="decimal" placeholder="请输入售价" v-model="item.itemPrice" /></view>
<view>数量<input @input="onKeyInput('sl',item)" style="background: white;padding: 0 10rpx" type="number" placeholder="请输入数量" v-model="item.itemCount" /></view>
<view>单位<input style="padding: 0 10rpx" type="text" v-model="item.itemUnit" disabled /></view>
<view v-if="canSeeMoney">折扣<input @input="onKeyInput('zk',item)" style="background: white;padding: 0 10rpx" type="decimal" placeholder="请输入折扣0-1" v-model="item.itemDiscount" /></view>
<view v-if="canSeeMoney">金额{{ item.itemMoney || "" }}</view>
</view>
<view class="projBaseInfo" v-else >
<view v-if="canSeeMoney">售价{{ item.itemPrice || "" }}</view> <view v-if="canSeeMoney">售价{{ item.itemPrice || "" }}</view>
<view>数量{{ item.itemCount || "" }}</view> <view>数量{{ item.itemCount || "" }}</view>
<view>单位{{ item.itemUnit || ""}}</view> <view>单位{{ item.itemUnit || ""}}</view>
@ -467,6 +473,7 @@ export default {
}, },
submit (){ submit (){
let canSubmit = true let canSubmit = true
let itemList = []
// //
if(this.ticketInfo.projects && this.ticketInfo.projects.length>0){ if(this.ticketInfo.projects && this.ticketInfo.projects.length>0){
this.ticketInfo.projects.map((item)=>{ this.ticketInfo.projects.map((item)=>{
@ -490,30 +497,49 @@ export default {
item.itemDiscount = 1 item.itemDiscount = 1
} }
item.itemMoney = item.itemPrice*item.itemCount*item.itemDiscount item.itemMoney = item.itemPrice*item.itemCount*item.itemDiscount
let itemObj = {
id:item.id,
ticketId:item.ticketId,
itemPrice:item.itemPrice,
itemCount:item.itemCount,
itemDiscount:item.itemDiscount,
itemMoney:item.itemMoney,
}
itemList.push(itemObj)
}) })
} }
//APP-- //
// if(this.ticketInfo.wares && this.ticketInfo.wares.length>0){ if(this.ticketInfo.wares && this.ticketInfo.wares.length>0){
// this.ticketInfo.wares.map((item)=>{ this.ticketInfo.wares.map((item)=>{
// if((item.itemPrice && item.itemPrice>0) && (item.itemCount && item.itemCount>0) && (item.itemDiscount && item.itemDiscount>0 && item.itemDiscount<=1)){ //null0
// // if(!item.itemPrice){
// item.itemMoney = item.itemPrice*item.itemCount*item.itemDiscount item.itemPrice = 0
// }else{ }
// canSubmit=false if(!item.itemCount){
// uni.showToast({ item.itemCount = 0
// title: ''+item.itemName+'', }
// icon: 'none' if(!item.itemDiscount){
// }) item.itemDiscount = 1
// return }
// } item.itemMoney = item.itemPrice*item.itemCount*item.itemDiscount
// }) let itemObj = {
// } id:item.id,
ticketId:item.ticketId,
itemPrice:item.itemPrice,
itemCount:item.itemCount,
itemDiscount:item.itemDiscount,
itemMoney:item.itemMoney,
}
itemList.push(itemObj)
})
}
if(canSubmit){ if(canSubmit){
// //
request({ request({
url: '/admin-api/repair/titem/updateRepairItem', url: '/admin-api/repair/titem/updateRepairItem',
method: 'PUT', method: 'PUT',
data:{"itemList":this.ticketInfo.projects,"delProjIdList":this.delProjId,"ticketId":this.ticketId} data:{"itemList":itemList,"delProjIdList":this.delProjId,"ticketId":this.ticketId}
}).then((res) => { }).then((res) => {
if(res.code==200){ if(res.code==200){
uni.showToast({ uni.showToast({
@ -521,9 +547,18 @@ export default {
icon: 'none' icon: 'none'
}) })
setTimeout(()=>{ setTimeout(()=>{
uni.navigateTo({ //
url: '/pages-home/home/home' if(this.loginUser.roleCodes.includes('repair_warehouse')){
}) //
uni.navigateTo({
url: '/pages-warehouse/home/home'
})
}else{
//
uni.navigateTo({
url: '/pages-home/home/home'
})
}
},700) },700)
}else{ }else{
uni.showToast({ uni.showToast({

View File

@ -51,7 +51,7 @@
<scroll-view :refresher-triggered="isTriggered" @scrolltolower="onReachBottomCus" class="itemContent" <scroll-view :refresher-triggered="isTriggered" @scrolltolower="onReachBottomCus" class="itemContent"
refresher-enabled refresher-enabled
scroll-y="true" style="height: 100%" @refresherrefresh="onRefresherrefresh"> scroll-y="true" style="height: 100%" @refresherrefresh="onRefresherrefresh">
<view v-for="(item, index) in ticketWares" :key="index" class="orderItem"> <view v-if="active!=3" v-for="(item, index) in ticketWares" :key="index" class="orderItem">
<view class="order-top"> <view class="order-top">
<view class="order-top-left"> <view class="order-top-left">
<text class="order-top-name">{{ item.repairName }}{{ '配件申请单' }}</text> <text class="order-top-name">{{ item.repairName }}{{ '配件申请单' }}</text>
@ -82,9 +82,13 @@
</template> </template>
</view> </view>
</view> </view>
<view v-if="ticketWares.length==0" style="text-align: center"> <view v-if="ticketWares.length==0 && active!=3" style="text-align: center">
<image class="" src="@/static/images/nothing.png"></image> <image class="" src="@/static/images/nothing.png"></image>
</view> </view>
<order-card v-if="active==3" v-for="(item, index) in orderList" :key="index" :order="item" @childEvent="onRefresherrefresh" @doVoid="doVoidReq" @getOrder="openFile" @startWork="startWork" @addProj="addProj"></order-card>
<view style="text-align: center" v-if="orderList.length==0 && active==3">
<image class="" src="@/static/images/nothing.png" ></image>
</view>
</scroll-view> </scroll-view>
</view> </view>
</view> </view>
@ -105,7 +109,7 @@ import {
getTenantId, getTenantId,
setJSONData setJSONData
} from '@/utils/auth' } from '@/utils/auth'
import {getDictTextByCodeAndValue, formatDate, formatTimestamp} from "@/utils/utils"; import {getDictTextByCodeAndValue, formatDate,builderOrder, formatTimestamp} from "@/utils/utils";
export default { export default {
components: { components: {
@ -125,6 +129,9 @@ export default {
{ {
name: '待审核' name: '待审核'
}, },
{
name: '进行中工单'
},
], ],
// //
queryParams: { queryParams: {
@ -135,31 +142,24 @@ export default {
}, },
// //
ticketWares: [], ticketWares: [],
//
orderList:[],
// //
total: 0, total: 0,
// //
isTriggered: false, isTriggered: false,
imgUrlPrex: config.baseImageUrl, imgUrlPrex: config.baseImageUrl,
userInfo: { userInfo: {
avatar: undefined, avatar: undefined,
nickname: '' nickname: ''
}, },
isShow: true, isShow: true,
active: 0, active: 0,
bannerIndex: 0,
shopList: [],
bannerList: [],
richTextHtml: null,
defaultAvatar: require('@/static/icons/avatar.png'), defaultAvatar: require('@/static/icons/avatar.png'),
// //
noReadNum: 0, noReadNum: 0,
// //
noticeNum: 0, noticeNum: 0,
//
ifFirstLogin:true,
} }
}, },
onLoad() { onLoad() {
@ -227,7 +227,12 @@ export default {
this.queryParams.pageNo = 1 this.queryParams.pageNo = 1
this.total = 0 this.total = 0
this.ticketWares = [] this.ticketWares = []
this.getTicketWares() this.orderList = []
if(this.active==3){
this.getOrderList()
}else{
this.getTicketWares()
}
}, },
/** /**
* 配件单查询 * 配件单查询
@ -258,7 +263,54 @@ export default {
} }
}) })
}, },
/**
* 查本人待处理工单
*/
getOrderList(){
let paramsObj = {pageNo: this.queryParams.pageNo, pageSize: this.queryParams.pageSize ,ticketNo:this.queryParams.query}
request({
url: '/admin-api/repair/tickets/pageType',
method: 'get',
params:paramsObj
}).then((res) => {
console.log(res)
if (res.code == 200) {
let thisPageRecords = []
if(res.data && res.data.hasOwnProperty("records")){
for (let i = 0; i < res.data.records.length; i++) {
let order = res.data.records[i]
let viewOrder = builderOrder(order)
if(order.booking){
viewOrder['appointDate'] = formatTimestamp(order.createTime)
}
let projectList = []
if(order.itemList){
for (let j = 0; j < order.itemList.length; j++) {
let itemObj = order.itemList[j]
if("01"==itemObj.itemType){
projectList.push({
id:itemObj.id,
name:itemObj.itemName
})
}
}
}
viewOrder['projectList'] = projectList
thisPageRecords.push(viewOrder)
}
}
// concat n
if (this.pageNo != 1) {
this.orderList = this.orderList.concat(thisPageRecords)
} else {
this.orderList = thisPageRecords
}
//
this.total = res.data.total
this.isTriggered = false
}
})
},
/** /**
* 上滑加载数据 * 上滑加载数据
@ -272,7 +324,11 @@ export default {
//+1, //+1,
this.queryParams.pageNo++ this.queryParams.pageNo++
// //
this.getTicketWares() if(this.active==3){
this.getOrderList()
}else{
this.getTicketWares()
}
}, },
/** /**
@ -321,11 +377,6 @@ export default {
if (res.code == 200) { if (res.code == 200) {
this.noReadNum = res.data > 99 ? 99 : res.data this.noReadNum = res.data > 99 ? 99 : res.data
} }
if(this.ifFirstLogin && this.noReadNum>0){
console.log("播放")
this.$refs.tarBar.dianyidain()
this.ifFirstLogin=false
}
}) })
}, },
/** /**