From 8e2f59cb96d8dad2e72478f76fddfb48851046da Mon Sep 17 00:00:00 2001
From: xuyuncong <3422692813@qq.com>
Date: Tue, 21 Oct 2025 18:37:28 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../chargeCompany/api/chargeCompanyApi.js | 44 +++
.../chargeCompany/form/ChargeCompanyForm.vue | 219 ++++++++++++
src/views/base/chargeCompany/index.vue | 313 ++++++++++++++++++
src/views/repair/staff/index.vue | 3 +-
.../tickets/Components/TicketManagerItem.vue | 1 +
.../repair/tickets/Components/TicketTable.vue | 201 ++++++++++-
6 files changed, 773 insertions(+), 8 deletions(-)
create mode 100644 src/views/base/chargeCompany/api/chargeCompanyApi.js
create mode 100644 src/views/base/chargeCompany/form/ChargeCompanyForm.vue
create mode 100644 src/views/base/chargeCompany/index.vue
diff --git a/src/views/base/chargeCompany/api/chargeCompanyApi.js b/src/views/base/chargeCompany/api/chargeCompanyApi.js
new file mode 100644
index 0000000..0f9c7f3
--- /dev/null
+++ b/src/views/base/chargeCompany/api/chargeCompanyApi.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询挂账单位列表
+export function getChargeCompanyList(params) {
+ return request({
+ url: '/base-charge-company/page',
+ method: 'get',
+ params
+ })
+}
+
+// 获取挂账单位详情
+export function getChargeCompany(id) {
+ return request({
+ url: `/base-charge-company/get?id=${id}`,
+ method: 'get'
+ })
+}
+
+// 新增挂账单位
+export function addChargeCompany(data) {
+ return request({
+ url: '/base-charge-company/create',
+ method: 'post',
+ data
+ })
+}
+
+// 修改挂账单位
+export function updateChargeCompany(data) {
+ return request({
+ url: '/base-charge-company/update',
+ method: 'put',
+ data
+ })
+}
+
+// 删除挂账单位
+export function deleteChargeCompany(ids) {
+ return request({
+ url: `/base-charge-company/delete?id=${ids}`,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/src/views/base/chargeCompany/form/ChargeCompanyForm.vue b/src/views/base/chargeCompany/form/ChargeCompanyForm.vue
new file mode 100644
index 0000000..a0e5199
--- /dev/null
+++ b/src/views/base/chargeCompany/form/ChargeCompanyForm.vue
@@ -0,0 +1,219 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/base/chargeCompany/index.vue b/src/views/base/chargeCompany/index.vue
new file mode 100644
index 0000000..ff4f1b1
--- /dev/null
+++ b/src/views/base/chargeCompany/index.vue
@@ -0,0 +1,313 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 新增
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/repair/staff/index.vue b/src/views/repair/staff/index.vue
index 16e03a8..15092a2 100644
--- a/src/views/repair/staff/index.vue
+++ b/src/views/repair/staff/index.vue
@@ -348,7 +348,8 @@ export default {
isInsert: false,
// 表单参数
form: {
- driverLicenseTypeArr: []
+ driverLicenseTypeArr: [],
+ roleIds:[]
},
defaultProps: {
children: "children",
diff --git a/src/views/repair/tickets/Components/TicketManagerItem.vue b/src/views/repair/tickets/Components/TicketManagerItem.vue
index 3c2189e..001b802 100644
--- a/src/views/repair/tickets/Components/TicketManagerItem.vue
+++ b/src/views/repair/tickets/Components/TicketManagerItem.vue
@@ -221,6 +221,7 @@
label="参考成本"
align="center"
prop="accessoriesMoney"
+ v-if="checkPermi(['repair:tick:profit'])"
width="180"
/>
diff --git a/src/views/repair/tickets/Components/TicketTable.vue b/src/views/repair/tickets/Components/TicketTable.vue
index 0b98d74..ad7a0c2 100644
--- a/src/views/repair/tickets/Components/TicketTable.vue
+++ b/src/views/repair/tickets/Components/TicketTable.vue
@@ -285,6 +285,40 @@
+
+
+
+
+
+ 现结
+ 挂账
+
+
+
+
+
+
+
+
+
+
+
+
+ 申请新增
+
+
+
@@ -374,6 +408,45 @@
数据加载中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -391,6 +464,7 @@ import {
import TicketsShow from "@/views/repair/tickets/Components/TicketsShow.vue";
import {getByNameAndMobile} from "@/api/base/customer";
import EditTickets from "@/views/repair/tickets/form/EditTickets.vue";
+import { getChargeCompanyList, addChargeCompany } from '@/views/base/chargeCompany/api/chargeCompanyApi'
export default {
name: "TicketTable",
@@ -428,8 +502,28 @@ export default {
settlementFormData: {
actualMoney: 0,
discountType: this.defaultDiscountType,
- discount: 0
+ discount: 0,
+ payType: 'xj', // 默认现结
+ chargeCompanyId: null
},
+ chargeCompanyList: [], // 挂账单位列表
+ searchLoading: false, // 搜索加载状态
+ // 新增挂账单位表单
+ chargeCompanyForm: {
+ companyName: '',
+ contactPerson: '',
+ contactPhone: '',
+ address: '',
+ status: false, // 默认为禁用状态
+ systemCode: 'repair',
+ remark: ''
+ },
+ chargeCompanyRules: {
+ companyName: [{ required: true, message: '单位名称不能为空', trigger: 'blur' }],
+ contactPerson: [{ required: true, message: '联系人不能为空', trigger: 'blur' }],
+ contactPhone: [{ required: true, message: '联系电话不能为空', trigger: 'blur' }]
+ },
+ chargeCompanyDialogVisible: false, // 新增挂账单位弹窗显示状态
formRules: {
payType: [{required: true, message: '支付方式不能为空', trigger: 'blur'}],
isPaid: [{required: true, message: '请选择是否支付', trigger: 'blur'}],
@@ -556,6 +650,55 @@ export default {
}
console.log(this.settlementFormData)
},
+
+ // 处理支付方式变化
+ async handlePayTypeChange(value) {
+ if (value === 'gz') {
+ // 获取启用状态的挂账单位(systemCode为repair)
+ try {
+ const res = await getChargeCompanyList({
+ status: 1,
+ systemCode: 'repair'
+ });
+ this.chargeCompanyList = res.data.records || [];
+ } catch (err) {
+ console.error('获取挂账单位列表失败:', err);
+ this.$modal.msgError('获取挂账单位列表失败');
+ }
+ }
+ },
+
+ // 搜索挂账单位
+ async searchChargeCompany(query) {
+ if (query !== '') {
+ this.searchLoading = true;
+ try {
+ const res = await getChargeCompanyList({
+ companyName: query,
+ status: 1,
+ systemCode: 'repair'
+ });
+ this.chargeCompanyList = res.data.records || [];
+ } catch (err) {
+ console.error('搜索挂账单位失败:', err);
+ this.$modal.msgError('搜索挂账单位失败');
+ } finally {
+ this.searchLoading = false;
+ }
+ } else {
+ // 如果搜索关键词为空,重新加载所有启用的挂账单位
+ try {
+ const res = await getChargeCompanyList({
+ status: 1,
+ systemCode: 'repair'
+ });
+ this.chargeCompanyList = res.data.records || [];
+ } catch (err) {
+ console.error('获取挂账单位列表失败:', err);
+ this.$modal.msgError('获取挂账单位列表失败');
+ }
+ }
+ },
//收款
handlePaid(row) {
@@ -627,13 +770,16 @@ export default {
}
},
async doSettlement() {
+ console.log('提交的数据',this.settlementFormData);
try {
await this.$refs['formRefSettlement'].validate()
- if (this.settlementType === 'jssh') {
- await settlementReview(this.settlementFormData)
- } else {
- await setTicketsSettlement(this.settlementFormData)
- }
+
+
+ // if (this.settlementType === 'jssh') {
+ // await settlementReview(this.settlementFormData)
+ // } else {
+ // await setTicketsSettlement(this.settlementFormData)
+ // }
this.$modal.msgSuccess("提交成功")
this.dialogVisibleSettlement = false
this.$emit("setVoid")
@@ -749,6 +895,47 @@ export default {
}
});
},
+
+ // 处理新增挂账单位按钮点击
+ handleAddChargeCompany() {
+ // 重置表单
+ this.chargeCompanyForm = {
+ companyName: '',
+ contactPerson: '',
+ contactPhone: '',
+ address: '',
+ status: false, // 默认为禁用状态
+ systemCode: 'repair',
+ remark: ''
+ };
+ this.chargeCompanyDialogVisible = true;
+ },
+
+ // 提交新增挂账单位
+ async submitChargeCompany() {
+ this.$refs.chargeCompanyFormRef.validate(async (valid) => {
+ if (valid) {
+ try {
+ await addChargeCompany(this.chargeCompanyForm);
+ this.$modal.msgSuccess('挂账单位申请成功,请等待审核');
+ this.chargeCompanyDialogVisible = false;
+ // 如果当前是挂账方式,则重新加载挂账单位列表
+ if (this.settlementFormData.payType === 'gz') {
+ await this.searchChargeCompany(''); // 重新加载列表
+ }
+ } catch (err) {
+ console.error('新增挂账单位失败:', err);
+ this.$modal.msgError('新增挂账单位失败');
+ }
+ }
+ });
+ },
+
+ // 取消新增挂账单位
+ cancelChargeCompany() {
+ this.chargeCompanyDialogVisible = false;
+ this.$refs.chargeCompanyFormRef && this.$refs.chargeCompanyFormRef.resetFields();
+ }
}
}
@@ -779,4 +966,4 @@ export default {
color: #409EFF;
margin-bottom: 10px;
}
-
\ No newline at end of file
+