zhanghua
2025-04-14 829f5116884f98643ffc5b2a548a600d40c0cedb
处理图片显示问题
12个文件已修改
11542 ■■■■■ 已修改文件
package-lock.json 10878 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/myUpload/index.vue 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/solveProblem/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/layout/components/Main/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue 133 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/pool/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/images/updateUser/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/myIndex/index.vue 326 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json
Diff too large
src/components/myUpload/index.vue
@@ -1,41 +1,20 @@
<template>
    <div class="my-upload">
        <div v-if="pictureList.length > 0" class="image-box">
            <div
                v-for="image in pictureList"
                :class="{
                    'image-box-item': true,
                    'image-box-item-cover': isShowUpload
                }"
            >
                <span
                    v-if="isShowUpload"
                    @click="handleDeletePicture(image)"
                    class="image-delete-icon el-icon-delete"
                ></span>
                <el-image
                    :key="image"
                    class="image-content"
                    :src="image"
                    :preview-src-list="[image]"
                ></el-image>
            <div v-for="image in pictureList" :class="{
                'image-box-item': true,
                'image-box-item-cover': isShowUpload
            }">
                <span v-if="isShowUpload" @click="handleDeletePicture(image)"
                    class="image-delete-icon el-icon-delete"></span>
                <el-image :key="image" class="image-content" :src="setPicUrl(image)"
                    :preview-src-list="[image]"></el-image>
            </div>
        </div>
        <el-upload
            v-if="isShowUpload && pictureList.length < limit"
            :file-list="fileList"
            v-loading="loading"
            element-loading-spinner="el-icon-loading"
            element-loading-background="rgba(0, 0, 0, 0.8)"
            action=""
            :multiple="multiple"
            :show-file-list="flag"
            :limit="limit"
            :list-type="listType"
            :auto-upload="true"
            :http-request="handleUpload"
            style="margin-left: 14px"
        >
        <el-upload v-if="isShowUpload && pictureList.length < limit" :file-list="fileList" v-loading="loading"
            element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)" action=""
            :multiple="multiple" :show-file-list="flag" :limit="limit" :list-type="listType" :auto-upload="true"
            :http-request="handleUpload" style="margin-left: 14px">
            <div class="upload-btn">
                <i class="el-icon-plus"></i>
                <span>上传图片</span>
