暂提
This commit is contained in:
parent
d79160ac53
commit
7d87a13ea0
@ -56,7 +56,7 @@
|
||||
<el-dropdown-item v-if="!isFinish && scope.row.ticketsWorkStatus === '02' && (userRole === 3 || userRole === 4)" command="handleGet" size="mini" type="text" icon="el-icon-document-add"
|
||||
>申请领料
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="isFinish" @click="handleBack(scope.row)" size="mini" type="text" icon="el-icon-document-delete"
|
||||
<el-dropdown-item v-if="scope.row.ticketsWorkStatus === '02' && (userRole === 3 || userRole === 4)" command="handleBack" size="mini" type="text" icon="el-icon-document-delete"
|
||||
>申请退料
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="userRole !== 4" command="handleReTake" size="mini" type="text" icon="el-icon-refresh"
|
||||
@ -74,6 +74,40 @@
|
||||
<TicketsShow ref="ticketsShow"/>
|
||||
<UpdateRepair ref="updateRepair" @success="listTickets"/>
|
||||
<TWOperate ref="twOperate" @success="listTickets"/>
|
||||
|
||||
<el-dialog title="退料申请" :visible.sync="backVisible" width="60%" v-dialogDrag append-to-body>
|
||||
<el-table v-loading="backLoading" :data="partList" :stripe="true" :show-overflow-tooltip="true"
|
||||
@cell-mouse-enter="handleCellEnter"
|
||||
@cell-mouse-leave="handleCellLeave"
|
||||
@cell-click="handleCellClick"
|
||||
@selection-change="rowSelect"
|
||||
>
|
||||
<el-table-column type="selection" align="center" />
|
||||
<el-table-column label="商品名称" prop="waresName" align="center"/>
|
||||
<el-table-column label="规格" prop="wares.model" align="center"/>
|
||||
<el-table-column label="数量" prop="waresCount" align="center">
|
||||
<div v-if="scope.row.id" class="item" slot-scope="scope">
|
||||
<el-input @blur="save(scope.row)" class="item__input" v-model="scope.row.waresCount"/>
|
||||
<span class="item__txt">{{ scope.row.waresCount }}</span>
|
||||
</div>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark" align="center">
|
||||
<div v-if="scope.row.id" class="item" slot-scope="scope">
|
||||
<el-input @blur="save(scope.row)" class="item__input" v-model="scope.row.remark"/>
|
||||
<span class="item__txt">{{ scope.row.remark }}</span>
|
||||
</div>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-row :gutter="1" style="margin-top: 1rem">
|
||||
<el-col :span="24">
|
||||
<el-input v-model="remark" placeholder="备注" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="doBack(false)" type="primary" :disabled="selections.length === 0">退料选择</el-button>
|
||||
<el-button @click="doBack(true)" type="success">退料全部</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -82,6 +116,9 @@ import {getPageType, updateTake} from "@/api/repair/tickets/Tickets";
|
||||
import TicketsShow from "@/views/repair/tickets/Components/TicketsShow.vue";
|
||||
import UpdateRepair from "@/views/repair/tickets/form/UpdateRepair.vue";
|
||||
import TWOperate from "@/views/repair/tickets/form/TWOperate.vue";
|
||||
import {listTwItem} from "@/api/repair/tickets/TWItem";
|
||||
import {createUniqueCodeByHead} from "@/utils/createUniqueCode";
|
||||
import {updateTicketWares} from "@/api/repair/tickets/TicketWares";
|
||||
|
||||
export default {
|
||||
name: "TicketManagerItem",
|
||||
@ -108,7 +145,17 @@ export default {
|
||||
showSearch: true,
|
||||
loading: false,
|
||||
list: [],
|
||||
total: 0
|
||||
total: 0,
|
||||
backVisible: false,
|
||||
partList: [],
|
||||
backLoading: false,
|
||||
// 保存进入编辑的cell
|
||||
clickCellMap: {},
|
||||
// 需要编辑的属性
|
||||
editProp: ['remark', 'waresCount'],
|
||||
selections: [],
|
||||
formData: {},
|
||||
remark: null
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -162,8 +209,20 @@ export default {
|
||||
}
|
||||
},
|
||||
// 退料
|
||||
handleBack(row){
|
||||
|
||||
async handleBack(row){
|
||||
this.formData = {}
|
||||
this.formData = row
|
||||
this.remark = null
|
||||
this.backVisible = true
|
||||
try {
|
||||
this.backLoading = true
|
||||
const res = await listTwItem({twId: row.twId})
|
||||
this.partList = res.data
|
||||
// 未领料的不要
|
||||
this.partList = this.partList.filter(item => item.waresStatus === '01')
|
||||
}finally {
|
||||
this.backLoading = false
|
||||
}
|
||||
},
|
||||
// 重新指派
|
||||
handleReTake(row){
|
||||
@ -186,14 +245,123 @@ export default {
|
||||
case 'handleGet':
|
||||
this.handleGet(row)
|
||||
break
|
||||
case 'handleBack':
|
||||
this.handleBack(row)
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
},
|
||||
/** 鼠标移入cell */
|
||||
handleCellEnter(row, column, cell, event) {
|
||||
const property = column.property
|
||||
if (this.editProp.includes(property)) {
|
||||
cell.querySelector('.item__txt').classList.add('item__txt--hover')
|
||||
}
|
||||
},
|
||||
/** 鼠标移出cell */
|
||||
handleCellLeave(row, column, cell, event) {
|
||||
const property = column.property
|
||||
if (this.editProp.includes(property)) {
|
||||
cell.querySelector('.item__txt').classList.remove('item__txt--hover')
|
||||
}
|
||||
},
|
||||
/** 点击cell */
|
||||
handleCellClick(row, column, cell, event) {
|
||||
const property = column.property
|
||||
if (this.editProp.includes(property)) {
|
||||
// 保存cell
|
||||
this.saveCellClick(row, cell)
|
||||
cell.querySelector('.item__txt').style.display = 'none'
|
||||
cell.querySelector('.item__input').style.display = 'inline'
|
||||
cell.querySelector('input').focus()
|
||||
}
|
||||
},
|
||||
/** 取消编辑状态 */
|
||||
cancelEditable(cell) {
|
||||
cell.querySelector('.item__txt').style.display = 'inline'
|
||||
cell.querySelector('.item__input').style.display = 'none'
|
||||
},
|
||||
/** 保存进入编辑的cell */
|
||||
saveCellClick(row, cell) {
|
||||
const id = row.id
|
||||
if (this.clickCellMap[id] !== undefined) {
|
||||
if (!this.clickCellMap[id].includes(cell)) {
|
||||
this.clickCellMap[id].push(cell)
|
||||
}
|
||||
} else {
|
||||
this.clickCellMap[id] = [cell]
|
||||
}
|
||||
},
|
||||
/** 保存数据 */
|
||||
save(row) {
|
||||
// 更新表格的数据
|
||||
row.totalPrice = row.count * row.newPrice
|
||||
const id = row.id
|
||||
// 取消本行所有cell的编辑状态
|
||||
this.clickCellMap[id].forEach(cell => {
|
||||
this.cancelEditable(cell)
|
||||
})
|
||||
this.clickCellMap[id] = []
|
||||
},
|
||||
rowSelect(val){
|
||||
this.selections = val
|
||||
},
|
||||
async doBack(flag){
|
||||
const data = {
|
||||
no: createUniqueCodeByHead("TLSQ"),
|
||||
ticketId: this.formData.id,
|
||||
type: "02",
|
||||
status: "01",
|
||||
remark: this.remark,
|
||||
adviserId: this.formData.adviserId,
|
||||
adviserName: this.formData.adviserName
|
||||
}
|
||||
if (flag){
|
||||
data.items = this.partList
|
||||
}else {
|
||||
data.items = this.selections
|
||||
}
|
||||
await updateTicketWares(data)
|
||||
this.backVisible = false
|
||||
this.$modal.msgSuccess("申请成功");
|
||||
await this.listTickets()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.item {
|
||||
.item__input {
|
||||
display: none;
|
||||
width: 100px;
|
||||
/* 调整elementUI中样式 如果不需要调整请忽略 */
|
||||
.el-input__inner {
|
||||
height: 24px !important;
|
||||
}
|
||||
|
||||
/* 调整elementUI中样式 如果不需要调整请忽略 */
|
||||
.el-input__suffix {
|
||||
i {
|
||||
font-size: 12px !important;
|
||||
line-height: 26px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item__txt {
|
||||
box-sizing: border-box;
|
||||
border: 1px solid transparent;
|
||||
width: 100px;
|
||||
line-height: 24px;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.item__txt--hover {
|
||||
border: 1px solid #dddddd;
|
||||
border-radius: 4px;
|
||||
cursor: text;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -52,7 +52,7 @@
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
<TicketWaresShow ref="ticketWaresShow" :user-role="userRole" @success="getList"/>
|
||||
<TicketWaresShow ref="ticketWaresShow" :user-role="userRole" @success="getList" :type="type"/>
|
||||
|
||||
<el-dialog title="领料确认" :visible.sync="dialogVisible" width="80%" v-dialogDrag append-to-body>
|
||||
<el-table el-table v-loading="dialogLoading" :data="items" :stripe="true" :show-overflow-tooltip="true" @selection-change="handleSelect">
|
||||
|
@ -151,7 +151,7 @@
|
||||
<span>{{ scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="客户可见" prop="isShow" v-if="userRole === 2" width="180">
|
||||
<el-table-column align="center" label="客户可见" prop="isShow" v-if="userRole === 2 && type" width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.isShow"
|
||||
@ -201,7 +201,8 @@ import {listTwItem, updateIsShow} from "@/api/repair/tickets/TWItem";
|
||||
export default {
|
||||
name: "TicketWaresShow",
|
||||
props:{
|
||||
userRole: Number
|
||||
userRole: Number,
|
||||
type: Boolean
|
||||
},
|
||||
data(){
|
||||
return{
|
||||
|
Loading…
Reference in New Issue
Block a user