Lou
2023-11-09 5398ee850fe2b1ec205e12f7f4b81260a7958128
修复首页问题,取保候审、打金店报事数据交互
6 files modified
7 files added
1 files deleted
1375 ■■■■ changed files
api/reporting/reporting.js 29 ●●●●● patch | view | raw | blame | history
common/setting.js 2 ●●● patch | view | raw | blame | history
pages.json 10 ●●●● patch | view | raw | blame | history
pages/home/index.vue 5 ●●●● patch | view | raw | blame | history
static/icon/nav-bg-10.png patch | view | raw | blame | history
static/icon/nav-bg-11.png patch | view | raw | blame | history
static/icon/nav-bg-12.png patch | view | raw | blame | history
static/icon/nav-bg-13.png patch | view | raw | blame | history
static/icon/nav-bg-14.png patch | view | raw | blame | history
subPackage/label/bail.vue 243 ●●●●● patch | view | raw | blame | history
subPackage/label/form.vue 252 ●●●●● patch | view | raw | blame | history
subPackage/label/hotel.vue 199 ●●●●● patch | view | raw | blame | history
subPackage/label/index.vue 39 ●●●●● patch | view | raw | blame | history
subPackage/label/released.vue 596 ●●●●● patch | view | raw | blame | history
api/reporting/reporting.js
New file
@@ -0,0 +1,29 @@
import http from '@/http/api.js'
//添加旅馆安全报事
export const saveHotelReporting = (data) => {
    return http.request({
        url: '/blade-taskHotelReporting/taskHotelReporting/save',
        method: 'POST',
        data: data
    })
}
//添加取保候审报事
export const saveBailReporting = (data) => {
    return http.request({
        url: '/blade-taskBailReportingEvent/taskBailReportingEvent/save',
        method: 'POST',
        data: data
    })
}
//添加打金店、二手车交易、二手手机维修报事
export const saveLabelReporting = (data) => {
    return http.request({
        url: '/blade-taskLabelReportingEvent/taskLabelReportingEvent/save',
        method: 'POST',
        data: data
    })
}
common/setting.js
@@ -12,7 +12,7 @@
    // devUrl: 'https://sk.hubeishuiyi.cn',
    // devUrl: 'http://192.168.1.156:9528',
    // devUrl:'http://192.168.1.50:9528',
    devUrl: 'http://192.168.0.104:9528',
    devUrl: 'http://192.168.0.101:9528',
    minioBaseUrl: "http://60.220.177.113:9000/jczz/",
    // 数据中台接口url
    // dataCenterUrl: 'http://10.10.2.192/services',
pages.json
@@ -128,12 +128,12 @@
                        "navigationBarTextStyle": "black"
                    }
                },{
                    "path": "released",
                    "path": "bail",
                    "style": {
                        "navigationBarTitleText": "取保候审",
                        "enablePullDownRefresh": false,
                        "navigationBarBackgroundColor": "#4586fe",
                        "navigationBarTextStyle": "white"
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black"
                    }
                },
                {
@@ -141,8 +141,8 @@
                    "style": {
                        "navigationBarTitleText": "大金店报事",
                        "enablePullDownRefresh": false,
                        "navigationBarBackgroundColor": "#4586fe",
                        "navigationBarTextStyle": "white"
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black"
                    }
                }
            ]
pages/home/index.vue
@@ -380,6 +380,7 @@
                    this.roleTypeName = "居民"
                }
                const res = await getFuncList(type, roleName)
                this.columnData = res.data;
                console.log(res, "-----------")
                let data = res.data
                this.siteColumns = []
