Lou
2024-03-29 f05185162e4753332d84884de11ba48a9f2c3cfb
更新
10 files modified
1 files deleted
5 files added
1300 ■■■■■ changed files
common/setting.js 2 ●●● patch | view | raw | blame | history
pages.json 53 ●●●●● patch | view | raw | blame | history
pages/home/index.vue 58 ●●●● patch | view | raw | blame | history
pages/statistics/index.vue 26 ●●●●● patch | view | raw | blame | history
pages/user/test.vue 318 ●●●●● patch | view | raw | blame | history
static/icon/nav-19.png patch | view | raw | blame | history
static/icon/nav-20.png patch | view | raw | blame | history
static/icon/nav-21.png patch | view | raw | blame | history
static/icon/nav-22.png patch | view | raw | blame | history
subPackage/bs/views/rentDetail.vue 3 ●●●● patch | view | raw | blame | history
subPackage/contradiction/add.vue 246 ●●●●● patch | view | raw | blame | history
subPackage/contradiction/edit.vue 571 ●●●●● patch | view | raw | blame | history
subPackage/counterfraud/add.vue 7 ●●●●● patch | view | raw | blame | history
subPackage/counterfraud/dispose.vue 8 ●●●●● patch | view | raw | blame | history
subPackage/label/bail.vue 5 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/auditRental.vue 3 ●●●● patch | view | raw | blame | history
common/setting.js
@@ -11,7 +11,7 @@
    // 开发环境接口Url
    // devUrl: 'http://z4042833u6.wicp.vip',
    devUrl: 'http://192.168.2.111:9528',
    // devUrl: 'https://srgdjczzxtpt.com:2080/api',
    // devUrl: 'https://srgdjczzxtpt.com:2080/api',
    // devUrl: 'https://kt39592615.goho.co',
    minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
    // minioBaseUrl: "http://192.168.0.101:9528/",
pages.json
@@ -29,14 +29,14 @@
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/user/test",
            "style": {
                "navigationBarTitleText": "测试页面",
                "navigationBarBackgroundColor": "#fff",
                "navigationBarTextStyle": "black"
            }
        },
        // {
        //     "path": "pages/user/test",
        //     "style": {
        //         "navigationBarTitleText": "测试页面",
        //         "navigationBarBackgroundColor": "#fff",
        //         "navigationBarTextStyle": "black"
        //     }
        // },
        {
            "path": "pages/login/login-account",
            "style": {
@@ -1057,14 +1057,25 @@
        {
            "root": "subPackage/contradiction",
            "pages": [{
                "path": "add",
                "style": {
                    "navigationBarTitleText": "矛调矛排 ",
                    "navigationBarBackgroundColor": "#fff",
                    "navigationBarTextStyle": "black",
                    "enablePullDownRefresh": false
                    "path": "add",
                    "style": {
                        "navigationBarTitleText": "矛调矛排 ",
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "edit",
                    "style": {
                        "navigationBarTitleText": "矛调矛排 ",
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black",
                        "enablePullDownRefresh": false
                    }
                }
            }]
            ]
        }
    ],
    "globalStyle": {
@@ -1085,12 +1096,12 @@
                "iconPath": "static/img/tabbar-01.png",
                "text": "首页"
            },
            {
                "pagePath": "pages/circle/index",
                "iconPath": "static/img/tabbar-02.png",
                "selectedIconPath": "static/img/tabbar-02-selected.png",
                "text": "圈子"
            },
            // {
            //     "pagePath": "pages/circle/index",
            //     "iconPath": "static/img/tabbar-02.png",
            //     "selectedIconPath": "static/img/tabbar-02-selected.png",
            //     "text": "圈子"
            // },
            {
                "pagePath": "pages/statistics/index",
                "iconPath": "static/img/tabbar-02.png",
pages/home/index.vue
@@ -721,22 +721,21 @@
                // immediate: true
            },
            isBailer(newVal, oldVal) {
            // isBailer(newVal, oldVal) {
                if (newVal == true) {
                    this.tabs.splice(1, 0, {
                        name: '警务服务',
                        list: [{
                            icon: "/static/icon/nav-11.png",
                            text: "取保候审",
                            path: '/subPackage/label/bail'
                        }]
                    })
            //     if (newVal == true) {
            //         this.tabs.splice(1, 0, {
            //             name: '警务服务',
            //             list: [{
            //                 icon: "/static/icon/nav-11.png",
            //                 text: "取保候审",
            //                 path: '/subPackage/label/bail'
            //             }]
            //         })
            //     }
                }
                immediate: true
            }
            //     immediate: true
            // }
        },
