“dzb”
2022-10-12 7298e6cff9ed3e0137398283a96156dadbeabf5b
修改bug
28个文件已修改
1495 ■■■■■ 已修改文件
src/components/detail/index.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/dispatch/index.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/illdetail/index.vue 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/process/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/helper.js 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/validate.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/index.vue 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue 273 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/learn/index.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/notDeal/index.vue 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/pool/createUser/ill/index.vue 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/pool/createUser/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/pool/createUser/vio/index.vue 390 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/pool/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/myIndex/components/closure/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/myIndex/components/examine/index.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/myIndex/index.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/role/index.vue 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/role/updateUser/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/role/viewRole/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/user/components/header/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/user/components/main/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/user/components/password/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/detail/index.vue
@@ -12,7 +12,7 @@
                    <label class="data-title">
                        大类名称:
                    </label>
                    <span class="data-detail">{{baseCase.category}}</span>
                    <span class="data-detail">{{baseCase.violations.categoryId}}</span>
                </div>
            </div>
            <div class="data-item">
@@ -20,13 +20,13 @@
                    <label class="data-title">
                        小类名称:
                    </label>
                    <!-- <span class="data-detail">{{baseCase.violations}}</span> -->
                    <span class="data-detail">{{baseCase.violations.typeId}}</span>
                </div>
                <div class="data-item__right">
                    <label class="data-title">
                        事件等级:
                    </label>
                    <span class="data-detail">xxx</span>
                    <span class="data-detail">{{baseCase.violations.gradeId}}</span>
                </div>
            </div>
            <div class="data-item">
@@ -34,7 +34,7 @@
                    <label class="data-title">
                        案由:
                    </label>
                    <span class="data-detail">xxx</span>
                    <span class="data-detail">{{baseCase.violations.actionCause}}</span>
                </div>
            </div>
            <div class="data-item">
@@ -48,7 +48,7 @@
                    <label class="data-title">
                        所属社区:
                    </label>
                    <span class="data-detail">xxx</span>
                    <span class="data-detail">{{baseCase.communityId}}</span>
                </div>
            </div>
            <div class="data-item">
@@ -72,7 +72,7 @@
                    <label class="data-title">
                        关联商铺名称:
                    </label>
                    <span class="data-detail">xxx</span>
                    <span class="data-detail">{{baseCase.violations.shopName}}</span>
                </div>
            </div>
            <div class="data-item">
@@ -80,7 +80,7 @@
                    <label class="data-title">
                        问题描述:
                    </label>
                    <span class="data-detail">xxx</span>
                    <span class="data-detail">{{baseCase.violations.description}}</span>
                </div>
            </div>
            <div class="data-user">
@@ -89,13 +89,13 @@
                        <label class="data-title">
                            反映人:
                        </label>
                        <span class="data-detail">{{baseCase.createUser}}</span>
                        <span class="data-detail">{{baseCase.violations.informant}}</span>
                    </div>
                    <div class="data-item__right">
                        <label class="data-title">
                            联系方式:
                        </label>
                        <span class="data-detail">12345678901</span>
                        <span class="data-detail">{{baseCase.violations.informantPhoneCode}}</span>
                    </div>
                </div>
                <div class="data-item">
@@ -103,7 +103,7 @@
                        <label class="data-title">
                            身份证号:
                        </label>
                        <span class="data-detail">123456789987654321</span>
                        <span class="data-detail">{{baseCase.violations.informantIdCard}}</span>
                    </div>
                </div>
            </div>