@@ -434,7 +435,9 @@
                if (columnIndex === 0 && this.columnData.length > 0) {
                    // picker为选择器this实例,变化第二列对应的选项
                    picker.setColumnValues(1, this.columnData[index])
                }
                    // this.siteColumns[1] = this.columnData[index].children
                    this.$set(this.siteColumns,1,this.columnData[index].children)
                };
            },
            // 回调参数为包含columnIndex、value、values
            confirmSite(e) {
static/icon/nav-bg-10.png
static/icon/nav-bg-11.png
static/icon/nav-bg-12.png
static/icon/nav-bg-13.png
static/icon/nav-bg-14.png
subPackage/label/bail.vue
New file
@@ -0,0 +1,243 @@
<template>
    <view class="">
        <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="100"
            :labelStyle="{fontSize:'28rpx'}">
            <view class="content">
                <u-form-item label="姓名" prop="checkUserName" borderBottom  required>
                    <u-input v-model="info.checkUserName"  disabled disabledColor="#fff" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="手机" prop="checkTelephone" borderBottom  required>
                    <u-input v-model="info.checkTelephone" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="申请名称" prop="applyName" borderBottom  required>
                    <u-input v-model="info.applyName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="申请时间" prop="applyTime" borderBottom  required @click="showSelectDate = true">
                    <u-input v-model="info.applyTime" disabled disabledColor="#ffffff" border="none" placeholder="请输入"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item label="申请位置" prop="location" borderBottom ref="location" required>
                    <u-input v-model="info.location"  border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
            </view>
            <view class="upload bgc-ff">
                <view class="f-28 mb-20">位置图片</view>
                <view class="mt-20">
                    <u-upload :fileList="form.image" :previewFullImage="uploadConfig.previewFullImage"
                        :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImgs($event,'fireImageUrls')"
                        @delete="deletePic">
                        <view class="upload-item upload-icon flex_base">
                            <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
                        </view>
                    </u-upload>
                </view>
            </view>
        </u-form>
        <button class="submit-btn" @click="sumitInfo">提交</button>
        <!-- <button class="list-btn" @click="navigatorPage">我上报的事件</button> -->
         <u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="applyTime" mode="datetime"
             :formatter="formatter" @confirm="confirmDate"  @cancel="showSelectDate = false"></u-datetime-picker>
    </view>
</template>
<script>
    import uploadMixin from "@/mixin/uploadMixin";
    import {
        saveBailReporting
    } from "@/api/reporting/reporting";
    export default {
        mixins: [uploadMixin],
        data() {
            return {
                form:{
                    images:[]
                },
                info: {
                    checkUserName: "",
                    checkTelephone: "",
                    applyName:"",
                    applyTime:'' ,
                    location:"",
                    houseCode:"",
                    districtName:"",
                    checkUserId:"",
                },
                rules: {
                    'name': {
                        type: 'string',
                        required: true,
                        message: '请输入姓名',
                        trigger: ['blur', 'change']
                    },
                    'checkName': {
                        type: 'string',
                        required: true,
                        message: '请输入手机',
                        trigger: ['blur', 'change']
                    },
                    'checkPhone': {
                        type: 'number',
                        required: true,
                        message: '请输入名称',
                        trigger: ['blur', 'change']
                    },
                    'location':{
                        type: 'string',
                        required: true,
                        message: '请输入位置',
                        trigger: ['blur', 'change']
                    }
                },
                showSelectDate: false,
                applyTime:Number(new Date())
            }
        },
        onLoad(option) {
            let siteInfo = uni.getStorageSync("siteInfo");
            let userInfo = uni.getStorageSync("userInfo");
            this.$set(this.info, "houseCode", siteInfo.id);
            this.$set(this.info, "districtName", siteInfo.name);
            this.$set(this.info, "checkUserId", userInfo.user_id);
        },
        onReady() {
            // 微信小程序需要用此写法
            this.$refs.datetimePicker.setFormatter(this.formatter)
        },
        methods: {
            formatter(type, value) {
                if (type === 'year') {
                    return `${value}年`
                }
                if (type === 'month') {
                    return `${value}月`
                }
                if (type === 'day') {
                    return `${value}日`
                }
                return value
            },
            confirmDate(e) {
                console.log(e);
                this.showSelectDate = false;
                this.info.applyTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
            },
            checkImages() {
                if (this.form.images.length) {
                    this.$set(this.info,"locationImageUrls",this.setImages())
                }
            },
            setImages(){
                let urls = [];
                for(let i of this.form.images){
                    urls.push(i.url);
                }
                return urls.join(",")
            },
            sumitInfo() {
                this.$refs.info.validate().then(valid => {
                    this.checkImages();
                    saveBailReporting(this.info).then(res => {
                        uni.showToast({
                            icon: 'success',
                            title: '提交成功',
                            success() {
                                setTimeout(() => {
                                    that.$u.func.globalNavigator("", "navBack")
                                }, 1000)
                            }
                        })
                    })
                })
            },
            navigatorPage() {
                let url = "/subPackage/bs/views/repairList" + "?title=" + this.title + "&type=" + this.info.type
                this.$u.func.globalNavigator(url, "navTo")
            }
        }
    }
</script>
<style lang="less">
    page {
        background-color: #F5F5F5;
    }
    .content {
        margin: 20rpx 30rpx;
        padding: 0 30rpx;
        background-color: #fff;
    }
    /deep/.u-radio-group--row {
        justify-content: flex-end;
    }
    .site-box {
        padding: 30rpx;
        margin: 20rpx 30rpx;
        border-radius: 4rpx;
        .c-aa {
            color: #aaa;
        }
        .address {
            width: 60%;
            margin-left: 25rpx;
        }
    }
    .upload-item {
        width: 140rpx;
        height: 140rpx;
        border: 1px solid #EEEEEE;
    }
    .upload {
        margin: 0 30rpx;
        padding: 30rpx;
    }
    .submit-btn {
        width: 690rpx;
        height: 78rpx;
        line-height: 78rpx;
        background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
        border-radius: 8rpx 8rpx 8rpx 8rpx;
        font-size: 32rpx;
        color: #fff;
        margin-top: 50rpx;
    }
    .list-btn {
        width: 690rpx;
        height: 78rpx;
        line-height: 78rpx;
        background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%);
        border-radius: 8rpx 8rpx 8rpx 8rpx;
        font-size: 32rpx;
        color: #fff;
        margin-top: 50rpx;
    }
