25 Commits

Author SHA1 Message Date
6246d46d53 Merge branch 'dev-report' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-10-09 22:23:47 +08:00
98a5d374a4 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-09-28 18:00:22 +08:00
dd049320f6 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-09-23 21:45:29 +08:00
696e96a0c0 Merge remote-tracking branch 'origin/main' into dev-cl 2024-09-22 16:08:37 +08:00
ee770b9e60 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-09-18 23:08:40 +08:00
6908183a36 Merge branch 'dev-cjl' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-09-11 23:01:08 +08:00
af9bcb7024 Merge branch 'dev-cjl' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-09-08 14:26:43 +08:00
5c6c3df4d0 Merge branch 'dev-cjl' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-09-05 22:31:59 +08:00
acdcc670de Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-09-05 22:31:44 +08:00
9472c5ea56 Merge branch 'dev-cjl' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-29 22:20:26 +08:00
4f150b0912 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-28 22:04:46 +08:00
f76d6dce66 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-27 23:04:20 +08:00
dd4bdb0786 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-26 22:00:11 +08:00
477a279867 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-23 22:26:44 +08:00
c87637cc78 Merge branch 'dev-cjl' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-20 23:52:46 +08:00
a544840679 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-16 12:47:36 +08:00
247c6ed4a0 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-13 21:43:40 +08:00
769c901954 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-10 13:21:15 +08:00
18bfc7d353 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-06 22:05:52 +08:00
fb6b341242 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-06 19:27:40 +08:00
fea69da8ed Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-04 14:15:30 +08:00
125f6f28ad Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-08-02 21:02:44 +08:00
39cddaa8e0 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-07-31 21:11:55 +08:00
ffd15e2433 Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl 2024-07-30 21:32:07 +08:00
2bebd0480e 本地启动 2024-07-13 11:30:36 +08:00
7 changed files with 17 additions and 78 deletions

View File

@@ -4,7 +4,7 @@ VITE_NODE_ENV=development
VITE_DEV=true VITE_DEV=true
# 请求路径 # 请求路径
VITE_BASE_URL='http://118.31.23.45:48080' VITE_BASE_URL='http://localhost:48080'
# VITE_BASE_URL='http://114.55.169.15:48080' # VITE_BASE_URL='http://114.55.169.15:48080'
# 上传路径 # 上传路径

View File

@@ -2,7 +2,3 @@ import request from '@/config/axios'
export const getList = async (data) => { export const getList = async (data) => {
return await request.post({ url: '/admin-api/crm/sch-clue/clueQuality/report', data }) return await request.post({ url: '/admin-api/crm/sch-clue/clueQuality/report', data })
} }
export const getPeriodList = async (data) => {
return await request.post({ url: '/admin-api/crm/sch-clue/clueQuality/period/report', data })
}

View File

@@ -47,7 +47,7 @@ const props = defineProps({
// fileType: propTypes.array.def(['doc', 'xls', 'ppt', 'txt', 'pdf']), // 文件类型, 例如['png', 'jpg', 'jpeg'] // fileType: propTypes.array.def(['doc', 'xls', 'ppt', 'txt', 'pdf']), // 文件类型, 例如['png', 'jpg', 'jpeg']
fileType: propTypes.array.def([]), fileType: propTypes.array.def([]),
accept: propTypes.string.def('*'), accept: propTypes.string.def('*'),
fileSize: propTypes.number.def(100), // 大小限制(MB) fileSize: propTypes.number.def(5), // 大小限制(MB)
limit: propTypes.number.def(5), // 数量限制 limit: propTypes.number.def(5), // 数量限制
autoUpload: propTypes.bool.def(true), // 自动上传 autoUpload: propTypes.bool.def(true), // 自动上传
drag: propTypes.bool.def(false), // 拖拽上传 drag: propTypes.bool.def(false), // 拖拽上传

View File

@@ -13,12 +13,7 @@ export const useMessage = () => {
}, },
// 成功消息 // 成功消息
success(content: string) { success(content: string) {
// ElMessage.success(content) ElMessage.success(content)
ElMessage({
message: content,
duration: 1500,
type: 'success'
})
}, },
// 警告消息 // 警告消息
warning(content: string) { warning(content: string) {

View File

@@ -106,6 +106,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
} }
] ]
}, },
// { // {
// path: '/dict', // path: '/dict',
// component: Layout, // component: Layout,

View File

