diff --git a/api/organize.js b/api/organize.js index ef57168..746341b 100644 --- a/api/organize.js +++ b/api/organize.js @@ -2,7 +2,8 @@ const { http } = uni.$u // 列表和条件筛选 export const getOrganizelist = params => http.get('/insight/organize/list', { params }) -//居民用户 +// 待开发用户池接口修改 +/* //居民用户 export const getPoolResidentlist = params => http.get('/insight/poolResident/list', { params }) //商业用户 @@ -19,6 +20,25 @@ export const getPoolCommerceDetail = id => http.get('/insight/poolCommerce/'+id //工业用户详情 export const getPoolIndustryDetail = id => http.get('/insight/poolIndustry/'+id ) + */ + +//居民用户 +export const getPoolResidentlist = params => http.get('/insight/poolResidentLedger/list', { params }) + +//商业用户 +export const getPoolCommercelist = params => http.get('/insight/poolIndustryAndCommerce/list', { params }) + +//工业用户 +export const getPoolCustomerRecoverylist = params => http.get('/insight/customerRecoveryProgress/list', { params }) + +//居民用户详情 +export const getPoolResidentDetail = id => http.get('/insight/poolResidentLedger/detail/'+id ) + +//商业用户详情 +export const getPoolCommerceDetail = id => http.get('/insight/poolIndustryAndCommerce/detail/'+id ) + +//工业用户详情 +export const getPoolCustomerRecovery = id => http.get('/insight/customerRecoveryProgress/detail/'+id ) /*报告详情*/ diff --git a/main.js b/main.js index c4bbc5d..6886c00 100644 --- a/main.js +++ b/main.js @@ -10,9 +10,18 @@ import store from './store' import * as dd from 'dingtalk-jsapi' -import { dDingJudgeEnvPlatform } from 'utils/isDing.js' +import { + dDingJudgeEnvPlatform +} from 'utils/isDing.js' -import {DICT_TYPE, getDictDataLabel, getDictDatas, getDictDatas2} from "./utils/dict"; +import dayjs from '@/uni_modules/uview-ui/libs/util/dayjs.js'; + +import { + DICT_TYPE, + getDictDataLabel, + getDictDatas, + getDictDatas2 +} from "./utils/dict"; window.wx = {} @@ -24,18 +33,19 @@ Vue.prototype.$store = store Vue.prototype.getDictDatas = getDictDatas Vue.prototype.getDictDatas2 = getDictDatas2 Vue.prototype.getDictDataLabel = getDictDataLabel +Vue.prototype.$dayjs = dayjs Vue.prototype.DICT_TYPE = DICT_TYPE Vue.prototype.$isDing = dDingJudgeEnvPlatform() -Vue.component('echarts',echarts) +Vue.component('echarts', echarts) App.mpType = 'app' Vue.use(uView) const app = new Vue({ - store, - ...App + store, + ...App }) // 引入请求封装 diff --git a/pages/market/insight.vue b/pages/market/insight.vue index a68b7a9..90ff8cd 100644 --- a/pages/market/insight.vue +++ b/pages/market/insight.vue @@ -38,8 +38,16 @@ --> - + + + + + + + @@ -72,15 +80,17 @@ {{item.householdName || ""}} {{item.householdName || ""}} {{item.contactPerson || ""}} - 预算主体: {{item.budgetSubject || ""}} - 联系方式: {{item.phoneNumber || ""}} + 区域: {{item.areaName || ""}} + 预算主体: {{item.entityName || ""}} - 详情地址:{{ item.city + item.street + item.communityName + item.floor+ '楼' + item.houseNumber + '号'}} + 详情地址:{{ item.address}} - 详情地址: {{ item.city + item.street + item.houseNumber + '号'}} + 客户地址: {{ item.clientAddress}} + + 流失时间: + {{$u.timeFormat(item.lossTime, 'yyyy年mm月dd日') || "" }} - 详情地址: {{item.address}} @@ -96,7 +106,7 @@ getOrganizelist, getPoolResidentlist, getPoolCommercelist, - getPoolIndustrylist + getPoolCustomerRecoverylist } from '@/api/organize.js' export default { components: {}, @@ -138,10 +148,19 @@ tabList2: [{ name: '居民用户' }, { - name: '商业用户', + name: '工商业用户', }, { - name: '工业用户' + name: '流失大客户' }], + tagList: [{ + tagV: '开发中小区', + checked: true + }, { + tagV: '未开发小区', + checked: false + }], + IFdevelop:"所有已开发,部分已开发", + searchTip:"搜索报告名称" } }, computed: { @@ -154,7 +173,6 @@ let allTotal = this.queryParameter.pageNum * this.queryParameter.pageSize //待开发用户池 if (this.current) { - console.log(222); if (allTotal < this.total2) { this.queryParameter.pageNum++; this.status2 = 'loading'; @@ -197,12 +215,6 @@ initData() { this.updateList1(); }, - typeChange(i) { - this.keyword = ""; - this.resetQuery(); - this.current = i; - this.current ? this.updateList2() : this.updateList1(); - }, updateList1() { let Params = {}; if (this.keyword) { @@ -236,9 +248,11 @@ updateList2() { let Params = {}; if (this.current2 === 0) { + Params.statusName = this.IFdevelop; if (this.keyword) { - Params.householdName = this.keyword + Params.address = this.keyword } + console.log("待开发用户池查询参数",Params); getPoolResidentlist({ ...Params, ...this.queryParameter @@ -255,7 +269,7 @@ }) } else if (this.current2 === 1) { if (this.keyword) { - Params.householdName = this.keyword + Params.clientAddress = this.keyword } getPoolCommercelist({ ...Params, @@ -273,9 +287,9 @@ }) } else if (this.current2 === 2) { if (this.keyword) { - Params.contactPerson = this.keyword + Params.custName = this.keyword } - getPoolIndustrylist({ + getPoolCustomerRecoverylist({ ...Params, ...this.queryParameter }).then(res => { @@ -290,8 +304,8 @@ } }) } - this.checkTotal() console.log("待开发", this.newList2); + this.checkTotal() }, checkTotal() { console.log("查询是否更多"); @@ -313,6 +327,13 @@ this.keyword = "" this.search() }, + typeChange(i) { + this.keyword = ""; + this.resetQuery(); + this.current = i; + this.searchTip = this.current ? '搜索市/区/县/乡/镇/街道':'搜索报告名称'; + this.current ? this.updateList2() : this.updateList1(); + }, tabChange1(e) { console.log(e); this.resetQuery() @@ -321,10 +342,29 @@ }, tabChange2(e) { console.log(e); - this.current2 = e.index + this.current2 = e.index; + this.keyword = ""; + if(this.current2 === 0){ + this.searchTip = "搜索市/区/县/乡/镇/街道" + }else if(this.current2 === 1){ + this.searchTip = "搜索客户地址" + }else if(this.current2 === 2){ + this.searchTip = "搜索客户名称" + } this.resetQuery(); this.updateList2(); }, + tagClick(name) { + this.tagList.map((item, index) => { + item.checked = index === name ? true : false + }) + console.log(typeof name); + this.IFdevelop = name?'完全未开发':'所有已开发,部分已开发'; + console.log(this.IFdevelop); + this.queryParameter.pageNum = 1; + this.newList2 = []; + this.updateList2(); + }, openFiscalYearChoice() { this.fiscalYearShow = true; // this.fiscalYear = Number(new Date()); @@ -433,6 +473,19 @@ background: #fff; } + .tagCss { + display: flex; + padding: 0rpx 0rpx 20rpx 34rpx; + } + + /deep/.leftBorderCss .u-tag { + border-radius: 0 30rpx 30rpx 0 !important; + } + + /deep/.rightBorderCss .u-tag { + border-radius: 30rpx 0 0 30rpx !important; + } + /deep/.u-tabs__wrapper__nav__item { padding: 0 5rpx; } diff --git a/pages/market/userDetails.vue b/pages/market/userDetails.vue index 409340c..b62aa13 100644 --- a/pages/market/userDetails.vue +++ b/pages/market/userDetails.vue @@ -11,33 +11,33 @@ 区域 - {{allData.area || ""}} + {{allData.areaName || ""}} 预算主体 - {{allData.budgetSubject || ""}} + {{allData.entityName || ""}} - 身份证号 - {{allData.idNumber || ""}} + 管理组织 + {{allData.accountingName || ""}} - 房屋所在城市 - {{allData.city || ""}} + 市/区/县/乡/镇/街道 + {{allData.address || ""}} - 房屋所在街道 - {{allData.street || ""}} + 行政村/社区 + {{allData.administrativeVillage || ""}} - 房屋所在小区 - {{allData.communityName || ""}} + 自然村/小区 + {{allData.natureVillage || ""}} - 房屋所在楼层 - {{allData.floor || ""}} + 状态 + {{allData.statusName || ""}} - + 区域 - {{allData.area || ""}} + {{allData.areaName || ""}} 预算主体 - {{allData.budgetSubject || ""}} + {{allData.entityName || ""}} + + + 管理组织 + {{allData.accountingName || ""}} + + + 客户名称 + {{allData.clientName || ""}} + 状态 + + {{ getDictDataLabel(DICT_TYPE.SYS_POOL_INDUSTRY_AND_COMMERCE_STATUS, allData.status) || "" }} + + + 区域 - {{allData.area || ""}} + {{allData.areaName || ""}} 预算主体 - {{allData.budgetSubject || ""}} + {{allData.entityName || ""}} - 统一社会信息代码 - {{allData.taxpayerNumber || ""}} + 管理组织 + {{allData.accountingName || ""}} - 地址 - {{allData.address || ""}} + 客户编号(来源于CRM系统) + {{allData.custNo || ""}} - 客户联系人 - {{allData.contactPerson || ""}} + 客户名称 + {{allData.custName || ""}} - 职务 - {{ getDictDataLabel(DICT_TYPE.SYS_INDUSTRY_DUTIES, allData.duties) || "" }} + 行业分类 + {{allData.industry || ""}} - 电话 - {{allData.phoneNumber || ""}} + 用户状态 + + {{ getDictDataLabel(DICT_TYPE.SYS_CUSTOMER_RECOVERY_PROGRESS_STATUS, allData.status) || "" }} + - 房屋信息 + 居民信息 - 场所信息 + 工商业信息 - 房屋信息 + 大客户信息 - 居住人口 - {{ getDictDataLabel(DICT_TYPE.SYS_LIVE_NO, allData.resideNumber) || "" }} + 房屋产权类型 + + {{ getDictDataLabel(DICT_TYPE.SYS_HOUSE_TYPE, allData.houseType) || "" }} + - - 房屋户型 - {{allData.houseType || ""}} + + 市场类型 + + {{getDictDataLabel(DICT_TYPE.SYS_MARKET_TYPE, allData.marketType) || ""}} + - - 房屋面积 - {{allData.houseArea || ""}} + + 业务类型 + + {{getDictDataLabel(DICT_TYPE.SYS_BUSINESS_TYPE, allData.businessType) || ""}} + - - 房屋建设年限 - {{ getDictDataLabel(DICT_TYPE.SYS_BUILD_YEAR, allData.houseYear) || "" }} + + 签约方类型 + + {{ getDictDataLabel(DICT_TYPE.SYS_SIGN_TYPE, allData.signType) || "" }} + - - 房屋居住性质 - {{ getDictDataLabel(DICT_TYPE.SYS_HOUSE_NATURE, allData.houseNature) || "" }} + + 经营区域 + + {{ getDictDataLabel(DICT_TYPE.SYS_BUSINESS_AREA, allData.businessArea) || "" }} + - - 居住属性 - {{ getDictDataLabel(DICT_TYPE.SYS_LIVE_ATTRIBUTE, allData.resideAttribute) || "" }} + + 合同户数 + {{ allData.signHousehold || 0 }} - - 房屋性质 - {{ getDictDataLabel(DICT_TYPE.SYS_HOUSE_ATTRIBUTE, allData.houseAttribute) || "" }} + + 财务确认户数 + {{ allData.financeConfirm || 0 }} - - 房屋结构类型 - {{ getDictDataLabel(DICT_TYPE.SYS_HOUSE_STRUCTURE, allData.houseStructure) || "" }} + + 覆盖户数 + {{ allData.coveredHousehold || 0}} - 所在房屋距离中压管道 - {{ getDictDataLabel(DICT_TYPE.SYS_DISTANCE, allData.distance) || "" }} + 总户数 + {{ allData.totalHousehold || 0 }} - - 所在房屋是否有物业 - {{allData.isExist?'是':'否'}} + + 回款状态/全款(户) + {{allData.fullAmount || 0}} - - 房屋是否列入拆迁规划 - {{allData.isPlan?'是':'否'}} + + 回款状态/分期(户) + {{allData.byStages || 0}} + + + 回款状态/未回款(户) + {{allData.unpaid || 0}} + + + 实际进场(户) + {{allData.actual || 0}} + + + 不具备安装条件户数(户) + {{allData.noInstallCondition || 0}} - 水/电表是否一户一表 - {{allData.isSingleMeter?'是':'否'}} + 具备双覆盖安装条件(户) + {{allData.installCondition || 0}} + + + 通气到表前户数 + {{allData.ventilation || 0}} + + + 实际点火户数 + {{allData.actualFire || 0}} - 是否独立厨房 - {{allData.isSingleKitchen?'是':'否'}} + 已纳入老旧管网改造户数(户) + {{allData.intoRemodel || 0}} - 是否集中供暖 - {{allData.isHeating?'是':'否'}} + 距现有中压管网距离(公里) + {{allData.distance || 0}} - 楼前立管是否安装 - {{allData.isInstall?'是':'否'}} + {{$dayjs().format('YYYY') + '年财务确认安装户数'}} + {{ allData.currentConfirm || 0}} - 现使用能源 - {{allData.currentEnergy?'是':'否'}} + {{$dayjs().add(1, 'year').format('YYYY') + '年财务确认安装户数'}} + {{ allData.afterConfirm || 0}} - 现使用能源价格(元) - {{allData.currentPrice || ""}} + {{$dayjs().add(2, 'year').format('YYYY') + '年财务确认安装户数'}} + {{ allData.lastConfirm || 0}} + + - 用户报装意愿 - {{ getDictDataLabel(DICT_TYPE.SYS_INSTALL_INCLINATE, allData.inclinate) || "" }} + 纳税人识别号 + {{allData.taxpayerNumber || ""}} - 不报装原因 - {{allData.reason || ""}} + 客户地址 + {{allData.clientAddress || ""}} - 创建时间 - - {{ $u.timeFormat(allData.sysCtime, 'yyyy年mm月dd日 hh:MM:ss') || ""}} + 客户性质 + + {{ getDictDataLabel(DICT_TYPE.SYS_CLIENT_QUALITY, allData.clientQuality) || "" }} + - - - 场所面积 - {{allData.houseArea || ""}} + 所属行业 + {{allData.industry || ""}} - 经营范围 - {{ getDictDataLabel(DICT_TYPE.SYS_BUSINESS_SCOPE, allData.businessScope) || "" }} + 预测日用气量(方/日) + {{allData.predictDay || ""}} - 所在场所房屋性质 - {{ getDictDataLabel(DICT_TYPE.SYS_HOUSE_NATURE, allData.houseNature) || "" }} + 预测年用气量(方/年) + {{allData.predictYear || ""}} + 预计安装财年 + {{allData.predictInstall || ""}} + + - - 是否已供气 - {{allData.isProvide?'是':'否'}} - - - 商业状态 - {{ getDictDataLabel(DICT_TYPE.SYS_COMMERCIAL_STATUS, allData.commercialStatus) || "" }} - - - 项目类别 - {{ getDictDataLabel(DICT_TYPE.SYS_PROJECT_TYPE, allData.projectType) || "" }} - - - 行业分类 - {{allData.industryType || ""}} - - - 最近管道距离 - {{ getDictDataLabel(DICT_TYPE.SYS_DISTANCE, allData.distance) || "" }} - - - 预计最大开口气量 - {{allData.predictMax || ""}} - - - 预计签约日期 - {{$u.timeFormat(allData.predictSign, 'yyyy年mm月dd日 hh:MM:ss') || ""}} - - - 预计安装日期 - {{$u.timeFormat(allData.predictInstall, 'yyyy年mm月dd日 hh:MM:ss') || ""}} - - - 预计日用气量 - {{allData.predictUse || ""}} - - - 耗能设备名称 - {{ getDictDataLabel(DICT_TYPE.SYS_MACHINE_NAME, allData.machineName) || "" }} - - - 耗能设备型号 - {{allData.machineModel || ""}} - - - 用能类型 - {{ getDictDataLabel(DICT_TYPE.SYS_INDUSTRY_TYPE, allData.userType) || "" }} - - - 更新时间 - {{$u.timeFormat(allData.sysCtime, 'yyyy年mm月dd日 hh:MM:ss') || ""}} + + 年度用气量(万m³) + {{allData.yearConsumption || ""}} + + + 流失时间 + {{$u.timeFormat(allData.lossTime, 'yyyy年mm月dd日') || ""}} + + + 流失原因 + {{allData.lossReason || ""}} + + + 计划追回时间 + {{$u.timeFormat(allData.recoverTime, 'yyyy年mm月dd日') || ""}} + + + 工作计划 + {{allData.workPlan || ""}} + + + 完成情况更新 + {{allData.completion || ""}} + + + 备注 + {{allData.remark || ""}} + - @@ -354,7 +387,7 @@ import { getPoolResidentDetail, getPoolCommerceDetail, - getPoolIndustryDetail, + getPoolCustomerRecovery, } from '@/api/organize.js' export default { components: {}, @@ -364,9 +397,9 @@ data() { return { type: null, - allData:{}, + allData: {}, title: "", - id:"", + id: "", } }, computed: { @@ -378,22 +411,22 @@ this.id = data.id; } this.initData() - console.log(this.type,this.id); + console.log(this.type, this.id); }, methods: { initData() { - const titleArr = ['居民用户详情', '商业用户详情', '工业用户详情'] + const titleArr = ['居民用户详情', '工商业用户详情', '流失大客户详情'] this.title = titleArr[this.type] - if(this.type === '0'){ - getPoolResidentDetail(this.id).then((res) =>{ + if (this.type === '0') { + getPoolResidentDetail(this.id).then((res) => { this.allData = res.data; }) - }else if(this.type === '1'){ - getPoolCommerceDetail(this.id).then((res) =>{ + } else if (this.type === '1') { + getPoolCommerceDetail(this.id).then((res) => { this.allData = res.data; }) - }else if(this.type === '2'){ - getPoolIndustryDetail(this.id).then((res) =>{ + } else if (this.type === '2') { + getPoolCustomerRecovery(this.id).then((res) => { this.allData = res.data; }) } @@ -433,7 +466,7 @@ } .leftCss { - width: 50%; + width: 58%; margin: 32rpx 0rpx; background-color: rgba(255, 255, 255, 0); box-sizing: border-box; @@ -447,7 +480,7 @@ .rightCss { display: flex; justify-content: flex-end; - width: 50%; + width: 42%; margin: 32rpx 0rpx; background-color: rgba(255, 255, 255, 0); box-sizing: border-box; diff --git a/utils/dict.js b/utils/dict.js index a255764..cfa4c44 100644 --- a/utils/dict.js +++ b/utils/dict.js @@ -29,6 +29,15 @@ export const DICT_TYPE = { SYS_PROJECT_TYPE:'sys_project_type', //项目类别 SYS_KEYWORD:'sys_keyword', //市场咨询关键词 SYS_PUBLISH_STATUS:'sys_publish_status', //资讯状态 + SYS_HOUSE_TYPE:'sys_house_type', // 房屋产权类型 + SYS_MARKET_TYPE:'sys_market_type', // 市场类型 + SYS_BUSINESS_TYPE:'sys_business_type', // 业务类型 + SYS_SIGN_TYPE:'sys_sign_type', // 签约方类型 + SYS_BUSINESS_AREA:'sys_business_area', // 经营区域 + SYS_POOL_INDUSTRY_AND_COMMERCE_STATUS:'sys_pool_industry_and_commerce_status', // 状态 + SYS_CLIENT_QUALITY:'sys_client_quality', // 客户性质 + SYS_CUSTOMER_RECOVERY_PROGRESS_STATUS:'sys_customer_recovery_progress_status', // (大客户)用户状态 + } /** -- libgit2 0.21.2