</style>
subPackage/label/form.vue
@@ -1,18 +1,128 @@
<template>
    <view class="">
        <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="100"
            :labelStyle="{fontSize:'28rpx'}">
            <view class="content">
                <u-form-item label="对象电话" prop="transactionObjectTel" borderBottom  required>
                    <u-input v-model="info.transactionObjectTel" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="交易金额" prop="transactionMoney" borderBottom  required>
                    <u-input v-model="info.transactionMoney"  disabled disabledColor="#fff" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="物品数量" prop="goodsNums" borderBottom  required>
                    <u-input v-model="info.goodsNums" type="number" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="交易位置" prop="location" borderBottom ref="location" required>
                    <u-input v-model="info.location"  border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="交易过程" prop="transactionProcess" borderBottom>
                    <u-input v-model="info.transactionProcess"   border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
            </view>
            <view class="upload bgc-ff">
                <view class="f-28 mb-20">手持身份证</view>
                <view class="mt-20">
                    <u-upload :fileList="imageUrls" :previewFullImage="uploadConfig.previewFullImage"
                        :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImgs($event,'imageUrls')"
                        @delete="deletePic">
                        <view class="upload-item upload-icon flex_base">
                            <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
                        </view>
                    </u-upload>
                </view>
            </view>
            <view class="upload bgc-ff">
                <view class="f-28 mb-20">物品照片</view>
                <view class="mt-20">
                    <u-upload :fileList="goodsImageUrls" :previewFullImage="uploadConfig.previewFullImage"
                        :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImgs($event,'goodsImageUrls')"
                        @delete="deletePic">
                        <view class="upload-item upload-icon flex_base">
                            <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
                        </view>
                    </u-upload>
                </view>
            </view>
        </u-form>
        <button class="submit-btn" @click="sumitInfo">提交</button>
        <!-- <button class="list-btn" @click="navigatorPage">我上报的事件</button> -->
    </view>
