From a680cd72d04d229aef0e85530c13cab37bab0269 Mon Sep 17 00:00:00 2001
From: ljx <864490211@qq.com>
Date: Sat, 27 Apr 2024 23:11:03 +0800
Subject: [PATCH] 4.27
---
.../Middle/transport/Custom/Custom/Detail.vue | 187 +++++++-
.../DriverWages/DriverWages/List.vue | 22 +-
.../DriverWages/DriverWages/Total.vue | 449 ++++++++++++++++++
.../TrainNumber/TrainNumber/List.vue | 2 +-
.../transport/DriverWages/router.map.js | 2 +-
5 files changed, 653 insertions(+), 9 deletions(-)
diff --git a/src/pages/Middle/transport/Custom/Custom/Detail.vue b/src/pages/Middle/transport/Custom/Custom/Detail.vue
index 966b295..1cf63c4 100644
--- a/src/pages/Middle/transport/Custom/Custom/Detail.vue
+++ b/src/pages/Middle/transport/Custom/Custom/Detail.vue
@@ -80,7 +80,31 @@
+
+
+
销售记录
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.status == 1 ? '正常' : '禁用'}}
+
+
+
+
+
@@ -125,14 +149,15 @@ export default {
},
data() {
- return {
-
+ const listFieldName = 'train_number';
+ var pageData = {
BalanceAdd: `${BASE_URL.BASE_URL}/Custom/v1/balance/add`, // 增加客户结余
BalanceReduce: `${BASE_URL.BASE_URL}/Custom/v1/balance/reduce`, // 减少客户结余 BalanceLogList: `${BASE_URL.BASE_URL}/Custom/v1/balance/log/list`, // 客户结余日志列表
BalanceLogSearch: `${BASE_URL.BASE_URL}/Custom/v1/balance/log/search`, // 客户结余日志搜索
BalanceLogDetail: `${BASE_URL.BASE_URL}/Custom/v1/balance/log/detail`, // 客户结余日志详情
BalanceLogDelete: `${BASE_URL.BASE_URL}/Custom/v1/balance/log/detele`, // 删除客户结余日志
BalanceLogBatchDelete: `${BASE_URL.BASE_URL}/Custom/v1/balance/log/batchDelete`, // 批量删除客户结余日志
+ getTradeLIst:`${BASE_URL.BASE_URL}/Custom/v1/custom/trade/list`,
zkSelectData: {
page: 1,
end_time: 0,
@@ -175,7 +200,118 @@ export default {
data: {
},
+ start_time: 0, // 开始时间
+ end_time: 0, // 结束时间
+ //搜索区
+ searchFormData: {},
+ searchFormItems: [ // 子项
+ {span: 8, slots: {default: 'date'}}, // 自定义列
+ {
+ align: 'right', span: 8, itemRender: { // 按钮列
+ name: '$buttons', children: [{props: {type: 'submit', content: '搜索', status: 'primary'}}, // 搜索按钮
+ {props: {type: 'reset', content: '重置'}},
+ {props: {type: 'reset', content: '打印'}}
+ ]
+ }
+ }
+ ],
+ //数据区
+ gridOptions: { // 表格配置
+ height: '100%', // 表格高度 100% 会自动撑满父容器
+ stripe: true, // 启用斑马纹
+ id: 'datagrid_1', // 表格唯一标识
+
+ // 接口获取数据
+ proxyConfig: { // 配置代理
+ sort: true, // 启用排序代理,当点击排序时会自动触发 query 行为
+ filter: true, // 启用筛选代理,当点击筛选时会自动触发 query 行为
+ props: {
+ result: listFieldName, // 配置响应结果列表字段
+ total: 'total' // 配置响应结果总页数字段
+ },
+
+ // 接收Promise
+ ajax: {
+ // 当点击工具栏查询按钮或者手动提交指令 query或reload 时会被触发
+ query: (options) => { // options 为当前表格的配置项
+ const {page,sorts} = options; // 获取当前页码、每页条数、排序信息
+ var params = {}; // 定义请求参数
+ params.page = page.currentPage; // 当前页码
+ params.limit = page.pageSize; // 每页条数
+ params.order_bys = []; // 排序信息
+ params.search_rules = this.getSearchParms(); // 搜索信息
+ if (sorts) { // 如果有排序信息
+ sorts.forEach((v) => { // 遍历排序信息
+ params.order_bys.push({ // 添加排序信息
+ column: v.property, // 字段名
+ order: v.order // 排序方式
+ })
+ });
+ }
+ return this.loadData({params}); // 返回请求结果
+ }
+ }
+ },
+
+
+ // 表格列配置
+ columns: [
+ { type: 'checkbox', width: 50 }, // 多选框
+ { type: 'seq', width: 40 }, // 序号
+
+
+ // =============================== 表格列 自动生成 Start ===============================
+
+
+ { field: 'code', align: 'center', sortable: true, title: '车次单号', width: 120 }, // 车次单号
+ {
+ field: 'truck_id', align: 'center', sortable: true, title: '车辆', width: 150,
+ slots: { default: 'truck_id' }
+ }, // 车辆id
+ {
+ field: 'driver_id', align: 'center', sortable: true, title: '司机', width: 150,
+ slots: { default: 'driver_id' }
+ }, // 司机id
+ // {field: 'custom_id', sortable: true, title: '客户id', width: 250}, // 客户id
+ { field: 'custom_name', align: 'center', sortable: true, title: '客户名称', width: 200 }, // 客户名称
+ // {field: 'supplier_id', sortable: true, title: '供应商id', width: 250}, // 供应商id
+ { field: 'supplier_name', align: 'center', sortable: true, title: '供应商名称', width: 200 }, // 客户名称
+ { field: 'outbound_date', align: 'center', sortable: true, formatter: 'formatDate', title: '出车日期', width: 100 }, // 出车日期
+ { field: 'return_date', align: 'center', sortable: true, formatter: 'formatDate', title: '回车日期', width: 100 }, // 回车日期
+ {
+ field: 'is_oil', align: 'center', sortable: true, title: '加油', width: 70,
+ slots: { default: 'is_oil' }
+ }, // 是否加油
+
+ // {
+ // field: 'create_time',
+ // formatter: 'formatDate',
+ // width: 100,
+ // sortable: true,
+ // title: '创建时间',
+ // showHeaderOverflow: true
+ // }, // 创建时间
+
+ { field: 'outbound_mileage', align: 'center', sortable: true, title: '出车公里数', width: 120 }, // 出车公里数
+ { field: 'outbound_remark', align: 'center', sortable: true, title: '出车备注', width: 250 }, // 出车备注
+ {
+ field: 'income', sortable: true, title: '收入', width: 80, fixed: 'right',
+ align: 'center',
+ }, // 收入
+ {
+ field: 'cost', sortable: true, title: '成本', width: 80, fixed: 'right',
+ align: 'center',
+ }, // 成本
+ {
+ field: 'profit', sortable: true, title: '利润', width: 80, fixed: 'right',
+ align: 'center',
+ }, // 利润
+ ]
+ }
}
+ pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions); // 合并表格数据
+ return pageData;
+
},
created() {
this.initDetailData();
@@ -240,7 +376,54 @@ export default {
reduceBalance() {
this.reduceBalanceApi();
},
+ // 修改日期
+ onDateChange(date) { // 日期选择器事件
+ if (date && date.length) { // 如果有值
+ this.start_time = parseInt(date[0]._d.getTime() / 1000); // 将日期转换为时间戳
+ this.end_time = parseInt(date[1]._d.getTime() / 1000); // 将日期转换为时间戳
+ } else { // 如果没有值
+ this.start_time = 0; // 将日期转换为时间戳
+ this.end_time = 0; // 将日期转换为时间戳
+ }
+ },
+ // 搜索
+ onSearch() {
+ this.$refs.xGrid.commitProxy('query') // 提交搜索
+ },
+ // 获取搜索参数
+ getSearchParms() { // 获取搜索参数
+ var rules = []; // 定义搜索参数
+ let findMode = k => { // 查找搜索模式
+ for (let i in this.searchRules) { // 遍历搜索规则
+ if (this.searchRules[i].key == k) return this.searchRules[i].mode; // 如果找到了就返回搜索模式
+ }
+ return "="; // 如果没有找到就返回等于
+ };
+ for (let key in this.searchFormData) { // 遍历搜索表单数据
+ let value = this.searchFormData[key]; // 获取值
+ if (value) { // 如果有值
+ let mode = findMode(key); // 获取搜索模式
+ if (mode == "like") { // 如果是模糊搜索
+ value = "%" + value + "%"; // 如果是模糊搜索就在两边加上%
+ }
+ rules.push({ // 添加搜索参数
+ column: key, // 字段名
+ mode: mode, // 搜索模式
+ value: value // 值
+ });
+ }
+ }
+ return rules; // 返回搜索参数
+ },
+ // 加载数据
+ loadData({params}) {
+ params.id = Number(this.dataId); // 转换为数字
+ params.last_time = Number(params.last_time)
+ params.start_time = this.start_time; // 开始时间
+ params.end_time = this.end_time; // 结束时间
+ return this.$mk.getPagedData({url: this.getTradeLIst, data: params}); // 获取分页数据
+ },
addBalanceApi() {
// 转换 this.amount 为数字
this.amount = Number(this.amount);
diff --git a/src/pages/Middle/transport/DriverWages/DriverWages/List.vue b/src/pages/Middle/transport/DriverWages/DriverWages/List.vue
index 4f1b8bd..7808c36 100644
--- a/src/pages/Middle/transport/DriverWages/DriverWages/List.vue
+++ b/src/pages/Middle/transport/DriverWages/DriverWages/List.vue
@@ -58,6 +58,9 @@
发放工资
+
+ 总计工资:{{ total_wages }}
+
@@ -125,7 +128,7 @@ export default {
keyName: 'id', // 主键字段名
-
+ total_wages:0, // 总工资
// 接口动作
actions: { // Api 接口地址
// =============================== 接口地址 自动生成 Start ===============================
@@ -206,7 +209,8 @@ export default {
filter: true, // 启用筛选代理,当点击筛选时会自动触发 query 行为
props: {
result: listFieldName, // 配置响应结果列表字段
- total: 'total' // 配置响应结果总页数字段
+ total: 'total', // 配置响应结果总页数字段
+ total_wages:'total_wages', // 配置响应结果总工资字段
},
// 接收Promise
ajax: {
@@ -360,6 +364,9 @@ export default {
loadData({ params }) {
params.start_time = this.start_time; // 开始时间
params.end_time = this.end_time; // 结束时间
+ this.$mk.post({ url: this.actions.getList, data: params }).then(res=>{
+ this.total_wages = res.data.total_wages;
+ })
return this.$mk.getPagedData({ url: this.actions.getList, data: params }); // 获取分页数据
},
@@ -469,8 +476,8 @@ export default {
}
});
},
- // 选择器改变
- StaffhandleChange(value) {
+ // 选择器改变
+ StaffhandleChange(value) {
this.$data.searchFormData.staff_uid = value.id;
console.log("this.$data.searchFormData.driver_id:",this.$data.searchFormData.staff_uid);
@@ -498,10 +505,15 @@ export default {
}
-
\ No newline at end of file
diff --git a/src/pages/Middle/transport/DriverWages/DriverWages/Total.vue b/src/pages/Middle/transport/DriverWages/DriverWages/Total.vue
index e69de29..f20df3a 100644
--- a/src/pages/Middle/transport/DriverWages/DriverWages/Total.vue
+++ b/src/pages/Middle/transport/DriverWages/DriverWages/Total.vue
@@ -0,0 +1,449 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 未发放
+
+
+ 已发放
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/Middle/transport/TrainNumber/TrainNumber/List.vue b/src/pages/Middle/transport/TrainNumber/TrainNumber/List.vue
index 90292e9..f512677 100644
--- a/src/pages/Middle/transport/TrainNumber/TrainNumber/List.vue
+++ b/src/pages/Middle/transport/TrainNumber/TrainNumber/List.vue
@@ -296,7 +296,7 @@ export default {
// {field: 'unit_price', sortable: true, title: '单价', width: 120}, // 单价
// {field: 'total_price', sortable: true, title: '总价', width: 120}, // 总价
{
- field: 'is_outsourcing', align: 'center', sortable: true, title: '类型', width: 80,
+ field: 'is_outsourcing', align: 'center', sortable: true, title: '是否委外', width: 80,
slots: { default: 'is_outsourcing' }
}, // 是否委外
// {field: 'is_need_outbound', sortable: true, title: '出车', width: 70}, // 是否需要出车
diff --git a/src/router/Middle/transport/DriverWages/router.map.js b/src/router/Middle/transport/DriverWages/router.map.js
index d5f5eac..7860674 100644
--- a/src/router/Middle/transport/DriverWages/router.map.js
+++ b/src/router/Middle/transport/DriverWages/router.map.js
@@ -70,7 +70,7 @@ const DriverWagesRouterMap = {
icon: 'idcard',
path: '/DriverWages/DriverWagesTotal',
meta: {
- invisible: true, // 不在菜单中显示
+ invisible: false, // 不在菜单中显示
},
component: () => import('@/pages/Middle/transport/DriverWages/DriverWages/Total'),
authority: {