123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489 |
- <template>
- <dm-pop-view ref='popView' title="筛选" :isShowConfirm="false" :maskTapHide='true'>
- <scroll-view class="screen_container" scroll-y="true">
- <dm-time-level-screen :isChengjiao2="true" :sortType="sortType" :queryDateType="queryDateType" @queryDateTypeAction="queryDateTypeAction" @sortTypeAction="sortTypeAction"></dm-time-level-screen>
- <dm-date-screen style="margin-top: 40rpx;" :defaultParameter="tempDefaultParameter" @screenDateAction="screenDateAction"></dm-date-screen>
- <view class="screen_item_title">成交进度</view>
- <view class="level_tag_view">
- <text class="level_tag" :style="{ color: item.isSelect ? '#fff' : '#666', 'background-color': item.isSelect ? themeColor : '#F1F5F9' }"
- v-for="(item, i) in progressList" :key="i" @click="selectProgress(item)">
- <view class="level_tag_title">
- {{ item.title }}
- </view>
- <view class="level_tag_subTitle" v-if="item.subTitle!=null">
- ({{item.subTitle}})
- </view>
- </text>
- </view>
- <view class="screen_item_title">成交业态</view>
- <view class="level_tag_view">
- <view class="level_tag" :style="{ color: item.isSelect ? '#fff' : '#666', 'background-color': item.isSelect ? themeColor : '#F1F5F9' }"
- v-for="(item, i) in yetaiList" :key="i" @click="selectYetai(item)">
- <view class="level_tag_title">
- {{ item.title }}
- </view>
- <view class="level_tag_subTitle" v-if="item.subTitle!=null">
- ({{item.subTitle}})
- </view>
- </view>
- </view>
- <view class="screen_item_title">成交构成</view>
- <view class="level_tag_view">
- <text class="level_tag" :style="{ color: item.isSelect ? '#fff' : '#666', 'background-color': item.isSelect ? themeColor : '#F1F5F9' }"
- v-for="(item, i) in gouchengList" :key="i" @click="selectGoucheng(item)">
- <view class="level_tag_title">
- {{ item.title }}
- </view>
- <view class="level_tag_subTitle" v-if="item.subTitle!=null">
- ({{item.subTitle}})
- </view>
- </text>
- </view>
- <view class="reportOrganize" @click="selectChengjiaoType" v-if="formType == 2 || formType == 3">
- <view class="organizeName">
- {{formTypeResponseSelect != null ? formTypeResponseSelect.title : formType == 2 ? '请选择推荐成交类型': '请选择报备成交类型'}}
- </view>
- <image class="organizeIcon" src="../../static/icons/icon_aboutUs_DropDown.png" mode=""></image>
- </view>
- </scroll-view>
- <dm-picker-view ref="formTypeResponsePicker" :options="formTypeResponse" :value="formTypeResponseSelect != null ? formTypeResponseSelect.value : 0" :title="formType == 2 ? '请选择推荐成交类型': '请选择报备成交类型'" @confirm="confirmAction"></dm-picker-view>
- <view class="bottom_btn" style="margin-top: 60rpx;">
- <text class="reset_btn" :style="{'background-color':themeColor25}" @click="resetAction">重置</text>
- <text class="pop_btn" :style="{'background-color':themeColor}" @click="sureAction">确定</text>
- </view>
- </dm-pop-view>
- </template>
- <script>
- import dmPopView from './dmPopView.vue'
- import dmPickerView from './dmPickerView.vue'
- import dmTimeLevelScreen from './dmTimeLevelScreen.vue'
- import dmDateScreen from './dmDateScreen.vue'
- let app = getApp();
-
- export default {
- props: {
- houseId: {
- type: [String, Number],
- default: ''
- },
- defaultParameter: Object,
- sortSel: [Number, String],
- timeLevelSel: [Number, String]
- },
- data() {
- return {
- themeColor: null,
- fuzhuColor: null,
- themeColor50: null,
- themeColor25: null,
- fuzhuColor50: null,
- progressList: [], // 成交进度
- yetaiList: [], // 成交业态
- gouchengList: [] ,// 成交构成
- formTypeResponse: [],
- changjiaoTypeList: [],
- formTypeResponseSelect: null,
- formType: 0,
- sortType: 0,
- queryDateType: 0,
- tempDefaultParameter: null
- }
- },
- mounted() {
- this.themeColor = app.globalData.themeColor
- this.themeColor50 = app.globalData.themeColor50
- this.themeColor25 = app.globalData.themeColor25
- this.fuzhuColor = app.globalData.fuzhuColor
- this.fuzhuColor50 = app.globalData.fuzhuColor50
-
- this.resetAction()
- },
- methods: {
- show() {
- this.$refs.popView.show()
- },
- // 正序、倒叙
- sortTypeAction(e) {
- // this.$emit('sortTypeAction', e)
- // debugger
- this.sortType = e
- },
- // 选择时间维度(条件)
- queryDateTypeAction(e) {
- // this.$emit('queryDateTypeAction', e)
- this.queryDateType = e
- },
- // 选择时间
- screenDateAction(val, start, end) {
- // this.$emit('screenDateAction', val, start, end)
- this.tempDefaultParameter = {
- value: this.tempDefaultParameter.value,
- dateType: val,
- startDate: start,
- endDate: end,
- terminal: this.tempDefaultParameter.terminal
- }
- },
- selectProgress(e) {
- if (e.value == 0) {
- this.progressList.forEach((item) => {
- item.isSelect = false
- })
- this.progressList[0].isSelect = true
- }
- else {
- this.progressList[0].isSelect = false
- var isHave = false
- this.progressList.forEach((item, idx) => {
- if (e.value == item.value) {
- item.isSelect = !item.isSelect
- }
- if (item.isSelect) {
- isHave = true
- }
- })
- if (!isHave) {
- this.progressList[0].isSelect = true
- }
- }
- },
- selectYetai(e) {
- if (e.value == 0) {
- this.yetaiList.forEach((item) => {
- item.isSelect = false
- })
- this.yetaiList[0].isSelect = true
- }
- else {
- this.yetaiList[0].isSelect = false
- var isHave = false
- this.yetaiList.forEach((item, idx) => {
- if (e.value == item.value) {
- item.isSelect = !item.isSelect
- }
- if (item.isSelect) {
- isHave = true
- }
- })
- if (!isHave) {
- this.yetaiList[0].isSelect = true
- }
- }
- },
- selectGoucheng(e) {
- var self = this
- this.gouchengList.forEach((item, idx) => {
- item.isSelect = false
- if (e.value == item.value) {
- item.isSelect = true
- self.formType = item.value
- self.formTypeResponseSelect = null
- if (item.value == 2 || item.value == 3) {
- self.getDealFormTips(item.value)
- }
- }
- })
- },
- async getDealFormTips(type) {
- var tempformType = 1
- if (type == 2) { // 推荐成交
- tempformType = 1
- }
- else {// 报备成交
- tempformType = 2
- }
- let res = await this.$myRequest({
- url: '/elab-marketing-user/dealLedger/getDealFormTips',
- data: {
- houseId: this.houseId,
- formType: tempformType,
- dateType: this.defaultParameter.dateType,
- mindate: this.defaultParameter.startDate,
- maxdate: this.defaultParameter.endDate,
- timeDimension: this.queryDateType
- }
- })
- if (res.data.success && res.data.single) {
- this.formTypeResponse = res.data.single.formTypeResponse || []
- if (res.data.single.showXsxcx == 1) {
- var dic = {
- relationMess: "线上小程序用户",
- relationOrganizeName: '',
- relationOrganizeType: ''
- }
- this.formTypeResponse.push(dic)
- }
- this.formTypeResponse.forEach((item, idx) => {
- item['title'] = item.relationMess
- item['value'] = idx
- })
- this.$forceUpdate()
- }
-
- },
-
- selectChengjiaoType() {
- this.$refs.formTypeResponsePicker.show()
- },
-
- confirmAction(e) {
- console.log('选择类型:', e)
- this.formTypeResponseSelect = e.selItem
- },
-
- resetAction() {
- this.progressList = [
- {title: '全部', isSelect: true, value: 0},
- {title: '认购', isSelect: false, value: 1},
- {title: '签约', isSelect: false, value: 2},
- {title: '已结首付', isSelect: false, value: 3},
- {title: '已结全款', isSelect: false, value: 4},
- {title: '已退房', isSelect: false, value: 6},
- ]
- this.yetaiList = [
- {title: '全部', isSelect: true, value: 0},
- {title: '住宅', isSelect: false, value: 1},
- {title: '公寓', isSelect: false, value: 2},
- {title: '商业', isSelect: false, value: 3},
- {title: '写字楼', isSelect: false, value: 4},
- {title: '公共配套', isSelect: false, value: 5},
- {title: '地下室', subTitle: '不含车位', isSelect: false, value: 6},
- {title: '政策住宅', isSelect: false, value: 7},
- {title: '车位', isSelect: false, value: 8},
- {title: '其他', isSelect: false, value: 9},
- ]
- this.gouchengList = [
- {title: '全部', isSelect: true, value: 0},
- {title: '其他自然成交', isSelect: false, value: 1},
- {title: '推荐成交', isSelect: false, value: 2},
- {title: '报备成交', isSelect: false, value: 3},
- {title: '线上自然成交', isSelect: false, value: 4},
- {title: '自然到访成交', isSelect: false, value: 5},
- ]
-
- this.formTypeResponseSelect = null
- this.formTypeResponse = []
- this.tempDefaultParameter = JSON.parse(JSON.stringify(this.defaultParameter))
- this.sortType = this.sortSel
- this.queryDateType = this.timeLevelSel
- },
- sureAction() {
- var transactionProgressList = []
- this.progressList.forEach((item) => {
- if (item.isSelect) {
- transactionProgressList.push(item.value)
- }
- })
- var productTypeList = []
- this.yetaiList.forEach((item) => {
- if (item.isSelect) {
- productTypeList.push(item.value)
- }
- })
- var screenParmas = {
- timeLevelSel: this.queryDateType,
- sortSel: this.sortType,
- defaultParameter: this.tempDefaultParameter,
- //成交进度
- transactionProgress: transactionProgressList || [0],
- // 成交业态
- productType: productTypeList || [0],
- // 成交构成
- formType: this.formType,
-
- relationOrganizeName: this.formTypeResponseSelect != null ? this.formTypeResponseSelect.relationOrganizeName : null,
-
- relationOrganizeType: this.formTypeResponseSelect != null ? this.formTypeResponseSelect.relationOrganizeType : null,
- }
- this.$emit('screenAction', screenParmas)
- this.$refs.popView.hide()
- }
- },
- components: {
- dmPopView,
- dmPickerView,
- dmTimeLevelScreen,
- dmDateScreen
- },
- watch: {
- defaultParameter: {
- handler(e) {
- this.tempDefaultParameter = JSON.parse(JSON.stringify(e))
- if (this.formType == 2 || this.formType == 3) {
- self.getDealFormTips(this.formType)
- }
- },
- deep: true,
- immediate: true
- },
- timeLevelSel: {
- handler(e) {
- this.queryDateType = e
- this.$forceUpdate()
- },
- immediate: true
- },
- sortSel: {
- handler(e) {
- this.sortType = e
- this.$forceUpdate()
- },
- immediate: true
- }
- }
- }
- </script>
- <style scoped lang="scss">
- .screen_container {
- position: relative;
- margin-bottom: 190rpx;
- width: 750rpx;
- max-height: 1000rpx;
-
- .screen_item_title {
- margin-left: 30rpx;
- margin-top: 54rpx;
- line-height: 44rpx;
- font-size: 32rpx;
- font-family: Verdana, Verdana-Bold;
- font-weight: 700;
- text-align: left;
- color: #454545;
- }
- .level_tag_view {
- margin-left: 30rpx;
- margin-top: 0rpx;
- display: flex;
- flex-wrap: wrap;
- .level_tag {
- margin-right: 16rpx;
- width: 220rpx;
- height: 72rpx;
- border-radius: 12rpx;
- margin-top: 20rpx;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
-
- .level_tag_title {
- font-size: 28rpx;
- font-family: Verdana, Verdana-Regular;
- font-weight: 400;
- text-align: center;
- }
-
- .level_tag_subTitle {
- margin-top: -5rpx;
- font-size: 20rpx;
- font-family: Verdana, Verdana-Regular;
- font-weight: 400;
- text-align: center;
- }
- }
- }
- .reportOrganize {
- margin-top: 20rpx;
- margin-left: 30rpx;
- margin-right: 30rpx;
- padding: 0 30rpx;
- box-sizing: border-box;
- border-radius: 16rpx;
- background-color: #F1F5F9;
- height: 94rpx;
- display: flex;
- justify-content: space-between;
- align-items: center;
- line-height: 94rpx;
- .organizeName {
- font-size: 28rpx;
- font-family: Verdana, Verdana-Regular;
- font-weight: 400;
- text-align: left;
- color: #666666;
- }
- .organizeIcon {
- width: 14rpx;
- height: 9rpx;
- }
- }
- .screen_item_sub {
- margin-top: 8rpx;
- margin-bottom: 40rpx;
- margin-left: 30rpx;
- line-height: 34rpx;
- font-size: 24rpx;
- font-family: Verdana, Verdana-Regular;
- font-weight: 400;
- text-align: left;
- color: #999999;
- }
- .score_view {
- margin-top: 30rpx;
- margin-bottom: 120rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- height: 82rpx;
- .score_text {
- font-size: 70rpx;
- font-family: 'DIN Alternate', 'DIN Alternate-Bold';
- font-weight: 700;
- }
- .score_unit {
- padding-top: 25rpx;
- font-size: 28rpx;
- font-family: Verdana, Verdana-Regular;
- font-weight: 400;
- }
- }
- }
- .bottom_btn {
- display: flex;
- justify-content: center;
- position: fixed;
- width: 100%;
- left: 0;
- bottom: 60rpx;
-
- .reset_btn {
- width: 156rpx;
- height: 80rpx;
- border-radius: 40rpx;
- font-size: 28rpx;
- font-family: Verdana, Verdana-Bold;
- font-weight: 700;
- text-align: center;
- line-height: 80rpx;
- color: #666666;
- }
-
- .pop_btn {
- margin-left: 30rpx;
- width: 444rpx;
- height: 80rpx;
- border-radius: 40rpx;
- font-size: 28rpx;
- font-family: Verdana, Verdana-Bold;
- font-weight: 700;
- text-align: center;
- line-height: 80rpx;
- color: #ffffff;
- }
- }
-
- </style>
|