</template>
<script>
    import uploadMixin from "@/mixin/uploadMixin";
    import {
        saveLabelReporting
    } from "@/api/reporting/reporting";
    export default {
        mixins: [uploadMixin],
        data(){
            return{
                info: {
                    transactionObjectTel:"",
                    transactionMoney:"",
                    goodsNums:"",
                    location:"",
                    transactionProcess:"",
                    districtId:"",
                    districtName:"",
                    userId:""
                },
                rules: {
                    'transactionObjectTel': {
                        type: 'string',
                        required: true,
                        message: '请输入对象电话',
                        trigger: ['blur', 'change']
                    },
                    'transactionMoney': {
                        type: 'string',
                        required: true,
                        message: '请输入交易金额',
                        trigger: ['blur', 'change']
                    },
                    'location':{
                        type: 'string',
                        required: true,
                        message: '请输入交易位置',
                        trigger: ['blur', 'change']
                    },
                    'transactionProcess':{
                        type: 'string',
                        required: false,
                        message: '请输入交易过程',
                        trigger: ['blur', 'change']
                    }
                },
                imageUrls:[],
                goodsImageUrls:[]
            }
        },
        onLoad(option) {
            if(option.type != 1){
                uni.setNavigationBarTitle({title:this.setTitle(type)})
                uni.setNavigationBarTitle({title:this.setTitle(option.type)})
            }
            this.$set(this.info,"eventType",option.type);
            let siteInfo = uni.getStorageSync("siteInfo");
            let userInfo = uni.getStorageSync("userInfo");
            this.$set(this.info, "houseCode", siteInfo.id);
            this.$set(this.info, "districtName", siteInfo.name);
            this.$set(this.info, "userId", userInfo.user_id);
        },
        methods:{
            setTitle(type){
@@ -21,13 +131,141 @@
                }else if (type == 3){
                    return "二手手机维修"
                }
            },
            confirmDate(e) {
                console.log(e);
                this.showSelectDate = false;
                this.info.checkTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
            },
            async afterReadImgs(event, key) {
                this.showLoading()
                let lists = [].concat(event.file)
                let fileListLen = this[key].length
                lists.map((item) => {
                    this[key].push({
                        ...item,
                        status: 'uploading',
                        message: '上传中'
                    })
                })
                for (let i = 0; i < lists.length; i++) {
                    const result = await this.uploadFilePromise(lists[i].url)
                    this[key].splice(fileListLen, 1, Object.assign({}, {
                        url: result.data.link,
                        name: result.data.name
                    }))
                    fileListLen++
                }
                this.loadingClose()
            },
            checkImages() {
                if (this.imageUrls.length) {
                    this.$set(this.info,"imageUrls",this.setImages(this.imageUrls))
                }
                if (this.goodsImageUrls.length) {
                    this.$set(this.info,"goodsImageUrls",this.setImages(this.goodsImageUrls))
                }
                
            }
            },
            setImages(key){
                let urls = [];
                for(let i of key){
                    urls.push(i.url);
                }
                return urls.join(",")
            },
            sumitInfo() {
                this.$refs.info.validate().then(valid => {
                    this.checkImages()
                    saveLabelReporting(this.info).then(res => {
                        uni.showToast({
                            icon: 'success',
                            title: '提交成功',
                            success() {
                                setTimeout(() => {
                                    that.$u.func.globalNavigator("", "navBack")
                                }, 1000)
                            }
                        })
                    })
                })
            },
            // navigatorPage() {
            //     let url = "/subPackage/bs/views/repairList" + "?title=" + this.title + "&type=" + this.info.type
            //     this.$u.func.globalNavigator(url, "navTo")
            // }
        }
    }
</script>
<style>
<style lang="less">
    page {
        background-color: #F5F5F5;
    }
    .content {
        margin: 20rpx 30rpx;
        padding: 0 30rpx;
        background-color: #fff;
    }
    /deep/.u-radio-group--row {
        justify-content: flex-end;
    }
    .site-box {
        padding: 30rpx;
        margin: 20rpx 30rpx;
        border-radius: 4rpx;
        .c-aa {
            color: #aaa;
        }
        .address {
            width: 60%;
            margin-left: 25rpx;
        }
    }
    .upload-item {
        width: 140rpx;
        height: 140rpx;
        border: 1px solid #EEEEEE;
    }
    .upload {
        margin: 0 30rpx 20rpx;
        padding: 30rpx;
    }
    .submit-btn {
        width: 690rpx;
        height: 78rpx;
        line-height: 78rpx;
        background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
        border-radius: 8rpx 8rpx 8rpx 8rpx;
        font-size: 32rpx;
        color: #fff;
        margin-top: 50rpx;
    }
    .list-btn {
        width: 690rpx;
        height: 78rpx;
        line-height: 78rpx;
        background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%);
        border-radius: 8rpx 8rpx 8rpx 8rpx;
        font-size: 32rpx;
        color: #fff;
        margin-top: 50rpx;
    }
