GULIMMO
2023-11-11 1fa5d1c27506623db4be7fa9d3f517acb6988c2c
租客详情、公共维修、标签管理更新
6 files modified
1 files added
253 ■■■■■ changed files
components/boxTitle/index2.vue 45 ●●●●● patch | view | raw | blame | history
pages.json 16 ●●●● patch | view | raw | blame | history
subPackage/bs/views/addRepair.vue 2 ●●●●● patch | view | raw | blame | history
subPackage/bs/views/rentDetail.vue 25 ●●●●● patch | view | raw | blame | history
subPackage/bs/views/repair.vue 3 ●●●● patch | view | raw | blame | history
subPackage/house/member/householdLabel.vue 93 ●●●●● patch | view | raw | blame | history
subPackage/house/roomControl/index.vue 69 ●●●● patch | view | raw | blame | history
components/boxTitle/index2.vue
New file
@@ -0,0 +1,45 @@
<template>
    <view class="box-title">
        <view class="line">
        </view>
        <view class="text">
            {{ title }}
        </view>
    </view>
</template>
<script>
    export default {
        props: {
            title: {
                type: String,
                default: ''
            }
        },
        data() {
            return {
            }
        }
    }
</script>
<style lang="scss" scoped>
    .box-title {
        display: flex;
        align-items: center;
        color: #333;
        margin-bottom: 30rpx;
        .line {
            width: 6rpx;
            height: 30rpx;
            margin-right: 10rpx;
            background-color: #017BFC;
        }
        .text {
            font-size: 32rpx;
        }
    }