src/components/dispatch/index.vue
@@ -118,14 +118,14 @@
            if (value) {
                callback();
            } else {
                callback(new Error('执法人员不能为空'))
                callback()
            }
        }
        const checkNumber = (rule, value, callback) => {
            if (value) {
                callback();
            } else {
                callback(new Error('执法人员编号不能为空'))
                callback()
            }
        }
        return {
@@ -143,7 +143,7 @@
            rules: {
                contactWay: [
                    {
                        required: true, trigger: 'blur', validator: checkPhone
                        required: false, trigger: 'blur', validator: checkPhone
                    }
                ],
                dispatchOpinion: [
@@ -159,7 +159,7 @@
                    { required: true, trigger: 'change', validator: checkPerson }
                ],
                lawEnforcerName: [
                    { required: true, trigger: 'change', validator: checkNumber }
                    { required: false, trigger: 'change', validator: checkNumber }
                ],
            },
            carOptions: [
@@ -291,7 +291,9 @@
            this.dispatch.lawEnforcer = '';
            this.dispatch.enforcementTeam = '';
            await this.getTeamList(id);
            await this.getDepartUserList(id);
            if(this.squadronOptions.length===0){
                await this.getDepartUserList(id);
            }
        },
        // 中队更改
        async handleMidChange(id) {
src/components/illdetail/index.vue
@@ -7,38 +7,38 @@
                        <span class="data-detail">违建</span>
                    </el-form-item>
                    <el-form-item label="违建类别:">
                        <span class="data-detail">xxxxxx</span>
                        <span class="data-detail">{{baseCase.illegalBuilding.categoryId}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="当事人姓名:">
                        <span class="data-detail">xxxxxx</span>
                        <span class="data-detail">{{baseCase.illegalBuilding.partyName}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="当事人身份证号:">
                        <span class="data-detail">xxxxxx</span>
                        <span class="data-detail">{{baseCase.illegalBuilding.partyIdCard}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="当事人联系电话:">
                        <span class="data-detail">xxxx</span>
                        <span class="data-detail">{{baseCase.illegalBuilding.partyPhone}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违建地点:">
                        <span class="data-detail">xxxx</span>
                        <span class="data-detail">{{baseCase.illegalBuilding.site}}</span>
                    </el-form-item>
                    <el-form-item label="所属社区:">
                        <span class="data-detail">xxxxx</span>
                        <span class="data-detail">{{baseCase.communityId}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="身份证正反面照片:">
                        <img src="" alt="">
                        <img :src="baseCase.illegalBuilding.positive" alt="">
                    </el-form-item>
                    <el-form-item>
                        <img src="" alt="">
                    <el-form-item label-width="0px">
                        <img :src="baseCase.illegalBuilding.negative" alt="">
                    </el-form-item>
                </div>
                <div class="data-item">
@@ -47,22 +47,22 @@
                </div>
                <div class="data-item">
                    <el-form-item label="违建具体位置:">
                        <span class="data-detail">xxxxxxx</span>
                        <span class="data-detail">{{baseCase.illegalBuilding.position}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违法建设长、宽、高:">
                        <span class="data-detail">xxxxxxx    xxxxx   xxxxxx</span>
                        <span class="data-detail">{{baseCase.illegalBuilding.buildingLength+'m'+"   "+baseCase.illegalBuilding.buildingWidth+'m'+"   "+baseCase.illegalBuilding.buildingHigh+'m' }}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违法建设面积:">
                        <span class="data-detail">xxxxxxx</span>
                        <span class="data-detail">{{baseCase.illegalBuilding.buildingArea}}㎡</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违法建筑材料:">
                        <span class="data-detail">xxxxxxx</span>
                        <span class="data-detail">{{baseCase.illegalBuilding.materials}}</span>
                    </el-form-item>
                </div>
            </el-form>
@@ -154,11 +154,14 @@
        color: #4b9bb7;
        flex: 4;
        padding: 0 30px 0 20px;
        img{
            width: 100px;
            height: 100px;
        }
        .data-item {
            display: flex;
            justify-content: space-between;
            line-height: 40px;
            line-height: 20px;
        }
        border: 1px solid #17324c;
src/components/process/index.vue
@@ -52,9 +52,7 @@
        // console.log(this.handlePassVo.workflowConfigSteps[0].name); 
        // console.log(mylist);
        console.log(mystate);
        if(mystate===0){
            this.active = -1;
        }else if(mystate ===6){
        if(mystate ===6){
            this.active = 1;
        }else if(mystate===7){
            this.active = 2;
@@ -62,6 +60,8 @@
            this.active = 3;
        }else if(mystate ===9){
            this.active = 4;
        }else{
            this.active = -1;
        }
        this.list =  mylist;
    },
src/utils/helper.js
@@ -1,7 +1,6 @@
import { hash } from "immutable";
import myrequest from './request'
// 深拷贝
function deepClone(obj) {
export function deepClone(obj) {
    let objClone = Array.isArray(obj) ? [] : {};
    if (obj && typeof obj === 'object' && obj != null) {
        for (let key in obj) {
@@ -17,10 +16,22 @@
    return objClone;
}
// 计算限制时间
function computeTime(time2) {
export function computeTime(time2) {
    const t1 = new Date();
    const t2 = new Date(time2);
    return filterTime(t2.getTime() - t1.getTime());
}
// 获取字典表
export async function getTypeList(level,code){
    let arr;
    await myrequest({
        method:'get',
        url:`sccg/dict/query_type?level=${level}&typeCode=${code}`
    })
    .then(res=>{
        arr = res.data;
    })
    return arr;
}
function filterTime(time) {
    if (time < 0) {
@@ -58,4 +69,3 @@
    }
    return str + '分钟'
}
export { deepClone, computeTime };
src/utils/request.js
@@ -21,15 +21,25 @@
)
// 响应
api.interceptors.response.use(
  function (response) {
    if (response.data.code === 401) {
  function handleResponseSuccess(response) {
    const result = response.data;
    if (response.status === 200 && result.code === 200) {
      return result;
    } else if (result.code=== 401) {
      console.log(result);
      tip.Message({
        type: 'warning',
        message: '登录身份已过期',
      })
      router.push('/login');
      return;
    }else if(result.code === 500){
      tip.Message({
        type: 'error',
        message: '网络请求出错',
      })
      return;
    }
    return response.data;
  },
  function (error) {
    console.log(error);
@@ -41,32 +51,6 @@
      })
      return;
    }
    const {code,status} = error.response.data;
    if (error.code === 'ERR_NETWORK') {
      console.log(1);
      tip.Message({
        type: 'error',
        message: '服务器故障'
      })
      return;
    }
    if (code === 401) {
      console.log(2);
      tip.Message({
        type: 'warning',
        message: '登录身份已过期',
      })
      router.push('/login');
      return;
    }
    if (status === 500) {
      console.log(3);
      tip.Message({
        type: 'error',
        message: '网络请求出错'
      })
      return;
    }
  }
);
)
export default api;
src/utils/validate.js
@@ -29,4 +29,14 @@
  const regExp = /(^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$)/;
  return regExp.test(str);
}
// 校验数字
export function validateNum(str){
  const rep = /^[0-9]+(.[0-9]{1,3})?$/;
  return rep.test(str);
}
// 验证身份证号
export function validateCardId(str){
  const rep=/^\d{15}|\d{}18$/
  return rep.test(str);
}
src/views/operate/disposal/casepool/dispatch/index.vue
@@ -30,39 +30,52 @@
                    @selection-change="tableChange">
                    <el-table-column type="selection" min-width="5">
                    </el-table-column>
                    <el-table-column prop="code" label="事件编号" min-width="10">
                    <el-table-column prop="code" label="事件编号" min-width="18">
                        <template slot-scope="scope">
                            <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link>
                        </template>
                    </el-table-column>
                    <el-table-column prop="eventSource" label="问题来源" min-width="10">
                    <el-table-column prop="eventSource" label="问题来源" min-width="7">
                        <template slot-scope="scope">
                            <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="category" label="大类名称" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'category' :'category'"
                        :label="mystatus===1 ? '大类名称' : '违建类别'" :min-width="mystatus===1?'10':'20'">
                    </el-table-column>
                    <el-table-column prop="type" label="小类名称" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '小类名称' : '违建地点'"
                        min-width="10">
                    </el-table-column>
                    <el-table-column prop="actionCause" label="案由" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'actionCause' :'communityId'"
                        :label="mystatus===1 ? '案由' : '所属社区'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="site" label="报警点位" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '报警点位' : '违法建筑长、宽、高'"
                        :min-width="mystatus===1?'10' :'20' ">
                        <template slot-scope="scope">
                            <div v-if="mystatus ===2"><span>{{scope.row.buildingLength+'米'+'、'+
                            scope.row.buildingWidth+'米'+'、'+scope.row.buildingHigh+'米'}}</span></div>
                            <div v-else>{{scope.row.site}}</div>
                        </template>
                    </el-table-column>
                    <el-table-column prop="streetId" label="所属区域" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'"
                        :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="alarmTime" label="报警时间" min-width="15">
                    <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="mystatus===1">
                        <template slot-scope="scope">
                            <span>{{filterTime(scope.row.alarmTime)}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="continueTime" label="持续时间" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'"
                        :label="mystatus===1 ? '持续时间' : '违法建筑材料'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="operation" label="操作" min-width="20">
                        <template slot-scope="scope">
                            <div class="btn">
                                <span>调度</span>
                                <span class="line">|</span>
                                <span @click="opernDialog(scope.row)">上传处置结果</span>
                            <div class="operation">
                                <div class="btn">
                                    <span>调度</span>
                                    <span class="line">|</span>
                                    <span @click="opernDialog(scope.row)">上传处置结果</span>
                                </div>
                            </div>
                        </template>
                    </el-table-column>
@@ -70,11 +83,12 @@
                <!-- 详情页展示 -->
                <el-dialog :visible.sync="dialogView" width="80%" title="基础信息(人工)" v-if="dialogView"
                    :before-close="handleClose">
                    <MyDetail :info=info></MyDetail>
                    <MyDetail :info=info v-if="mystatus==1 ? true:false"></MyDetail>
                    <MyIllDetail :info=info v-else></MyIllDetail>
                </el-dialog>
                <!-- 上传页面 -->
                <el-dialog :visible.sync="dialogUpload" width="60%" title="上传处置结果"
                    v-if="dialogUpload" :before-close="handleClose">
                <el-dialog :visible.sync="dialogUpload" width="60%" title="上传处置结果" v-if="dialogUpload"
                    :before-close="handleClose">
                    <uploadVio v-if="mystatus === 1" :caseId="caseId" @closeDialog="closeDialog"></uploadVio>
                    <uploadIll v-else :caseId="caseId" @closeDialog="closeDialog"></uploadIll>
                </el-dialog>
@@ -110,19 +124,20 @@
import uploadVio from './updateUser/uploadResult/vio'
import uploadIll from "./updateUser/uploadResult/ill"
import MyDetail from '@/components/detail'
import MyIllDetail from '@/components/illdetail'
import helper from '@/utils/mydate'
export default {
    components: {
        // updateUser,
        uploadVio,uploadIll,MyDetail
        uploadVio, uploadIll, MyDetail,MyIllDetail
    },
    data() {
        return {
            tableData: [],
            context: "",
            dialogUpload:false,
            dialogUpload: false,
            // dialogUpdate: false,
            dialogView:false,
            dialogView: false,
            info: {},
            totalNum: null,
            pageSize: 10,
@@ -130,7 +145,7 @@
            all: false,
            unsame: false,
            myIdx: 0,
            preMyIdx:0,
            preMyIdx: 0,
            options: [
                {
                    value: 0,
@@ -163,9 +178,9 @@
                    checked: false,
                },
            ],
            statusArr:[],
            mystatus:1,
            caseId:'',
            statusArr: [],
            mystatus: 1,
            caseId: '',
        }
    },
    created() {
@@ -186,16 +201,16 @@
            this.getUserList();
        },
        // 批量删除
        mulDelete(idArr){
        mulDelete(idArr) {
            console.log(idArr);
            this.$axios({
                method:'delete',
                url:'sccg/violations/batch_delete?ids='+idArr,
            }).then(res=>{
                method: 'delete',
                url: 'sccg/violations/batch_delete?ids=' + idArr,
            }).then(res => {
                this.getUserList();
                this.$message({
                    message:res.message,
                    type:res.code === 200 ? 'success' : 'warning'
                    message: res.message,
                    type: res.code === 200 ? 'success' : 'warning'
                })
            })
        },
@@ -319,32 +334,32 @@
                })
                .catch(_ => { });
        },
        async JumpView(data){
        async JumpView(data) {
            await this.getEventInfo(data.code);
        },
        // 获取案件信息
        getEventInfo(code){
            this.$axios({
                method:'get',
                url:`sccg/base_case/baseCaseDetail/${code}`
        async getEventInfo(code) {
            await this.$axios({
                method: 'get',
                url: `sccg/base_case/baseCaseDetail/${code}`
            })
            .then(res=>{
                this.info = res.data;
                this.dialogView = true;
            })
                .then(res => {
                    this.info = res.data;
                    this.dialogView = true;
                })
        },
        opernDialog(data){
        opernDialog(data) {
            this.dialogUpload = true;
            this.caseId = data.id;
            // console.log(data); 
        },
        // 关闭上传界面
        closeDialog({flag}){
        closeDialog({ flag }) {
            this.dialogUpload = flag;
            this.getUserList();
        },
        // 处理时间
        filterTime(time){
        filterTime(time) {
            return helper(time);
        }
    }
@@ -355,6 +370,7 @@
    text-align: left;
    margin: 10px 20px;
    color: #4b9bb7;
    header {
        background-color: #09152f;
        border: 1pox solid #fff;
@@ -407,18 +423,22 @@
            }
        }
    }
    &::v-deep .el-input__inner {
        background-color: #09152f;
        border: 1px solid #17324c;
    }
    main {
        background-color: #09152f;
        margin-top: 20px;
        padding-bottom: 50px;
        border: 1pox solid #fff;
        .btn span:hover{
        .btn span:hover {
            cursor: pointer;
        }
        .type-nav {
            display: flex;
            line-height: 40px;
@@ -576,9 +596,11 @@
            width: 50px !important;
        }
    }
    .line{
    .line {
        padding: 0 5px;
    }
    &::v-deep .el-dialog__header,
    &::v-deep .el-dialog__body {
        background-color: #06122c;
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue
@@ -25,13 +25,16 @@
                <!-- 现场情况照片 -->
                <el-form-item label="现场情况照片:" prop="situationPic">
                    <div class="upImg">
                        <div class="img-list">
                            <img :src="item" alt="" v-for="(item,index) in arrive.situationPic" :key="index">
                        <div class="img-list" v-if="arrive.situationPic.length!==0">
                            <div class="img" v-for="(item,index) in arrive.situationPic" :key="index">
                                <img :src="item" alt="">
                                <i class="el-icon-close myicon" @click="handleRemove(index)"></i>
                            </div>
                        </div>
                        <div class="upload" v-if="arrive.situationPic.length<4">
                            <el-upload :file-list="fileList" class="upload-demo"
                                action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false"
                                :limit="4" :on-success="handleSuccess" :headers="getToken()">
                                :limit="50" :on-success="handleSuccess" list-type="picture" :headers="getToken()">
                                <i class="el-icon-plus"></i>
                            </el-upload>
                        </div>
@@ -74,10 +77,10 @@
            }
        }
        const checkSitPic = (rule, value, callback) => {
            if (value) {
            if (value.length !== 0) {
                callback()
            } else {
                callback();
                callback(new Error('请上传现场情况照片'));
            }
        }
        return {
@@ -98,7 +101,7 @@
                    { trigger: 'blur', validator: checkReplay }
                ],
                situationPic: [
                    { trigger: 'change', validator: checkSitPic }
                    { trigger: 'blur', validator: checkSitPic }
                ],
            },
            fileList: [],
@@ -108,6 +111,7 @@
        handleSuccess(res, file, filelist) {
            const baseUrl = 'http://140.143.152.226:8410/';
            console.log(res);
            console.log(this.fileList);
            if (this.arrive.situationPic.length < 4) {
                this.arrive.situationPic.push(baseUrl + res.data.url1)
            }
@@ -120,15 +124,29 @@
            }
        },
        // 获取arrive对象
        backData(){
        backData() {
            const { arrive } = this;
            this.$emit('getArrive',{arrive});
            this.$emit('getArrive', { arrive });
        },
        // 删除图片
        handleRemove(index) {
            this.arrive.situationPic.splice(index,1);
        }
    },
    watch: {
        'arrive.situationPic.length': {
            handler(newLen, oldLen) {
                if (newLen !== 0) {
                    this.$refs.arriveForm.validateField('situationPic');
                }
            },
            deep: true,
        }
    }
}
</script>
<style lang="scss" scoped>
.arrive-title{
.arrive-title {
    line-height: 60px;
    font-weight: 650;
    font-size: 20px;
@@ -148,13 +166,23 @@
    }
    .img-list {
        height: 80px;
        height: 60px;
        position: relative;
        display: flex;
        img {
            width: 60px;
            height: 60px;
        }
        .img{
            height: 60px;
            position: relative;
        }
        .myicon {
            position: absolute;
            top: 0px;
            right: 0px;
            color: #4b9bb7;
        }
    }
}
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue
@@ -51,8 +51,11 @@
                <!-- 文书照片上传 -->
                <el-form-item label="文书照片上传:" prop="writPic">
                    <div class="upImg">
                        <div class="img-list">
                            <img :src="item" alt="" v-for="(item,index) in book.writPic" :key="index">
                        <div class="img-list" v-if="book.writPic.length!==0">
                            <div class="img" v-for="(item,index) in book.writPic" :key="index">
                                <img :src="item" alt="">
                                <i class="el-icon-close myicon" @click="handleRemove(index,1)"></i>
                            </div>
                        </div>
                        <div class="upload" v-if="book.writPic.length<4">
                            <el-upload :file-list="fileList" class="upload-demo"
@@ -67,8 +70,11 @@
                <!-- 整改前照片 -->
                <el-form-item label="整改前照片:" prop="originalPic">
                    <div class="upImg">
                        <div class="img-list">
                            <img :src="item" alt="" v-for="(item,index) in book.originalPic" :key="index">
                        <div class="img-list" v-if="book.originalPic.length!==0">
                            <div class="img" v-for="(item,index) in book.originalPic" :key="index">
                                <img :src="item" alt="">
                                <i class="el-icon-close myicon" @click="handleRemove(index,2)"></i>
                            </div>
                        </div>
                        <div class="upload" v-if="book.originalPic.length<4">
                            <el-upload :file-list="fileList" class="upload-demo"
@@ -83,8 +89,11 @@
                <!-- 整改后照片 -->
                <el-form-item label="整改后照片:" prop="rectifiedPic">
                    <div class="upImg">
                        <div class="img-list">
                            <img :src="item" alt="" v-for="(item,index) in book.rectifiedPic" :key="index">
                        <div class="img-list" v-if="book.rectifiedPic.length!==0">
                            <div class="img" v-for="(item,index) in book.rectifiedPic" :key="index">
                                <img :src="item" alt="">
                                <i class="el-icon-close myicon" @click="handleRemove(index,3)"></i>
                            </div>
                        </div>
                        <div class="upload" v-if="book.rectifiedPic.length<4">
                            <el-upload :file-list="fileList" class="upload-demo"
@@ -99,8 +108,11 @@
                <!-- 其他照片 -->
                <el-form-item label="其他:" prop="otherPic">
                    <div class="upImg">
                        <div class="img-list">
                            <img :src="item" alt="" v-for="(item,index) in book.otherPic" :key="index">
                        <div class="img-list" v-if="book.otherPic.length!==0">
                            <div class="img" v-for="(item,index) in book.otherPic" :key="index">
                                <img :src="item" alt="">
                                <i class="el-icon-close myicon" @click="handleRemove(index,4)"></i>
                            </div>
                        </div>
                        <div class="upload" v-if="book.otherPic.length<4">
                            <el-upload :file-list="fileList" class="upload-demo"
@@ -182,6 +194,27 @@
                callback(new Error('发放内容不能为空'));
            }
        }
        const checkRectPic = (rule, value, callback) => {
            if (value.length!==0) {
                callback();
            } else {
                callback(new Error('整改后照片不能为空'));
            }
        }
        const checkWritPic = (rule, value, callback) => {
            if (value.length!==0) {
                callback();
            } else {
                callback(new Error('文书照片不能为空'));
            }
        }
        const checkOrgPic = (rule, value, callback) => {
            if (value.length !==0) {
                callback();
            } else {
                callback(new Error('整改前照片不能为空'));
            }
        }
        return {
            book: {
                writPic: [],
@@ -192,10 +225,10 @@
            bookRules: {
                writType: [
                    {
                        trigger: 'blur', validator: checkKind
                        trigger: 'change', validator: checkKind
                    }
                ],
                idwritCode: [
                writCode: [
                    {
                        trigger: 'blur', validator: checkId
                    }
@@ -233,6 +266,19 @@
                noremark: [
                    {
                        trigger: 'blur', validator: checkNote
                    }
                ],
                writPic: [{
                    trigger: 'blur', validator: checkWritPic
                }],
                rectifiedPic: [
                    {
                        trigger: 'blur', validator: checkRectPic
                    }
                ],
                originalPic: [
                    {
                        trigger: 'blur', validator: checkOrgPic
                    }
                ],
            },
@@ -291,6 +337,45 @@
                return { Authorization: tokenHead + token }
            }
        },
        // 删除图片
        handleRemove(index, flag) {
            if (flag === 1) {
                this.book.writPic.splice(index, 1);
            } else if (flag === 2) {
                this.book.originalPic.splice(index, 1);
            } else if (flag === 3) {
                this.book.rectifiedPic.splice(index, 1);
            } else {
                this.book.otherPic.splice(index, 1);
            }
        }
    },
    watch: {
        'book.writPic.length': {
            handler(newLen, oldLen) {
                if (newLen !== 0) {
                    this.$refs.bookForm.validateField('writPic');
                }
            },
            deep: true,
        },
        'book.rectifiedPic.length': {
            handler(newLen, oldLen) {
                if (newLen !== 0) {
                    this.$refs.bookForm.validateField('rectifiedPic');
                }
            },
            deep: true,
        },
        'book.originalPic.length': {
            handler(newLen, oldLen) {
                if (newLen !== 0) {
                    this.$refs.bookForm.validateField('originalPic');
                }
            },
            deep: true,
        }
    }
}
</script>
@@ -331,13 +416,26 @@
    }
    .img-list {
        height: 80px;
        height: 60px;
        position: relative;
        display: flex;
        img {
            width: 60px;
            height: 60px;
        }
        .img {
            height: 60px;
            position: relative;
        }
        .myicon {
            position: absolute;
            top: 0px;
            right: 0px;
            color: #4b9bb7;
        }
    }
}
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue
@@ -3,14 +3,16 @@
        <div class="evidence-title">调查取证</div>
        <div class="evidence-form">
            <el-form ref="evidenceForm" label-width="160px" :model="evidence" :rules="evidenceRules" autoComplete="on">
                <!-- 承办队员 -->
                <el-form-item label="承办队员:" prop="undertaker">
                    <el-input v-model="evidence.undertaker" placeholder="请输入姓名"></el-input>
                </el-form-item>
                <!-- 协办队员 -->
                <el-form-item label="协办队员:" prop="assistant">
                    <el-input v-model="evidence.assistant" placeholder="请输入姓名"></el-input>
                </el-form-item>
                <div class="evidence-item">
                    <!-- 承办队员 -->
                    <el-form-item label="承办队员:" prop="undertaker">
                        <el-input v-model="evidence.undertaker" placeholder="请输入姓名"></el-input>
                    </el-form-item>
                    <!-- 协办队员 -->
                    <el-form-item label="协办队员:" label-width="100px" prop="assistant">
                        <el-input v-model="evidence.assistant" placeholder="请输入姓名"></el-input>
                    </el-form-item>
                </div>
                <!-- 时间 -->
                <el-form-item label="时间:" prop="investigationTime">
                    <el-date-picker v-model="evidence.investigationTime" type="datetime" placeholder="选择时间">
@@ -26,7 +28,7 @@
                </el-form-item>
                <!-- 当事人信息 -->
                <el-form-item label="当事人信息:" prop="userInfo">
                    <el-input suffix-icon="el-icon-s-order" @focus="openDialog"></el-input>
                    <el-input suffix-icon="el-icon-s-order" v-model="evidence.userInfo" @focus="openDialog"></el-input>
                </el-form-item>
                <!-- 情况描述 -->
                <el-form-item label="情况描述:" prop="description">
@@ -34,10 +36,13 @@
                        v-model="evidence.description" placeholder="请输入情况描述,限制200字以内"></el-input>
                </el-form-item>
                <!-- 照片附件 -->
                <el-form-item label="照片附件:" prop="photo">
                <el-form-item label="照片附件:" prop="pic">
                    <div class="upImg">
                        <div class="img-list">
                            <img :src="item" alt="" v-for="(item,index) in evidence.pic" :key="index">
                        <div class="img-list" v-if="evidence.pic.length!==0">
                            <div class="img" v-for="(item,index) in evidence.pic" :key="index">
                                <img :src="item" alt="">
                                <i class="el-icon-close myicon" @click="handleRemove(index)"></i>
                            </div>
                        </div>
                        <div class="upload" v-if="evidence.pic.length<4">
                            <el-upload :file-list="fileList" class="upload-demo"
@@ -81,8 +86,8 @@
                    <div class="user-item">
                        <el-form-item label="证件类型:" prop="certificateType">
                            <el-select v-model="user.certificateType" placeholder="请选择">
                                <el-option v-for="item in cardOptions" :key="item.value" :label="item.label"
                                    :value="item.value">
                                <el-option v-for="item in cardOptions" :key="item.id" :label="item.name"
                                    :value="item.id">
                                </el-option>
                            </el-select>
                        </el-form-item>
@@ -95,8 +100,8 @@
                        <!-- 文化程度 -->
                        <el-form-item label="文化程度:" prop="educationDegree">
                            <el-select v-model="user.educationDegree" placeholder="请选择">
                                <el-option v-for="item in degreeOptions" :key="item.value" :label="item.label"
                                    :value="item.value">
                                <el-option v-for="item in degreeOptions" :key="item.id" :label="item.name"
                                    :value="item.id">
                                </el-option>
                            </el-select>
                        </el-form-item>
@@ -113,7 +118,13 @@
                    <div class="user-item">
                        <!-- 民族 -->
                        <el-form-item label="民族:" prop="nation">
                            <el-input v-model="user.nation"></el-input>
                            <!-- <el-select v-model="user.nation" placeholder="请选择民族"> -->
                            <el-select v-model="user.nation" placeholder="请选择">
                                <el-option v-for="item in nationOptions" :key="item.id" :label="item.name"
                                    :value="item.id">
                                </el-option>
                            </el-select>
                            <!-- <el-input v-model="user.nation"></el-input> -->
                        </el-form-item>
                        <!-- 籍贯 -->
                        <el-form-item label="籍贯:" prop="nativePlace">
@@ -138,6 +149,8 @@
    </div>
</template>
<script>
import { getTypeList } from '@/utils/helper'
import {validateName,validatePhone,validateCardId} from '@/utils/validate'
export default {
    data() {
        const checkName = (rule, value, callback) => {
@@ -183,10 +196,10 @@
            }
        }
        const checkPic = (rule, value, callback) => {
            if (value) {
            if (value.length !== 0) {
                callback()
            } else {
                callback();
                callback(new Error('请上传照片附件'));
            }
        }
        const checkIll = (rule, value, callback) => {
@@ -198,14 +211,14 @@
        }
        const checkName3 = (rule, value, callback) => {
            if (value) {
                callback()
                validateName(value) ? callback() : callback(new Error('请输入正确的姓名'))
            } else {
                callback(new Error('当事人姓名不能为空'));
            }
        }
        const checkPhone = (rule, value, callback) => {
            if (value) {
                callback()
                validatePhone(value) ? callback() : callback(new Error('请输入正确的手机号码'))
            } else {
                callback(new Error('手机号码不能为空'));
            }
@@ -219,7 +232,7 @@
        }
        const checkCode = (rule, value, callback) => {
            if (value) {
                callback()
                validateCardId(value) ? callback() : callback(new Error('请输入正确的证件号码'))
            } else {
                callback(new Error('证件号码不能为空'));
            }
@@ -231,20 +244,20 @@
                callback(new Error('文化程度不能为空'));
            }
        }
        const checkCareer = (rule, value, callback) => {
            if (value) {
                callback()
            } else {
                callback(new Error('职业不能为空'));
            }
        }
        const checkWork = (rule, value, callback) => {
            if (value) {
                callback()
            } else {
                callback(new Error('工作单位及职务不能为空'));
            }
        }
        // const checkCareer = (rule, value, callback) => {
        //     if (value) {
        //         callback()
        //     } else {
        //         callback();
        //     }
        // }
        // const checkWork = (rule, value, callback) => {
        //     if (value) {
        //         callback()
        //     } else {
        //         callback(new Error('工作单位及职务不能为空'));
        //     }
        // }
        const checkNation = (rule, value, callback) => {
            if (value) {
                callback()
@@ -252,13 +265,13 @@
                callback(new Error('民族不能为空'));
            }
        }
        const checkNaP = (rule, value, callback) => {
            if (value) {
                callback()
            } else {
                callback(new Error('籍贯不能为空'));
            }
        }
        // const checkNaP = (rule, value, callback) => {
        //     if (value) {
        //         callback()
        //     } else {
        //         callback(new Error('籍贯不能为空'));
        //     }
        // }
        const checkLiveAdd = (rule, value, callback) => {
            if (value) {
                callback()
@@ -266,13 +279,13 @@
                callback(new Error('现住址不能为空'));
            }
        }
        const checkRegAdd = (rule, value, callback) => {
            if (value) {
                callback()
            } else {
                callback(new Error('户籍所在地不能为空'));
            }
        }
        // const checkRegAdd = (rule, value, callback) => {
        //     if (value) {
        //         callback()
        //     } else {
        //         callback(new Error('户籍所在地不能为空'));
        //     }
        // }
        const checkFlag = (rule, value, callback) => {
            if (value) {
                callback();
@@ -283,7 +296,7 @@
        return {
            evidence: {
                pic: [],
                userInfo: false,
                userInfo: '',
            },
            evidenceRules: {
                userInfo: [
@@ -330,7 +343,7 @@
                illegalType: '',
                name: '',
                phoneCode: '',
                certificateType: '',
                certificateType: 703,
                certificateCode: '',
                educationDegree: '',
                career: '',
@@ -348,12 +361,12 @@
                ],
                name: [
                    {
                        trigger: 'blur', validator: checkName3
                        required:true,trigger: 'blur', validator: checkName3
                    }
                ],
                phoneCode: [
                    {
                        trigger: 'blur', validator: checkPhone
                        required:true,trigger: 'blur', validator: checkPhone
                    }
                ],
                certificateType: [
@@ -363,7 +376,7 @@
                ],
                certificateCode: [
                    {
                        trigger: 'blur', validator: checkCode
                        required:true,trigger: 'blur', validator: checkCode
                    }
                ],
                educationDegree: [
@@ -371,36 +384,36 @@
                        trigger: 'change', validator: checkWh
                    }
                ],
                career: [
                    {
                        trigger: 'blur', validator: checkCareer
                    }
                ],
                work: [
                    {
                        trigger: 'blur', validator: checkWork
                    }
                ],
                // career: [
                //     {
                //         trigger: 'blur', validator: checkCareer
                //     }
                // ],
                // work: [
                //     {
                //         trigger: 'blur', validator: checkWork
                //     }
                // ],
                nation: [
                    {
                        trigger: 'blur', validator: checkNation
                        trigger: 'change', validator: checkNation
                    }
                ],
                nativePlace: [
                    {
                        trigger: 'blur', validator: checkNaP
                    }
                ],
                // nativePlace: [
                //     {
                //         trigger: 'blur', validator: checkNaP
                //     }
                // ],
                liveAddress: [
                    {
                        trigger: 'blur', validator: checkLiveAdd
                        required:true,trigger: 'blur', validator: checkLiveAdd
                    }
                ],
                registerAddress: [
                    {
                        trigger: 'blur', validator: checkRegAdd
                    }
                ],
                // registerAddress: [
                //     {
                //         trigger: 'blur', validator: checkRegAdd
                //     }
                // ],
            },
            userFlag: false,
            typeOptions: [
@@ -413,6 +426,7 @@
                    value: 2
                }
            ],
            nationOptions: [],
            cardOptions: [
                {
                    label: '身份证',
@@ -423,25 +437,32 @@
                    value: 2
                }
            ],
            degreeOptions:[
            degreeOptions: [
                {
                    label:'小学',
                    value:1
                    label: '小学',
                    value: 1
                },
                {
                    label:'初中',
                    value:2
                    label: '初中',
                    value: 2
                },
                {
                    label:'高中',
                    value:3
                    label: '高中',
                    value: 3
                },
                {
                    label:'大学及以上',
                    value:4
                    label: '大学及以上',
                    value: 4
                },
            ]
        }
    },
    created() {
        this.getCardTypeList();
        this.getSchoolList();
        this.getNationList();
        console.log(this.mytype);
        this.user.illegalType = JSON.parse(JSON.stringify(this.mytype));
    },
    methods: {
        handleSuccess2(res, file, filelist) {
@@ -469,7 +490,7 @@
            this.$refs.userForm.validate((valid) => {
                console.log(valid);
                if (valid) {
                    this.evidence.userInfo = true;
                    this.evidence.userInfo = this.user.name;
                    this.userFlag = false;
                } else {
                    this.evidence.userInfo = false;
@@ -478,21 +499,55 @@
            })
        },
        // 关闭当事人信息界面
        closeUserForm(){
        closeUserForm() {
            this.userFlag = false;
        },
        // 返回当前evidence和user对象
        backData(){
            const {user,evidence} = this;
            this.$emit('getEvidence',{user,evidence});
        backData() {
            const { user, evidence } = this;
            this.$emit('getEvidence', { user, evidence });
        },
        // 删除图片
        handleRemove(index) {
            this.evidence.pic.splice(index, 1);
        },
        // 获取证件类型
        async getCardTypeList() {
            this.cardOptions = await getTypeList(1, '03');
        },
        // 获取学历
        async getSchoolList() {
            this.degreeOptions = await getTypeList(1, '04');
        },
        // 获取民族列表
        async getNationList() {
            this.nationOptions = await getTypeList(1, '05');
        }
    }
    },
    watch: {
        'evidence.pic.length': {
            handler(newLen, oldLen) {
                if (newLen !== 0) {
                    this.$refs.evidenceForm.validate((valid) => {
                        if (valid) {
                        } else { return false }
                    })
                }
            },
            deep: true,
        }
    },
    props:['mytype']
}
</script>
<style lang="scss" scoped>
.evidence {
    line-height: 60px;
    position: relative;
    .evidence-item{
        display: flex;
    }
    .evidence-title {
        line-height: 60px;
        font-weight: 650;
@@ -514,12 +569,25 @@
    }
    .img-list {
        height: 80px;
        height: 60px;
        position: relative;
        display: flex;
        img {
            width: 60px;
            height: 60px;
        }
        .img {
            height: 60px;
            position: relative;
        }
        .myicon {
            position: absolute;
            top: 0px;
            right: 0px;
            color: #4b9bb7;
        }
    }
}
@@ -534,12 +602,14 @@
    background-color: #fbfdff;
    border-radius: 4px;
}
.user-form{
.user-form {
    position: absolute;
    top: 0;
    z-index: 3000;
    background-color: #06122c;
    .user-form-header{
    .user-form-header {
        background-color: #fff;
        color: #4b9bb7;
        display: flex;
@@ -547,17 +617,28 @@
        align-items: center;
        padding: 0 20px;
    }
    padding-bottom: 60px;
}
.user-form-content {
    padding-top:20px;
    padding-top: 20px;
    .user-item {
        display: flex;
        justify-content: flex-start;
        .el-input {
            flex: 1;
        }
        .el-select {
            flex: 1;
            :deep(.el-input__inner){
                padding: 0px 15px;
            }
        }
    }
    ::v-deep .el-textarea__inner {
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue
@@ -3,7 +3,7 @@
        <!-- 到达现场情况 -->
        <MyArrive ref="arrive"></MyArrive>
        <!-- 调查取证 -->
        <MyEvidence ref="evidence"></MyEvidence>
        <MyEvidence ref="evidence" :mytype="2"></MyEvidence>
        <!-- 文种书类 -->
        <MyBook ref="book"></MyBook>
        <!-- <div class="result">
@@ -70,9 +70,9 @@
                                            illegalType: evidence.user.illegalType,
                                            name: evidence.user.name,
                                            phoneCode: evidence.user.phoneCode,
                                            certificateType: `${evidence.user.certificateType}`,
                                            certificateType: evidence.user.certificateType,
                                            certificateCode: evidence.user.certificateCode,
                                            educationDegree: `${evidence.user.educationDegree}`,
                                            educationDegree: evidence.user.educationDegree,
                                            career: evidence.user.career,
                                            work: evidence.user.work,
                                            nation: evidence.user.nation,
@@ -161,7 +161,7 @@
</script>
<style lang="scss" scoped>
.ill {
    padding: 20px 200px;
    padding: 20px 200px 100px;
}
.footer {
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue
@@ -3,7 +3,7 @@
        <!-- 到达现场情况 -->
        <MyArrive ref="arrive"></MyArrive>
        <!-- 调查取证 -->
        <MyEvidence ref="evidence"></MyEvidence>
        <MyEvidence ref="evidence" :mytype="1"></MyEvidence>
        <!-- 底部按钮 -->
        <div class="footer">
            <el-button @click="handleSubmit" type="primary">确定</el-button>
@@ -60,9 +60,9 @@
                                    illegalType: evidence.user.illegalType,
                                    name: evidence.user.name,
                                    phoneCode: evidence.user.phoneCode,
                                    certificateType: `${evidence.user.certificateType}`,
                                    certificateType: evidence.user.certificateType,
                                    certificateCode: evidence.user.certificateCode,
                                    educationDegree: `${evidence.user.educationDegree}`,
                                    educationDegree: evidence.user.educationDegree,
                                    career: evidence.user.career,
                                    work: evidence.user.work,
                                    nation: evidence.user.nation,
@@ -108,7 +108,7 @@
</script>
<style lang="scss" scoped>
.vio {
    padding: 20px 200px;
    padding: 20px 200px 100px;
}
.footer {
src/views/operate/disposal/casepool/learn/index.vue
@@ -30,29 +30,36 @@
                    @selection-change="tableChange">
                    <el-table-column type="selection" min-width="5">
                    </el-table-column>
                    <el-table-column prop="code" label="事件编号" min-width="10">
                    <el-table-column prop="code" label="事件编号" min-width="18">
                        <template slot-scope="scope">
                            <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link>
                        </template>
                    </el-table-column>
                    <el-table-column prop="eventSource" label="问题来源" min-width="10">
                    <el-table-column prop="eventSource" label="问题来源" min-width="7">
                        <template slot-scope="scope">
                            <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="category" label="大类名称" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'category' :'category'" :label="mystatus===1 ? '大类名称' : '违建类别'" :min-width="mystatus===1?'10':'20'">
                    </el-table-column>
                    <el-table-column prop="type" label="小类名称" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '小类名称' : '违建地点'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="actionCause" label="案由" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'actionCause' :'communityId'" :label="mystatus===1 ? '案由' : '所属社区'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="site" label="报警点位" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '报警点位' : '违法建筑长、宽、高'" :min-width="mystatus===1?'10' :'20' ">
                        <template slot-scope="scope">
                            <div v-if="mystatus ===2"><span>{{scope.row.buildingLength+'米'+'、'+ scope.row.buildingWidth+'米'+'、'+scope.row.buildingHigh+'米'}}</span></div>
                            <div v-else>{{scope.row.site}}</div>
                        </template>
                    </el-table-column>
                    <el-table-column prop="streetId" label="所属区域" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'" :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="alarmTime" label="报警时间" min-width="10">
                    <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="mystatus===1">
                        <template slot-scope="scope">
                            <span>{{filterTime(scope.row.alarmTime)}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="continueTime" label="持续时间" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'" :label="mystatus===1 ? '持续时间' : '违法建筑材料'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="operation" label="操作" min-width="20">
                        <template slot-scope="scope">
@@ -65,7 +72,8 @@
                <!-- 详情页展示 -->
                <el-dialog :visible.sync="dialogView" width="80%" title="基础信息(人工)" v-if="dialogView"
                    :before-close="handleClose">
                    <MyDetail :info=info></MyDetail>
                    <MyDetail :info=info v-if="mystatus==1 ? true:false"></MyDetail>
                    <MyIllDetail :info=info v-else></MyIllDetail>
                </el-dialog>
                <!-- 上传页面 -->
                <el-dialog :visible.sync="dialogUpload" width="60%" title="上传处置结果"
@@ -106,10 +114,12 @@
import uploadVio from './updateUser/uploadResult/vio'
import uploadIll from "./updateUser/uploadResult/ill"
import MyDetail from '@/components/detail'
import MyIllDetail from '@/components/illdetail'
import helper from '@/utils/mydate'
export default {
    components: {
        // updateUser,
        uploadVio,uploadIll,MyDetail
        uploadVio,uploadIll,MyDetail,MyIllDetail
    },
    data() {
        return {
@@ -158,7 +168,7 @@
                },
            ],
            statusArr:[],
            mystatus:0,
            mystatus:1,
            caseId:'',
        }
    },
@@ -357,6 +367,9 @@
        // 关闭上传界面
        closeDialog({flag}){
            this.dialogUpload = flag;
        },
        filterTime(time){
            return helper(time);
        }
    }
}
src/views/operate/disposal/casepool/notDeal/index.vue
@@ -30,32 +30,36 @@
                    @selection-change="tableChange">
                    <el-table-column type="selection" min-width="5">
                    </el-table-column>
                    <el-table-column prop="code" label="事件编号" min-width="10">
                    <el-table-column prop="code" label="事件编号" min-width="18">
                        <template slot-scope="scope">
                            <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link>
                        </template>
                    </el-table-column>
                    <el-table-column prop="eventSource" label="问题来源" min-width="10">
                    <el-table-column prop="eventSource" label="问题来源" min-width="7">
                        <template slot-scope="scope">
                            <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="category" label="大类名称" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'category' :'category'" :label="mystatus===1 ? '大类名称' : '违建类别'" :min-width="mystatus===1?'10':'20'">
                    </el-table-column>
                    <el-table-column prop="type" label="小类名称" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '小类名称' : '违建地点'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="actionCause" label="案由" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'actionCause' :'communityId'" :label="mystatus===1 ? '案由' : '所属社区'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="site" label="报警点位" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '报警点位' : '违法建筑长、宽、高'" :min-width="mystatus===1?'10' :'20' ">
                        <template slot-scope="scope">
                            <div v-if="mystatus ===2"><span>{{scope.row.buildingLength+'米'+'、'+ scope.row.buildingWidth+'米'+'、'+scope.row.buildingHigh+'米'}}</span></div>
                            <div v-else>{{scope.row.site}}</div>
                        </template>
                    </el-table-column>
                    <el-table-column prop="streetId" label="所属区域" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'" :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="alarmTime" label="报警时间" min-width="15">
                    <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="mystatus===1">
                        <template slot-scope="scope">
                            <span>{{filterTime(scope.row.alarmTime)}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="continueTime" label="持续时间" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'" :label="mystatus===1 ? '持续时间' : '违法建筑材料'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="operation" label="操作" min-width="20">
                        <template slot-scope="scope">
@@ -68,7 +72,8 @@
                <!-- 详情页展示 -->
                <el-dialog :visible.sync="dialogView" width="80%" title="基础信息(人工)" v-if="dialogView"
                    :before-close="handleClose">
                    <MyDetail :info=info></MyDetail>
                    <MyDetail :info=info v-if="mystatus==1 ? true:false"></MyDetail>
                    <MyIllDetail :info=info v-else></MyIllDetail>
                </el-dialog>
                <!-- 上传页面 -->
                <el-dialog :visible.sync="dialogUpload" width="60%" title="上传处置结果"
@@ -105,16 +110,14 @@
    </div>
</template>
<script>
// import updateUser from "./updateUser"
import uploadVio from './updateUser/uploadResult/vio'
import uploadIll from "./updateUser/uploadResult/ill"
import MyDetail from '@/components/detail'
import helper from '@/utils/mydate'
import filterTime from '@/utils/mydate'
import MyIllDetail from '@/components/illdetail'
export default {
    components: {
        // updateUser,
        uploadVio,uploadIll,MyDetail
        uploadVio,uploadIll,MyDetail,MyIllDetail
    },
    data() {
        return {
@@ -164,7 +167,7 @@
                },
            ],
            statusArr:[],
            mystatus:0,
            mystatus:1,
            caseId:'',
        }
    },
src/views/operate/disposal/casepool/pool/createUser/ill/index.vue
@@ -8,45 +8,50 @@
            <div class="input-form">
                <el-form ref="user" label-width="160px" autoComplete="on" :model="ill" :rules="createillRules"
                    label-position="right">
                    <!-- 问题类型
                    <el-form-item class="optionItem" label="问题类型:" prop="category">
                        <el-select v-model="ill.type" placeholder="违建">
                            <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"
                                :disabled="item.disabled">
                            </el-option>
                        </el-select>
                    </el-form-item> -->
                    <!-- 违建类别 -->
                    <el-form-item class="optionItems" label="违建类别:" prop="categoryId">
                        <el-select v-model="ill.categoryId" placeholder="请选择违建类别" size="small">
                            <el-option v-for="item in bigKindList" :key="item.id" :label="item.name" :value="item.id"
                                :disabled="item.disabled">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <div class="user-item">
                        <!-- 问题类型 -->
                        <el-form-item class="optionItem" label="问题类型:" prop="category">
                            <el-select v-model="ill.type" placeholder="违建" disabled>
                                <el-option v-for="item in typeList" :key="item.name" :label="item.name"
                                    :value="item.value" :disabled="item.disabled">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <!-- 违建类别 -->
                        <el-form-item class="optionItems" label="违建类别:" prop="categoryId">
                            <el-select v-model="ill.categoryId" placeholder="请选择违建类别" size="small">
                                <el-option v-for="item in bigKindList" :key="item.id" :label="item.name"
                                    :value="item.id" :disabled="item.disabled">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                    <!-- 当事人姓名 -->
                    <el-form-item class="optionItems" label="当事人姓名:" prop="partyName">
                        <el-input placeholder="请填写当事人姓名" v-model="ill.partyName"></el-input>
                    </el-form-item>
                    <!-- 当事人身份证号 -->
                    <el-form-item class="optionItems" label="当事人身份证号:" prop="partyIdCard">
                        <el-input placeholder="请填写当事人身份证号" v-model="ill.partyIdCard"></el-input>
                        <el-input placeholder="请填写当事人身份证号" maxlength="18" v-model="ill.partyIdCard"></el-input>
                    </el-form-item>
                    <!-- 当事人联系电话 -->
                    <el-form-item class="optionItem" label="当事人联系电话:" prop="partyPhone">
                        <el-input v-model="ill.partyPhone" placeholder="请填写当事人联系电话"></el-input>
                        <el-input v-model="ill.partyPhone" maxlength="11" placeholder="请填写当事人联系电话"></el-input>
                    </el-form-item>
                    <!-- 违建地点 -->
                    <el-form-item class="optionItems" label="违建地点:" prop="site">
                        <el-input placeholder="请填写违建地点" v-model="ill.site"></el-input>
                    </el-form-item>
                    <!-- 所属社区 -->
                    <el-form-item class="optionItems" label="所属社区:" prop="communityId">
                        <el-select v-model="ill.communityId" placeholder="请选择所属社区">
                            <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <div class="user-item">
                        <!-- 违建地点 -->
                        <el-form-item class="optionItems" label="违建地点:" prop="site">
                            <el-input placeholder="请填写违建地点" v-model="ill.site"></el-input>
                        </el-form-item>
                        <!-- 所属社区 -->
                        <el-form-item class="optionItems" label="所属社区:" prop="communityId">
                            <el-select v-model="ill.communityId" placeholder="请选择所属社区">
                                <el-option v-for="item in typeList" :key="item.name" :label="item.name"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                    <!-- 身份证正反面照片 -->
                    <el-form-item class="optionItems" label="身份证正反面照片:" prop="positive">
                        <template>
@@ -88,13 +93,17 @@
                    <el-form-item class="optionItems" label="违建具体位置:" prop="position">
                        <el-input placeholder="请填写违建具体位置" v-model="ill.position"></el-input>
                    </el-form-item>
                    <el-form-item class="optionItems" label="违法建设长、宽、高:" prop="buildingLength">
                        <div class="area">
                    <div class="area">
                        <el-form-item class="optionItems" label="违法建设长、宽、高:"  prop="buildingLength">
                            <el-input placeholder="单位米" v-model="ill.buildingLength"></el-input>
                        </el-form-item>
                        <el-form-item class="optionItems" label-width='0px' prop="buildingWidth">
                            <el-input placeholder="单位米" v-model="ill.buildingWidth"></el-input>
                        </el-form-item>
                        <el-form-item class="optionItems" label-width='0px' prop="buildingHigh">
                            <el-input placeholder="单位米" v-model="ill.buildingHigh"></el-input>
                        </div>
                    </el-form-item>
                        </el-form-item>
                    </div>
                    <el-form-item class="optionItems" label="违法建设面积:" prop="buildingArea">
                        <el-input placeholder="请填写违法建设面积" v-model="ill.buildingArea"></el-input>
                    </el-form-item>
@@ -105,7 +114,7 @@
            </div>
            <div class="input-footer">
                <el-button type="primary" class="confirm" @click="handleUser">确定</el-button>
                <el-button class="back">返回</el-button>
                <el-button class="back" @click="handleBack">返回</el-button>
            </div>
        </div>
        <div class="map-area">
@@ -115,6 +124,7 @@
</template>
<script>
import MyMap from '@/components/map'
import { validateName, validatePhone, validateCardId, validateNum } from '@/utils/validate'
export default {
    components: {
        MyMap
@@ -122,14 +132,14 @@
    data() {
        const checkArea = (rule, value, callback) => {
            if (value) {
                callback();
                validateNum(value) ? callback() : callback(new Error('请输入正确的违法建设面积'))
            } else {
                callback(new Error('违法建设面积不能为空'))
            }
        }
        const checkHigh = (rule, value, callback) => {
            if (value) {
                callback();
                validateNum(value) ? callback() : callback(new Error('请输入正确的违法建设高度'))
            } else {
                callback(new Error('违法建设高度不能为空'));
@@ -137,7 +147,7 @@
        }
        const checkWidth = (rule, value, callback) => {
            if (value) {
                callback();
                validateNum(value) ? callback() : callback(new Error('请输入正确的违法建设宽度'))
            } else {
                callback(new Error('违法建设宽度不能为空'));
@@ -145,7 +155,7 @@
        }
        const checkLength = (rule, value, callback) => {
            if (value) {
                callback();
                validateNum(value) ? callback() : callback(new Error('请输入正确的违法建设长度'))
            } else {
                callback(new Error('违法建设长度不能为空'));
@@ -174,21 +184,21 @@
        }
        const checkIdCard = (rule, value, callback) => {
            if (value) {
                callback();
                validateCardId(value) ? callback() : callback(new Error('请输入正确的身份证号码'))
            } else {
                callback(new Error('当事人身份证号码不能为空'));
            }
        }
        const checkName = (rule, value, callback) => {
            if (value) {
                callback();
                validateName(value) ? callback() : callback(new Error('请输入正确的当事人信息'))
            } else {
                callback(new Error('当事人姓名不能为空'));
            }
        }
        const checkPhone = (rule, value, callback) => {
            if (value) {
                callback();
                validatePhone(value) ? callback() : callback(new Error('请输入正确的手机号码'))
            } else {
                callback(new Error('当事人联系电话不能为空'));
            }
@@ -228,27 +238,27 @@
        }
        return {
            ill: {
                buildingArea: 2.0,
                buildingHigh: 2.0,
                buildingLength: 2.0,
                buildingWidth: 1.0,
                buildingArea: '',
                buildingHigh: '',
                buildingLength: '',
                buildingWidth: '',
                // category: '',
                categoryId: '',
                communityId: '',
                materials: "钢筋",
                partyIdCard: "511025184612310213",
                partyName: "单数大",
                partyPhone: "17844631885",
                position: "新地方新低点",
                materials: "",
                partyIdCard: "",
                partyName: "",
                partyPhone: "",
                position: "",
                positive: "",
                negative: "",
                site: "新地方",
                site: "",
                alarmTime: '',
            },
            createillRules: {
                buildingArea: [
                    {
                        required: true, trigger: 'change', validator: checkArea
                        required: true, trigger: 'blur', validator: checkArea
                    }
                ],
                buildingHigh: [
@@ -331,9 +341,10 @@
        }
    },
    created() {
        const { getBigKind } = this;
        const { getBigKind, getCommityList } = this;
        // this.ill.category = this.mytype + 1;
        getBigKind();
        getCommityList();
    },
    methods: {
        handleUser() {
@@ -380,9 +391,6 @@
                }
            })
        },
        handleStop() {
            this.refresh();
        },
        // 获取大类列表
        getBigKind() {
            this.$axios({
@@ -393,7 +401,6 @@
                // console.log(res);
            })
        },
        // 获取行政区域
        // 获取token
        getToken() {
            const token = sessionStorage.getItem('token');
@@ -412,9 +419,40 @@
            const baseUrl = 'http://140.143.152.226:8410/';
            console.log(res);
            this.ill.negative = baseUrl + res.data.url1;
        },
        // 查询社区
        getCommityList() {
            this.$axios({
                method: 'get',
                url: 'sccg/dict/query_type?level=1&typeCode=' + '10'
            })
                .then(res => {
                    console.log(res);
                })
        },
        handleBack(){
            this.$emit('changeDialog', { flag: false });
        }
    },
    props: ['mytype', 'changeDialog','refresh']
    watch: {
        'ill.buildingLength': {
            handler(newVal, oldVal) {
                if (newVal) {
                    this.ill.buildingWidth !== '' && validateNum(newVal) && validateNum(this.ill.buildingWidth) ? this.ill.buildingArea = newVal * this.ill.buildingWidth : '';
                }
            },
            deep: true,
        },
        'ill.buildingWidth': {
            handler(newVal, oldVal) {
                if (newVal) {
                    this.ill.buildingLength !== '' && validateNum(newVal) && validateNum(this.ill.buildingLength) ? this.ill.buildingArea = newVal * this.ill.buildingLength : '';
                }
            },
            deep: true,
        }
    },
    props: ['mytype', 'changeDialog', 'refresh']
}
</script>
<style lang="scss" scoped>
@@ -422,8 +460,12 @@
    display: flex;
    padding: 20px 50px;
    .user-item {
        display: flex;
    }
    .input-area {
        flex: 1;
        flex: 3;
        padding: 10px 20px;
        .input-header {
@@ -439,19 +481,24 @@
                line-height: 40px;
            }
        }
        .el-form {
                &::v-deep .el-form-item__label {
                    color: #4b9bb7;
                }
                &::v-deep .el-input__inner {
                    background-color: #09152f;
                    border: 1px solid #17324c;
                }
                &::v-deep .el-textarea__inner {
                    background-color: #09152f;
                    border: 1px solid #17324c;
                }
            }
        .input-form {
            &::v-deep .el-input__inner {
                background-color: #09152f;
                border: 1px solid #17324c;
            }
            &::v-deep .el-textarea__inner {
                background-color: #09152f;
                border: 1px solid #17324c;
            }
            .upload-demo {
                position: relative;
@@ -488,7 +535,7 @@
    }
    .map-area {
        flex: 1;
        flex: 2;
    }
}
</style>
src/views/operate/disposal/casepool/pool/createUser/index.vue
@@ -17,11 +17,7 @@
    },
    methods: {
        toShow(idx, lab) {
            this.$confirm('您确定要去上报' + lab + '事件')
                .then(_ => {
                    this.$emit('getPageProp',{flag:false,type:idx});
                })
                .catch(_ => { console.log('err') });
            this.$emit('getPageProp',{flag:false,type:idx});
        }
    },
    props:['getPageProp']
src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
@@ -6,42 +6,52 @@
                <div class="input-header__tip">填写事件基础信息</div>
            </div>
            <div class="input-form">
                <el-form ref="user" label-width="100px" autoComplete="on" :model="vio" :rules="createRoleRules"
                <el-form ref="user" label-width="120px" autoComplete="on" :model="vio" :rules="createRoleRules"
                    label-position="right">
                    <!-- 问题类型 -->
                    <el-form-item class="optionItem" label="问题类型:" prop="category">
                        <el-select v-model="vio.category" placeholder="违规" disabled>
                            <el-option v-for="item in typeList" :key="item.label" :label="item.label"
                                :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <!-- 大类名称 -->
                    <el-form-item class="optionItems" label="大类名称:" prop="categoryId">
                        <el-select v-model="vio.categoryId" placeholder="请选择大类名称">
                            <el-option v-for="item in bigKindList" :key="item.id" :label="item.name" :value="item.id">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <!-- 小类名称 -->
                    <el-form-item class="optionItems" label="小类名称:" prop="typeId">
                        <el-select v-model="vio.typeId" placeholder="请选择小类名称">
                            <el-option v-for="item in smallKindList" :key="item.id" :label="item.name" :value="item.id"
                                :disabled="item.disabled">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <!-- 事件等级 -->
                    <el-form-item class="optionItems" label="事件等级:" prop="gradeId">
                        <el-select v-model="vio.gradeId" placeholder="请选择案件等级">
                            <el-option v-for="item in eventLevelList" :key="item.id" :label="item.name" :value="item.id"
                                :disabled="item.disabled">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <div class="user-item">
                        <!-- 问题类型 -->
                        <el-form-item class="optionItem" label="问题类型:" prop="category">
                            <el-select v-model="vio.category" placeholder="违规" disabled>
                                <el-option v-for="item in typeList" :key="item.label" :label="item.label"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <!-- 大类名称 -->
                        <el-form-item class="optionItems" label="大类名称:" prop="categoryId">
                            <el-select v-model="vio.categoryId" placeholder="请选择大类名称" @change="handleBigKindChange">
                                <el-option v-for="item in bigKindList" :key="item.id" :label="item.name"
                                    :value="item.id">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                    <div class="user-item">
                        <!-- 小类名称 -->
                        <el-form-item class="optionItems" label="小类名称:" prop="typeId" >
                            <el-select v-model="vio.typeId" placeholder="请选择小类名称" @change="handleSmallKindChange">
                                <el-option v-for="item in smallKindList" :key="item.id" :label="item.name"
                                    :value="item.id">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <!-- 事件等级 -->
                        <el-form-item class="optionItems" label="事件等级:" prop="gradeId">
                            <el-select v-model="vio.gradeId" placeholder="请选择案件等级">
                                <el-option v-for="item in eventLevelList" :key="item.id" :label="item.name"
                                    :value="item.id">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                    <!-- 案由 -->
                    <el-form-item class="optionItem" label="案由:" prop="actionCause">
                        <el-input v-model="vio.actionCause" placeholder="请输入案由"></el-input>
                        <el-select v-model="vio.actionCause" placeholder="请输入案由">
                                <el-option v-for="item in anYouList" :key="item.id" :label="item.name"
                                    :value="item.id" >
                                </el-option>
                            </el-select>
                        <!-- <el-input v-model="vio.actionCause" placeholder="请输入案由"></el-input> -->
                    </el-form-item>
                    <!-- 所属区县 -->
                    <!-- <el-form-item class="optionItems" label="所属区县:" prop="status">
@@ -51,69 +61,73 @@
                            </el-option>
                        </el-select>
                    </el-form-item> -->
                    <!-- 所属街道 -->
                    <el-form-item class="optionItems" label="所属街道:" prop="streetId">
                        <el-select v-model="vio.streetId" placeholder="请选择所属街道" @change="handleStreet">
                            <el-option v-for="item in streetList" :key="item.id" :label="item.name" :value="item.id"
                                :disabled="item.disabled">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <!-- 所属社区 -->
                    <el-form-item class="optionItems" label="所属社区:" prop="communityId">
                        <el-select v-model="vio.communityId" placeholder="请选择所属社区">
                            <el-option v-for="item in communityList" :key="item.id" :label="item.name" :value="item.id"
                                :disabled="item.disabled">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <div class="user-item">
                        <!-- 所属街道 -->
                        <el-form-item class="optionItems" label="所属街道:" prop="streetId">
                            <el-select v-model="vio.streetId" placeholder="请选择所属街道" @change="handleStreet">
                                <el-option v-for="item in streetList" :key="item.id" :label="item.name" :value="item.id"
                                    :disabled="item.disabled">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <!-- 所属社区 -->
                        <el-form-item class="optionItems" label="所属社区:" prop="communityId">
                            <el-select v-model="vio.communityId" placeholder="请选择所属社区">
                                <el-option v-for="item in communityList" :key="item.id" :label="item.name"
                                    :value="item.id" :disabled="item.disabled">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                    <!-- 事发地点 -->
                    <el-form-item class="optionItems" label="事发地点:" prop="site">
                        <el-input placeholder="请输入事发地详细位置" v-model="vio.site"></el-input>
                    </el-form-item>
                    <!-- 是否关联商铺 -->
                    <el-form-item class="optionItems" label="是否关联商铺:" prop="linkShop">
                        <el-radio-group v-model="vio.linkShop">
                            <el-radio :label="1">是</el-radio>
                            <el-radio :label="0">否</el-radio>
                        </el-radio-group>
                    </el-form-item>
                    <!-- 关联商铺名称 -->
                    <el-form-item class="optionItems" label="关联商铺名称:" prop="shopName">
                        <el-input placeholder="请填写关联商铺名称" v-model="vio.shopName"
                            :disabled="vio.linkShop === 1 ?false : true"></el-input>
                    </el-form-item>
                    <div class="user-item">
                        <!-- 是否关联商铺 -->
                        <el-form-item class="optionItems" label="是否关联商铺:" prop="linkShop">
                            <el-radio-group v-model="vio.linkShop" @change="handleLinkShop">
                                <el-radio :label="1">是</el-radio>
                                <el-radio :label="0">否</el-radio>
                            </el-radio-group>
                        </el-form-item>
                        <!-- 关联商铺名称 -->
                        <el-form-item class="optionItems" label="关联商铺名称:" prop="shopName">
                            <el-input placeholder="请填写关联商铺名称" v-model="vio.shopName"
                                :disabled="vio.linkShop === 1 ?false : true"></el-input>
                        </el-form-item>
                    </div>
                    <!-- 填写车牌号 -->
                    <el-form-item class="optionItems" label="填写车牌号:" prop="carNumber">
                        <el-input placeholder="请填写车牌号" v-model="vio.carNumber"></el-input>
                    </el-form-item>
                    <!-- 问题描述 -->
                    <el-form-item class="optionItems" label="问题描述:" prop="description">
                        <el-input type="textarea" maxlength="200" placeholder="请输入内容200字以内" v-model="vio.description"></el-input>
                        <el-input type="textarea" :rows="5" maxlength="200" placeholder="请输入内容200字以内"
                            v-model="vio.description">
                        </el-input>
                    </el-form-item>
                    <!-- 报警时间 -->
                    <el-form-item class="optionItems" label="报警时间:" prop="alarmTime">
                        <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="选择报警时间">
                        </el-date-picker>
                    </el-form-item>
                    <!-- 填写反映人信息 -->
                    <el-form-item class="optionItems" label="填写反映人信息">
                    </el-form-item>
                    <!-- 反映人情况 -->
                    <div class="user-item">
                        <el-form-item class="optionItems" label="反映人:" prop="informant">
                            <el-input v-model="vio.informant"></el-input>
                        </el-form-item>
                        <el-form-item class="optionItems" label="联系方式:" prop="informantPhoneCode">
                            <el-input v-model="vio.informantPhoneCode"></el-input>
                        </el-form-item>
                    </div>
                    <el-form-item class="optionItems" label="身份证号:" prop="informantIdCard">
                        <el-input v-model="vio.informantIdCard"></el-input>
                    </el-form-item>
                </el-form>
            </div>
            <div class="not-need">
                <div class="not-need__header">
                    填写反映人信息
                </div>
                <div class="not-need-item">
                    <label>反映人:</label>
                    <el-input v-model="vio.informant"></el-input>
                </div>
                <div class="not-need-item">
                    <label>联系方式:</label>
                    <el-input v-model="vio.informantPhoneCode"></el-input>
                </div>
                <div class="not-need-item">
                    <label>身份证号:</label>
                    <el-input v-model="vio.informantIdCard"></el-input>
                </div>
            </div>
            <div class="input-footer">
                <el-button type="primary" class="confirm" @click="handleSubmit">确定</el-button>
@@ -127,6 +141,7 @@
</template>
<script>
import MyMap from '@/components/map'
import { validateName, validatePhone, validateCarNum } from '@/utils/validate'
export default {
    components: {
        MyMap
@@ -195,6 +210,49 @@
                callback(new Error('报警时间不能为空'))
            }
        }
        const checkCarNumber = (rule, value, callback) => {
            if (value) {
                if (validateCarNum(value)) {
                    callback();
                } else {
                    callback(new Error('请输入正确的车牌号'));
                }
            } else {
                callback(new Error("车牌号不能为空"))
            }
        }
        const checkName = (rule, value, callback) => {
            if (value) {
                validateName(value) ? callback():callback(new Error('请输入正确的姓名'))
            } else {
                callback()
            }
        }
        const checkCardId = (rule, value, callback) => {
            if (value) {
                callback();
            } else {
                callback()
            }
        }
        const checkPhone = (rule, value, callback) => {
            if (value) {
                validatePhone(value) ? callback():callback(new Error('请输入正确的手机号'));
            } else {
                callback()
            }
        }
        const checkLink = (rule, value, callback) => {
            if (value) {
                callback();
            } else {
                if(this.vio.linkShop===1){
                    callback(new Error('关联商铺名字不能为空'));
                }else{
                    callback();
                }
            }
        }
        return {
            vio: {
                actionCause: "",//案由
@@ -224,7 +282,7 @@
                //车牌号
                carNumber: [
                    {
                        required: false,
                        required: true, trigger: 'blur', validator: checkCarNumber
                    }
                ],
                //大类
@@ -245,11 +303,27 @@
                        required: true, trigger: 'blur', validator: checkDesc
                    }
                ],
                // informant:"大苏打",//反映人
                // informantIdCard:"51102519910082831",//身份证号码
                // informantPhoneCode:"17844631885",//反映人联系方式
                informant:[
                    {
                        required: false, trigger: 'blur', validator: checkName
                    }
                ],
                informantIdCard:[
                    {
                        required: false, trigger: 'blur', validator: checkCardId
                    }
                ],
                informantPhoneCode:[
                    {
                        required: false, trigger: 'blur', validator: checkPhone
                    }
                ],
                // linkShop:0,//是否关联商铺(0否1是)
                // shopName:"",//关联商铺名称
                shopName:[
                    {
                        required: false, trigger: 'blur', validator: checkLink
                    }
                ],
                //事发地点
                site: [
                    {
@@ -294,42 +368,69 @@
                    value: 2.
                }
            ],
            streetList:[],
            communityList:[],
            streetList: [],
            communityList: [],
            anYouList:[],
        }
    },
    created() {
        const { getBigKind, getEventLevel, getSmallKind,getStreetList } = this;
        const { setBigKindList,getStreetList,getEventLevel } = this;
        console.log(this.mytype);
        this.vio.category = this.mytype + 1;
        getBigKind();
        getSmallKind();
        getEventLevel();
        setBigKindList();
        getStreetList();
        getEventLevel();
    },
    methods: {
        handleStop() {
            this.refresh();
        },
        // 获取大类列表
        getBigKind() {
            this.$axios({
                method: 'get',
                url: 'sccg/violations/query/type_first'
            }).then(res => {
                this.bigKindList = res.data;
                // console.log(res);
        // 设置大类
        async setBigKindList(){
            this.bigKindList = await this.getBigKind();
        },
        // 设置小类
        async setSmallKindList(id){
            let arr = await this.getSmallKind();
            this.smallKindList = arr.filter(item=>{
                if(item.parentId===id){
                    return item;
                }
            })
        },
        // 获取小类列表
        getSmallKind() {
            this.$axios({
        // 设置案由
        async setAnYouList(id){
            let arr = await this.getAnYouList();
            this.anYouList = arr.filter(item=>{
                if(item.parentId===id){
                    return item;
                }
            })
            console.log(this.anYouList);
        },
        // 查询大类列表
        async getBigKind() {
            let arr = [];
            await this.$axios({
                method: 'get',
                url: 'sccg/violations/query/type_second'
                url: "sccg/violations/query/type_second",
            })
                .then(res => {
                    this.smallKindList = res.data;
                    arr = res.data;
                })
            return arr
        },
        // 获取小类列表
        async getSmallKind() {
            let arr = [];
            await this.$axios({
                method: 'get',
                url: "sccg/violations/query/type_third",
            })
                .then(res => {
                    arr = res.data;
                })
            return arr
        },
        // 获取案件等级列表
        getEventLevel() {
@@ -340,6 +441,19 @@
                .then(res => {
                    this.eventLevelList = res.data;
                })
        },
        // 查询所属案由
        async getAnYouList() {
            let arr = [];
            await this.$axios({
                method: 'get',
                url: 'sccg/violations/query/type_four'
            })
                .then(res => {
                    arr = res.data;
                    console.log(res);
                })
            return arr;
        },
        // 提交注册信息
        handleSubmit() {
@@ -373,32 +487,48 @@
            })
        },
        // 返回
        handleBack(){
            this.$emit('changeDialog',{flag:false})
        handleBack() {
            this.$emit('changeDialog', { flag: false })
        },
        // 获取街道信息
        getStreetList(){
        getStreetList() {
            this.$axios({
                method:'get',
                url:'sccg/dict/query_Street_type'
                method: 'get',
                url: 'sccg/dict/query_Street_type'
            })
            .then(res=>{
                this.streetList = res.data;
            })
                .then(res => {
                    this.streetList = res.data;
                })
        },
        // 街道更改
        handleStreet(id){
        handleStreet(id) {
            console.log(id);
            this.vio.communityId = '';
            this.$axios({
                method:'get',
                url:'sccg/dict/query_social_type?id='+id
                method: 'get',
                url: 'sccg/dict/query_social_type?id=' + id
            })
            .then(res=>{
                this.communityList = res.data;
            })
        }
                .then(res => {
                    this.communityList = res.data;
                })
        },
        // 关联商铺
        handleLinkShop(value) {
            value === 0 ? this.vio.shopName = '' : '';
        },
        // 大类选中
        handleBigKindChange(id){
            this.vio.actionCause = '';
            this.vio.typeId = '';
            this.setSmallKindList(id);
        },
        // 小类选中
        handleSmallKindChange(id){
            this.vio.actionCause = '';
            this.setAnYouList(id);
        }
    },
    props: ['mytype', 'changeDialog','refresh']
    props: ['mytype', 'changeDialog', 'refresh']
}
</script>
<style lang="scss" scoped>
@@ -422,6 +552,11 @@
            .input-header__tip {
                line-height: 40px;
            }
        }
        .user-item {
            display: flex;
            justify-content: space-between;
        }
        .input-form {
@@ -459,6 +594,19 @@
            line-height: 40px;
        }
        .my-sp-item {
            display: flex;
            .not-item-left,
            .not-item-right {
                display: flex;
                .el-input {
                    flex: 1;
                }
            }
        }
        .not-need-item {
            line-height: 40px;
            margin-bottom: 22px;
@@ -470,6 +618,10 @@
                text-align: right;
            }
            .el-input {
                flex: 1;
            }
            .not-need__inner {
                flex: 1;
                line-height: 40px;
src/views/operate/disposal/casepool/pool/index.vue
@@ -24,7 +24,7 @@
                    </el-dialog>
                    <!-- 事件登记 -->
                    <el-dialog :before-close="handleClose" :visible.sync="dialogNewAdd"
                        :title="newAddType === 0 ? '违规事件登记' : '违建事件登记' " width="60%" v-if="dialogNewAdd">
                        :title="newAddType === 0 ? '违规事件登记' : '违建事件登记' " width="80%" v-if="dialogNewAdd">
                        <!-- 违建登记 -->
                        <MyIll v-if="newAddType === 1" :refresh="getUserList" :mytype=newAddType
                            @changeDialog=changeDialog />
@@ -52,29 +52,29 @@
                    @selection-change="tableChange">
                    <el-table-column type="selection" min-width="5">
                    </el-table-column>
                    <el-table-column prop="code" label="事件编号" min-width="10">
                    <el-table-column prop="code" label="事件编号" min-width="18">
                        <template slot-scope="scope">
                            <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link>
                        </template>
                    </el-table-column>
                    <el-table-column prop="eventSource" label="问题来源" min-width="10">
                    <el-table-column prop="eventSource" label="问题来源" min-width="7">
                        <template slot-scope="scope">
                            <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column :prop="mystatus === 1 ? 'category' :'category'" :label="mystatus===1 ? '大类名称' : '违建类别'" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'category' :'category'" :label="mystatus===1 ? '大类名称' : '违建类别'" :min-width="mystatus===1?'10':'20'">
                    </el-table-column>
                    <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '小类名称' : '违建地点'" min-width="10">
                    </el-table-column>
                    <el-table-column :prop="mystatus === 1 ? 'actionCause' :'communityId'" :label="mystatus===1 ? '案由' : '所属社区'" min-width="10">
                    </el-table-column>
                    <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '报警点位' : '违法建筑长、宽、高'" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '报警点位' : '违法建筑长、宽、高'" :min-width="mystatus===1?'10' :'20' ">
                        <template slot-scope="scope">
                            <div v-if="mystatus ===2"><span>{{scope.row.buildingLength+'米'+'、'+ scope.row.buildingWidth+'米'+'、'+scope.row.buildingHigh+'米'}}</span></div>
                            <div v-else>{{scope.row.site}}</div>
                        </template>
                    </el-table-column>
                    <el-table-column :prop="mystatus === 1 ? 'streetId' :'buildingArea'" :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10">
                    <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'" :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="mystatus===1">
                        <template slot-scope="scope">
src/views/operate/management/myIndex/components/closure/index.vue
@@ -125,7 +125,7 @@
            if (value) {
                callback();
            } else {
                callback(new Error('审核意见不能为空'))
                callback()
            }
        }
        const checkFinal = (rule, value, callback) => {
@@ -196,7 +196,7 @@
        // 提交审核意见
        handleSubmit() {
            const { baseCase } = this;
            this.$refs.viewForm.validate((valid) => {
            this.$refs.opinionForm.validate((valid) => {
                if (valid) {
                    this.$axios({
                        method: 'put',
src/views/operate/management/myIndex/components/examine/index.vue
@@ -162,28 +162,34 @@
        handleSubmit(mystatus) {
            // this.getUserLoginInfo();
            const { baseCase } = this;
            this.$axios({
                method: 'post',
                url: 'sccg/check_handle/check',
                data: {
                    baseCaseId: baseCase.id,
                    checkOpinion: baseCase.auditOpinion,
                    currentUser: baseCase.createUser,
                    status: mystatus,
            this.$refs.viewForm.validate((valid) => {
                if (valid) {
                    this.$axios({
                        method: 'post',
                        url: 'sccg/check_handle/check',
                        data: {
                            baseCaseId: baseCase.id,
                            checkOpinion: baseCase.auditOpinion,
                            currentUser: baseCase.createUser,
                            status: mystatus,
                        }
                    })
                        .then(res => {
                            console.log(res);
                            if (res.code === 200) {
                                this.$message({
                                    type: 'success',
                                    message: mystatus === 0 ? '驳回成功' : '审核通过'
                                })
                                this.$emit('closeDialog', { flag: false });
                            }
                        })
                        .catch(err => { console.log(err) });
                }else{
                    return false;
                }
            })
                .then(res => {
                    console.log(res);
                    if (res.code === 200) {
                        this.$message({
                            type: 'success',
                            message: mystatus === 0 ? '驳回成功' : '审核通过'
                        })
                        this.$emit('closeDialog', { flag: false });
                    }
                })
                .catch(err => { console.log(err) });
        },
        // 获取当前用户登录信息
        getUserLoginInfo() {
src/views/operate/management/myIndex/index.vue
@@ -26,34 +26,42 @@
                    @selection-change="tableChange">
                    <el-table-column type="selection" min-width="5">
                    </el-table-column>
                    <el-table-column prop="code" label="事件编号" min-width="10">
                    <el-table-column prop="code" label="事件编号" min-width="18">
                        <template slot-scope="scope">
                            <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link>
                        </template>
                    </el-table-column>
                    <el-table-column prop="eventSource" label="问题来源" min-width="10">
                    <el-table-column prop="eventSource" label="问题来源" min-width="7">
                        <template slot-scope="scope">
                            <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="category" label="大类名称" min-width="10">
                    <el-table-column :prop="myproblem === 1 ? 'category' :'category'" :label="myproblem===1 ? '大类名称' : '违建类别'" :min-width="myproblem===1?'10':'20'">
                    </el-table-column>
                    <el-table-column prop="type" label="小类名称" min-width="10">
                    <el-table-column :prop="myproblem === 1 ? 'type' :'site'" :label="myproblem===1 ? '小类名称' : '违建地点'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="actionCause" label="案由" min-width="10">
                    <el-table-column :prop="myproblem === 1 ? 'actionCause' :'communityId'" :label="myproblem===1 ? '案由' : '所属社区'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="site" label="报警点位" min-width="10">
                    <el-table-column :prop="myproblem === 1 ? 'site' :''" :label="myproblem===1 ? '报警点位' : '违法建筑长、宽、高'" :min-width="myproblem===1?'10' :'20' ">
                        <template slot-scope="scope">
                            <div v-if="myproblem ===2"><span>{{scope.row.buildingLength+'米'+'、'+ scope.row.buildingWidth+'米'+'、'+scope.row.buildingHigh+'米'}}</span></div>
                            <div v-else>{{scope.row.site}}</div>
                        </template>
                    </el-table-column>
                    <el-table-column prop="streetId" label="所属区域" min-width="10">
                    <el-table-column :prop="myproblem === 1 ? 'street' :'buildingArea'" :label="myproblem===1 ? '所属区域' : '违法建筑面积'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="alarmTime" label="报警时间" min-width="15">
                    <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="myproblem===1">
                        <template slot-scope="scope">
                            <span>{{filterTime(scope.row.alarmTime)}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="continueTime" label="持续时间" min-width="10">
                    <el-table-column :prop="myproblem === 1 ? 'continueTime' :'materials'" :label="myproblem===1 ? '持续时间' : '违法建筑材料'" min-width="10">
                    </el-table-column>
                    <el-table-column prop="operation" label="操作" min-width="20">
                        <template slot-scope="scope">
                            <div class="btn">
                                <span @click="handleExamine(scope.row)" v-if="instatus===7 ? true : false">审核</span>
                                <!-- v-if="instatus===7 ? true : false" -->
                                <span @click="handleExamine(scope.row)" v-if="instatus===7">审核</span>
                                <!-- <span class="line" v-if="instatus===7 ? true : false">|</span> -->
                                <span @click="handleClosure(scope.row)" v-if="instatus===8">结案</span>
                            </div>
src/views/systemSetting/baseSetting/role/index.vue
@@ -40,8 +40,9 @@
                    </el-table-column>
                    <el-table-column prop="status" label="启用" min-width="5">
                        <template slot-scope="scope">
                            <el-switch class="switchStyle" v-model="scope.row.status" active-text="开" inactive-text="关"
                                active-color="#3fef9a" inactive-color="#000212" @change="handleChangeStatus(scope.row)">
                            <!-- active-text="开" inactive-text="关" -->
                            <el-switch class="switchStyle" v-model="scope.row.status"
                                active-color="#3fef9a" inactive-color="#000212" disabled>
                            </el-switch>
                        </template>
                    </el-table-column>
@@ -55,7 +56,7 @@
                                <!-- <span>删除</span> -->
                                <span @click="handleUpdate(scope.row)">权限设置</span>
                                <span class="line">|</span>
                                <span @click="handleStop(scope.row)">停用</span>
                                <span @click="handleChangeStatus(scope.row)">{{scope.row.status === true ?'停用':'启用' }}</span>
                                <span class="line">|</span>
                                <span @click="handleDelete([scope.row.id])">删除</span>
                            </div>
@@ -252,19 +253,12 @@
        // 修改用户状态
        handleChangeStatus(obj) {
            let { id, status } = obj;
            status == true ? status = 1 : status = 0;
            console.log(id, status);
            status == true ? status = 0 : status = 1;
            this.$axios.post(`/sccg/role/updateStatus/` + id + '?status=' + status).then(res => {
                console.log(res);
                if(res.code ===200){
                    this.search();
                }
            })
        },
        handleStop(obj) {
            // let { id, status } = obj;
            // status == true ? status = 1 : status = 0;
            // console.log(id, status);
            // this.$axios.post(`/sccg/role/updateStatus/` + id + '?status=' + status).then(res => {
            //     this.getUserList();
            // })
        },
        // 获取用户列表
        getUserList() {
@@ -354,6 +348,7 @@
                .then(_ => {
                    this.dialogUpdate = false;
                    this.dialogCreate = false;
                    this.updateFlag = false;
                    done();
                })
                .catch(_ => { });
src/views/systemSetting/baseSetting/role/updateUser/index.vue
@@ -8,8 +8,8 @@
                            :default-checked-keys="checkedIds" default-expand-all node-key="id">
                        </el-tree>
                    </div>
                    <div class="my-tree__bottom"></div>
                    <div class="my-tree__right"></div>
                    <!-- <div class="my-tree__bottom"></div> -->
                    <!-- <div class="my-tree__right"></div> -->
                </div>
                <div class="selection">
                    <el-button class="cancel" @click="resetRole">取消</el-button>
@@ -129,7 +129,7 @@
                border-radius: 4px;
                .my-tree__wrap {
                    overflow: scroll;
                    overflow-y: scroll;
                    height: 200px;
                }
src/views/systemSetting/baseSetting/role/viewRole/index.vue
@@ -8,6 +8,10 @@
                    <el-form-item class="optionItem" label="角色名称:" prop="name">
                        <el-input v-model="role.name" placeholder="请填写角色名称" disabled></el-input>
                    </el-form-item>
                    <!-- 角色类型 -->
                    <el-form-item class="optionItem" label="角色类型:" prop="roleType">
                        <el-input v-model="role.roleType" placeholder="请选择角色类型" disabled></el-input>
                    </el-form-item>
                    <!-- 角色描述 -->
                    <el-form-item class="optionItem" label="角色描述:" prop="description">
                        <el-input type="textarea" v-model="role.description" placeholder="请输入描述内容200字以内" disabled></el-input>
src/views/systemSetting/baseSetting/user/components/header/index.vue
@@ -3,7 +3,7 @@
        <div class="headerContent">
            <div class="search">
                <span>筛选条件:</span>
                <el-input placeholder="请输入手机号进行查询" v-model="search"></el-input>
                <el-input placeholder="请输入内容" v-model="search"></el-input>
                <div class="findBtn">
                    <el-button type="primary" @click="setSearch">查询</el-button>
                </div>
src/views/systemSetting/baseSetting/user/components/main/index.vue
@@ -388,11 +388,11 @@
    border: 1pox solid #fff;
    .mainTitle {
        line-height: 60px;
        line-height:60px;
    }
    .tools {
        display: flex;
        display : flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 20px;
src/views/systemSetting/baseSetting/user/components/password/index.vue
@@ -123,6 +123,7 @@
        // 清空表单
        resetForm() {
            this.$refs.pwd.resetFields();
            this.$emit('closeDialog',{flag:false});
        }
    }
}