</style>
subPackage/label/hotel.vue
@@ -4,24 +4,24 @@
        <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="100"
            :labelStyle="{fontSize:'28rpx'}">
            <view class="content">
                <u-form-item label="社区名称" prop="districtName" borderBottom  required>
                    <u-input v-model="info.districtName"  disabled disabledColor="#fff" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                <u-form-item label="社区名称" prop="districtName" borderBottom required>
                    <u-input v-model="info.districtName" disabled disabledColor="#fff" border="none" placeholder="请输入"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="酒店名称" prop="hotelName" borderBottom  required>
                <u-form-item label="酒店名称" prop="hotelName" borderBottom required>
                    <u-input v-model="info.hotelName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="自查时间" prop="checkTime" borderBottom  required @click="showSelectDate = true">
                <u-form-item label="自查时间" prop="checkTime" borderBottom required @click="showSelectDate = true">
                    <u-input v-model="info.checkTime" disabled disabledColor="#ffffff" border="none" placeholder="请输入"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item label="自查人姓名" prop="phone" borderBottom  required>
                <u-form-item label="自查人姓名" prop="phone" borderBottom required>
                    <u-input v-model="info.checkUserName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="自查人手机" prop="phone" borderBottom  required>
                <u-form-item label="自查人手机" prop="phone" borderBottom required>
                    <u-input v-model="info.checkTelephone" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
@@ -29,7 +29,7 @@
                    <u-input v-model="info.location" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="灭火器数量" prop="fireNums" borderBottom >
                <u-form-item label="灭火器数量" prop="fireNums" borderBottom>
                    <u-input type="number" v-model="info.fireNums" border="none" placeholder="请输入"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
@@ -46,8 +46,8 @@
                <view class="mt-20">
                    <u-upload :fileList="fireImageUrls" :previewFullImage="uploadConfig.previewFullImage"
                        :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImgs($event,'fireImageUrls')"
                        @delete="deletePic">
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
                        @afterRead="afterReadImgs($event,'fireImageUrls')" @delete="deletePic">
                        <view class="upload-item upload-icon flex_base">
                            <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
                        </view>
@@ -56,7 +56,7 @@
            </view>
            <view class="content">
                <u-form-item label="安全通道有无" prop="scFlag" borderBottom  required>
                <u-form-item label="安全通道有无" prop="scFlag" borderBottom required>
                    <u-radio-group v-model="info.scFlag">
                        <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList" :key="index"
                            :label="item" :name="item">
@@ -68,8 +68,6 @@
                    <u-input v-model="info.scStatus" disabled disabledColor="#fff" border="none" placeholder="请选择"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
            </view>
@@ -78,8 +76,8 @@
                <view class="mt-20">
                    <u-upload :fileList="scImageUrls" :previewFullImage="uploadConfig.previewFullImage"
                        :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImgs(event,'scImageUrls')"
                        @delete="deletePic">
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
                        @afterRead="afterReadImgs($event,'scImageUrls')" @delete="deletePic">
                        <view class="upload-item upload-icon flex_base">
                            <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
                        </view>
@@ -88,14 +86,14 @@
            </view>
            <view class="content">
                <u-form-item label="技防设施有无" prop="pfFlag" borderBottom  required>
                <u-form-item label="技防设施有无" prop="pfFlag" borderBottom required>
                    <u-radio-group v-model="info.pfFlag">
                        <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList" :key="index"
                            :label="item" :name="item">
                        </u-radio>
                    </u-radio-group>
                </u-form-item>
                <u-form-item label="技防设施名称" prop="pfName" :borderBottom="false"  required>
                <u-form-item label="技防设施名称" prop="pfName" :borderBottom="false" required>
                    <u-input v-model="info.pfName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
