Lou
2024-03-27 d8c9a15cf5a7d69dedb42dadb64fbbf197d7ddcd
更新
6 files modified
1 files added
413 ■■■■ changed files
api/contradiction/contradiction.js 10 ●●●●● patch | view | raw | blame | history
pages/circle/index.vue 10 ●●●● patch | view | raw | blame | history
subPackage/article/detail.vue 25 ●●●●● patch | view | raw | blame | history
subPackage/contradiction/add.vue 316 ●●●● patch | view | raw | blame | history
subPackage/workbench/views/cscj.vue 46 ●●●● patch | view | raw | blame | history
subPackage/workbench/views/rental.vue 4 ●●●● patch | view | raw | blame | history
subPackage/workbench/views/reportDetail.vue 2 ●●● patch | view | raw | blame | history
api/contradiction/contradiction.js
New file
@@ -0,0 +1,10 @@
import http from '@/http/api.js'
export const addContradiction = (params) => {
    return http.request({
        url: '/blade-disputeRecord/disputeRecord/saveOrUpdate',
        method: 'POST',
        data: params
    })
}
pages/circle/index.vue
@@ -24,14 +24,18 @@
                        {{item.circleText}}
                    </view>
                    <u-album v-if="item.circleImages" :urls="setImgUrl(item.circleImages)" singleSize="100"
                        multipleSize="100"></u-album>
                    <view class="link-btn flex a-i-c" @click="linkTo(item.eventId)" v-if="item.eventId">
                        <u-icon name="attach"></u-icon>
                        <text class="c-main ml-10 f-28">查看详情</text>
                    </view>
                    <u-album v-if="item.circleImages" :urls="setImgUrl(item.circleImages)" singleSize="100"
                        multipleSize="100"></u-album>
                    <view class="topic-action flex j-c-f-e">
                        <view class="flex a-i-c" @click="handleThumpsUp(item.id,item.likeFlag,index)">
                            <u-icon v-if="item.likeFlag == 0" name="heart-fill" color="#C4C8CB" size="24"></u-icon>
subPackage/article/detail.vue
@@ -61,9 +61,14 @@
                            <!-- <u-icon name="arrow-right" color="#999"></u-icon> -->
                        </view>
                    </view>
                    <view class="explain-row c-main  f-28">
                        投票{{!isEnd && !isComplete?"进行中":"已结束"}}
                    <view class="explain-row ">
                        <text class="f-28 c-main" v-if="!isEnd && !isComplete">投票进行中</text>
                        <text class="f-28 c-main" v-if="isComplete && !isEnd">投票已提交</text>
                        <text class="f-28 c-main" v-if="isEnd">投票已结束</text>
                        <text class="ml-20 f-26 " v-if="applyInfo.voteRestrictions == 1">(该议题为一户一票)</text>
                    </view>
                    <view class="vote bgc-ff">
                        <view class="mb-20" v-for="(item,index) in voteTopicList" :key="index">
                            <view class="vote-title">
@@ -84,7 +89,6 @@
                                @click="navToDocument(item.attachment)">
                                {{item.discussContent}}附件
                            </view>
                            <view class="" v-if="item.optionRange == 0">
                                <u-radio-group size="22" iconPlacement="right" activeColor="#017BFC" placement="column"
@@ -131,8 +135,8 @@
                        </view>
                        <button class="apply-btn bgc-main c-ff" v-if="!isEnd  && !isComplete"
                            @click="submitVote()">提交</button>
                        <button class="apply-btn bgc-gray c-d1" v-if="isComplete && !isEnd">已提交</button>
                        <button class="apply-btn bgc-gray c-d1" v-if="isEnd">已结束</button>
                        <button class="apply-btn bgc-gray c-dd" v-if="isComplete && !isEnd">已提交</button>
                        <button class="apply-btn bgc-gray c-dd" v-if="isEnd">已结束</button>
                    </view>
                </view>
            </view>
@@ -171,7 +175,6 @@
                <u-icon name="thumb-up-fill" size="22"  color="#fff"></u-icon>
            </view>
        </view> -->
        <u-popup :show="isShowPopup" @close="isShowPopup = false" mode="center" :round="10" :closeable="true">
            <view class='login-mode'>
