bug
zhanghua
2024-01-03 02129858b17c1934b30d29b87805844479a32c6c
bug
4个文件已修改
787 ■■■■ 已修改文件
src/components/filePictrue/index.vue 244 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/illdetail/index.vue 531 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/pool/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/filePictrue/index.vue
@@ -1,147 +1,153 @@
<template>
  <div class="file-picture">
    <div class="file-tell">
      <div class="tell-title">上报</div>
      <div class="tell-show" v-for="item in imgSource" :key="item.id">
        <div v-if="item.type == '01'" style="display: flex">
          <div class="my-demo" v-for="childer in item.url">
            <img class="img" :src="childer" alt="" />
            <div class="tip">
              <div>【图片类型】上报</div>
              <div>【上传时间】{{ changeTime(item.createTime) }}</div>
    <div class="file-picture">
        <div class="file-tell">
            <div class="tell-title">上报</div>
            <div class="tell-show" v-for="item in imgSource" :key="item.id">
                <div v-if="item.type == '01'" style="display: flex">
                    <div class="my-demo" v-for="childer in item.url">
                        <img class="img" :src="childer" alt="" />
                        <div class="tip">
                            <div>【图片类型】上报</div>
                            <div>
                                【上传时间】{{ changeTime(item.createTime) }}
                            </div>
                        </div>
                    </div>
                </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="file-deal">
      <div class="tell-title">处置</div>
      <div class="tell-show" v-for="item in imgSource" :key="item.id">
        <div v-if="item.type == '02'" class="tell-demo">
          <div class="my-demo" v-for="childer in item.url">
            <img class="img" :src="childer" alt="" />
            <div class="tip">
              <!-- <div>【图片类型】处置</div> -->
              <div>【上传时间】{{ changeTime(item.createTime) }}</div>
        <div class="file-deal">
            <div class="tell-title">处置</div>
            <div class="tell-show" v-for="item in imgSource" :key="item.id">
                <div v-if="item.type == '02'" class="tell-demo">
                    <div class="my-demo" v-for="childer in item.url">
                        <img class="img" :src="childer" alt="" />
                        <div class="tip">
                            <!-- <div>【图片类型】处置</div> -->
                            <div>
                                【上传时间】{{ changeTime(item.createTime) }}
                            </div>
                        </div>
                    </div>
                </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import { parseTime, FILE_ORIGINAL_URL } from "@/utils/index";