@@ -105,21 +103,35 @@
                <view class="mt-20">
                    <u-upload :fileList="pfImageUrls" :previewFullImage="uploadConfig.previewFullImage"
                        :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImgs($event,'pfImageUrls')"
                        @delete="deletePic">
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
                        @afterRead="afterReadImgs($event,'pfImageUrls')" @delete="deletePic">
                        <view class="upload-item upload-icon flex_base">
                            <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
                        </view>
                    </u-upload>
                </view>
            </view>
            <view class="content">
                <u-form-item label="接待未成年人需要做到的五个必须" prop="fiveMust"  labelWidth="300" :borderBottom="false" required  labelPosition="top">
                    <view class="mt-30">
                        <u-radio-group v-model="info.fiveMust" placement="column">
                            <u-radio :customStyle="{marginBottom: '10px'}" v-for="(item, index) in mustList" :key="index"
                                :label="item.name" :name="item.value"  labelSize="14"  iconSize="20">
                            </u-radio>
                        </u-radio-group>
                    </view>
                </u-form-item>
            </view>
            <view class="upload bgc-ff">
                <view class="f-28 mb-20">未成年人入住登记本照片上传</view>
                <view class="mt-20">
                    <u-upload :fileList="uanImageUrls" :previewFullImage="uploadConfig.previewFullImage"
                        :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImgs($event,'uanImageUrls')"
                        @delete="deletePic">
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
                        @afterRead="afterReadImgs($event,'uanImageUrls')" @delete="deletePic">
                        <view class="upload-item upload-icon flex_base">
                            <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
                        </view>
@@ -127,7 +139,7 @@
                </view>
            </view>
            <view class="content">
                <u-form-item label="是否实名登记" prop="realName" borderBottom  required>
                <u-form-item label="是否实名登记" prop="realName" borderBottom required>
                    <u-radio-group v-model="info.realName">
                        <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList" :key="index"
                            :label="item" :name="item">
@@ -135,27 +147,24 @@
                    </u-radio-group>
                </u-form-item>
            </view>
        </u-form>
        <button class="submit-btn" @click="sumitInfo">提交</button>
        <button class="list-btn" @click="navigatorPage">我上报的事件</button>
         <u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="checkTime" mode="datetime"
             :formatter="formatter" @confirm="confirmDate"  @cancel="showSelectDate = false"></u-datetime-picker>
         <u-picker :show="isShowFireStatus" :columns="fireStatus" :defaultIndex="fireStatusIndex"
             @cancel="isShowFireStatus = false"  @confirm="confirmFireStatus"></u-picker>
         <u-picker :show="isShowScStatus" :columns="scStatus" :defaultIndex="scStatusIndex"
             @cancel="isShowScStatus = false"  @confirm="confirmScStatus"></u-picker>
        <!-- <button class="list-btn" @click="navigatorPage">我上报的事件</button> -->
        <u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="checkTime" mode="datetime"
            :formatter="formatter" @confirm="confirmDate" @cancel="showSelectDate = false"></u-datetime-picker>
        <u-picker :show="isShowFireStatus" :columns="fireStatus" :defaultIndex="fireStatusIndex"
            @cancel="isShowFireStatus = false" @confirm="confirmFireStatus"></u-picker>
        <u-picker :show="isShowScStatus" :columns="scStatus" :defaultIndex="scStatusIndex"
            @cancel="isShowScStatus = false" @confirm="confirmScStatus"></u-picker>
    </view>
