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 +