From 7ceba2558411886a2471aaff6ce42c6c6cb5f60e Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Tue, 15 Oct 2024 22:30:49 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=AE=A1=E6=A0=B8=201%?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/repair/tickets/Components/TicketWares.vue | 7 +++++-- .../repair/tickets/Components/TicketWaresShow.vue | 11 ++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/views/repair/tickets/Components/TicketWares.vue b/src/views/repair/tickets/Components/TicketWares.vue index 6c4cbcd..a0ad1c0 100644 --- a/src/views/repair/tickets/Components/TicketWares.vue +++ b/src/views/repair/tickets/Components/TicketWares.vue @@ -36,10 +36,10 @@ @@ -204,6 +208,7 @@ export default { if (row){ const res = await getTicketsById(row.ticketId) this.info = res.data + this.info.status = row.status this.queryParams.twId = row.id await this.getTwItem() } @@ -233,7 +238,11 @@ export default { }finally { this.loading = false } - } + }, + // TODO 审核 + handleAudit(flag){ + + }, } } From f27631f4601360196e92fdc51b05e4b54a073bde Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Wed, 16 Oct 2024 10:42:13 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E8=B4=A6=E5=8A=A1=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=94=AF=E4=BB=98=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/permission.js | 8 ++ .../tickets/Components/TicketSearch.vue | 12 ++- .../repair/tickets/Components/TicketTable.vue | 79 ++++++++++++++----- .../tickets/Components/TicketWaresShow.vue | 20 ++--- 4 files changed, 86 insertions(+), 33 deletions(-) diff --git a/src/api/system/permission.js b/src/api/system/permission.js index 1eee42a..0bf6f7a 100644 --- a/src/api/system/permission.js +++ b/src/api/system/permission.js @@ -42,3 +42,11 @@ export function assignRoleDataScope(data) { data: data }) } + +// 用来判断角色 +export function checkRole(code){ + return request({ + url: '/system/permission/checkRole?code=' + code, + method: 'get' + }) +} diff --git a/src/views/repair/tickets/Components/TicketSearch.vue b/src/views/repair/tickets/Components/TicketSearch.vue index 13d87f8..05d5032 100644 --- a/src/views/repair/tickets/Components/TicketSearch.vue +++ b/src/views/repair/tickets/Components/TicketSearch.vue @@ -41,7 +41,7 @@ - + @@ -53,6 +53,7 @@ import TicketTable from "@/views/repair/tickets/Components/TicketTable.vue"; import RepairTypeChoose from "@/views/repair/Components/RepairTypeChoose.vue"; import {getTicketsPage} from "@/api/repair/tickets/Tickets"; import CorpChoose from "@/views/repair/Components/CorpChoose.vue"; +import {checkRole} from "@/api/system/permission"; export default { name: "TicketSearch", @@ -83,13 +84,20 @@ export default { }, showSearch: true, total: 0, - list: [] + list: [], + isWXCW: false } }, mounted() { this.getPage() + this.getIsWXCW() }, methods: { + // 是否是财务 + async getIsWXCW(){ + const res = await checkRole("wxcw") + this.isWXCW = res.data + }, // 类型选择 getRepairType(data){ console.log(data) diff --git a/src/views/repair/tickets/Components/TicketTable.vue b/src/views/repair/tickets/Components/TicketTable.vue index e8181c0..15e5a5e 100644 --- a/src/views/repair/tickets/Components/TicketTable.vue +++ b/src/views/repair/tickets/Components/TicketTable.vue @@ -104,7 +104,7 @@ 查看 - 结算 @@ -145,6 +145,30 @@ + + + + + + + + + + + + + + + + + + + + + @@ -164,6 +188,9 @@ export default { list: { type: Array, default: [] + }, + isWXCW:{ + type:Boolean } }, data() { @@ -172,8 +199,13 @@ export default { formData: { id: null, ticketsStatus: null, - remark: null - } + remark: null, + payType: null + }, + formRules:{ + payType: [{required: true, message: '支付方式不能为空', trigger: 'blur'}] + }, + dialogVisible: false } }, methods: { @@ -218,25 +250,30 @@ export default { }, handlePaid(row) { - this.$prompt('结算备注', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - }).then(({value}) => { - const data = {} - data['id'] = row.id - data['remark'] = value - data['ticketsStatus'] = '02' - this.doPaid(data) - }).catch(() => { - }) - }, - async doPaid(data) { - try { - await setTicketsPaid(data) - this.$modal.msgSuccess("结算成功") - this.$emit("setVoid") - } catch { + this.formData = { + id: null, + ticketsStatus: null, + remark: null, + payType: null } + this.formData['id'] = row.id + this.formData['ticketsStatus'] = '02' + this.dialogVisible = true + }, + async doPaid() { + try { + await this.$refs['formRef'].validate() + await setTicketsPaid(this.formData) + this.$modal.msgSuccess("结算成功") + this.dialogVisible = false + this.$emit("setVoid") + }catch{} + // try { + // await setTicketsPaid(this.formData) + // this.$modal.msgSuccess("结算成功") + // this.$emit("setVoid") + // } catch { + // } } } } diff --git a/src/views/repair/tickets/Components/TicketWaresShow.vue b/src/views/repair/tickets/Components/TicketWaresShow.vue index 99bd75e..30566cc 100644 --- a/src/views/repair/tickets/Components/TicketWaresShow.vue +++ b/src/views/repair/tickets/Components/TicketWaresShow.vue @@ -147,16 +147,7 @@ {{ scope.$index + 1 }} - - - - - - - - + + + + + + + + From ee94473c765fecc7fbb13cfea78e0128cd238c1f Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Wed, 16 Oct 2024 10:42:35 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E8=B4=A6=E5=8A=A1=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=94=AF=E4=BB=98=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/repair/tickets/Components/TicketTable.vue | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/views/repair/tickets/Components/TicketTable.vue b/src/views/repair/tickets/Components/TicketTable.vue index 15e5a5e..45851b0 100644 --- a/src/views/repair/tickets/Components/TicketTable.vue +++ b/src/views/repair/tickets/Components/TicketTable.vue @@ -268,12 +268,6 @@ export default { this.dialogVisible = false this.$emit("setVoid") }catch{} - // try { - // await setTicketsPaid(this.formData) - // this.$modal.msgSuccess("结算成功") - // this.$emit("setVoid") - // } catch { - // } } } } From a26488930b7b48538529a91c794e03d777ef98ae Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Wed, 16 Oct 2024 15:39:14 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E5=AE=A1=E6=89=B9=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/repair/tickets/TicketWares.js | 9 ++ .../tickets/Components/TicketManagerItem.vue | 4 +- .../repair/tickets/Components/TicketWares.vue | 4 +- .../tickets/Components/TicketWaresShow.vue | 145 +++++++++++++++++- src/views/repair/tickets/form/TWOperate.vue | 128 +++++++++++++++- .../repair/tickets/form/UpdateRepair.vue | 1 - 6 files changed, 279 insertions(+), 12 deletions(-) diff --git a/src/api/repair/tickets/TicketWares.js b/src/api/repair/tickets/TicketWares.js index 3f1d86c..7bf6a6a 100644 --- a/src/api/repair/tickets/TicketWares.js +++ b/src/api/repair/tickets/TicketWares.js @@ -27,3 +27,12 @@ export function removeTicketWares(id){ method: 'delete' }) } + +// 审核 +export function auditTicketWares(data){ + return request({ + url: preUrl + '/audit', + method: 'post', + data + }) +} diff --git a/src/views/repair/tickets/Components/TicketManagerItem.vue b/src/views/repair/tickets/Components/TicketManagerItem.vue index 674e7c0..16b91ac 100644 --- a/src/views/repair/tickets/Components/TicketManagerItem.vue +++ b/src/views/repair/tickets/Components/TicketManagerItem.vue @@ -53,7 +53,7 @@ 更多 - 申请领料 diff --git a/src/views/repair/tickets/Components/TicketWaresShow.vue b/src/views/repair/tickets/Components/TicketWaresShow.vue index 30566cc..f33af3b 100644 --- a/src/views/repair/tickets/Components/TicketWaresShow.vue +++ b/src/views/repair/tickets/Components/TicketWaresShow.vue @@ -141,7 +141,11 @@ - + - + + +
+ + {{ scope.row.itemDiscount }} +
+
@@ -215,4 +449,36 @@ export default { ::v-deep .el-table .stock td{ background-color: #ff0000 !important; /* 红色背景 */ } +.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; + } +} From 97c1eb6f81baf5c6043fb4680a1c32e631f6451e Mon Sep 17 00:00:00 2001 From: lzttt <1803073139@qq.com> Date: Thu, 17 Oct 2024 17:18:35 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E8=AF=86=E5=88=AB=E4=BB=A3=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/partner/CustomerInfo.vue | 526 ++++++++++++++++------------- src/views/partner/api/customer.js | 10 + 2 files changed, 302 insertions(+), 234 deletions(-) diff --git a/src/views/partner/CustomerInfo.vue b/src/views/partner/CustomerInfo.vue index 08384be..f5c1cb8 100644 --- a/src/views/partner/CustomerInfo.vue +++ b/src/views/partner/CustomerInfo.vue @@ -25,16 +25,26 @@ @keyup.enter.native="handleQuery" /> - - - - - + + + + + + + + + + + + + + + + + + 搜索 重置 @@ -58,7 +68,13 @@ - + + + + @@ -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() } } } diff --git a/src/views/repair/tickets/Components/TicketWares.vue b/src/views/repair/tickets/Components/TicketWares.vue index fd17436..a55cee8 100644 --- a/src/views/repair/tickets/Components/TicketWares.vue +++ b/src/views/repair/tickets/Components/TicketWares.vue @@ -52,7 +52,7 @@ - + diff --git a/src/views/repair/tickets/Components/TicketWaresShow.vue b/src/views/repair/tickets/Components/TicketWaresShow.vue index ab56134..446fa79 100644 --- a/src/views/repair/tickets/Components/TicketWaresShow.vue +++ b/src/views/repair/tickets/Components/TicketWaresShow.vue @@ -151,7 +151,7 @@ {{ scope.$index + 1 }} - +