export default {
  data() {
    return {
      imgSource: [],
    };
  },
  props: ["filesPictureVo", "mycode"],
  created() {
    const {
      filesPictureVo: { imageResources: imgList },
    } = this;
    data() {
        return {
            imgSource: [],
        };
    },
    props: ["filesPictureVo", "mycode"],
    created() {
        const {
            filesPictureVo: { imageResources: imgList },
        } = this;
    let pic = this.filesPictureVo.imageResources;
    pic.forEach((item) => {
      if (item.url) {
        if (typeof item.url == "string") {
          let urls = item.url.split(",");
          item.url = [];
          urls.forEach((o) => {
            o = o.replace("[", "").replace("]", "");
            item.url.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${o}`);
          });
        }
      } else {
        item.url = [];
      }
    });
    this.imgSource = pic;
    // this.getEventInfo(this.mycode);
  },
  methods: {
    // 获取token
    getToken() {
      const token = sessionStorage.getItem("token");
      const tokenHead = sessionStorage.getItem("tokenHead");
      if (token && tokenHead) {
        return { Authorization: tokenHead + token };
      }
    },
    changeTime(time) {
      if (time) {
        return parseTime(time);
      }
    },
    getEventInfo(mycode) {
      this.$axios({
        method: "get",
        url: `sccg/base_case/baseCaseDetail/${mycode}`,
      }).then((res) => {
        this.info = res.data;
        this.dialogView = true;
        let pic = res.data.filesPictureVo.imageResources;
        let pic = this.filesPictureVo.imageResources;
        pic.forEach((item) => {
          if (item.url) {
            if (typeof item.url == "string") {
              let urls = item.url.split(",");
              item.url = [];
              urls.forEach((o) => {
                o = o.replace("[", "").replace("]", "");
                item.url.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${o}`);
              });
            if (item.url) {
                if (typeof item.url == "string") {
                    let urls = item.url.split(",");
                    item.url = [];
                    urls.forEach((o) => {
                        o = o.replace("[", "").replace("]", "");
                        if (o !== '') {
                            item.url.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${o}`);
                        }
                    });
                }
            } else {
                item.url = [];
            }
          } else {
            item.url = [];
          }
        });
        this.imgSource = pic;
      });
        // this.getEventInfo(this.mycode);
    },
  },
    methods: {
        // 获取token
        getToken() {
            const token = sessionStorage.getItem("token");
            const tokenHead = sessionStorage.getItem("tokenHead");
            if (token && tokenHead) {
                return { Authorization: tokenHead + token };
            }
        },
        changeTime(time) {
            if (time) {
                return parseTime(time);
            }
        },
        getEventInfo(mycode) {
            this.$axios({
                method: "get",
                url: `sccg/base_case/baseCaseDetail/${mycode}`,
            }).then((res) => {
                this.info = res.data;
                this.dialogView = true;
                let pic = res.data.filesPictureVo.imageResources;
                pic.forEach((item) => {
                    if (item.url) {
                        if (typeof item.url == "string") {
                            let urls = item.url.split(",");
                            item.url = [];
                            urls.forEach((o) => {
                                o = o.replace("[", "").replace("]", "");
                                item.url.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${o}`);
                            });
                        }
                    } else {
                        item.url = [];
                    }
                });
                this.imgSource = pic;
            });
        },
    },
};
</script>
<style lang="scss" scoped>
.file-picture {
  padding-top: 50px;
    padding-top: 50px;
  .file-tell,
  .file-deal {
    .tell-title {
      line-height: 40px;
    .file-tell,
    .file-deal {
        .tell-title {
            line-height: 40px;
        }
        .tell-show {
            .tell-demo {
                display: flex;
                flex-wrap: wrap;
                width: 100%;
            }
        }
    }
    .tell-show {
      .tell-demo {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
      }
    }
  }
  .my-demo {
    position: relative;
    height: 159px;
    margin: 10px;
  }
  .tip {
    div {
      line-height: 20px;
    .my-demo {
        position: relative;
        height: 159px;
        margin: 10px;
    }
    text-align: left;
    position: absolute;
    bottom: 0px;
  }
    .tip {
        div {
            line-height: 20px;
        }
  .img {
    width: 226px;
    height: 159px;
  }
        text-align: left;
        position: absolute;
        bottom: 0px;
    }
    .img {
        width: 226px;
        height: 159px;
    }
}
</style>
src/components/illdetail/index.vue
@@ -1,290 +1,299 @@
<template>
  <div class="view">
    <div class="view-data">
      <el-form
        :model="baseCase"
        label-position="right"
        ref="viewForm"
        label-width="160px"
      >
        <div class="data-item">
          <el-form-item label="问题类型:">
            <span class="data-detail">违建</span>
          </el-form-item>
        </div>
        <div class="data-item">
          <el-form-item label="违建类别:">
            <span class="data-detail">{{ baseCase.categoryText }}</span>
          </el-form-item>
        </div>
        <div class="data-item">
          <el-form-item label="当事人姓名:">
            <span class="data-detail">{{
              baseCase.illegalBuilding.partyName
            }}</span>
          </el-form-item>
        </div>
        <div class="data-item">
          <el-form-item label="当事人身份证号:">
            <span class="data-detail">{{
              baseCase.illegalBuilding.partyIdCard
            }}</span>
          </el-form-item>
        </div>
        <div class="data-item">
          <el-form-item label="当事人联系电话:">
            <span class="data-detail">{{
              baseCase.illegalBuilding.partyPhone
            }}</span>
          </el-form-item>
        </div>
        <div class="data-item">
          <el-form-item label="违建地点:">
            <span class="data-detail">{{ baseCase.site }}</span>
          </el-form-item>
        </div>
        <div class="data-item">
          <el-form-item label="所属社区:">
            <span class="data-detail">{{ baseCase.communityText }}</span>
          </el-form-item>
        </div>
        <div class="data-item">
          <el-form-item label="身份证正、反面照片:">
            <img :src="baseCase.illegalBuilding.positive" alt="" />
          </el-form-item>
          <el-form-item label-width="0px">
            <img
              style="margin-left: 10px"
              :src="baseCase.illegalBuilding.negative"
              alt=""
            />
          </el-form-item>
        </div>
        <div class="data-item">
          <el-form-item label="执法违建情况"> </el-form-item>
        </div>
        <div class="data-item">
          <el-form-item label="违建具体位置:">
            <span class="data-detail">{{
              baseCase.illegalBuilding.position
            }}</span>
          </el-form-item>
        </div>
        <div class="data-item">
          <el-form-item label="违法建设长、宽、高:">
            <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"
              >{{ baseCase.illegalBuilding.buildingArea }}㎡</span
    <div class="view">
        <div class="view-data">
            <el-form
                :model="baseCase"
                label-position="right"
                ref="viewForm"
                label-width="160px"
            >
          </el-form-item>
                <div class="data-item">
                    <el-form-item label="问题类型:">
                        <span class="data-detail">违建</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违建类别:">
                        <span class="data-detail">{{
                            baseCase.categoryText
                        }}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="当事人姓名:">
                        <span class="data-detail">{{
                            baseCase.illegalBuilding.partyName
                        }}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="当事人身份证号:">
                        <span class="data-detail">{{
                            baseCase.illegalBuilding.partyIdCard
                        }}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="当事人联系电话:">
                        <span class="data-detail">{{
                            baseCase.illegalBuilding.partyPhone
                        }}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违建地点:">
                        <span class="data-detail">{{ baseCase.site }}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="所属社区:">
                        <span class="data-detail">{{
                            baseCase.communityText
                        }}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="身份证正、反面照片:">
                        <img :src="baseCase.illegalBuilding.positive" alt="" />
                    </el-form-item>
                    <el-form-item label-width="0px">
                        <img
                            style="margin-left: 10px"
                            :src="baseCase.illegalBuilding.negative"
                            alt=""
                        />
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="执法违建情况"> </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违建具体位置:">
                        <span class="data-detail">{{
                            baseCase.illegalBuilding.position
                        }}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违法建设长、宽、高:">
                        <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"
                            >{{ baseCase.illegalBuilding.buildingArea }}㎡</span
                        >
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违法建筑材料:">
                        <span class="data-detail">{{
                            baseCase.illegalBuilding.materials
                        }}</span>
                    </el-form-item>
                </div>
            </el-form>
        </div>
        <div class="data-item">
          <el-form-item label="违法建筑材料:">
            <span class="data-detail">{{
              baseCase.illegalBuilding.materials
            }}</span>
          </el-form-item>
        <div class="view-process">
            <div class="process-header">
                <div
                    class="process-title-item"
                    v-for="item in titleList"
                    :key="item.title"
                    @click="changeComponent(item.index)"
                >
                    <div
                        :class="[
                            'process-title',
                            activeIndex === item.index ? 'title-active' : ''
                        ]"
                    >
                        {{ item.title }}
                    </div>
                    <div
                        :class="[
                            'under-line',
                            activeIndex === item.index ? 'line-active' : ''
                        ]"
                    ></div>
                </div>
            </div>
            <div class="show-item">
                <div class="show-wrap">
                    <MyProcess
                        v-if="activeIndex === 1"
                        :handlePassVo="handlePassVo"
                        :baseCase="baseCase"
                    ></MyProcess>
                    <MyFilePicture
                        v-else-if="activeIndex === 2"
                        :filesPictureVo="filesPictureVo"
                        :pic="pic"
                        :media="media"
                        :mycode="mycode"
                    ></MyFilePicture>
                    <MySovleProblem
                        v-else-if="activeIndex === 3"
                        :baseCase="baseCase"
                        :handlePassVo="handlePassVo"
                    ></MySovleProblem>
                    <MyScene
                        v-else
                        :currentSitVo="currentSitVo"
                        :baseCase="baseCase"
                    ></MyScene>
                </div>
            </div>
        </div>
      </el-form>
    </div>
    <div class="view-process">
      <div class="process-header">
        <div
          class="process-title-item"
          v-for="item in titleList"
          :key="item.title"
          @click="changeComponent(item.index)"
        >
          <div
            :class="[
              'process-title',
              activeIndex === item.index ? 'title-active' : '',
            ]"
          >
            {{ item.title }}
          </div>
          <div
            :class="[
              'under-line',
              activeIndex === item.index ? 'line-active' : '',
            ]"
          ></div>
        </div>
      </div>
      <div class="show-item">
        <div class="show-wrap">
          <MyProcess
            v-if="activeIndex === 1"
            :handlePassVo="handlePassVo"
            :baseCase="baseCase"
          ></MyProcess>
          <MyFilePicture
            v-else-if="activeIndex === 2"
            :filesPictureVo="filesPictureVo"
            :pic="pic"
            :media="media"
            :mycode="mycode"
          ></MyFilePicture>
          <MySovleProblem
            v-else-if="activeIndex === 3"
            :baseCase="baseCase"
            :handlePassVo="handlePassVo"
          ></MySovleProblem>
          <MyScene
            v-else
            :currentSitVo="currentSitVo"
            :baseCase="baseCase"
          ></MyScene>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import MyProcess from "@/components/process";