</style>
pages.json
@@ -180,7 +180,7 @@
            "pages": [{
                    "path": "views/cscj",
                    "style": {
                        "navigationBarTitleText": "场所维护",
                        "navigationBarTitleText": "场所采集",
                        "enablePullDownRefresh": false,
                        "navigationBarBackgroundColor": "#4586fe",
                        "navigationBarTextStyle": "white"
@@ -209,7 +209,7 @@
                {
                    "path": "views/audit",
                    "style": {
                        "navigationBarTitleText": "网格任务审核",
                        "navigationBarTitleText": "标签事件",
                        "enablePullDownRefresh": false,
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black"
@@ -219,7 +219,7 @@
                    "path": "views/cshw",
                    "style": {
                        "onReachBottomDistance": 10,
                        "navigationBarTitleText": "网格任务审核",
                        "navigationBarTitleText": "场所维护",
                        "enablePullDownRefresh": false,
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black"
@@ -246,7 +246,7 @@
                {
                    "path": "views/report",
                    "style": {
                        "navigationBarTitleText": "网格任务审核",
                        "navigationBarTitleText": "保修报事",
                        "enablePullDownRefresh": false,
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black"
@@ -409,8 +409,8 @@
                    "path": "member/householdLabel",
                    "style": {
                        "navigationBarTitleText": "标签管理",
                        "navigationBarBackgroundColor": "#5887f9",
                        "navigationBarTextStyle": "white",
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black",
                        "enablePullDownRefresh": false
                    }
                },
@@ -418,8 +418,8 @@
                    "path": "roomControl/index",
                    "style": {
                        "navigationBarTitleText": "房屋管理",
                        "navigationBarBackgroundColor": "#5887f9",
                        "navigationBarTextStyle": "white",
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black",
                        "enablePullDownRefresh": false
                    }
                },
subPackage/bs/views/addRepair.vue
@@ -87,6 +87,8 @@
        },
        onShow() {
            this.curSelectSite = uni.getStorageSync('curSelectSite')
            this.info.addressCode = this.curSelectSite.id
            console.log(this.curSelectSite);
        },
        methods: {
            sumitInfo() {
subPackage/bs/views/rentDetail.vue
@@ -73,9 +73,9 @@
            @cancel="dueTimeShow = false"></u-datetime-picker>
        <view class="bottom-tools">
            <u-button class="btn-item" type="error" @click="isModelShow = true" v-if="rentId !== ''">删除</u-button>
            <u-button class="btn-item" type="success" @click="verify"
            v-if="!auditStatus && currentRole.roleAlias === 'wgy'">确认</u-button>
            <u-button class="btn-item" type="error" @click="isModelShow = true"
                v-if="btnControls.deleteBtn">删除</u-button>
            <u-button class="btn-item" type="success" @click="verify" v-if="btnControls.verifyBtn">确认</u-button>
            <u-button class="btn-item" color="linear-gradient(to right, #06B0FD, #027BFE)"
                @click="saveOrUpdate">{{ rentId === '' ? "保存" : "确认修改" }}</u-button>
        </view>
@@ -215,6 +215,10 @@
                auditStatus: null,
                currentTime: Number(new Date()),
                isModelShow: false,
                btnControls: {
                    deleteBtn: false,
                    verifyBtn: false
                }
            }
        },
@@ -224,15 +228,12 @@
                houseCode
            } = option
            this.houseCode = houseCode
            this.currentRole = uni.getStorageSync("activeRole")
            // 使用id来判断是不是修改
            if (id !== void 0) {
                this.rentId = id
                this.getCurrentRentInfo()
            }
        },
        mounted() {
            this.currentRole = uni.getStorageSync("activeRole")
            console.log(this.currentRole);
        },
        methods: {
            showSelectBus(data, title, model, key) {
@@ -368,7 +369,10 @@
                    id: this.rentId,
                    auditStatus
                }).then(res => {
                    const { code, data } = res
                    const {
                        code,
                        data
                    } = res
                    if (code !== 200) {
                        uni.showToast({
                            title: "确认失败",
@@ -485,6 +489,10 @@
                        this.$refs.rentform[index].form = item
                    })
                })
                this.btnControls = {
                    deleteBtn: this.rentId !== '',
                    verifyBtn: !this.auditStatus && !!this.rentId && this.currentRole.roleAlias === 'wgy'
                }
            },
            async deleteRent() {
                const {
@@ -560,6 +568,7 @@
                    .l {
                        display: flex;
                        align-items: center;
                        .line {
                            width: 6rpx;
                            height: 60%;
subPackage/bs/views/repair.vue
@@ -74,7 +74,7 @@
                        title: "公共维修",
                        type: 1,
                        bgImg: "/static/icon/nav-bg-06.png",
                        path: "addRepair",
                        path: `addRepair`,
                        background: "#63C875"
                    },
                    {
@@ -115,6 +115,7 @@
        onShow() {
            this.getStatistics()
            this.curSelectSite = uni.getStorageSync('curSelectSite')
            console.log(this.curSelectSite);
        },
        methods: {
subPackage/house/member/householdLabel.vue
@@ -1,10 +1,11 @@
<template>
    <view class="container">
        <view class="main">
            <view class="content">
                <view class="base b-c-w">
                    <u-icon name="photo"></u-icon> {{ houseAddress}}
                <u-icon name="/static/icon/map.png" width="15" height="18"></u-icon>
                <view>{{ houseAddress}}</view>
                </view>
            <view class="content">
                <view class="l flex-1 flex">
                    <view class="flex_base">
                        <view class="head-img flex_base">
@@ -19,14 +20,12 @@
                        </view>
                    </view>
                </view>
                <view v-for="(item, index) in labelBtnList" :key="index">
                    <box-title :title="item.name"></box-title>
                    <view class="mt-20 flex label-btn-box b-c-w">
                <view v-for="(item, index) in labelBtnList" :key="index" class="label-crad">
                    <newBoxTitle :title="item.name"></newBoxTitle>
                    <view class="label-btn-box">
                        <view v-for="(item, k) in item.children" :key="k">
                            <u-button color="#000" size="mini" type="primary"
                            :style="{background: item.color}"
                            :plain="true" :text="item.name"
                                @click="showLabelPopup(item)"></u-button>
                            <u-button color="#000" size="mini" type="primary" :style="{background: item.color}"
                                :plain="true" :text="item.name" @click="showLabelPopup(item)"></u-button>
                        </view>
                    </view>
                </view>
@@ -42,7 +41,7 @@
                <u-radio-group class="mt-40" v-model="labelValue" placement="row">
                    <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in labelList" :key="index"
                        :label="item.name" :name="item.name" :activeColor="item.color" @change="radioChange(item)">
                        :label="item.name" :labelColor="item.color" :style="{color: item.color && '#fff'}" :name="item.name" :activeColor="item.color" @change="radioChange(item)">
                    </u-radio>
                </u-radio-group>
@@ -54,18 +53,26 @@
<script>
    import uploadMixin from "@/mixin/uploadMixin";
    import newBoxTitle from '@/components/boxTitle/index2.vue'
    import {
        getLabelListByParentId
    } from "@/api/label/label.js";
    import {
        getDetail
    } from "@/api/doorplateAddress/doorplateAddress.js";
    import {saveOrUpdateHouseholdLabel,removeHouseholdLabel} from "@/api/house/householdLabel.js"
    import { getHouseholdDetail } from "@/api/house/household.js"
    import {
        saveOrUpdateHouseholdLabel,
        removeHouseholdLabel
    } from "@/api/house/householdLabel.js"
    import {
        getHouseholdDetail
    } from "@/api/house/household.js"
    export default {
        mixins: [uploadMixin],
        components: {
            newBoxTitle
        },
        data() {
            return {
                houseAddress:"",
@@ -83,16 +90,16 @@
                    {
                        name: '绿',
                        disabled: false,
                        color: '#07C160'
                        color: '#30D17C'
                    },
                    {
                        name: '黄',
                        disabled: false,
                        color: '#FF976A'
                        color: '#FFB42B'
                    }, {
                        name: '红',
                        disabled: false,
                        color: '#EE0A24'
                        color: '#EA1F1F'
                    }
                ],
                currentLabelInfo: {},
@@ -107,10 +114,8 @@
                number:0
            }
        },
        created() {
        },
        mounted() {
        },
        created() {},
        mounted() {},
        onLoad(option) {
            const data = JSON.parse(option.data);
            this.householdInfo = data;
@@ -247,7 +252,7 @@
        height: 100%;
        display: flex;
        flex-direction: column;
        background: #F9F9FA;
        background: #f6f6f6;
        .main {
            position: relative;
@@ -256,33 +261,34 @@
            display: flex;
            flex-direction: column;
            .base {
                padding: 20rpx 18rpx;
                display: flex;
                color: #333333;
                background: #fff;
                min-height: 38rpx;
                font-size: 30rpx;
                view {
                    margin-left: 15rpx;
                }
            }
            .content {
                height: 0;
                flex: 1;
                overflow-y: auto;
                .base{
                    padding-left: 20rpx;
                    background-color:#ffffff;
                    display: flex;
                    flex-direction: row;
                    align-items: center;
                    height: 90rpx;
                    font-size: 32rpx;
                    letter-spacing: 3rpx;
                    border-bottom: 1rpx solid #EBEDF0;
                }
                margin: 20rpx 30rpx;
                
                .l {
                    height: 170rpx;
                    background-color: #ffffff;
                    align-items: center;
                    padding: 30rpx 30rpx;
                    border-radius: 8rpx;
                
                    .head-img {
                        margin-left: 20rpx;
                        width: 124rpx;
                        height: 124rpx;
                        background: #EBEDF0;
                        border-radius: 50%;
                    }
                
@@ -309,23 +315,30 @@
                    padding: 40rpx 30rpx;
                }
                .label-crad {
                    background-color: #fff;
                    margin-top: 20rpx;
                    padding: 30rpx;
                    border-radius: 8rpx;
                .label-btn-box {
                    display: flex;
                    flex-direction: row;
                    flex-wrap: wrap;
                    padding: 10rpx 0;
                    &>view {
                        margin: 10rpx 10rpx;
                            margin: 0 20rpx 20rpx 0;
                        
                        .u-button {
                            padding: 6rpx 8rpx;
                            border-width: 0 !important;
                            background-color: #EFEFF0;
                                color: #999999 !important;
                        }
                    }
                }
                }
            }
        }
subPackage/house/roomControl/index.vue
@@ -3,9 +3,7 @@
        <view class="main">
            <view class="content">
                <u-form labelWidth="70" :model="form" ref="form" :rules="rules">
                    <box-title title=""></box-title>
                    <view class="basic-info mt-20">
                    <view class="basic-info">
                        <u-form-item class="form-item" labelWidth="100" label="绑定手机" required prop="phone">
                            <u--input border="none" v-model="form.phone" placeholder="请输入">
                            </u--input>
@@ -27,27 +25,28 @@
                        </u-form-item>
                    </view>
                    <box-title class="mt-20" title="房屋外观"></box-title>
                    <view class="pic mt-20">
                    <view class="pic">
                        <newBoxTitle title="房屋外观"></newBoxTitle>
                        <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
                            :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                            :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImg"
                            @delete="deletePic">
                        </u-upload>
                    </view>
                    <box-title title="房屋标签"></box-title>
                    <view class="mt-20 flex label-btn-box b-c-w">
                    <view class=" flex label-btn-box b-c-w">
                        <newBoxTitle title="房屋标签"></newBoxTitle>
                        <view class="list">
                        <view v-for="(item, index) in labelBtnList" :key="index">
                            <u-button color="#000" size="mini" type="primary" :style="{background: item.color}"
                                <u-button size="mini" type="primary" :style="{background: item.color, color: item.color && '#fff'}"
                                :plain="true" :text="item.name" @click="showLabelPopup(item)"></u-button>
                            </view>
                        </view>
                    </view>
                </u-form>
            </view>
            <view class="edit-btn">
                <u-button type="primary" text="修改数据" @click="updateHouseInfo(item)"></u-button>
                <u-button type="primary" color="linear-gradient(163deg, #01BDFC 0%, #017BFC 100%)" text="修改数据" @click="updateHouseInfo(item)"></u-button>
            </view>
        </view>
@@ -60,7 +59,7 @@
                <u-radio-group class="mt-40" v-model="labelValue" placement="row">
                    <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in labelList" :key="index"
                        :label="item.name" :name="item.name" :activeColor="item.color" @change="radioChange(item)">
                        :label="item.name" :labelColor="item.color" :name="item.name" :activeColor="item.color" @change="radioChange(item)">
                    </u-radio>
                </u-radio-group>
@@ -78,6 +77,7 @@
<script>
    import uploadMixin from "@/mixin/uploadMixin";
    import newBoxTitle from '@/components/boxTitle/index2.vue'
    import {
        uploadFile
    } from "@/api/doorplateAddress/doorplateAddress";
@@ -100,6 +100,9 @@
    } from "echarts";
    export default {
        mixins: [uploadMixin],
        components: {
            newBoxTitle
        },
        data() {
            return {
                houseCode: '',
@@ -157,16 +160,16 @@
                    {
                        name: '绿',
                        disabled: false,
                        color: '#07C160'
                        color: '#30D17C'
                    },
                    {
                        name: '黄',
                        disabled: false,
                        color: '#FF976A'
                        color: '#FFB42B'
                    }, {
                        name: '红',
                        disabled: false,
                        color: '#EE0A24'
                        color: '#EA1F1F'
                    }
                ],
                currentLabelInfo: {},
@@ -380,6 +383,7 @@
        display: flex;
        flex-direction: column;
        background: #F9F9FA;
        font-size: 30rpx;
        .main {
            position: relative;
@@ -392,32 +396,57 @@
                height: 0;
                flex: 1;
                overflow-y: auto;
                padding: 20rpx 30rpx;
                .basic-info {
                    background-color: #fff;
                    padding: 30rpx;
                    .form-item {
                        background-color: #ffffff;
                        padding: 5rpx 20rpx;
                        border-bottom: 1px solid #eff1f3;
                        &:first-child {
                            padding-top: 0;
                        }
                        &:last-child {
                            padding-bottom: 0;
                        }
                    }
                }
                .pic {
                    background-color: #ffffff;
                    padding: 40rpx 30rpx;
                    padding: 30rpx;
                    margin-top: 20rpx;
                }
                .label-btn-box {
                    padding: 10rpx 0;
                    padding: 30rpx;
                    margin-top: 20rpx;
                    display: flex;
                    flex-direction: column;
                    .list {
                        display: flex;
                        flex-wrap: wrap;
                    &>view {
                        margin: 0 10rpx;
                            width: calc((100% - 80rpx) / 5);
                            margin: 0 20rpx 20rpx 0;
                            &:nth-child(5n) {
                                margin-right: 0;
                            }
                        .u-button {
                            padding: 6rpx 8rpx;
                                border-width: 0 !important;
                                background-color: #F5F5F5;
                                color: #999999;
                        }
                    }
                    }
                }
            }
@@ -429,7 +458,7 @@
                justify-content: space-around;
                align-items: center;
                background: #fff;
                border-top: 1rpx solid #ccc;
                box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
            }
        }
    }