@@ -347,6 +350,10 @@
                    // console.log(res)
                    if (res.code == 200) {
                        this.applyInfo = res.data;
                        if (res.data.voteRestrictions == 1 && res.data.disabled) {
                            this.isComplete = true; //一户一票
                            this.setOptionDisable()
                        }
                    }
                })
            },
@@ -632,6 +639,8 @@
                        const filePath = res.tempFilePath;
                        wx.openDocument({
                            filePath: filePath,
                            fileType: 'pdf',
                            showMenu: true,
                            success: function(res) {
                                wx.hideLoading();
                            },
@@ -736,8 +745,8 @@
        border: 1px solid currentColor
    }
    .c-d1 {
        color: #d1d1d1;
    .c-dd {
        color: #ddd
    }
    .c-33 {
subPackage/contradiction/add.vue
@@ -1,47 +1,116 @@
<template>
    <view class="">
        <view class="site-box bgc-ff flex">
        <!-- <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>
        <view class="content bgc-ff">
            <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="90"
                :labelStyle="{fontSize:'28rpx'}">
                <u-form-item label="姓名" prop="realName" borderBottom ref="realName">
                    <u-input v-model="info.realName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
        </view> -->
        <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="100"
            :labelStyle="{fontSize:'28rpx'}">
            <view class="content bgc-ff mb-20">
                <u-form-item label="当事人1姓名" prop="nameOne" borderBottom ref="nameOne">
                    <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="手机" prop="phone" borderBottom ref="phone">
                    <u-input v-model="info.phone" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
                <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>
                <u-form-item label="事发位置" prop="address" :borderBottom="false">
                <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身份证号码"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="当事人2姓名" prop="nameTwo" borderBottom ref="nameTwo">
                    <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">
                    <u-input v-model="info.phoneTwo" 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-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-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item label="事发位置" prop="address" borderBottom>
                    <view class="address-row flex">
                        <view class="address-content f-28" v-if="info.address">
                            {{info.address}}
                        </view>
                        <view class="address-content f-28 c-99" v-if="!info.address">
                        <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-input v-model="info.address" border="none"  placeholderClass="f-28 c-99"
                        inputAlign="right"    disabled  disabledColor="#fff">
                        <template slot="suffix">
                            <button class="location-btn c-main f-24"   @click="getLocation()">获取地址</button>
                        </template>
                    </u-input> -->
                </u-form-item>
            </u-form>
        </view>
                <u-form-item label="报警次数" prop="alarmNum" borderBottom ref="alarmNum">
                    <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>
        <view class="upload bgc-ff">
                <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="isNine" :required="isRequired" borderBottom>
                    <u-radio-group v-model="form.injuryFlag" v-if="!currentId">
                        <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-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>
@@ -54,11 +123,35 @@
                    </view>
                </u-upload>
            </view>
        </view>
        </view> -->
        <button class="submit-btn" @click="sumitInfo">提交</button>
        <button class="list-btn" @click="navigatorPage">我上报的事件</button>
        <button class="list-btn" @click="navigatorPage">纠纷记录</button>
        <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>
@@ -68,18 +161,36 @@
    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: {
                    realName: "",
                    phone: "",
                    remark: "",
                    type: -1,
                    nameOne: "",
                    nameTwo: "",
                    phoneOne: "",
                    phoneTwo: "",
                    grenderOne: "",
                    grenderTwo: "",
                    idCardOne: "",
                    idCardTwo: "",
                    injuryDesc: "",
                    injuryFlag: "",
                    source: "",
                    disputeContent: "",
                    alarmNum: "",
                    address: "",
                    lat: "",
                    lng: ""
                    lng: "",
                    eventTime: ""
                },
                rules: {
                    'realName': {
@@ -115,10 +226,61 @@
                },
                desc: "",
                title: "",
                curSelectSite: {}
                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();
            this.title = option.title
            uni.setNavigationBarTitle({
                title: this.title
@@ -132,6 +294,30 @@
        },
        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) => {
@@ -144,32 +330,66 @@
            sumitInfo() {
                const that = this
                this.$refs.form.validate().then(valid => {
                    if (this.form.images.length > 0) {
                        let urls = []
                        this.form.images.forEach(e => {
                            urls.push(e.name)
                        })
                        this.info.imageUrls = urls.join(",")
                    }
                    save(that.info).then(res => {
                        uni.showToast({
                            icon: 'success',
                            title: '提交成功',
                            success() {
                                setTimeout(() => {
                                    that.$u.func.globalNavigator("", "navBack")
                                }, 1000)
                            }
                        })
                    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.form.genderOne = e.value[0].value;
                this.showGenderPicker = false;
            },
            //选择性别2
            confirmGender2(e) {
                this.genderIndex2 = e.indexs;
                this.genderValue2 = e.value[0].name;
                this.form.genderTwo = e.value[0].value;
                this.showGender2Picker = false;
            },
            //选择纠纷类型
            confirmDisputeType(e) {
                this.disputeTypeIndex = e.indexs;
                this.disputeTypeValue = e.value[0].name;
                this.form.disputeType = e.value[0].value;
                this.showDisputeTypePicker = false;
            },
            //选择处理结果
            confirmHandleResult(e) {
                this.handleResultIndex = e.indexs;
                this.handleResultValue = e.value[0].name;
                this.form.handleResult = e.value[0].value;
                this.showHandleResultPicker = false;
            },
            //选择处理结果
            confirmSource(e) {
                this.sourcetIndex = e.indexs;
                this.sourceValue = e.value[0].name;
                this.form.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>
subPackage/workbench/views/cscj.vue
@@ -141,30 +141,6 @@
                            {{form.threeFireProtection == 1?"是":"否"}}
                        </view> -->
                    </u-form-item>
                </view>
                <view class="item" v-if="isLegalSame != 1 && !currentId">
                    <view class="box-title">
                        <box-title title="法人信息"></box-title>
                    </view>
                    <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
                        label="姓名:" prop="legalPerson">
                        <u--input border="none" v-model="form.placeExtEntity.legalPerson" placeholder="请输入">
                        </u--input>
                    </u-form-item>
                    <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
                        label="身份证号:" prop="legalIdCard">
                        <u--input border="none" type="idcard" v-model="form.placeExtEntity.legalIdCard"
                            placeholder="请输入">
                        </u--input>
                    </u-form-item>
                    <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
                        label="手机号:" prop="legalTel">
                        <u--input border="none" type="number" v-model="form.placeExtEntity.legalTel" placeholder="请输入">
                        </u--input>
                    </u-form-item>
                </view>
                <view class="item">
@@ -188,6 +164,28 @@
                    </u-form-item>
                </view>
                <view class="item" v-if="isLegalSame != 1 && !currentId">
                    <view class="box-title">
                        <box-title title="法人信息"></box-title>
                    </view>
                    <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
                        label="姓名:" prop="legalPerson">
                        <u--input border="none" v-model="form.placeExtEntity.legalPerson" placeholder="请输入">
                        </u--input>
                    </u-form-item>
                    <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
                        label="身份证号:" prop="legalIdCard">
                        <u--input border="none" type="idcard" v-model="form.placeExtEntity.legalIdCard"
                            placeholder="请输入">
                        </u--input>
                    </u-form-item>
                    <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
                        label="手机号:" prop="legalTel">
                        <u--input border="none" type="number" v-model="form.placeExtEntity.legalTel" placeholder="请输入">
                        </u--input>
                    </u-form-item>
                </view>
                <view class="item">
                    <view class="box-title">
subPackage/workbench/views/rental.vue
@@ -43,8 +43,8 @@
                </view>
            </view>
            <view class="list bgc-ff" v-for="(records,index) in tenantList" :key="index" @click="navTo(records)">
                <view class="flex j-c-s-b a-i-c">
            <view class="list bgc-ff" v-for="(records,index) in tenantList" :key="index">
                <view class="flex j-c-s-b a-i-c" @click="navTo(records)">
                    <view class="flex a-i-c">
                        <text class="f-32 mr-50">{{ records.tenantName || "" }}</text>
                        <view class="flex a-i-c">
subPackage/workbench/views/reportDetail.vue
@@ -365,7 +365,7 @@
                console.log(this.defaultData);
                this.basicData.forEach(item => {
                    item.value = this.defaultData[item.name] || '未完善'
                    if (item.name === 'type' && this.from != "circle") {
                    if (item.name === 'type') {
                        item.value = this.findObjValue(item.value, this.typeList, 'type').name || '未完善'
                    }
                })