import MyFilePicture from "@/components/filePictrue";
import MySovleProblem from "@/components/solveProblem";
import MyScene from "@/components/scene";
import { FILE_ORIGINAL_URL } from "@/utils/index";
export default {
  components: {
    MyProcess,
    MyFilePicture,
    MySovleProblem,
    MyScene,
  },
  data() {
    return {
      myInfo: {},
      activeIndex: 1,
      titleList: [
        {
          title: "办理经过",
          index: 1,
        },
        {
          title: "案卷图片",
          index: 2,
        },
        {
          title: "问题处理",
          index: 3,
        },
        {
          title: "现场情况",
          index: 4,
        },
      ],
      baseCase: {},
      handlePassVo: {},
      currentSitVo: {},
      filesPictureVo: {},
      pic: [],
      media: [],
    };
  },
  created() {
    const { info } = this;
    this.baseCase = info.baseCase;
    this.handlePassVo = info.handlePassVo;
    this.currentSitVo = info.currentSitVo;
    this.filesPictureVo = info.filesPictureVo;
  },
  methods: {
    changeComponent(index) {
      this.activeIndex = index;
    components: {
        MyProcess,
        MyFilePicture,
        MySovleProblem,
        MyScene,
    },
  },
  props: ["info", "mycode"],
    data() {
        return {
            myInfo: {},
            activeIndex: 1,
            titleList: [
                {
                    title: "办理经过",
                    index: 1,
                },
                {
                    title: "案卷图片",
                    index: 2,
                },
                {
                    title: "问题处理",
                    index: 3,
                },
                {
                    title: "现场情况",
                    index: 4,
                },
            ],
            baseCase: {},
            handlePassVo: {},
            currentSitVo: {},
            filesPictureVo: {},
            pic: [],
            media: [],
        };
    },
    created() {
        const { info } = this;
        this.baseCase = info.baseCase;
        this.baseCase.illegalBuilding.positive = `${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${this.baseCase.illegalBuilding.positive}`
        this.baseCase.illegalBuilding.negative = `${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${this.baseCase.illegalBuilding.negative}`
       this.handlePassVo = info.handlePassVo;
        this.currentSitVo = info.currentSitVo;
        this.filesPictureVo = info.filesPictureVo;
    },
    methods: {
        changeComponent(index) {
            this.activeIndex = index;
        },
    },
    props: ["info", "mycode"],
};
</script>
<style lang="scss" scoped>
.view {
  display: flex;
  padding: 20px;
    display: flex;
    padding: 20px;
  .view-data {
    color: #4b9bb7;
    // flex: 4;
    padding: 0 30px 0 20px;
    img {
      width: 100px;
      height: 100px;
      border-radius: 4px;
    }
    .data-item {
      display: flex;
      // justify-content: space-between;
      line-height: 20px;
    .view-data {
        color: #4b9bb7;
        // flex: 4;
        padding: 0 30px 0 20px;
        img {
            width: 100px;
            height: 100px;
            border-radius: 4px;
        }
        .data-item {
            display: flex;
            // justify-content: space-between;
            line-height: 20px;
      .data-detail {
        color: #333;
        line-height: 1.8;
        max-width: 240px;
        display: inline-grid;
      }
    }
    border: 1px solid #17324c;
    :deep(.el-form-item__label) {
      color: #4b9bb7;
    }
    :deep(.el-textarea__inner) {
      background-color: #17324c;
      color: #4b9bb7;
    }
  }
  .view-process {
    flex: 6;
    margin-left: 20px;
    .process-header {
      display: flex;
      line-height: 40px;
      .process-title-item {
        width: 120px;
        text-align: center;
        .under-line {
          height: 2px;
          width: 100%;
            .data-detail {
                color: #333;
                line-height: 1.8;
                max-width: 240px;
                display: inline-grid;
            }
        }
        .title-active {
          color: #4b9bb7;
        border: 1px solid #17324c;
        :deep(.el-form-item__label) {
            color: #4b9bb7;
        }
        .line-active {
          background-color: #4b9bb7;
          border-radius: 20px;
        :deep(.el-textarea__inner) {
            background-color: #17324c;
            color: #4b9bb7;
        }
      }
    }
    .show-item {
      overflow: hidden;
      height: 600px;
      position: relative;
      .show-wrap {
        overflow: auto;
        height: 600px;
      }
    .view-process {
        flex: 6;
        margin-left: 20px;
        .process-header {
            display: flex;
            line-height: 40px;
            .process-title-item {
                width: 120px;
                text-align: center;
                .under-line {
                    height: 2px;
                    width: 100%;
                }
                .title-active {
                    color: #4b9bb7;
                }
                .line-active {
                    background-color: #4b9bb7;
                    border-radius: 20px;
                }
            }
        }
        .show-item {
            overflow: hidden;
            height: 600px;
            position: relative;
            .show-wrap {
                overflow: auto;
                height: 600px;
            }
        }
    }
  }
}
</style>
src/views/operate/disposal/casepool/pool/index.vue
@@ -129,7 +129,12 @@
                        min-width="12"
                    >
                    </el-table-column>
                    <el-table-column prop="state" label="状态" min-width="8"  :formatter="formatPrivilegeType">
                    <el-table-column
                        prop="state"
                        label="状态"
                        min-width="8"
                        :formatter="formatPrivilegeType"
                    >
                    </el-table-column>
                    <el-table-column
                        prop="operation"
@@ -556,6 +561,8 @@
        },
        // 更改一级标签的选中
        changeNavChecked(idx) {
            this.currentPage = 1
            this.tagList.forEach((item, index) => {
                item.checked = index === idx;
            });
@@ -569,6 +576,7 @@
        },
        // 更改违规/违建
        changeTypeChecked(idx) {
            this.currentPage = 1
            this.typeList.forEach((item, index) => {
                item.checked = index === idx;
            });
vue.config.js
@@ -40,7 +40,7 @@
      // 跨域配置
      "/sccg": {
        // target: `http://42.193.1.25/`,      //测试环境
        target: `http://111.1.140.92:28081/`,
        target: `http://111.1.140.92:8082/`,
        // target: `http://10.88.10.18:8082/`,
        changeOrigin: true
      }