|
@@ -25,6 +25,8 @@
|
|
|
import search from './components/search.vue';
|
|
import search from './components/search.vue';
|
|
|
import { pageByDispatchRecord } from '@/api/salesServiceManagement/index';
|
|
import { pageByDispatchRecord } from '@/api/salesServiceManagement/index';
|
|
|
import dictMixins from '@/mixins/dictMixins';
|
|
import dictMixins from '@/mixins/dictMixins';
|
|
|
|
|
+// 导入获取用户列表的接口(与第二个组件保持一致)
|
|
|
|
|
+import { getUserPage } from '@/api/system/organization';
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
mixins: [dictMixins],
|
|
mixins: [dictMixins],
|
|
@@ -37,21 +39,12 @@ export default {
|
|
|
deptResList: [], // 部门
|
|
deptResList: [], // 部门
|
|
|
deptIdToNameMap: {},
|
|
deptIdToNameMap: {},
|
|
|
statusList: [
|
|
statusList: [
|
|
|
- {
|
|
|
|
|
- value: 1,
|
|
|
|
|
- label: '处理中'
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- {
|
|
|
|
|
- value: 2,
|
|
|
|
|
- label: '通过'
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- {
|
|
|
|
|
- value: 3,
|
|
|
|
|
- label: '不通过'
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ { value: 1, label: '处理中' },
|
|
|
|
|
+ { value: 2, label: '通过' },
|
|
|
|
|
+ { value: 3, label: '不通过' }
|
|
|
],
|
|
],
|
|
|
|
|
+ // 新增:用户列表(用于匹配用车人名称)
|
|
|
|
|
+ userList: [],
|
|
|
// 加载状态
|
|
// 加载状态
|
|
|
loading: false
|
|
loading: false
|
|
|
};
|
|
};
|
|
@@ -151,12 +144,13 @@ export default {
|
|
|
formatter: (row) => row.valueJson?.car_number || ''
|
|
formatter: (row) => row.valueJson?.car_number || ''
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- prop: 'createUserName',
|
|
|
|
|
|
|
+ prop: 'vehicle_user',
|
|
|
label: '用车人',
|
|
label: '用车人',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
showOverflowTooltip: true,
|
|
showOverflowTooltip: true,
|
|
|
minWidth: 200,
|
|
minWidth: 200,
|
|
|
- // formatter: (row) => row.valueJson?.vehicle_user || ''
|
|
|
|
|
|
|
+ // 关键修改:通过vehicle_user(用户ID)匹配用户名
|
|
|
|
|
+ formatter: (row) => this.getVehicleUserName(row.valueJson?.vehicle_user)
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
prop: 'vehicle_mileage',
|
|
prop: 'vehicle_mileage',
|
|
@@ -181,10 +175,10 @@ export default {
|
|
|
showOverflowTooltip: true,
|
|
showOverflowTooltip: true,
|
|
|
minWidth: 200,
|
|
minWidth: 200,
|
|
|
formatter: (row) => {
|
|
formatter: (row) => {
|
|
|
- const currentStatus = row.status;
|
|
|
|
|
- const matchedItem = this.statusList.find(item => item.value === currentStatus);
|
|
|
|
|
- return matchedItem ? matchedItem.label : '';
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ const currentStatus = row.status;
|
|
|
|
|
+ const matchedItem = this.statusList.find(item => item.value === currentStatus);
|
|
|
|
|
+ return matchedItem ? matchedItem.label : '';
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
prop: 'createTime',
|
|
prop: 'createTime',
|
|
@@ -196,7 +190,33 @@ export default {
|
|
|
];
|
|
];
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ created() {
|
|
|
|
|
+ // 初始化时获取用户列表(用于匹配用车人名称)
|
|
|
|
|
+ this.getUserList();
|
|
|
|
|
+ },
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ // 新增:获取用户列表(与第二个组件逻辑一致)
|
|
|
|
|
+ async getUserList() {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await getUserPage({
|
|
|
|
|
+ pageNum: 1,
|
|
|
|
|
+ pageSize: -1 // 获取全部用户
|
|
|
|
|
+ });
|
|
|
|
|
+ this.userList = res?.list || [];
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取用户列表失败:', error);
|
|
|
|
|
+ this.$message.error('获取用户列表失败');
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ // 新增:通过vehicle_user(用户ID)获取用户名
|
|
|
|
|
+ getVehicleUserName(vehicleUserId) {
|
|
|
|
|
+ if (!vehicleUserId) return '';
|
|
|
|
|
+ // 在用户列表中匹配ID对应的用户名称
|
|
|
|
|
+ const matchedUser = this.userList.find(user => user.id === vehicleUserId);
|
|
|
|
|
+ return matchedUser ? matchedUser.name : vehicleUserId; // 未匹配到则显示原始ID
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
getDeptNames(deptIdArr) {
|
|
getDeptNames(deptIdArr) {
|
|
|
if (!deptIdArr || !Array.isArray(deptIdArr) || deptIdArr.length === 0) {
|
|
if (!deptIdArr || !Array.isArray(deptIdArr) || deptIdArr.length === 0) {
|
|
|
return '-';
|
|
return '-';
|
|
@@ -206,6 +226,7 @@ export default {
|
|
|
);
|
|
);
|
|
|
return deptNames.join('、');
|
|
return deptNames.join('、');
|
|
|
},
|
|
},
|
|
|
|
|
+
|
|
|
getPieTypeLabel(value) {
|
|
getPieTypeLabel(value) {
|
|
|
if (!value) return '';
|
|
if (!value) return '';
|
|
|
const target = this.pietypeList.find(
|
|
const target = this.pietypeList.find(
|
|
@@ -213,6 +234,7 @@ export default {
|
|
|
);
|
|
);
|
|
|
return target ? target.label : value;
|
|
return target ? target.label : value;
|
|
|
},
|
|
},
|
|
|
|
|
+
|
|
|
handlePietypeList(list, deptRes) {
|
|
handlePietypeList(list, deptRes) {
|
|
|
this.pietypeList = list;
|
|
this.pietypeList = list;
|
|
|
this.deptResList = deptRes;
|
|
this.deptResList = deptRes;
|
|
@@ -221,6 +243,7 @@ export default {
|
|
|
return map;
|
|
return map;
|
|
|
}, {});
|
|
}, {});
|
|
|
},
|
|
},
|
|
|
|
|
+
|
|
|
datasource({ page, limit, where }) {
|
|
datasource({ page, limit, where }) {
|
|
|
const dataPromise = pageByDispatchRecord({
|
|
const dataPromise = pageByDispatchRecord({
|
|
|
pageNum: page,
|
|
pageNum: page,
|
|
@@ -232,9 +255,10 @@ export default {
|
|
|
.catch((error) => console.error('获取数据失败:', error));
|
|
.catch((error) => console.error('获取数据失败:', error));
|
|
|
return dataPromise;
|
|
return dataPromise;
|
|
|
},
|
|
},
|
|
|
|
|
+
|
|
|
/* 刷新表格 */
|
|
/* 刷新表格 */
|
|
|
reload(where) {
|
|
reload(where) {
|
|
|
- this.$refs.table.reload({ page: 1, where });
|
|
|
|
|
|
|
+ this.$refs.table.reload({ page: 1, ...where });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|