diff --git a/src/api/lb-daily-user-trade-report.js b/src/api/lb-daily-user-trade-report.js index 5604bc2..d98e63c 100644 --- a/src/api/lb-daily-user-trade-report.js +++ b/src/api/lb-daily-user-trade-report.js @@ -71,3 +71,15 @@ export function exportLbDailyUserTradeReportByDateAndTenant(reportDate, tenantId responseType: 'blob' }) } + +export function listYestodayBuyPositiveAndDailySellZero(startDate, endDate, tenantId) { + return request({ + url: '/lbDailyUserTradeReport/list/yestoday-buy-positive-and-daily-sell-zero', + method: 'get', + params: { + startDate, + endDate, + tenantId + } + }) +} diff --git a/src/api/lb-department-user.js b/src/api/lb-department-user.js new file mode 100644 index 0000000..a0cb5fe --- /dev/null +++ b/src/api/lb-department-user.js @@ -0,0 +1,32 @@ +import request from '@/utils/request' + +export function getLbDepartmentUserList(params) { + return request({ + url: '/lbDepartmentUser/list', + method: 'get', + params + }) +} + +export function addLbDepartmentUser(data) { + return request({ + url: '/lbDepartmentUser/add', + method: 'post', + data + }) +} + +export function updateLbDepartmentUser(data) { + return request({ + url: '/lbDepartmentUser/update', + method: 'put', + data + }) +} + +export function deleteLbDepartmentUser(id) { + return request({ + url: `/lbDepartmentUser/delete/${id}`, + method: 'delete' + }) +} diff --git a/src/router/index.js b/src/router/index.js index 0b97854..58bcf1e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -391,6 +391,12 @@ export const constantRoutes = [ name: 'LbReportStatistics', component: () => import('@/views/lb-business/report-statistics/index'), meta: { title: '报表统计', icon: 'el-icon-pie-chart' } + }, + { + path: 'department-user', + name: 'LbDepartmentUser', + component: () => import('@/views/lb-business/department-user/index'), + meta: { title: '部门人员', icon: 'el-icon-user-solid' } } ] }, diff --git a/src/views/lb-business/daily-report/index.vue b/src/views/lb-business/daily-report/index.vue index 38a131c..3cca317 100644 --- a/src/views/lb-business/daily-report/index.vue +++ b/src/views/lb-business/daily-report/index.vue @@ -33,6 +33,7 @@ 查询 + 检查未寄卖 清空 @@ -242,6 +243,7 @@ import { deleteLbDailyUserTradeReport, exportLbDailyUserTradeReportByDateAndTenant, getLbDailyUserTradeReportList, + listYestodayBuyPositiveAndDailySellZero, updateLbDailyUserTradeReport } from '@/api/lb-daily-user-trade-report' import { getBusinessHeaders } from '@/utils/business-headers' @@ -280,6 +282,7 @@ export default { deleteByDateLoading: false, reportSumLoading: false, exportLoading: false, + checkUnsoldLoading: false, list: [], total: 0, dialogVisible: false, @@ -376,6 +379,41 @@ export default { this.queryParams.current = 1 this.fetchList() }, + handleCheckUnsold() { + const tenantId = this.getTenantIdFromBusinessHeaders() + if (!tenantId) { + this.$message.error('未获取到租户ID,请先登录或切换到正确租户后重试') + return + } + const startDate = this.extractDateOnly(this.queryParams.reportStartTime) + const endDate = this.extractDateOnly(this.queryParams.reportEndTime) + if (!startDate || !endDate) { + this.$message.warning('请先选择报表开始和结束时间') + return + } + this.checkUnsoldLoading = true + listYestodayBuyPositiveAndDailySellZero(startDate, endDate, tenantId) + .then((res) => { + const isSuccess = res && (res.success === true || res.code === 200 || res.code === 20000) + if (!isSuccess) { + this.$message.error((res && res.message) || '检查未寄卖失败') + this.list = [] + this.total = 0 + return + } + this.list = Array.isArray(res.data) ? res.data : [] + this.total = typeof res.total === 'number' ? res.total : this.list.length + this.queryParams.current = 1 + this.$message.success((res && res.message) || '检查完成') + }) + .catch(() => { + this.list = [] + this.total = 0 + }) + .finally(() => { + this.checkUnsoldLoading = false + }) + }, resetQuery() { this.queryParams = { current: 1, @@ -603,6 +641,12 @@ export default { if (!val) return '' return String(val).replace('T', ' ') }, + extractDateOnly(dateTime) { + if (!dateTime) return '' + const normalized = String(dateTime).replace('T', ' ').trim() + if (!normalized) return '' + return normalized.split(' ')[0] + }, resetForm() { this.$refs.dataForm && this.$refs.dataForm.resetFields() this.resetFormData() diff --git a/src/views/lb-business/department-user/index.vue b/src/views/lb-business/department-user/index.vue new file mode 100644 index 0000000..0a3a49d --- /dev/null +++ b/src/views/lb-business/department-user/index.vue @@ -0,0 +1,564 @@ + + + + +