@@ -1072,20 +1071,23 @@
            setLiveMenu(arr) {
                if (arr.length) {
                    let index3 = arr.findIndex(item => item.name.trim() == "取保候审")
                    let index3 = arr.findIndex(item => item.name.trim() == "取保监居")
                    if (index3 != -1) {
                        this.isBailer = true;
                        console.log(uni.getStorageSync("activeRole").roleName, 11111);
                        // this.isBailer = true;
                        // this.tabs.splice(1, 0, {
                        //     name: '警务服务',
                        //     list: [{
                        //         icon: "/static/icon/nav-11.png",
                        //         text: "取保候审",
                        //         path: '/subPackage/label/bail'
                        //     }]
                        // })
                        this.tabs.splice(1, 0, {
                            name: '警务服务',
                            list: [{
                                icon: "/static/icon/nav-11.png",
                                text: "取保监居",
                                path: '/subPackage/label/bail'
                            }]
                        })
                    }
                    // } else {
                    //     this.isBailer = false;
                    // }
                    return;
                    let index = this.getLiveMenuItem(arr, 1)
@@ -1333,11 +1335,13 @@
                                        success: (tip) => {
                                            if (tip.confirm) {
                                                uni.openSetting({
                                                    success: (data) => {
                                                    success: (
                                                        data) => {
                                                        if (data
                                                            .authSetting[
                                                                "scope.userLocationBackground"
                                                            ] == true
                                                            ] ==
                                                            true
                                                        ) {
                                                            this
                                                                .getBackgroundLocation();
pages/statistics/index.vue
@@ -146,7 +146,31 @@
                <view class="block-caption f-28 fw">
                    事件分类
                </view>
                <view class="flex j-c-s-b a-i-c flex-wrap">
                <view class="flex j-c-s-b a-i-c">
                    <view class="flex f-d-c a-i-c">
                        <u-icon name="/static/icon/nav-19.png" width="90rpx" height="90rpx"></u-icon>
                        <text class="f-26 mt-20 mb-10">矛盾纠纷</text>
                        <text class="f-28">{{reportData.result5}}</text>
                    </view>
                    <view class="flex f-d-c a-i-c">
                        <u-icon name="/static/icon/nav-20.png" width="90rpx" height="90rpx"></u-icon>
                        <text class="f-26 mt-20 mb-10">公共维护</text>
                        <text class="f-28">{{reportData.result3}}</text>
                    </view>
                    <view class="flex f-d-c a-i-c">
                        <u-icon name="/static/icon/nav-21.png" width="90rpx" height="90rpx"></u-icon>
                        <text class="f-26 mt-20 mb-10">居家维修</text>
                        <text class="f-28">{{reportData.result4}}</text>
                    </view>
                    <view class="flex f-d-c a-i-c">
                        <u-icon name="/static/icon/nav-22.png" width="90rpx" height="90rpx"></u-icon>
                        <text class="f-26 mt-20 mb-10">投诉举报</text>
                        <text class="f-28">{{reportData.result6}}</text>
                    </view>
                </view>
                <view class="flex j-c-s-b a-i-c flex-wrap" v-if="false">
                    <view class="report-item">
                        <image class="report-item-bg" src="/static/icon/nav-bg-08.png" mode="aspectFill"></image>
                        <view class="report-item-inner  flex f-d-c j-c-c ">
pages/user/test.vue
File was deleted
static/icon/nav-19.png
static/icon/nav-20.png
static/icon/nav-21.png
static/icon/nav-22.png
subPackage/bs/views/rentDetail.vue
@@ -599,7 +599,8 @@
                })
                this.btnControls = {
                    deleteBtn: this.rentId !== '',
                    verifyBtn: !this.auditStatus && !!this.rentId && this.currentRole.roleAlias === 'wgy'
                    // verifyBtn: !this.auditStatus && !!this.rentId && this.currentRole.roleAlias === 'wgy'
                    verifyBtn: !this.auditStatus && !!this.rentId
                }
            },
            async deleteRent() {
subPackage/contradiction/add.vue
@@ -1,34 +1,26 @@
<template>
    <view class="">
        <!-- <view class="site-box bgc-ff flex">
            <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">{{ curSelectSite.name }}</text>
        </view> -->
        <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="100"
            :labelStyle="{fontSize:'28rpx'}">
            :labelStyle="{fontSize:'30rpx'}">
            <view class="content bgc-ff mb-20">
                <u-form-item label="当事人1姓名" prop="nameOne" borderBottom ref="nameOne">
                <u-form-item label="当事人1姓名" prop="nameOne" borderBottom required>
                    <u-input v-model="info.nameOne" border="none" placeholder="请输入当事人1姓名" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="当事人1手机号" prop="phoneOne" borderBottom ref="phoneOne">
                    <u-input v-model="info.phoneOne" border="none" placeholder="请输入当事人1手机号" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                <u-form-item label="当事人1手机号" prop="phoneOne" borderBottom required>
                    <u-input v-model="info.phoneOne" type="number" border="none" placeholder="请输入当事人1手机号"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="当事人1性别" prop="genderOne" borderBottom @click="showGenderPicker = true">
                    <u-input v-model="genderValue" border="none" placeholder="请选择当事人1性别" placeholderClass="f-28 c-99"
                        inputAlign="right" disabled disabledColor="#ffffff"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item label="当事人1身份证号码" prop="idCardTwo" borderBottom ref="idCardTwo">
                    <u-input v-model="info.idCardTwo" type="idcard" border="none" placeholder="请输入当事人1身份证号码"
                <u-form-item label="当事人1身份证号码" prop="idCardOne" borderBottom required>
                    <u-input v-model="info.idCardOne" type="idcard" border="none" placeholder="请输入当事人1身份证号码"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="当事人2姓名" prop="nameTwo" borderBottom ref="nameTwo">
                <u-form-item label="当事人2姓名" prop="nameTwo" borderBottom required>
                    <u-input v-model="info.nameTwo" border="none" placeholder="请输入当事人2姓名" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
@@ -37,37 +29,36 @@
                        inputAlign="right" disabled disabledColor="#ffffff"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item label="当事人2手机" prop="phoneTwo" borderBottom ref="phoneTwo">
                    <u-input v-model="info.phoneTwo" border="none" placeholder="请输入当事人2手机" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                <u-form-item label="当事人2手机号" prop="phoneTwo" borderBottom ref="phoneTwo" required>
                    <u-input v-model="info.phoneTwo" type="number" border="none" placeholder="请输入当事人2手机号"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="当事人2身份证号码" prop="idCardTwo" ref="idCardTwo">
                <u-form-item label="当事人2身份证号码" prop="idCardTwo" required>
                    <u-input v-model="info.idCardTwo" type="idcard" border="none" placeholder="请输入当事人2身份证号码"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
            </view>
            <view class="content bgc-ff">
                <u-form-item label="事发时间" prop="eventTime" :borderBottom="false" required
                    @click="showSelectDate = true">
                    <u-input v-model="info.eventTime" disabled disabledColor="#ffffff" border="none" placeholder="请选择"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                <u-form-item label="事发时间" prop="eventTime" required @click="showSelectDate = true">
                    <u-input v-model="info.eventTime" 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="address" borderBottom>
                <u-form-item label="事发位置" prop="address" borderBottom required>
                    <view class="address-row flex">
                        <view class="address-content f-28" v-if="info.address">
                            {{info.address}}
                        </view>
                        <view class="address-content f-28" style="color:#c0c4cc;" v-if="!info.address">
                            请选择地址
                            请选择事发位置
                        </view>
                        <view class="location-btn c-main f-24" @click="getLocation()">
                            获取地址
                        </view>
                    </view>
                </u-form-item>
                <u-form-item label="报警次数" prop="alarmNum" borderBottom ref="alarmNum">
                <u-form-item label="报警次数" prop="alarmNum" borderBottom ref="alarmNum" required>
                    <u-input v-model="info.alarmNum" border="none" type="number" placeholder="请输入报警次数"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
@@ -86,49 +77,30 @@
                    <u-textarea v-model="info.disputeContent" border="none" placeholder="请输入纠纷内容"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-textarea>
                </u-form-item>
                <u-form-item label="是否有人员受伤:" labelWidth="100" prop="isNine" :required="isRequired" borderBottom>
                    <u-radio-group v-model="form.injuryFlag" v-if="!currentId">
                <u-form-item label="是否有人员受伤:" labelWidth="100" prop="injuryFlag" borderBottom>
                    <u-radio-group v-model="info.injuryFlag">
                        <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList" :key="index"
                            :label="item.name" :name="item.id">
                        </u-radio>
                    </u-radio-group>
                </u-form-item>
                <u-form-item v-if="form.injuryFlag == 1" label="受伤情况" prop="injuryDesc" borderBottom ref="injuryDesc">
                <u-form-item v-if="info.injuryFlag == 1" label="受伤情况" prop="injuryDesc" borderBottom>
                    <u-textarea v-model="info.injuryDesc" border="none" placeholder="请输入受伤情况"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-textarea>
                </u-form-item>
                <u-form-item label="处理情况" prop="handleResult" @click="showHandleResultPicker = true">
                    <u-input v-model="handleResultValue" border="none" placeholder="请选择处理情况"
                        placeholderClass="f-28 c-99" inputAlign="right" disabled disabledColor="#ffffff"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
            </view>
        </u-form>
        <!-- <view class="upload bgc-ff">
            <view class="f-28 mb-20">描述</view>
            <u-textarea v-model="info.remark" placeholder="请输入内容" border="none"
                placeholderClass="c-99 f-26"></u-textarea>
            <view class="mt-20">
                <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
                    :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
                    :capture="uploadConfig.capture" @afterRead="afterReadImg" @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="blank"></view>
        <button class="submit-btn" @click="sumitInfo">提交</button>
        <!-- <button class="submit-btn" @click="sumitInfo">提交</button> -->
        <!-- <button class="list-btn" @click="navigatorPage">纠纷记录</button> -->
        <footer-btn @click="sumitInfo" />
        <u-picker :show="showGenderPicker" :defaultIndex="genderIndex" ref="uPicker" keyName="name"
            :loading="pickerLoading" :columns="[genderList]" @confirm="confirmGender"
@@ -178,8 +150,8 @@
                    nameTwo: "",
                    phoneOne: "",
                    phoneTwo: "",
                    grenderOne: "",
                    grenderTwo: "",
                    genderOne: "",
                    genderTwo: "",
                    idCardOne: "",
                    idCardTwo: "",
                    injuryDesc: "",
@@ -193,19 +165,18 @@
                    eventTime: ""
                },
                rules: {
                    'realName': {
                    'nameOne': {
                        type: 'string',
                        required: true,
                        message: '请输入姓名',
                        message: '请输入当事人1姓名',
                        trigger: ['blur', 'change']
                    },
                    'phone': [{
                    'phoneOne': [{
                            type: 'string',
                            required: true,
                            message: '请输入手机号',
                            message: '请输入当事人1手机号',
                            trigger: ['blur', 'change']
                        },
                        {
                            validator: (rule, value, callback) => {
@@ -215,14 +186,111 @@
                            trigger: ['change', 'blur']
                        }
                    ],
                    'address': {
                    "info.genderOne": {
                        type: 'string',
                        required: true,
                        message: '请选择地址',
                        message: '请选择当事人1性别',
                        trigger: ['blur', 'change']
                    },
                    idCardOne: [{
                            type: 'string',
                            required: true,
                            message: '请输入当事人1身份证号码',
                            trigger: ['change', 'blur']
                        },
                        {
                            validator: (rule, value, callback) => {
                                const idCardRegex =
                                    /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
                                return idCardRegex.test(value)
                            },
                            message: '身份证号码有误',
                            trigger: ['change', 'blur']
                        }
                    ],
                    'nameTwo': {
                        type: 'string',
                        required: true,
                        message: '请输入当事人2姓名',
                        trigger: ['blur', 'change']
                    },
                    'phoneTwo': [{
                            type: 'string',
                            required: true,
                            message: '请输入当事人2手机号',
                            trigger: ['blur', 'change']
                        },
                        {
                            validator: (rule, value, callback) => {
                                return uni.$u.test.mobile(value);
                            },
                            message: '手机号码不正确',
                            trigger: ['change', 'blur']
                        }
                    ],
                    'info.genderTwo': {
                        type: 'string',
                        required: true,
                        message: '请选择当事人2性别',
                        trigger: ['blur', 'change']
                    },
                    idCardTwo: [{
                            type: 'string',
                            required: true,
                            message: '请输入当事人2身份证号码',
                            trigger: ['change', 'blur']
                        },
                        {
                            validator: (rule, value, callback) => {
                                const idCardRegex =
                                    /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
                                return idCardRegex.test(value)
                            },
                            message: '身份证号码有误',
                            trigger: ['change', 'blur']
                        }
                    ],
                    eventTime: [{
                        type: 'string',
                        required: true,
                        message: '请选择事发时间',
                        trigger: ['blur', 'change']
                    }],
                    address: [{
                        type: 'string',
                        required: true,
                        message: '请选择事发位置',
                        trigger: ['blur', 'change']
                    }],
                    'info.source': {
                        type: 'string',
                        required: true,
                        message: '请选择信息来源',
                        trigger: ['blur', 'change']
                    },
                    alarmNum: [{
                        type: 'string',
                        required: true,
                        message: '请输入报警次数',
                        trigger: ['blur', 'change']
                    }],
                    'info.injuryFlag': {
                        type: 'string',
                        required: true,
                        message: '请选择是否有人员受伤',
                        trigger: ['blur', 'change']
                    },
                    // handleResult: [{
                    //     type: 'string',
                    //     required: false,
                    //     message: '请选择处置情况',
                    //     trigger: ['blur', 'change']
                    // }]
                },
                desc: "",
                title: "",
@@ -281,17 +349,19 @@
        },
        onLoad(option) {
            this.getAllBizDict();
            this.title = option.title
            uni.setNavigationBarTitle({
                title: this.title
            })
            this.info.type = option.type
        },
        onShow() {
            this.curSelectSite = uni.getStorageSync('siteInfo')
            this.info.addressCode = this.curSelectSite.houseCode
            console.log(this.curSelectSite);
        onReady() {
            //onReady 为uni-app支持的生命周期之一
            this.$refs.form.setRules(this.rules)
        },
        // onShow() {
        //     this.curSelectSite = uni.getStorageSync('siteInfo')
        //     this.info.addressCode = this.curSelectSite.houseCode
        //     console.log(this.curSelectSite);
        // },
        methods: {
            async getAllBizDict() {
@@ -331,6 +401,15 @@
            sumitInfo() {
                this.$refs.form.validate().then(valid => {
                    if (this.info.injuryFlag == 1 && !this.info.injuryDesc) {
                        this.$showTips("请输入受伤情况")
                        return
                    }
                    if (this.info.injuryFlag === 0 && this.info.injuryDesc) {
                        this.info.injuryDesc = "";
                    }
                    addContradiction(this.info).then(res => {
                        this.$showTips("提交成功", "success")
                        setTimeout(() => {
@@ -349,7 +428,7 @@
            confirmGender(e) {
                this.genderIndex = e.indexs;
                this.genderValue = e.value[0].name;
                this.form.genderOne = e.value[0].value;
                this.info.genderOne = e.value[0].value;
                this.showGenderPicker = false;
            },
@@ -357,7 +436,7 @@
            confirmGender2(e) {
                this.genderIndex2 = e.indexs;
                this.genderValue2 = e.value[0].name;
                this.form.genderTwo = e.value[0].value;
                this.info.genderTwo = e.value[0].value;
                this.showGender2Picker = false;
            },
@@ -365,7 +444,7 @@
            confirmDisputeType(e) {
                this.disputeTypeIndex = e.indexs;
                this.disputeTypeValue = e.value[0].name;
                this.form.disputeType = e.value[0].value;
                this.info.disputeType = e.value[0].value;
                this.showDisputeTypePicker = false;
            },
@@ -373,7 +452,9 @@
            confirmHandleResult(e) {
                this.handleResultIndex = e.indexs;
                this.handleResultValue = e.value[0].name;
                this.form.handleResult = e.value[0].value;
                this.$set(this.info, "handleResult", e.value[0].value)
                // this.info.handleResult = e.value[0].value;
                this.showHandleResultPicker = false;
            },
@@ -381,7 +462,7 @@
            confirmSource(e) {
                this.sourcetIndex = e.indexs;
                this.sourceValue = e.value[0].name;
                this.form.source = e.value[0].value;
                this.info.source = e.value[0].value;
                this.showSourcePicker = false;
            },
@@ -476,4 +557,17 @@
        background-color: #fff;
        text-align: center;
    }
    .blank {
        width: 100%;
        height: 200rpx;
    }
    /deep/ .u-radio-group {
        justify-content: flex-end;
    }
    /deep/ .u-textarea__field {
        text-align: right;
    }
</style>
subPackage/contradiction/edit.vue
New file
@@ -0,0 +1,571 @@
<template>
    <view class="">
        <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="100"
            :labelStyle="{fontSize:'30rpx'}">
            <view class="content bgc-ff mb-20">
                <u-form-item label="当事人1姓名" prop="nameOne" borderBottom required>
                    <u-input v-model="info.nameOne" border="none" placeholder="请输入当事人1姓名" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="当事人1手机号" prop="phoneOne" borderBottom required>
                    <u-input v-model="info.phoneOne" type="number" border="none" placeholder="请输入当事人1手机号"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="当事人1性别" prop="genderOne" borderBottom @click="showGenderPicker = true">
                    <u-input v-model="genderValue" border="none" placeholder="请选择当事人1性别" placeholderClass="f-28 c-99"
                        inputAlign="right" disabled disabledColor="#ffffff"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item label="当事人1身份证号码" prop="idCardOne" borderBottom required>
                    <u-input v-model="info.idCardOne" type="idcard" border="none" placeholder="请输入当事人1身份证号码"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="当事人2姓名" prop="nameTwo" borderBottom required>
                    <u-input v-model="info.nameTwo" border="none" placeholder="请输入当事人2姓名" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="当事人2性别" prop="genderTwo" borderBottom @click="showGender2Picker = true">
                    <u-input v-model="genderValue2" border="none" placeholder="请选择当事人2性别" placeholderClass="f-28 c-99"
                        inputAlign="right" disabled disabledColor="#ffffff"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item label="当事人2手机号" prop="phoneTwo" borderBottom ref="phoneTwo" required>
                    <u-input v-model="info.phoneTwo" type="number" border="none" placeholder="请输入当事人2手机号"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="当事人2身份证号码" prop="idCardTwo" required>
                    <u-input v-model="info.idCardTwo" type="idcard" border="none" placeholder="请输入当事人2身份证号码"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
            </view>
            <view class="content bgc-ff">
                <u-form-item label="事发时间" prop="eventTime" required @click="showSelectDate = true">
                    <u-input v-model="info.eventTime" 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="address" borderBottom required>
                    <view class="address-row flex">
                        <view class="address-content f-28" v-if="info.address">
                            {{info.address}}
                        </view>
                        <view class="address-content f-28" style="color:#c0c4cc;" v-if="!info.address">
                            请选择事发位置
                        </view>
                        <view class="location-btn c-main f-24" @click="getLocation()">
                            获取地址
                        </view>
                    </view>
                </u-form-item>
                <u-form-item label="报警次数" prop="alarmNum" borderBottom ref="alarmNum" required>
                    <u-input v-model="info.alarmNum" border="none" type="number" placeholder="请输入报警次数"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="信息来源" prop="source" borderBottom @click="showSourcePicker = true">
                    <u-input v-model="sourceValue" border="none" placeholder="请选择信息来源" placeholderClass="f-28 c-99"
                        inputAlign="right" disabled disabledColor="#ffffff"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item label="纠纷类型" prop="disputeType" borderBottom @click="showDisputeTypePicker = true">
                    <u-input v-model="disputeTypeValue" border="none" placeholder="请选择处理情况" placeholderClass="f-28 c-99"
                        inputAlign="right" disabled disabledColor="#ffffff"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item label="纠纷内容" prop="disputeContent" borderBottom ref="disputeContent">
                    <u-textarea v-model="info.disputeContent" border="none" placeholder="请输入纠纷内容"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-textarea>
                </u-form-item>
                <u-form-item label="是否有人员受伤:" labelWidth="100" prop="injuryFlag" borderBottom>
                    <u-radio-group v-model="info.injuryFlag">
                        <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList" :key="index"
                            :label="item.name" :name="item.id">
                        </u-radio>
                    </u-radio-group>
                </u-form-item>
                <u-form-item v-if="info.injuryFlag == 1" label="受伤情况" prop="injuryDesc" borderBottom>
                    <u-textarea v-model="info.injuryDesc" border="none" placeholder="请输入受伤情况"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-textarea>
                </u-form-item>
                <u-form-item label="处理情况" prop="handleResult" @click="showHandleResultPicker = true">
                    <u-input v-model="handleResultValue" border="none" placeholder="请选择处理情况"
                        placeholderClass="f-28 c-99" inputAlign="right" disabled disabledColor="#ffffff"></u-input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
            </view>
        </u-form>
        <view class="blank"></view>
        <!-- <button class="submit-btn" @click="sumitInfo">提交</button> -->
        <!-- <button class="list-btn" @click="navigatorPage">纠纷记录</button> -->
        <footer-btn @click="sumitInfo" />
        <u-picker :show="showGenderPicker" :defaultIndex="genderIndex" ref="uPicker" keyName="name"
            :loading="pickerLoading" :columns="[genderList]" @confirm="confirmGender"
            @cancel="showGenderPicker = false"></u-picker>
        <u-picker :show="showGender2Picker" :defaultIndex="genderIndex2" ref="uPicker" keyName="name"
            :loading="pickerLoading" :columns="[genderList]" @confirm="confirmGender2"
            @cancel="showGender2Picker = false"></u-picker>
        <u-picker :show="showDisputeTypePicker" :defaultIndex="disputeTypeIndex" ref="uPicker" keyName="name"
            :loading="pickerLoading" :columns="[disputeTypeList]" @confirm="confirmDisputeType"
            @cancel="showDisputeTypePicker = false"></u-picker>
        <u-picker :show="showHandleResultPicker" :defaultIndex="handleResultIndex" ref="uPicker" keyName="name"
            :loading="pickerLoading" :columns="[handleResultList]" @confirm="confirmHandleResult"
            @cancel="showHandleResultPicker = false"></u-picker>
        <u-picker :show="showSourcePicker" :defaultIndex="sourceIndex" ref="uPicker" keyName="name"
            :loading="pickerLoading" :columns="[sourceList]" @confirm="confirmSource"
            @cancel="showSourcePicker = false"></u-picker>
        <u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="eventTime" mode="datetime"
            :formatter="formatter" @confirm="confirmDate" @cancel="showSelectDate = false"></u-datetime-picker>
    </view>
</template>
<script>
    import uploadMixin from "@/mixin/uploadMixin";
    import {
        save
    } from "@/api/task/taskReportForRepairs";
    import {
        bizDictionary,
    } from '@/api/system/dict.js'
    import {
        addContradiction
    } from '@/api/contradiction/contradiction.js'
    export default {
        mixins: [uploadMixin],
        data() {
            return {
                info: {
                    nameOne: "",
                    nameTwo: "",
                    phoneOne: "",
                    phoneTwo: "",
                    genderOne: "",
                    genderTwo: "",
                    idCardOne: "",
                    idCardTwo: "",
                    injuryDesc: "",
                    injuryFlag: "",
                    source: "",
                    disputeContent: "",
                    alarmNum: "",
                    address: "",
                    lat: "",
                    lng: "",
                    eventTime: ""
                },
                rules: {
                    'nameOne': {
                        type: 'string',
                        required: true,
                        message: '请输入当事人1姓名',
                        trigger: ['blur', 'change']
                    },
                    'phoneOne': [{
                            type: 'string',
                            required: true,
                            message: '请输入当事人1手机号',
                            trigger: ['blur', 'change']
                        },
                        {
                            validator: (rule, value, callback) => {
                                return uni.$u.test.mobile(value);
                            },
                            message: '手机号码不正确',
                            trigger: ['change', 'blur']
                        }
                    ],
                    "info.genderOne": {
                        type: 'string',
                        required: true,
                        message: '请选择当事人1性别',
                        trigger: ['blur', 'change']
                    },
                    idCardOne: [{
                            type: 'string',
                            required: true,
                            message: '请输入当事人1身份证号码',
                            trigger: ['change', 'blur']
                        },
                        {
                            validator: (rule, value, callback) => {
                                const idCardRegex =
                                    /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
                                return idCardRegex.test(value)
                            },
                            message: '身份证号码有误',
                            trigger: ['change', 'blur']
                        }
                    ],
                    'nameTwo': {
                        type: 'string',
                        required: true,
                        message: '请输入当事人2姓名',
                        trigger: ['blur', 'change']
                    },
                    'phoneTwo': [{
                            type: 'string',
                            required: true,
                            message: '请输入当事人2手机号',
                            trigger: ['blur', 'change']
                        },
                        {
                            validator: (rule, value, callback) => {
                                return uni.$u.test.mobile(value);
                            },
                            message: '手机号码不正确',
                            trigger: ['change', 'blur']
                        }
                    ],
                    'info.genderTwo': {
                        type: 'string',
                        required: true,
                        message: '请选择当事人2性别',
                        trigger: ['blur', 'change']
                    },
                    idCardTwo: [{
                            type: 'string',
                            required: true,
                            message: '请输入当事人2身份证号码',
                            trigger: ['change', 'blur']
                        },
                        {
                            validator: (rule, value, callback) => {
                                const idCardRegex =
                                    /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
                                return idCardRegex.test(value)
                            },
                            message: '身份证号码有误',
                            trigger: ['change', 'blur']
                        }
                    ],
                    eventTime: [{
                        type: 'string',
                        required: true,
                        message: '请选择事发时间',
                        trigger: ['blur', 'change']
                    }],
                    address: [{
                        type: 'string',
                        required: true,
                        message: '请选择事发位置',
                        trigger: ['blur', 'change']
                    }],
                    'info.source': {
                        type: 'string',
                        required: true,
                        message: '请选择信息来源',
                        trigger: ['blur', 'change']
                    },
                    alarmNum: [{
                        type: 'string',
                        required: true,
                        message: '请输入报警次数',
                        trigger: ['blur', 'change']
                    }],
                    'info.injuryFlag': {
                        type: 'string',
                        required: true,
                        message: '请选择是否有人员受伤',
                        trigger: ['blur', 'change']
                    },
                    // handleResult: [{
                    //     type: 'string',
                    //     required: false,
                    //     message: '请选择处置情况',
                    //     trigger: ['blur', 'change']
                    // }]
                },
                desc: "",
                title: "",
                curSelectSite: {},
                statusList: [{
                        name: "是",
                        id: 1
                    },
                    {
                        name: "否",
                        id: 0
                    }
                ],
                handleResultList: [{
                        name: "已化解",
                        value: 1
                    },
                    {
                        name: "未化解 ",
                        value: 2
                    },
                    {
                        name: "移送e呼即办",
                        value: 3
                    }
                ],
                genderList: [{ //性别
                        value: 1,
                        name: '男',
                    },
                    {
                        value: 2,
                        name: '女',
                    }
                ],
                genderIndex: [0],
                genderValue: "",
                genderIndex2: [0],
                genderValue2: "",
                showGenderPicker: false,
                showGender2Picker: false,
                disputeTypeList: [],
                disputeTypeValue: "",
                disputeTypeIndex: [0],
                showDisputeTypePicker: false,
                handleResultValue: "",
                handleResultIndex: [0],
                showHandleResultPicker: false,
                sourceList: [],
                sourceIndex: [0],
                sourceValue: "",
                showSourcePicker: false,
                showSelectDate: false,
                eventTime: Number(new Date()),
            }
        },
        onLoad(option) {
            this.getAllBizDict();
        },
        onReady() {
            //onReady 为uni-app支持的生命周期之一
            this.$refs.form.setRules(this.rules)
        },
        // onShow() {
        //     this.curSelectSite = uni.getStorageSync('siteInfo')
        //     this.info.addressCode = this.curSelectSite.houseCode
        //     console.log(this.curSelectSite);
        // },
        methods: {
            async getAllBizDict() {
                // 获取纠纷
                await this.getBizDict('disputeType', this.disputeTypeList)
                // 获取来源
                await this.getBizDict('disputeSource', this.sourceList);
            },
            // 获取业务字典
            async getBizDict(code, list) {
                const param = {
                    code: code
                }
                const res = await bizDictionary(param)
                res.data.forEach(e => {
                    list.push({
                        name: e.dictValue,
                        value: Number(e.dictKey)
                    })
                })
            },
            getLocation() {
                uni.chooseLocation({
                    success: (res) => {
                        this.$set(this.info, "address", res.address);
                        this.$set(this.info, "lat", res.latitude);
                        this.$set(this.info, "lng", res.longitude)
                    }
                })
            },
            sumitInfo() {
                this.$refs.form.validate().then(valid => {
                    if (this.info.injuryFlag == 1 && !this.info.injuryDesc) {
                        this.$showTips("请输入受伤情况")
                        return
                    }
                    if (this.info.injuryFlag === 0 && this.info.injuryDesc) {
                        this.info.injuryDesc = "";
                    }
                    addContradiction(this.info).then(res => {
                        this.$showTips("提交成功", "success")
                        setTimeout(() => {
                            uni.navigateBack()
                        }, 300)
                    })
                })
            },
            navigatorPage() {
                let url = "/subPackage/bs/views/repairList" + "?title=" + this.title + "&type=" + this.info.type
                this.$u.func.globalNavigator(url, "navTo")
            },
            //选择性别
            confirmGender(e) {
                this.genderIndex = e.indexs;
                this.genderValue = e.value[0].name;
                this.info.genderOne = e.value[0].value;
                this.showGenderPicker = false;
            },
            //选择性别2
            confirmGender2(e) {
                this.genderIndex2 = e.indexs;
                this.genderValue2 = e.value[0].name;
                this.info.genderTwo = e.value[0].value;
                this.showGender2Picker = false;
            },
            //选择纠纷类型
            confirmDisputeType(e) {
                this.disputeTypeIndex = e.indexs;
                this.disputeTypeValue = e.value[0].name;
                this.info.disputeType = e.value[0].value;
                this.showDisputeTypePicker = false;
            },
            //选择处理结果
            confirmHandleResult(e) {
                this.handleResultIndex = e.indexs;
                this.handleResultValue = e.value[0].name;
                this.$set(this.info, "handleResult", e.value[0].value)
                // this.info.handleResult = e.value[0].value;
                this.showHandleResultPicker = false;
            },
            //选择处理结果
            confirmSource(e) {
                this.sourcetIndex = e.indexs;
                this.sourceValue = e.value[0].name;
                this.info.source = e.value[0].value;
                this.showSourcePicker = false;
            },
            confirmDate(e) {
                this.showSelectDate = false;
                this.info.eventTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
            },
        }
    }
</script>
<style lang="less">
    page {
        background-color: #F5F5F5;
    }
    .content {
        margin: 20rpx 30rpx;
        padding: 0 30rpx;
    }
    .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;
    }
    .address-row {
        flex: 1;
        justify-content: flex-end;
        align-items: center;
    }
    .address-content {
        width: calc(100% - 116rpx - 20rpx);
        margin-right: 20rpx;
        text-align: right;
    }
    .location-btn {
        width: 116rpx;
        height: 46rpx;
        line-height: 46rpx;
        border-radius: 4rpx;
        border: 1px solid currentColor;
        padding: 0;
        background-color: #fff;
        text-align: center;
    }
    .blank {
        width: 100%;
        height: 200rpx;
    }
    /deep/ .u-radio-group {
        justify-content: flex-end;
    }
    /deep/ .u-textarea__field {
        text-align: right;
    }
</style>
subPackage/counterfraud/add.vue
@@ -97,6 +97,8 @@
            </view>
        </view>
        <view class="blank"></view>
        <!-- <view class="footer flex a-i-c j-c-s-b" v-if="isScan">
            <view class="footer-item  footer-left c-main" @click="navToHouse">
                查看更多
@@ -652,4 +654,9 @@
            padding: 20rpx 0;
        }
    }
    .blank {
        width: 100%;
        height: 140rpx;
    }
</style>
subPackage/counterfraud/dispose.vue
@@ -69,6 +69,9 @@
                <u-icon name="arrow-right"></u-icon>
            </view>
        </view>
        <view class="blank">
        </view>
        <footer-btn @click="submitInfo" :text="isEdit?'保存':'提交'" />
@@ -614,4 +617,9 @@
            padding: 20rpx 0;
        }
    }
    .blank {
        width: 100%;
        height: 140rpx;
    }
</style>
subPackage/label/bail.vue
@@ -16,10 +16,10 @@
                    <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-form-item label="申请时间" prop="applyTime" borderBottom required>
                    <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-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"  disabled disabledColor="#ffffff" border="none" placeholder="请选择地址" placeholderClass="f-28 c-99"
@@ -251,6 +251,7 @@
            },
            updateRequest() {
                this.info.applyTime = Number(new Date(res.data.applyTime));
                updateBailReporting(this.info).then(res => {
                    uni.showToast({
                        icon: 'success',
subPackage/workbench/views/auditRental.vue
@@ -558,7 +558,8 @@
                })
                this.btnControls = {
                    deleteBtn: this.rentId !== '',
                    verifyBtn: !this.auditStatus && !!this.rentId && this.currentRole.roleAlias === 'wgy'
                    // verifyBtn: !this.auditStatus && !!this.rentId && this.currentRole.roleAlias === 'wgy'
                    verifyBtn: !this.auditStatus && !!this.rentId
                }
            },
            async deleteRent() {