@@ -11,9 +11,9 @@
end-placeholder="选择日期" end-placeholder="选择日期"
/> />
</el-form-item> </el-form-item>
<el-form-item label="成交周期" prop="periodNumber"> <el-form-item label="成交周期" prop="period">
<el-input-number <el-input-number
v-model="searchForm.periodNumber" v-model="searchForm.period"
:min="1" :min="1"
:controls="false" :controls="false"
style="width: 100%" style="width: 100%"
@@ -62,9 +62,8 @@
</template> </template>
<script setup name="ChannelPeriod"> <script setup name="ChannelPeriod">
import { getPeriodList } from '@/api/home/reportChannel' import * as reportApi from '@/api/home/reportChannel'
import { removeNullField } from '@/utils' import { removeNullField } from '@/utils'
import { formatDate } from '@/utils/formatTime'
const props = defineProps({ const props = defineProps({
sourceOptions: { sourceOptions: {
@@ -83,25 +82,22 @@ const defaultProps = {
const searchRef = ref() const searchRef = ref()
const searchRules = { const searchRules = {
// consultDate: { required: true, type: 'array', message: '请选择咨询日期', trigger: 'change,blur' }, consultDate: { required: true, type: 'array', message: '请选择咨询日期', trigger: 'change,blur' },
periodNumber: { required: true, message: '请输入成交周期', trigger: 'blur' } period: { required: true, message: '请输入成交周期', trigger: 'blur' }
} }
onMounted(() => { onMounted(() => {
getOptions() getOptions()
handleReset() handleReset()
handleSearch()
}) })
const searchForm = ref({}) const searchForm = ref({})
function handleReset() { function handleReset() {
const date = new Date()
date.setDate(1)
searchForm.value = { searchForm.value = {
sourceId: undefined, sourceId: undefined,
periodNumber: 30, period: 30,
consultDate: [formatDate(date), formatDate(new Date())] consultDate: []
} }
} }
@@ -114,12 +110,7 @@ async function handleSearch() {
const valid = await searchRef.value.validate() const valid = await searchRef.value.validate()
if (!valid) return if (!valid) return
loading.value = true loading.value = true
const params = { ...searchForm.value } const data = await reportApi.getList(removeNullField(searchForm.value))
if (params.consultDate && params.consultDate.length) {
params.startDateTime = params.consultDate[0]
params.endDateTime = params.consultDate[1]
}
const data = await getPeriodList(removeNullField(params))
tableList.value = data tableList.value = data
} finally { } finally {
loading.value = false loading.value = false

View File

@@ -36,27 +36,15 @@
<el-button @click="handleReset">重置</el-button> <el-button @click="handleReset">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table :data="tableList" border stripe show-summary :summary-method="getSummaries"> <el-table :data="tableList" border stripe>
<el-table-column label="周期" prop="period" width="110px" /> <el-table-column label="周期" prop="period" width="110px" />
<el-table-column prop="signNumber" label="成交数" /> <el-table-column prop="signNumber" label="成交数" />
<el-table-column prop="signPrice" label="成交额" /> <el-table-column prop="signPrice" label="成交额" />
<el-table-column <el-table-column prop="signPriceSequentialGrowth" label="成交额环比增长" />
prop="signPriceSequentialGrowth" <el-table-column prop="signPriceSamePeriodCompareGrowth" label="成交额同比增长" />
label="成交额环比增长"
:formatter="parseRate"
/>
<el-table-column
prop="signPriceSamePeriodCompareGrowth"
label="成交额同比增长"
:formatter="parseRate"
/>
<el-table-column prop="profit" label="利润" /> <el-table-column prop="profit" label="利润" />
<el-table-column prop="profitSequentialGrowth" label="利润环比增长" :formatter="parseRate" /> <el-table-column prop="profitSequentialGrowth" label="利润环比增长" />
<el-table-column <el-table-column prop="profitSamePeriodCompareGrowth" label="利润同比增长" />
prop="profitSamePeriodCompareGrowth"
label="利润同比增长"
:formatter="parseRate"
/>
<el-table-column prop="notReceivedMoney" label="未到账金额" /> <el-table-column prop="notReceivedMoney" label="未到账金额" />
<el-table-column prop="receivedMoney" label="已到账金额" /> <el-table-column prop="receivedMoney" label="已到账金额" />
<el-table-column prop="waitSettleMoney" label="待结算金额" /> <el-table-column prop="waitSettleMoney" label="待结算金额" />
@@ -112,38 +100,6 @@ async function handleSearch() {
loading.value = false loading.value = false
} }
} }
function parseRate(row, column) {
return Number(row[column.property] * 100).toFixed(2) + '%'
}
function getSummaries({ columns, data }) {
let sums = []
columns.forEach((column, index) => {
if (index == 0) {
sums[index] = '合计'
return
}
const values = data.map((item) => Number(item[column.property]))
if (!values.every((value) => Number.isNaN(value))) {
if (column.property.includes('Growth')) {
sums[index] = ''
} else {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!Number.isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
}
} else {
sums[index] = ''
}
})
return sums
}
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>