</template>
<script>
    import uploadMixin from "@/mixin/uploadMixin";
    import {
        save
    } from "@/api/task/taskReportForRepairs";
        saveHotelReporting
    } from "@/api/reporting/reporting";
    export default {
        mixins: [uploadMixin],
        data() {
@@ -165,7 +174,7 @@
                    hotelName: "",
                    checkUserName: "",
                    checkTelephone: "",
                    checkTime:'' ,
                    checkTime: '',
                    fireNums: "",
                    fireStatus: "",
                    scFlag: "",
@@ -173,8 +182,8 @@
                    pfFlag: "",
                    pfName: "",
                    realName: "",
                    districtId:"",
                    checkUserId:"",
                    houseCode: "",
                    checkUserId: "",
                },
                rules: {
                    'districtName': {
@@ -207,49 +216,49 @@
                        message: '请输入自查人手机',
                        trigger: ['blur', 'change']
                    },
                    'location':{
                    'location': {
                        type: 'string',
                        required: true,
                        message: '请输入自查位置',
                        trigger: ['blur', 'change']
                    },
                    'fireNums':{
                    'fireNums': {
                        type: 'string',
                        required: false,
                        message: '请输入自查数量',
                        trigger: ['blur', 'change']
                    },
                    'fireStatus':{
                    'fireStatus': {
                        type: 'string',
                        required: false,
                        message: '请选择灭火器状态',
                        trigger: ['blur', 'change']
                    },
                    'scFlag':{
                    'scFlag': {
                        type: 'string',
                        required: true,
                        message: '请选择安全通道有无',
                        trigger: ['blur', 'change']
                    },
                    'scStatus':{
                    'scStatus': {
                        type: 'string',
                        required: true,
                        message: '请选择安全通道状态',
                        trigger: ['blur', 'change']
                    },
                    'pfFlag':{
                    'pfFlag': {
                        type: 'string',
                        required: true,
                        message: '请选择技防设施有无',
                        trigger: ['blur', 'change']
                    },
                    'pfName':{
                    'pfName': {
                        type: 'string',
                        required: true,
                        message: '请输入技防设施名称',
                        trigger: ['blur', 'change']
                    },
                    'realName':{
                    'realName': {
                        type: 'string',
                        required: true,
                        message: '请选择是否完全实名制登记',
@@ -262,31 +271,60 @@
                uanImageUrls: [], //未成年人入住登记本照片
                pfImageUrls: [], //技防设施照片
                statusList: ["有", "无"],
                fireStatus: [["正常", "已使用", "失效", "已过期"]], //灭火器状态
                scStatus: [["开启", "关闭"]], //安全通道状态
                fireStatus: [
                    ["正常", "已使用", "失效", "已过期"]
                ], //灭火器状态
                scStatus: [
                    ["开启", "关闭"]
                ], //安全通道状态
                fireStatusIndex: [0],
                scStatusIndex: [0],
                isShowFireStatus: false,
                isShowScStatus: false,
                checkTime:Number(new Date())
                checkTime: Number(new Date()),
                mustList: [{
                        name: "必须询问同住人员身份关系情况,并记录备查",
                        value: 1
                    },
                    {
                        name: "必须立即向公安机关报告可以情况,并及时联系未成年人的父母获取其他监护人,同时采取相应安全保护措施",
                        value: 2
                    },
                    {
                        name: "必须查验入住未成年人身份,并如实登记报送相关信息",
                        value: 3
                    },
                    {
                        name: "必须询问未成年父母或者其他监护人的联系方式并记录备查",
                        value: 4
                    },
                    {
                        name: "必须加强安全巡查和访客管理,预防针对未成年人的不法侵害",
                        value: 5
                    },
                    {
                        name: "以上皆未做到",
                        value: 6
                    }
                ]
            }
        },
        onLoad(option) {
            let siteInfo = uni.getStorageSync("siteInfo");
            let userInfo = uni.getStorageSync("userInfo");
            this.$set(this.info,"districtId",siteInfo.id);
            this.$set(this.info,"districtName",siteInfo.name);
            this.$set(this.info,"checkUserId",userInfo.user_id);
            this.$set(this.info, "houseCode", siteInfo.id);
            this.$set(this.info, "districtName", siteInfo.name);
            this.$set(this.info, "checkUserId", userInfo.user_id);
        },
        onReady() {
            // 微信小程序需要用此写法
            this.$refs.datetimePicker.setFormatter(this.formatter)
            console.log("==>",this)
            console.log("==>", this)
        },
        methods: {
            formatter(type, value) {
                if (type === 'year') {
                    return `${value}年`
@@ -301,28 +339,23 @@
            },
            confirmDate(e) {
                console.log(e);
                this.showSelectDate = false;
                this.info.checkTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
                this.info.checkTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
            },
            confirmFireStatus(e){
                console.log(e);
            confirmFireStatus(e) {
                this.fireStatusIndex = e.indexs;
                this.info.fireStatus = e.value[0];
                this.isShowFireStatus = false;
            },
            confirmScStatus(e){
                console.log(e);
            confirmScStatus(e) {
                this.scStatusIndex = e.indexs;
                this.info.scStatus = e.value[0];
                this.isShowScStatus = false;
            },
        async afterReadImgs(event,key) {
            async afterReadImgs(event, key) {
                this.showLoading()
                // var that = this;
                // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
                let lists = [].concat(event.file)
                let fileListLen = this[key].length
                lists.map((item) => {
@@ -334,42 +367,49 @@
                })
                for (let i = 0; i < lists.length; i++) {
                    const result = await this.uploadFilePromise(lists[i].url)
                    console.log(result);
                    this[key].splice(fileListLen, 1, Object.assign({}, {
                        url: result.data.link,
                        name:result.data.name
                        name: result.data.name
                    }))
                    fileListLen++
                }
                this.loadingClose()
            },
            checkImages() {
                if (this.fireImageUrls.length) {
                    this.info.fireImageUrls = this.fireImageUrls.join(",")
                    this.$set(this.info, "fireImageUrls", this.setImages(this.fireImageUrls))
                }
                if (this.scImageUrls.length) {
                    this.info.scImageUrls = this.scImageUrls.join(",")
                    this.$set(this.info, "scImageUrls", this.setImages(this.scImageUrls))
                }
                if (this.pfImageUrls.length) {
                    this.info.pfImageUrls = this.pfImageUrls.join(",")
                    this.$set(this.info, "pfImageUrls", this.setImages(this.pfImageUrls))
                }
                if (this.uanImageUrls.length) {
                    this.info.uanImageUrls = this.uanImageUrls.join(",")
                    this.$set(this.info, "uanImageUrls", this.setImages(this.uanImageUrls))
                }
            },
            setImages(key) {
                let urls = [];
                for (let i of key) {
                    urls.push(i.url);
                }
                return urls.join(",")
            },
            sumitInfo() {
                this.$refs.form.validate().then(valid => {
                    this.checkImages()
                    save(this.info).then(res => {
                    saveHotelReporting(this.info).then(res => {
                        uni.showToast({
                            icon: 'success',
                            title: '提交成功',
                            success() {
                                // setTimeout(() => {
                                //     that.$u.func.globalNavigator("", "navBack")
                                // }, 1000)
                                setTimeout(() => {
                                    that.$u.func.globalNavigator("", "navBack")
                                }, 1000)
                            }
                        })
                    })
@@ -447,4 +487,11 @@
        color: #fff;
        margin-top: 50rpx;
    }
    .mb-20 {
        margin-bottom: 20rpx;
    }
    .mt-30{
        margin-top:30rpx;
    }
</style>
subPackage/label/index.vue
@@ -31,13 +31,13 @@
                </view>
            </view>
            
            <view class="site-box bgc-ff flex">
            <view class="site-box bgc-ff flex"  v-if="siteInfo.name">
                <view class="flex a-i-c">
                    <u-icon name="map-fill" color="#AAAAAA"></u-icon>
                    <text class="f-28 c-aa ml-20">当前小区:</text>
                </view>
                
                <text class="address f-28">万达华府26栋1903室 万达华府26栋1903室</text>
                <text class="address f-28">{{siteInfo.name}}</text>
            </view>
            
            <view class="nav flex flex-wrap j-c-s-b">
@@ -64,39 +64,44 @@
            return {
                navList:[
                    {
                        title:"旅馆安全",
                        bgImg:"/static/icon/nav-bg-06.png",
                        path:"hotel",
                        title:"取保候审",
                        bgImg:"/static/icon/nav-bg-10.png",
                        path:"bail",
                        background:"#63C875"
                    },
                    {
                        title:"取保候审",
                        bgImg:"/static/icon/nav-bg-07.png",
                        path:"released",
                        title:"打金店",
                        bgImg:"/static/icon/nav-bg-11.png",
                        path:"form",
                        background:"#4D98E2"
                    },
                    {
                        title:"打金店",
                        bgImg:"/static/icon/nav-bg-08.png",
                        path:"form",
                        title:"旅馆安全",
                        bgImg:"/static/icon/nav-bg-12.png",
                        path:"hotel",
                        background:"#EC7E51"
                    },
                    {
                        title:"二手车交易",
                        bgImg:"/static/icon/nav-bg-09.png",
                        bgImg:"/static/icon/nav-bg-13.png",
                        path:"form",
                        background:"#F4B862"
                    },
                    {
                        title:"二手手机维修",
                        bgImg:"/static/icon/nav-bg-09.png",
                        bgImg:"/static/icon/nav-bg-14.png",
                        path:"form",
                        background:"#F4B862"
                    },
                ]
                        background:"#13C6C7"
                    }
                ],
                siteInfo:{}
            }
        },
        onLoad(){
            this.siteInfo = uni.getStorageSync("siteInfo");
        },
        methods:{
            navTo(path,index){
                let type = 1;
subPackage/label/released.vue
File was deleted