@@ -45,6 +24,7 @@
</template>
<script>
import imageManagement from "@/api/operate/imageManagement";
import { FILE_ORIGINAL_PATH } from "@/utils";
export default {
    data() {
@@ -95,8 +75,6 @@
            formData.append('file', file);
            imageManagement.importImage(formData)
                .then((url) => {
                    // .then(({ url1, url2, url3, url4 }) => {
                    //   const url = url1 ?? url2 ?? url3 ?? url4;
                    this.$emit('setPictureUrl', { url: url });
                    this.loading = false;
                })
@@ -109,6 +87,10 @@
        handleDeletePicture(imageUrl) {
            this.$emit("delPictureUrl", { url: imageUrl });
        },
        setPicUrl(item) {
            item = item.replace("[", "").replace("]", "");
            return FILE_ORIGINAL_PATH + item;
        }
    },
    props: {
        pictureList: {
@@ -151,6 +133,7 @@
            line-height: 22px;
        }
    }
    .image-box {
        display: flex;
        flex-wrap: wrap;
@@ -193,6 +176,7 @@
        width: 100px;
        height: 100px;
    }
    :deep(.el-upload-list__item) {
        width: 100px;
        height: 100px;
src/components/solveProblem/index.vue
@@ -75,7 +75,6 @@
        if (baseCase.dispatchInfo) {
            this.dispatchInfo = baseCase.dispatchInfo;
        }
        debugger
        if (baseCase.state === 6) {
            this.active = 1;
        } else if (baseCase.state === 7) {
src/views/layout/components/Main/index.vue
@@ -361,7 +361,7 @@
  min-width: 1024px;
  padding: 0;
  .content {
    padding: 11px;
    padding: 5px;
    height: 100%;
    background-color: #F5F9FA;
    overflow: auto;
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue
@@ -2,60 +2,32 @@
    <div class="arrive">
        <div class="arrive-title">到达现场情况</div>
        <div class="arrive-form">
            <el-form
                ref="arriveForm"
                label-width="160px"
                :model="arrive"
                :rules="arriveRules"
                autoComplete="on"
            >
            <el-form ref="arriveForm" label-width="160px" :model="arrive" :rules="arriveRules" autoComplete="on">
                <!-- 到达时间 -->
                <el-form-item label="到达时间:" prop="arrivalTime">
                    <el-date-picker
                        v-model="arrive.arrivalTime"
                        value-format="yyyy-MM-dd HH:mm:ss"
                        type="datetime"
                        placeholder="选择到达时间"
                    >
                    <el-date-picker v-model="arrive.arrivalTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
                        placeholder="选择到达时间">
                    </el-date-picker>
                </el-form-item>
                <!-- 到达地址 -->
                <el-form-item label="到达地址:" prop="arrivalAddress">
                    <el-input
                        v-model="arrive.arrivalAddress"
                        placeholder="请输入地址"
                    ></el-input>
                    <el-input v-model="arrive.arrivalAddress" placeholder="请输入地址"></el-input>
                </el-form-item>
                <!-- 现场情况说明 -->
                <el-form-item label="现场情况说明:" prop="situationExplain">
                    <el-input
                        type="textarea"
                        :autosize="{ minRows: 2, maxRows: 4 }"
                        maxlength="200"
                        show-word-limit
                        v-model="arrive.situationExplain"
                        placeholder="请输入情况说明,限制200字以内"
                    ></el-input>
                    <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" maxlength="200" show-word-limit
                        v-model="arrive.situationExplain" placeholder="请输入情况说明,限制200字以内"></el-input>
                </el-form-item>
                <!-- 信访回复说明 -->
                <el-form-item label="信访回复说明:" prop="replyExplain">
                    <el-input
                        type="textarea"
                        :autosize="{ minRows: 2, maxRows: 4 }"
                        maxlength="200"
                        show-word-limit
                        v-model="arrive.replyExplain"
                        placeholder="请输入回访说明,限制200字以内"
                    ></el-input>
                    <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" maxlength="200" show-word-limit
                        v-model="arrive.replyExplain" placeholder="请输入回访说明,限制200字以内"></el-input>
                </el-form-item>
                <!-- 现场情况照片 -->
                <el-form-item label="现场情况照片:" prop="situationPic">
                    <div class="upImg">
                        <MyUpload
                            :picture-list="arrive.situationPic"
                            @setPictureUrl="setPicUrl"
                            @delPictureUrl="delPicUrl"
                        ></MyUpload>
                        <MyUpload :picture-list="arrive.situationPic" @setPictureUrl="setPicUrl"
                            @delPictureUrl="delPicUrl"></MyUpload>
                        <div class="tip">
                            {{ arrive.situationPic.length }} / 4
                        </div>
@@ -133,6 +105,10 @@
        if (this.arriveData) {
            this.arrive = deepClone(this.arriveData);
            this.arrive.situationPic = this.arriveData.situationPic.split(',');
            this.arrive.situationPic.forEach(item => {
                item = FILE_ORIGINAL_PATH + item
            });
        }
    },
    methods: {
@@ -162,8 +138,7 @@
        setPicUrl({ url }) {
            const baseUrl = '';
            if (this.arrive.situationPic.length < 4) {
                this.arrive.situationPic.push(FILE_ORIGINAL_PATH + url)
                this.arrive.situationPic.push(url)
            }
        },
        //删除图片
@@ -188,6 +163,7 @@
.upImg {
    display: flex;
    overflow: auto;
    .tip {
        position: absolute;
        bottom: 0;
@@ -241,5 +217,4 @@
// ::v-deep .el-form-item__label {
//     color: #4b9bb7;
// }
</style>
// }</style>
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue
@@ -2,88 +2,45 @@
    <div class="evidence">
        <div class="evidence-title">调查取证</div>
        <div class="evidence-form">
            <el-form
                ref="evidenceForm"
                label-width="160px"
                :model="evidence"
                :rules="evidenceRules"
                autoComplete="on"
            >
            <el-form ref="evidenceForm" label-width="160px" :model="evidence" :rules="evidenceRules" autoComplete="on">
                <div class="evidence-item">
                    <!-- 承办队员 -->
                    <el-form-item label="承办队员:" prop="undertaker">
                        <el-input
                            v-model="evidence.undertaker"
                            placeholder="请输入姓名"
                        ></el-input>
                        <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 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"
                        value-format="yyyy-MM-dd HH:mm:ss"
                        type="datetime"
                        placeholder="选择时间"
                    >
                    <el-date-picker v-model="evidence.investigationTime" value-format="yyyy-MM-dd HH:mm:ss"
                        type="datetime" placeholder="选择时间">
                    </el-date-picker>
                </el-form-item>
                <!-- 地址 -->
                <el-form-item label="地址:" prop="address">
                    <el-input
                        v-model="evidence.address"
                        placeholder="请输入地址"
                    ></el-input>
                    <el-input v-model="evidence.address" placeholder="请输入地址"></el-input>
                </el-form-item>
                <!-- 案由 -->
                <el-form-item label="案由:" prop="caseAction">
                    <el-input
                        v-model="evidence.caseAction"
                        placeholder="请输入案由"
                    ></el-input>
                    <el-input v-model="evidence.caseAction" placeholder="请输入案由"></el-input>
                </el-form-item>
                <!-- 当事人信息 -->
                <el-form-item
                    label="当事人信息:"
                    prop="userInfo"
                    class="sp-user-info"
                >
                    <el-input
                        suffix-icon="el-icon-s-order"
                        v-model="evidence.userInfo"
                        @focus="openDialog"
                    ></el-input>
                <el-form-item label="当事人信息:" prop="userInfo" class="sp-user-info">
                    <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">
                    <el-input
                        type="textarea"
                        :autosize="{ minRows: 2, maxRows: 4 }"
                        maxlength="200"
                        show-word-limit
                        v-model="evidence.description"
                        placeholder="请输入处置结果,限制200字以内"
                    ></el-input>
                    <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" maxlength="200" show-word-limit
                        v-model="evidence.description" placeholder="请输入处置结果,限制200字以内"></el-input>
                </el-form-item>
                <!-- 照片附件 -->
                <el-form-item label="照片附件:" prop="pic">
                    <div class="upImg">
                        <MyUpload
                            :picture-list="evidence.pic"
                            @setPictureUrl="setPicUrl"
                            @delPictureUrl="delPicUrl"
                        ></MyUpload>
                        <MyUpload :picture-list="evidence.pic" @setPictureUrl="setPicUrl" @delPictureUrl="delPicUrl">
                        </MyUpload>
                        <div class="tip">{{ evidence.pic.length }} / 4</div>
                    </div>
                </el-form-item>
@@ -95,19 +52,9 @@
                <i class="el-icon-close" @click="closeUserForm"></i>
            </div>
            <div class="user-form-content">
                <el-form
                    ref="userForm"
                    label-width="120px"
                    :model="user"
                    :rules="userRules"
                    autoComplete="on"
                >
                <el-form ref="userForm" label-width="120px" :model="user" :rules="userRules" autoComplete="on">
                    <!-- 类型 -->
                    <el-form-item
                        label="类型:"
                        prop="illegalType"
                        :disabled="true"
                    >
                    <el-form-item label="类型:" prop="illegalType" :disabled="true">
                        <el-input v-model="user.illegalType"></el-input>
                    </el-form-item>
                    <!-- 姓名、手机号 -->
@@ -124,16 +71,9 @@
                    <!-- 证件 -->
                    <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.id"
                                    :label="item.name"
                                    :value="item.id"
                                >
                            <el-select v-model="user.certificateType" placeholder="请选择">
                                <el-option v-for="item in cardOptions" :key="item.id" :label="item.name"
                                    :value="item.id">
                                </el-option>
                            </el-select>
                        </el-form-item>
@@ -145,16 +85,9 @@
                    <div class="user-item">
                        <!-- 文化程度 -->
                        <el-form-item label="文化程度:" prop="educationDegree">
                            <el-select
                                v-model="user.educationDegree"
                                placeholder="请选择"
                            >
                                <el-option
                                    v-for="item in degreeOptions"
                                    :key="item.id"
                                    :label="item.name"
                                    :value="item.id"
                                >
                            <el-select v-model="user.educationDegree" placeholder="请选择">
                                <el-option v-for="item in degreeOptions" :key="item.id" :label="item.name"
                                    :value="item.id">
                                </el-option>
                            </el-select>
                        </el-form-item>
@@ -171,16 +104,9 @@
                    <div class="user-item">
                        <!-- 民族 -->
                        <el-form-item label="民族:" prop="nation">
                            <el-select
                                v-model="user.nation"
                                placeholder="请选择"
                            >
                                <el-option
                                    v-for="item in nationOptions"
                                    :key="item.id"
                                    :label="item.name"
                                    :value="item.id"
                                >
                            <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-form-item>
@@ -354,6 +280,8 @@
        this.$set(this.user, 'illegalType', this.illegalType);
        if (this.evidenceData) {
            this.evidence = deepClone(this.evidenceData);
            console.log(this.evidenceData.pic);
            this.evidence.pic = this.evidenceData.pic.split(',');
            this.user = this.evidence.partyInfo;
            this.evidence.userInfo = this.evidence.partyInfo.name;
@@ -420,8 +348,7 @@
        setPicUrl({ url }) {
            const baseUrl = '';
            if (this.evidence.pic.length < 4) {
                this.evidence.pic.push(FILE_ORIGINAL_PATH + url)
                this.evidence.pic.push(url)
            }
        },
        //删除图片
@@ -437,9 +364,11 @@
.evidence {
    line-height: 60px;
    position: relative;
    .evidence-item {
        display: flex;
    }
    .evidence-title {
        line-height: 60px;
        font-weight: 650;
@@ -512,11 +441,13 @@
    padding-bottom: 60px;
}
.sp-user-info {
    ::v-deep .el-input {
        width: 200px;
    }
}
.user-form-content {
    padding-top: 20px;
src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue
@@ -96,7 +96,7 @@
</script>
<style lang="scss" scoped>
.vio {
    padding: 20px 200px 100px;
    padding: 20px 100px;
}
.footer {
src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue
@@ -2,76 +2,35 @@
    <div class="arrive">
        <div class="arrive-title">到大现场情况</div>
        <div class="arrive-form">
            <el-form
                ref="arriveForm"
                label-width="160px"
                :model="arrive"
                :rules="arriveRules"
                autoComplete="on"
            >
            <el-form ref="arriveForm" label-width="160px" :model="arrive" :rules="arriveRules" autoComplete="on">
                <!-- 到达时间 -->
                <el-form-item label="到达时间:" prop="arrivalTime">
                    <el-date-picker
                        v-model="arrive.arrivalTime"
                        type="datetime"
                        placeholder="选择到达时间"
                    >
                    <el-date-picker v-model="arrive.arrivalTime" type="datetime" placeholder="选择到达时间">
                    </el-date-picker>
                </el-form-item>
                <!-- 到达地址 -->
                <el-form-item label="到达地址:" prop="arrivalAddress">
                    <el-input
                        v-model="arrive.arrivalAddress"
                        placeholder="请输入地址"
                    ></el-input>
                    <el-input v-model="arrive.arrivalAddress" placeholder="请输入地址"></el-input>
                </el-form-item>
                <!-- 现场情况说明 -->
                <el-form-item label="现场情况说明:" prop="situationExplain">
                    <el-input
                        type="textarea"
                        :autosize="{ minRows: 2, maxRows: 4 }"
                        maxlength="200"
                        show-word-limit
                        v-model="arrive.situationExplain"
                        placeholder="请输入情况说明,限制200字以内"
                    ></el-input>
                    <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" maxlength="200" show-word-limit
                        v-model="arrive.situationExplain" placeholder="请输入情况说明,限制200字以内"></el-input>
                </el-form-item>
                <!-- 信访回复说明 -->
                <el-form-item label="信访回复说明:" prop="replyExplain">
                    <el-input
                        type="textarea"
                        :autosize="{ minRows: 2, maxRows: 4 }"
                        maxlength="200"
                        show-word-limit
                        v-model="arrive.replyExplain"
                        placeholder="请输入回访说明,限制200字以内"
                    ></el-input>
                    <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" maxlength="200" show-word-limit
                        v-model="arrive.replyExplain" placeholder="请输入回访说明,限制200字以内"></el-input>
                </el-form-item>
                <!-- 现场情况照片 -->
                <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"
                            />
                            <img :src="item" alt="" v-for="(item, index) in arrive.situationPic" :key="index" />
                        </div>
                        <div
                            class="upload"
                            v-if="arrive.situationPic.length < 4"
                        >
                            <el-upload
                                :file-list="fileList"
                                class="upload-demo"
                                action="/sccg/file/medias"
                                multiple
                                :show-file-list="false"
                                :limit="4"
                                :on-success="handleSuccess"
                                :headers="getToken()"
                            >
                        <div class="upload" v-if="arrive.situationPic.length < 4">
                            <el-upload :file-list="fileList" class="upload-demo" action="/sccg/file/medias" multiple
                                :show-file-list="false" :limit="4" :on-success="handleSuccess" :headers="getToken()">
                                <i class="el-icon-plus"></i>
                            </el-upload>
                        </div>
@@ -166,6 +125,10 @@
        },
        // 获取arrive对象
        backData() {
            this.arrive.situationPic.forEach(item => {
                item = item.replace(FILE_ORIGINAL_PATH, '')
            })
            const { arrive } = this;
            this.$emit('getArrive', { arrive });
        }
@@ -225,5 +188,4 @@
// ::v-deep .el-form-item__label {
//     color: #4b9bb7;
// }
</style>
// }</style>
src/views/operate/disposal/casepool/pool/index.vue
@@ -690,7 +690,7 @@
<style lang="scss" scoped>
.userList {
    text-align: left;
    padding: 10px 20px;
    padding: 5px 10px;
    // color: #4b9bb7;
    border: 1px solid #ccc;
    header {
@@ -722,7 +722,7 @@
                    // }
                    .el-select {
                        line-height: 40px;
                        line-height: 30px;
                        .el-input {
                            flex: 2;
@@ -755,9 +755,6 @@
    }
    main {
        // background-color: #09152f;
        margin-top: 20px;
        .mainTitle {
            line-height: 60px;
        }
@@ -766,7 +763,7 @@
        .nav {
            display: flex;
            line-height: 40px;
            line-height: 30px;
            .is-active {
                // background-color: #070f22;
                //color: #333;
@@ -784,7 +781,7 @@
        .type-nav {
            display: flex;
            line-height: 40px;
            line-height: 30px;
            // margin-left: 30px;
            // margin-top: 2px;
src/views/operate/images/updateUser/index.vue
@@ -122,7 +122,6 @@
    },
    created() {
      debugger
        if (this.originalData) {
            this.imagedata = deepClone(this.originalData);
        }
src/views/operate/management/myIndex/index.vue
@@ -1,6 +1,16 @@
<template>
  <div class="userList">
    <header>
      <div class="search">
        <el-form :inline="true" :model="seachData">
          <el-form-item label="事件编号">
            <el-input v-model="seachData.code" placeholder="事件编号"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="getUserList">查询</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="problem">
        <div class="problem-title">问题类型</div>
        <el-radio-group v-model="myproblem" @change="changeMyProblem">
@@ -20,21 +30,12 @@
    <main>
      <div class="mainContent">
        <!-- 数据展示 -->
        <el-table
          border
          stripe
          ref="multipleTable"
          :header-cell-style="{
            background: '#F5F5F5',
            'font-weight': '650',
            'line-height': '45px',
          }"
          :data="tableData"
          style="width: 100%"
          :row-class-name="tableRowClassName"
          @selection-change="tableChange"
        >
          <el-table-column type="selection" min-width="5"> </el-table-column>
        <el-table border stripe ref="multipleTable" :header-cell-style="{
          background: '#F5F5F5',
          'font-weight': '650',
          'line-height': '45px',
        }" :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" @selection-change="tableChange">
          <el-table-column type="selection" min-width="5"></el-table-column>
          <el-table-column prop="code" label="事件编号" min-width="18">
            <template slot-scope="scope">
              <el-link @click="JumpView(scope.row)">{{
@@ -49,29 +50,17 @@
              }}</span>
            </template>
          </el-table-column>
          <el-table-column
            :prop="myproblem === 1 ? 'category' : 'category'"
            :label="myproblem === 1 ? '大类名称' : '违建类别'"
            :min-width="myproblem === 1 ? '10' : '20'"
          >
          <el-table-column :prop="myproblem === 1 ? 'category' : 'category'" :label="myproblem === 1 ? '大类名称' : '违建类别'"
            :min-width="myproblem === 1 ? '10' : '20'">
          </el-table-column>
          <el-table-column
            :prop="myproblem === 1 ? 'type' : 'site'"
            :label="myproblem === 1 ? '小类名称' : '违建地点'"
            min-width="10"
          >
          <el-table-column :prop="myproblem === 1 ? 'type' : 'site'" :label="myproblem === 1 ? '小类名称' : '违建地点'"
            min-width="10">
          </el-table-column>
          <el-table-column
            :prop="myproblem === 1 ? 'actionCause' : 'communityId'"
            :label="myproblem === 1 ? '案由' : '所属社区'"
            min-width="10"
          >
          <el-table-column :prop="myproblem === 1 ? 'actionCause' : 'communityId'"
            :label="myproblem === 1 ? '案由' : '所属社区'" min-width="10">
          </el-table-column>
          <el-table-column
            :prop="myproblem === 1 ? 'site' : ''"
            :label="myproblem === 1 ? '报警点位' : '违法建筑长、宽、高'"
            :min-width="myproblem === 1 ? '10' : '20'"
          >
          <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>{{
@@ -88,38 +77,23 @@
              <div v-else>{{ scope.row.site }}</div>
            </template>
          </el-table-column>
          <el-table-column
            :prop="myproblem === 1 ? 'street' : 'buildingArea'"
            :label="myproblem === 1 ? '所属区域' : '违法建筑面积'"
            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"
            v-if="myproblem === 1"
          >
          <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="myproblem === 1 ? 'continueTime' : 'materials'"
            :label="myproblem === 1 ? '持续时间' : '违法建筑材料'"
            min-width="15"
          >
          <el-table-column :prop="myproblem === 1 ? 'continueTime' : 'materials'"
            :label="myproblem === 1 ? '持续时间' : '违法建筑材料'" min-width="15">
          </el-table-column>
          <el-table-column prop="operation" label="操作" min-width="15">
            <template slot-scope="scope">
              <div class="btn">
                <!-- v-if="instatus===7 ? true : false" -->
                <span @click="handleExamine(scope.row)" v-if="instatus === 7"
                  >审核</span
                >
                <span @click="handleClosure(scope.row)" v-if="instatus === 8"
                  >结案</span
                >
                <span style=" color: #2f54eb;" @click="handleExamine(scope.row)" v-if="instatus === 7">审核</span>
                <span @click="handleClosure(scope.row)" v-if="instatus === 8">结案</span>
                <span class="line" v-if="instatus !== 9">|</span>
                <span @click="JumpView(scope.row)">查看</span>
              </div>
@@ -127,82 +101,48 @@
          </el-table-column>
        </el-table>
        <!-- 审核页面 -->
        <el-dialog
          :visible.sync="dialogExamine"
          width="60%"
          title="基础信息(人工)"
          v-if="dialogExamine"
          :before-close="handleClose"
        >
          <MyExamine
            :info="info"
            v-if="myproblem === 1"
            @closeDialog="closeDialog"
          ></MyExamine>
          <MyIllExamine
            :info="info"
            v-else
            @closeDialog="closeDialog"
          ></MyIllExamine>
        <el-dialog :visible.sync="dialogExamine" width="60%" title="基础信息(人工)" v-if="dialogExamine"
          :before-close="handleClose">
          <MyExamine :info="info" v-if="myproblem === 1" @closeDialog="closeDialog"></MyExamine>
          <MyIllExamine :info="info" v-else @closeDialog="closeDialog"></MyIllExamine>
        </el-dialog>
        <!-- 结案页面 -->
        <el-dialog
          :visible.sync="dialogClosure"
          width="60%"
          title="基础信息(人工)"
          v-if="dialogClosure"
          :before-close="handleClose"
        >
          <MyClosure
            :info="info"
            v-if="myproblem === 1"
            @closeDialog="closeDialog"
          ></MyClosure>
          <MyIllClosure
            :info="info"
            v-else
            @closeDialog="closeDialog"
          ></MyIllClosure>
        <el-dialog :visible.sync="dialogClosure" width="60%" title="基础信息(人工)" v-if="dialogClosure"
          :before-close="handleClose">
          <MyClosure :info="info" v-if="myproblem === 1" @closeDialog="closeDialog"></MyClosure>
          <MyIllClosure :info="info" v-else @closeDialog="closeDialog"></MyIllClosure>
        </el-dialog>
        <!-- 详情页面 -->
        <el-dialog
          :visible.sync="dialogView"
          width="60%"
          title="基础信息(人工)"
          v-if="dialogView"
          :before-close="handleNoClose"
        >
          <MyDetail
            :info="info"
            v-if="myproblem === 1"
            :mycode="code"
          ></MyDetail>
        <el-dialog :visible.sync="dialogView" width="60%" title="基础信息(人工)" v-if="dialogView"
          :before-close="handleNoClose">
          <MyDetail :info="info" v-if="myproblem === 1" :mycode="code"></MyDetail>
          <MyIllDetail :info="info" v-else :mycode="code"></MyIllDetail>
        </el-dialog>
        <!-- tools -->
        <!-- <div class="tools">
                    <div class="funs">
                        <div class="funsItem funs-sp">
                            <el-checkbox v-model="all" @change="selectAll()">全选</el-checkbox>
                        </div>
                        <div class="funsItem funs-sp">
                            <el-checkbox v-model="unsame" @change="disSame(tableData)">反选</el-checkbox>
                        </div>
                        <div class="funsItem">
                            <el-select v-model="myIdx" placeholder="批量操作" @change="selectChange" disabled>
        <div class="tools">
          <div class="funs">
            <div class="funsItem funs-sp">
              <el-checkbox v-model="all" @change="selectAll()">全选</el-checkbox>
            </div>
            <div class="funsItem funs-sp">
              <el-checkbox v-model="unsame" @change="disSame(tableData)">反选</el-checkbox>
            </div>
            <div class="funsItem">
              <el-button type="primary" @click="mulCheck()">批量通过</el-button>
              <!-- <el-select v-model="myIdx" placeholder="批量操作" @change="selectChange">
                                <el-option v-for="item in options" :key="item.value" :label="item.label"
                                    :value="item.value" :disabled="item.disabled">
                                </el-option>
                            </el-select>
                        </div>
                    </div>
                    <div class="pagination">
                        <el-pagination background :current-page="currentPage" layout="prev, pager, next"
                            :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"
                            @prev-click="handlePrev" @next-click="handleNext">
                        </el-pagination>
                    </div>
                </div> -->
                            </el-select> -->
            </div>
          </div>
          <div class="pagination">
            <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
              :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev"
              @next-click="handleNext">
            </el-pagination>
          </div>
        </div>
      </div>
    </main>
  </div>
@@ -226,6 +166,9 @@
  },
  data() {
    return {
      seachData: {
        code: "",
      },
      tableData: [],
      dialogExamine: false,
      dialogClosure: false,
@@ -246,16 +189,8 @@
        },
        {
          value: 1,
          label: "批量启用",
        },
        {
          value: 2,
          label: "批量禁用",
        },
        {
          value: 3,
          label: "批量删除",
        },
          label: "批量审核",
        }
      ],
      tempList: [],
      typeList: [
@@ -280,28 +215,42 @@
    this.getUserList();
  },
  methods: {
    // 批量删除
    mulDelete(idArr) {
    // 批量审核
    checkData(idArr) {
      var url = ""
      if (this.instatus === 8) {
        url = "sccg/base_case/end_case_batch"
      }
      if (this.instatus === 7) {
        url = "sccg/check_handle/check_batch"
      }
      if(url.length>0){
      this.$axios({
        method: "delete",
        url: "sccg/violations/batch_delete?ids=" + idArr,
      }).then((res) => {
        this.getUserList();
        this.$message({
          message: res.message,
          type: res.code === 200 ? "success" : "warning",
        });
      });
    },
    // 执行下拉框操作
    selectChange(list) {
      if (this.tempList.length !== 0) {
        if (list === 3) {
          this.preMyIdx = list;
          this.mulDelete(this.tempList);
        method: 'post',
        url: url,
        data: {
          ids: idArr
        }
      })
        .then(res => {
          if (res.code === 200) {
            this.currentPage = 0;
            this.getUserList();
            this.$message({
              message: res.message,
              type: res.code === 200 ? "success" : "warning",
            });
          }
        });
      }
    },
    // 执行下拉框操作
    mulCheck() {
      if (this.tempList.length !== 0) {
        this.checkData(this.tempList);
      } else {
        this.myIdx = this.preMyIdx;
        this.$message({
          type: "warning",
          message: "您还没选中任何数据",
@@ -312,7 +261,7 @@
    tableChange(list) {
      this.tempList = [];
      list.forEach((item) => {
        this.tempList.push(item.code);
        this.tempList.push(item.id);
      });
      this.all = list.length === this.tableData.length;
    },
@@ -342,14 +291,21 @@
            this.getUserList();
          });
        })
        .catch((_) => {});
        .catch((_) => { });
    },
    // 获取用户列表
    getUserList() {
      const { currentPage, pageSize, instatus, myproblem } = this;
      if (this.seachData.code.length > 0) {
        this.instatus = -1
      }
      else if(this.instatus == -1){
        this.instatus = 7
      }
      const { currentPage, pageSize, instatus, myproblem, seachData } = this;
      this.$axios({
        method: "get",
        url: `sccg/base_case/query?state=${instatus}&current=${currentPage}&size=${pageSize}&type=${myproblem}`,
        url: `sccg/base_case/query?state=${instatus}&current=${currentPage}&size=${pageSize}&type=${myproblem}&code=${seachData.code}`,
      }).then((res) => {
        this.totalNum = res.data.total;
        this.tableData = res.data.records;
@@ -384,7 +340,7 @@
          this.dialogExamine = false;
          done();
        })
        .catch((_) => {});
        .catch((_) => { });
    },
    handleNoClose(done) {
      done();
@@ -439,10 +395,14 @@
    },
    // 问题类型
    changeMyProblem(val) {
      this.seachData.code = '';
      this.currentPage = 0;
      this.getUserList();
    },
    // 审核状态
    changeInStatus(val) {
      this.seachData.code = '';
      this.currentPage = 0;
      this.getUserList();
    },
    filterTime(time) {
@@ -452,11 +412,16 @@
};
</script>
<style lang="scss" scoped>
.search {
  line-height: 20px;
}
.userList {
  text-align: left;
  padding: 10px 20px;
  padding: 5px 10px;
  // color: #4b9bb7;
  border: 1px solid #ccc;
  header {
    // background-color: #09152f;
    //padding: 10px 20px;
@@ -465,7 +430,7 @@
    .status {
      display: flex;
      align-items: center;
      line-height: 40px;
      line-height: 30px;
    }
    .problem-title,
@@ -476,30 +441,40 @@
  &::v-deep .el-input__inner {
    // background-color: #09152f;
    border: 1px solid #17324c;
    // border: 1px solid #17324c;
    line-height: 30px;
  }
  &::v-deep .el-form-item {
    margin-bottom: 5px;
  }
  main {
    // background-color: #09152f;
    margin-top: 20px;
    margin-top: 10px;
    padding-bottom: 50px;
    .btn span:hover {
      cursor: pointer;
    }
    .tools {
      display: flex;
      justify-content: space-between;
      align-items: center;
      //padding: 0 20px;
      //padding: 0 20px;
      .funs {
        display: flex;
        .funs-first {
          margin-left: 0 !important;
        }
        .funs-sp {
          border: 1px solid #dcdfe6;
        }
        .funsItem {
          line-height: 28px;
          display: flex;
@@ -538,19 +513,7 @@
        line-height: 50px;
        justify-content: center;
        .el-pagination {
          &::v-deep li,
          &::v-deep .btn-prev,
          &::v-deep .btn-next {
            background-color: #071f39;
            color: #4b9bb7;
          }
          &::v-deep .active {
            background-color: #409eff;
            color: #fff;
          }
        }
        .el-pagination {}
      }
    }
@@ -562,9 +525,6 @@
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        .el-checkbox {
          display: none;
        }
      }
      // &::v-deep .el-table__empty-block {
@@ -581,7 +541,9 @@
        .line {
          padding: 0 5px;
        }
        color: var(--operation-color);
        span:hover {
          cursor: pointer;
        }
@@ -631,11 +593,11 @@
  }
  &::v-deep .el-dialog__header,
    // &::v-deep .el-dialog__body {
    //     background-color: #06122c;
    // }
  // &::v-deep .el-dialog__body {
  //     background-color: #06122c;
  // }
    &::v-deep .el-dialog__header {
  &::v-deep .el-dialog__header {
    display: flex;
    align-items: center;
    background-color: #fff;
vue.config.js
@@ -39,9 +39,8 @@
    proxy: {
      // 跨域配置
      "/sccg": {
        // target: `http://42.193.1.25/`,      //测试环境
        target: `http://111.1.140.92:28081/`,
        // target: `http://10.88.10.18:8082/`,
        // target: `http://42.193.1.25/`,
        target: `http://127.0.0.1:8082/`,
        changeOrigin: true
      }
    },