diff --git a/src/api/inspection/reminderConfig/index.js b/src/api/inspection/reminderConfig/index.js new file mode 100644 index 0000000..eb60bb5 --- /dev/null +++ b/src/api/inspection/reminderConfig/index.js @@ -0,0 +1,22 @@ +import request from '@/utils/request' + +export function getInfo(){ + return request({ + url: '/inspection-reminder-config', + method: 'get', + }) +} +export function add(data){ + return request({ + url: '/inspection-reminder-config', + method: 'post', + data: data + }) +} +export function update(data){ + return request({ + url: '/inspection-reminder-config', + method: 'put', + data: data + }) +} diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index 322598f..e4814d1 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -7,8 +7,8 @@ const permission = { state: { routes: [], addRoutes: [], - sidebarRouters: [], // 左侧边菜单的路由,被 Sidebar/index.vue 使用 - topbarRouters: [], // 顶部菜单的路由,被 TopNav/index.vue 使用 + sidebarRouters: [], // 左侧边菜单的路由,被 Sidebar/index.js 使用 + topbarRouters: [], // 顶部菜单的路由,被 TopNav/index.js 使用 }, mutations: { SET_ROUTES: (state, routes) => { diff --git a/src/views/inspection/reminderConfig/index.vue b/src/views/inspection/reminderConfig/index.vue new file mode 100644 index 0000000..1415b32 --- /dev/null +++ b/src/views/inspection/reminderConfig/index.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/src/views/inspection/statistics/api/statistics.js b/src/views/inspection/statistics/api/statistics.js new file mode 100644 index 0000000..dd35329 --- /dev/null +++ b/src/views/inspection/statistics/api/statistics.js @@ -0,0 +1,7 @@ +export function getServerData1(params) { + return request({ + url: '/partnerOwn/partner/chartInfoAmount', + method: 'get', + params: params + }) +} diff --git a/src/views/inspection/statistics/statistics.vue b/src/views/inspection/statistics/statistics.vue new file mode 100644 index 0000000..e97a57d --- /dev/null +++ b/src/views/inspection/statistics/statistics.vue @@ -0,0 +1,370 @@ + + + + + diff --git a/src/views/partner/api/workOrder.js b/src/views/partner/api/workOrder.js index 249db42..19313ef 100644 --- a/src/views/partner/api/workOrder.js +++ b/src/views/partner/api/workOrder.js @@ -185,3 +185,11 @@ export function batchSettlement(data) { data: data }) } + +export function getBatchList(query) { + return request({ + url: '/batchSettlement/page', + method: 'get', + params: query + }) +} diff --git a/src/views/partner/form/InspectionCashierConfirmForm.vue b/src/views/partner/form/InspectionCashierConfirmForm.vue index 4be28ce..d7f996c 100644 --- a/src/views/partner/form/InspectionCashierConfirmForm.vue +++ b/src/views/partner/form/InspectionCashierConfirmForm.vue @@ -7,14 +7,17 @@ + + + - - - - + + + + - 查看附件 + 查看附件 @@ -253,7 +256,7 @@ export default { try { // 查询检测工单 const res = await getOrderInfo(id) - this.orderInfo = res.data + this.formData = res.data // const res = await SchoolCourseOrderApi.getSchoolCourseOrder(id) // this.formData = res.data // this.title = '修改驾照报名订单' diff --git a/src/views/partner/workOrder.vue b/src/views/partner/workOrder.vue index 07864f3..5cf7b08 100644 --- a/src/views/partner/workOrder.vue +++ b/src/views/partner/workOrder.vue @@ -16,6 +16,14 @@ @keyup.enter.native="handleQuery" /> + + + - + + + + + + + + + + + 搜索搜索 + 重置重置 + @@ -109,7 +134,7 @@ icon="el-icon-plus" size="mini" @click="handleAdd" - >录入 + >录入 @@ -119,7 +144,7 @@ icon="el-icon-download" size="mini" @click="handleExport" - >导出 + >导出 @@ -129,7 +154,7 @@ icon="el-icon-download" size="mini" @click="handleBatchSettle('cn')" - >批量结算 + >批量结算 @@ -140,7 +165,7 @@ icon="el-icon-download" size="mini" @click="handleBatchSettle('kj')" - >批量审核 + >批量审核
@@ -154,9 +179,10 @@ - + - - + + {{ scope.row.realPayMoney / 100 }} - + - + - + - - + + + + + + 打印 + >打印 制证 + >制证 详情 + >详情 @@ -255,14 +301,14 @@ type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" - >修改 + >修改 删除 + >删除 @@ -378,7 +424,7 @@ style="margin-left: 90%; margin-top: 20px" v-print="'#printMe'" size="small" - >打印 + >打印 @@ -460,7 +506,11 @@ - + 取 消
- + - - - - - - - - - - - - - - - - - - - - - - - 筛选 - - + +
+ + + + + + + + + + + + + + + + + + + + + + 筛选 + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + +
+
+ + + + + + 筛选 + + + + + + + + + + + + + + + + + + +
取消取消 + + + + + @@ -856,9 +991,7 @@
@@ -886,6 +1019,7 @@ import { getWeorkNodesById, getCustomerSource, batchSettlement, + getBatchList, } from "./api/workOrder"; import print from "vue-print-nb"; import moment from "moment"; @@ -920,6 +1054,7 @@ export default { settleDialogVisible: false, batchSelectedOrders: [], batchSelectedMoney: [], + selectBatchType: undefined, batchQueryParams: { pageNum: 1, pageSize: 100, @@ -928,12 +1063,12 @@ export default { }, cashierConfirmOption: [ { - value: '0', - label: '未到账' + value: "0", + label: "未到账", }, { - value: '1', - label: '已到账' + value: "1", + label: "已到账", }, ], batchOrderList: [], @@ -1020,6 +1155,12 @@ export default { total: 0, // 道路救援模块表格数据 infoList: [], + columns: [ + { + prop: "carNum", + label: "车牌号", + }, + ], // 弹出层标题 title: "", addOpen: false, @@ -1056,13 +1197,13 @@ export default { // 表单校验 rules: { connectionName: [ - { required: true, message: "联系人名称不能为空", trigger: "blur" }, + {required: true, message: "联系人名称不能为空", trigger: "blur"}, ], connectionPhone: [ - { required: true, message: "联系人手机号不能为空", trigger: "blur" }, + {required: true, message: "联系人手机号不能为空", trigger: "blur"}, ], licenseNum: [ - { required: true, message: "车牌号不能为空", trigger: "blur" }, + {required: true, message: "车牌号不能为空", trigger: "blur"}, ], isAppointment: [ { @@ -1093,21 +1234,21 @@ export default { }, ], feeType: [ - { required: true, message: "收费类型不能为空", trigger: "change" }, + {required: true, message: "收费类型不能为空", trigger: "change"}, ], }, settleRules: { payType: [ - { required: true, message: "请选择支付方式", trigger: "change" }, + {required: true, message: "请选择支付方式", trigger: "change"}, ], realPayMoney: [ - { required: true, message: "请输入实付金额", trigger: "blur" }, + {required: true, message: "请输入实付金额", trigger: "blur"}, ], }, }; }, created() { - this.dict = { type: {} }; + this.dict = {type: {}}; for (let i = 0; i < this.$options.dicts.length; i++) { request({ url: "/rescue/dict/data/type/" + this.$options.dicts[i], @@ -1125,14 +1266,14 @@ export default { // 根据角色判断是否显示对应的列 showCashierColumn() { // return this.$store.getters.roles.includes('cn') - return ["cn", "jcnc","tenant_admin"].some((role) => + return ["cn", "jcnc", "tenant_admin"].some((role) => this.$store.getters.roles.includes(role) ); }, // 根据角色判断是否显示对应的列 showAccountingColumn() { // return this.$store.getters.roles.includes('cn') - return ["kj", "jckj","tenant_admin"].some((role) => + return ["kj", "jckj", "tenant_admin"].some((role) => this.$store.getters.roles.includes(role) ); }, @@ -1142,7 +1283,9 @@ export default { }, methods: { handleBatchSettle(type) { - if(type == 'cn') { + this.selectBatchType = type; + this.batchOrderList = []; + if (type == "cn") { this.batchQueryParams.payStatus = 0; } else { this.batchQueryParams.payStatus = 2; @@ -1151,16 +1294,30 @@ export default { this.batchSettleVisible = true; this.handleBatchQuery(); }, + formatDate(row, column, cellValue) { + if (!cellValue) return ''; // 处理空值 + const date = new Date(cellValue); + return date.toISOString().split('T')[0]; // 2023-10-25 + // 或使用更灵活的格式化方式(如 moment.js 或 day.js) + }, handleBatchQuery() { const params = { ...this.batchQueryParams, pageNum: this.batchQueryParams.pageNum || 1, pageSize: this.batchQueryParams.pageSize || 100, + accountingConfirm: '1' }; - listWorkOrder(params).then((response) => { - this.batchOrderList = response.data.records; - this.batchTotal = response.data.total; - }); + if (this.selectBatchType == "cn") { + listWorkOrder(params).then((response) => { + this.batchOrderList = response.data.records; + this.batchTotal = response.data.total; + }); + } else { + getBatchList(params).then((response) => { + this.batchOrderList = response.data.records; + this.batchTotal = response.data.total; + }); + } }, handleBatchSelectionChange(selection) { this.batchSelectedOrders = selection.map((item) => item.id); @@ -1170,7 +1327,7 @@ export default { // 判断是否选中 如果没有选中则提示 if (this.batchSelectedOrders.length === 0) { - this.$message.warning("请选择结算工单"); + this.$message.warning("请选择工单"); return; } this.settleDialogVisible = true; @@ -1183,6 +1340,7 @@ export default { }, 0 ); + this.settleForm.goodsPrice = this.settleForm.realPayMoney; }, handleSettleSubmit() { this.$refs.settleForm.validate((valid) => { @@ -1192,6 +1350,7 @@ export default { ...this.settleForm, realPayMoney: this.settleForm.realPayMoney * 100, // 将元转换为分 type: this.batchType, + reduceMoney: this.settleForm.reduceMoney * 100, }; this.$modal.loading("正在提交结算信息..."); batchSettlement(params) @@ -1223,7 +1382,7 @@ export default { } }, checkoutBatchSettlement(ids) { - const data = { ids: ids }; + const data = {ids: ids}; this.$modal .confirm("确定要结算吗?") .then(() => { @@ -1299,6 +1458,13 @@ export default { } this.payMoney = this.goodsPrice / 100 - this.reduceMoney; }, + batchJisuan() { + if (this.settleForm.reduceMoney > this.settleForm.goodsPrice) { + this.settleForm.reduceMoney = this.settleForm.goodsPrice; + } + this.settleForm.realPayMoney = + this.settleForm.goodsPrice - this.settleForm.reduceMoney; + }, tijiao() { console.log(this.fileUrls); if (Array.isArray(this.fileUrls)) { @@ -1423,7 +1589,7 @@ export default { // this.workerList = res.rows // }) getBankAccountList().then((res) => { - this.BankAccountList = res.data + this.BankAccountList = res.data; // res.data.forEach((it) => { // let temp = {}; // temp.key = it.remark + it.label; @@ -1638,7 +1804,8 @@ export default { this.getList(); this.$modal.msgSuccess("删除成功"); }) - .catch(() => {}); + .catch(() => { + }); }, /** 导出按钮操作 */ handleExport() { @@ -1698,7 +1865,10 @@ export default { font-weight: bold; } -* 对话框整体样式 * / .custom-dialog { +* 对话框整体样式 * + +/ +.custom-dialog { border-radius: 8px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1); }