quanyawei
2023-11-14 158629c4bc4794184ad99509e4fad804ee4dafbd
fix:立行立改添加修改责任单位
7 files modified
851 ■■■■ changed files
.eslintrc.js 70 ●●●● patch | view | raw | blame | history
.prettierrc 16 ●●●●● patch | view | raw | blame | history
.vscode/settings.json 8 ●●●● patch | view | raw | blame | history
src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue 114 ●●●●● patch | view | raw | blame | history
src/views/toCarryOutLegislativeReforms/components/queryForm.vue 75 ●●●● patch | view | raw | blame | history
src/views/toCarryOutLegislativeReforms/components/workOrderInformation.vue 210 ●●●● patch | view | raw | blame | history
src/views/toCarryOutLegislativeReforms/reform/index.vue 358 ●●●●● patch | view | raw | blame | history
.eslintrc.js
@@ -1,68 +1,16 @@
module.exports = {
  root: true,
  parserOptions: {
    parser: 'babel-eslint',
    sourceType: 'module'
  },
  env: {
    browser: true,
    node: true,
    es6: true,
    node: true
  },
  extends: [/* vue 2 配置 */
    "plugin:vue/recommended",
      "plugin:vue/essential",
      "plugin:vue/strongly-recommended",
    /* vue 3 配置 */
    // "plugin:vue/vue3-recommended"
    // "plugin:vue/vue3-essential"
    // "plugin:vue/vue3-strongly-recommended"
  extends: [
    'plugin:vue/recommended', // 此项是用来配置vue.js风格
    'eslint:recommended' //继承Eslint中推荐的(打钩的)规则项
  ],
  // add your custom rules here
  //it is base on https://github.com/vuejs/eslint-config-vue
  rules: {
    'vue/no-unused-vars': 'error',
    'eqeqeq': ['error', 'always'], // 强制使用三个等于号
    'semi': 0, // 语句可以不需要分号结尾
    'no-use-before-define': [1, 'nofunc'], // 未定义前不能使用
    'max-lines': ['error', { 'max': 2000, 'skipBlankLines': true }],
    'no-mixed-spaces-and-tabs': 'warn', // 禁止使用空格和tab混合缩进
    'newline-per-chained-call': ['error', { ignoreChainWithDepth: 1 }], // promise 以及 数组的链式操作需要另起一行
    'vue/attribute-hyphenation': ['error', 'always'], // prop变量使用破折号,而不是驼峰。这里做统一,不然以后全局修改prop有可能碰到要修改不全的情况
    'vue/html-indent': [
      'warn',
      2,
      {
        attribute: 1,
        baseIndent: 1,
        closeBracket: 0,
        alignAttributesVertically: true
      }
    ],
    'curly': 2, // 必须使用 if(){} 中的{}
    'vue/prop-name-casing': ['warn', 'camelCase'], //建议使用驼峰命名
    'vue/this-in-template': ['error', 'never'], //不允许在template里面使用this
    'no-trailing-spaces': 1, //一行结束后面不要有空格
    'vue/max-attributes-per-line': [ // template里面写的一行多少个prop属性,单行3个,多余3个的必须每行写一个prop,不然不容易看
      'warn',
      {
        singleline: 3,
        multiline: {
          max: 1,
          allowFirstLine: false
        }
      }
    ],
    'no-catch-shadow': 'error', //禁止catch子句参数与外部作用域变量同名
    'vue/v-bind-style': ['error', 'shorthand'], // 必须使用:来绑定
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', // 只允许在开发环境中使用debugger
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'no-unused-vars': 0, // 禁止出现未使用过的变量
    'spaced-comment': 0 // 强制在注释中 // 或 /* 使用一致的空格
  parserOptions: {
    ecmaVersion: 13,
    sourceType: 'module'
  },
  globals: {
    'AMap': false,
    'AMapUI': false
  },
  plugins: ['vue'],
  rules: {}
}
.prettierrc
@@ -1,11 +1,15 @@
{
    "useTabs": true,
    "arrowParens": "avoid",
    "printWidth": 120,
  "printWidth": 80,
    "tabWidth": 2,
    "semi": true,
  "semi": false,
    "singleQuote": true,
    "bracketSpacing": true,
    "endOfLine": "auto",
    "trailingComma": "none"
  "arrowParens": "avoid",
  "bracketSpacing": true,
  "insertPragma": false,
  "jsxBracketSameLine": false,
  "rangeStart": 0,
  "requirePragma": false,
  "trailingComma": "none",
  "useTabs": false
}
.vscode/settings.json
@@ -8,7 +8,13 @@
    },
    "eslint.format.enable": true,
    //autoFix默认开启,只需输入字符串数组即可
    "eslint.validate": ["javascript", "vue", "html", "javascriptreact", "vue-html"],
  "eslint.validate": [
    "javascript",
    "vue",
    "html",
    "javascriptreact",
    "vue-html"
  ],
    // --------------------  配置eslint  --------------------
    // 设置编辑器的默认格式化工具
    "editor.defaultFormatter": "esbenp.prettier-vscode",
src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue
@@ -10,13 +10,7 @@
          <el-row>
            <el-col :span="12">
              <el-form-item label="上报时间:" prop="escalationTime" class="span">
                <el-date-picker
                  v-model="formData.escalationTime"
                  value-format="yyyy-MM-dd"
                  size="small"
                  type="date"
                  placeholder="选择日期"
                />
                <el-date-picker v-model="formData.escalationTime" value-format="yyyy-MM-dd" size="small" type="date" placeholder="选择日期" />
              </el-form-item>
            </el-col>
            <el-col :span="12">
@@ -29,24 +23,14 @@
            <el-col :span="12">
              <el-form-item label="责任主体:" prop="unitId" class="span">
                <el-select v-model="formData.unitId" placeholder="请选择" size="small">
                  <el-option
                    v-for="item in unitList"
                    :key="item.unitId"
                    :label="item.unitName"
                    :value="item.unitId"
                  />
                  <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="污染分类:" prop="polluteType" class="span">
                <el-select v-model="formData.polluteType" placeholder="请选择" size="small">
                  <el-option
                    v-for="item in polluteList"
                    :key="item.dataKey"
                    :label="item.dataValue"
                    :value="item.dataKey"
                  />
                  <el-option v-for="item in polluteList" :key="item.dataKey" :label="item.dataValue" :value="item.dataKey" />
                </el-select>
              </el-form-item>
            </el-col>
@@ -55,12 +39,7 @@
            <el-col :span="12">
              <el-form-item label="整改类型:" prop="changeType" class="span">
                <el-select v-model="formData.changeType" placeholder="请选择" size="small" @change="changeEnumList">
                  <el-option
                    v-for="item in Dic.changeEnum"
                    :key="item.value"
                    :label="item.name"
                    :value="item.value"
                  />
                  <el-option v-for="item in Dic.changeEnum" :key="item.value" :label="item.name" :value="item.value" />
                </el-select>
              </el-form-item>
            </el-col>
@@ -75,12 +54,7 @@
            <el-col :span="12">
              <el-form-item label="上报单位:" prop="escalationUnitId" class="span">
                <el-select v-model="formData.escalationUnitId" placeholder="请选择" size="small">
                  <el-option
                    v-for="item in unitList"
                    :key="item.unitId"
                    :label="item.unitName"
                    :value="item.unitId"
                  />
                  <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
                </el-select>
              </el-form-item>
            </el-col>
@@ -109,13 +83,7 @@
              <div>
                <div v-if="pageState==='edit'">
                  <div v-for="(file,index) in fileBaseListCover" :key="file.fileId+index" class="block">
                    <el-image
                      v-if="file.fileType ===1"
                      style="width: 100px; height: 100px"
                      :src="file.url"
                      :preview-src-list="getPreviewImages(file.fileId,fileBaseList)"
                      :initial-index="index"
                    />
                    <el-image v-if="file.fileType ===1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="getPreviewImages(file.fileId,fileBaseList)" :initial-index="index" />
                    <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
                      您的浏览器不支持 video 标签。
                    </video>
@@ -135,13 +103,7 @@
    </el-dialog>
    <el-dialog :visible.sync="videoVisible" width="600px" :modal-append-to-body="false" :destroy-on-close="true" @close="handleCancel">
      <div style="text-align: center;">
        <video
          ref="video"
          style="width: 300px;height: 500px"
          :src="dialogImageUrl"
          controls
          autoplay
        />
        <video ref="video" style="width: 300px;height: 500px" :src="dialogImageUrl" controls autoplay />
      </div>
    </el-dialog>
  </div>
@@ -164,6 +126,11 @@
    return {
      videoVisible: false,
      formData: {
        unitId: '',
        escalationUnitId: '',
        changeType: '',
        polluteType: '',
        escalationTime: new Date(),
        fileBaseList: [],
        escalationName: '',
        changeDay: 0,
@@ -192,9 +159,7 @@
        changeType: [
          { required: true, message: '请选择整改类型', trigger: 'change' }
        ],
        changeDay: [
          { required: true, message: '请输入天数', trigger: 'blur' }
        ],
        changeDay: [{ required: true, message: '请输入天数', trigger: 'blur' }],
        escalationUnitId: [
          { required: true, message: '请选择上报单位', trigger: 'change' }
        ],
@@ -216,18 +181,26 @@
    }
  },
  watch: {
    'pageState': {
    pageState: {
      handler(newVal) {
        if (this.pageState === 'edit') {
          if (this.parentFormData.fileBaseList && this.parentFormData.fileBaseList.length > 0) {
          if (
            this.parentFormData.fileBaseList &&
            this.parentFormData.fileBaseList.length > 0
          ) {
            this.parentFormData.fileBaseList.forEach(item => {
              if (item.fileType === 1) {
                this.fileBaseList.push(`${requestObj.baseUrl}file/preview/${item.fileId}`) // 原图
                this.fileBaseList.push(
                  `${requestObj.baseUrl}file/preview/${item.fileId}`
                ) // 原图
              }
              // const srcApi = item.fileType === 1 ? api + 'preview/' : api + 'preview/cover/'
              // this.fileBaseList.push(`${requestObj.baseUrl}file/preview/${item.fileId}`) // 原图
              this.fileBaseListCover.push({
                url: item.fileType === 1 ? `${requestObj.baseUrl}file/preview/cover/${item.fileId}` : `${requestObj.baseUrl}file/preview/${item.fileId}`,
                url:
                  item.fileType === 1
                    ? `${requestObj.baseUrl}file/preview/cover/${item.fileId}`
                    : `${requestObj.baseUrl}file/preview/${item.fileId}`,
                fileType: item.fileType,
                fileId: item.fileId,
                fileName: item.fileName
@@ -241,22 +214,15 @@
      immediate: true
    }
  },
  created() {
    console.log('oldValue', this.parentFormData)
    if (!(JSON.stringify(this.parentFormData) === '{}')) {
      this.formData = this.parentFormData
      this.formData.polluteType = String(this.parentFormData.polluteType)
    } else {
      const name = this.$store.state.user.name
      this.formData.escalationName = name
    }
  async created() {
    this.getUnitList()
    this.getContaminateList()
    console.log('oldValue', this.parentFormData)
    bus.$on('changeFileAfterList', (type, fileList) => {
      this.formData.fileBaseList = []
      if (fileList.length > 0) {
        fileList.map((item) => {
        fileList.map(item => {
          if (item.response) {
            console.log('item.response.data', item.response.data)
            this.formData.fileBaseList.push(item.response.data)
@@ -304,16 +270,28 @@
      this.$request({
        url: '/allocation/unit',
        method: 'get'
      }).then((res) => {
      }).then(res => {
        this.unitList = res.data
        this.getContaminateList()
      })
    },
    getContaminateList() {
      this.$request({
        url: '/allocation/contaminate',
        method: 'get'
      }).then((res) => {
      }).then(res => {
        this.polluteList = res.data
        if (!(JSON.stringify(this.parentFormData) === '{}')) {
          this.formData = this.parentFormData
          this.formData.polluteType = String(this.parentFormData.polluteType)
        } else {
          const name = this.$store.state.user.name
          this.formData.escalationName = name
          this.formData.changeType = this.Dic.changeEnum[0].value
          this.formData.unitId = this.unitList[0].unitId
          this.formData.escalationUnitId = this.unitList[0].unitId
          this.formData.polluteType = this.polluteList[0].dataKey
        }
      })
    },
    close() {
@@ -333,7 +311,7 @@
        })
      }
      this.formData.state = val
      this.$refs.ruleForm.validate((valid) => {
      this.$refs.ruleForm.validate(valid => {
        if (valid) {
          // this.formData.fileBaseList = [...this.parentFormData.fileBaseList, this.formData.fileBaseList]
          this.$emit('handleSubmit', this.formData)
@@ -373,7 +351,6 @@
}
.span{
  /deep/.el-form-item__content {
      div {
          width: 100%;
      }
@@ -389,5 +366,4 @@
        }
    }
  }
</style>
src/views/toCarryOutLegislativeReforms/components/queryForm.vue
@@ -7,86 +7,42 @@
        </el-form-item>
        <el-form-item label="开始时间:">
          <el-date-picker
            v-model="formData.startTime"
            style="width:92%"
            size="small"
            value-format="yyyy-MM-dd"
            type="date"
            placeholder="开始日期"
          />
          <el-date-picker v-model="formData.startTime" style="width:92%" size="small" value-format="yyyy-MM-dd" type="date" placeholder="开始日期" />
        </el-form-item>
        <el-form-item label="结束时间:">
          <el-date-picker
            v-model="formData.endTime"
            style="width:92%"
            size="small"
            value-format="yyyy-MM-dd"
            type="date"
            placeholder="结束时间"
          />
          <el-date-picker v-model="formData.endTime" style="width:92%" size="small" value-format="yyyy-MM-dd" type="date" placeholder="结束时间" />
        </el-form-item>
        <el-form-item label="责任主体:" class="rddd">
          <el-select v-model="formData.unitId" size="small" clearable placeholder="请选择">
            <el-option
              v-for="item in unitList"
              :key="item.unitId"
              :label="item.unitName"
              :value="item.unitId"
            />
          <el-select v-model="formData.unitId" size="small" clearable multiple collapse-tags placeholder="请选择">
            <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
          </el-select>
        </el-form-item>
        <el-form-item label="污染分类:">
          <el-select v-model="formData.polluteType" size="small" clearable placeholder="请选择">
            <el-option
              v-for="item in polluteList"
              :key="item.dataKey"
              :label="item.dataValue"
              :value="item.dataKey"
            />
          <el-select v-model="formData.polluteType" size="small" clearable multiple collapse-tags placeholder="请选择">
            <el-option v-for="item in polluteList" :key="item.dataKey" :label="item.dataValue" :value="item.dataKey" />
          </el-select>
        </el-form-item>
        <el-form-item label="排查方式:">
          <el-select v-model="formData.investigationType" size="small" clearable placeholder="请选择">
            <el-option
              v-for="item in Dic.investigationEnum"
              :key="item.value"
              :label="item.name"
              :value="item.value"
            />
            <el-option v-for="item in Dic.investigationEnum" :key="item.value" :label="item.name" :value="item.value" />
          </el-select>
        </el-form-item>
        <el-form-item label="整改类型:">
          <el-select v-model="formData.changeType" placeholder="请选择" clearable size="small">
            <el-option
              v-for="item in Dic.changeEnum"
              :key="item.value"
              :label="item.name"
              :value="item.value"
            />
            <el-option v-for="item in Dic.changeEnum" :key="item.value" :label="item.name" :value="item.value" />
          </el-select>
        </el-form-item>
        <el-form-item label="流程状态:">
          <el-select v-model="formData.state" size="small" clearable placeholder="请选择">
            <el-option
              v-for="item in Dic.allocationApproveEnum"
              :key="item.value"
              :label="item.name"
              :value="item.value"
            />
          <el-select v-model="formData.state" size="small" clearable multiple collapse-tags placeholder="请选择">
            <el-option v-for="item in Dic.allocationApproveEnum" :key="item.value" :label="item.name" :value="item.value" />
          </el-select>
        </el-form-item>
        <el-form-item label="是否作废:">
          <el-select v-model="formData.isInvalid " placeholder="请选择" clearable size="small">
            <el-option
              v-for="item in Dic.yesOrNo"
              :key="item.value"
              :label="item.name"
              :value="item.value"
            />
            <el-option v-for="item in Dic.yesOrNo" :key="item.value" :label="item.name" :value="item.value" />
          </el-select>
        </el-form-item>
        <el-form-item>
@@ -106,7 +62,7 @@
  data() {
    return {
      formData: {
        isInvalid: 0
        isInvalid: null
      },
      unitList: [],
      Dic: JSON.parse(localStorage.getItem('dict')),
@@ -119,7 +75,6 @@
  created() {
    this.getUnitList()
    this.getContaminateList()
    console.log('searchType', this.searchType)
  },
  methods: {
    // 获取责任单位list
@@ -127,19 +82,21 @@
      this.$request({
        url: '/allocation/unit',
        method: 'get'
      }).then((res) => {
      }).then(res => {
        this.unitList = res.data
        this.formData.isInvalid = 0
      })
    },
    getContaminateList() {
      this.$request({
        url: '/allocation/contaminate',
        method: 'get'
      }).then((res) => {
      }).then(res => {
        this.polluteList = res.data
      })
    },
    onSubmit() {
      console.log('formData', this.formData)
      this.$emit('handleSearch', this.formData)
    },
    handleAdd() {
src/views/toCarryOutLegislativeReforms/components/workOrderInformation.vue
@@ -8,37 +8,26 @@
      <div>
        <div v-if="dialogData.pageType !=='delay'" class="stepsList">
          <el-steps :space="200" :active="parentFormData.approveList.length+1" align-center>
            <el-step
              v-for="(item,index) in setepList"
              :key="index"
              :title="'' + item.createName + ' ' + item.stateName"
              :description="item.createTime"
            />
            <el-step v-for="(item,index) in setepList" :key="index" :title="'' + item.createName + ' ' + item.stateName" :description="item.createTime" />
          </el-steps>
        </div>
        <div class="inforData">
          <el-descriptions title="基本信息" :column="parseInt('4')">
          <el-descriptions title="基本信息">
            <el-descriptions-item label="上报时间" label-class-name="itemSpan">{{ parentFormData.escalationTime }}</el-descriptions-item>
            <el-descriptions-item label="污染位置" label-class-name="itemSpan">{{ parentFormData.pollutePosition }}</el-descriptions-item>
            <el-descriptions-item label="责任单位" label-class-name="itemSpan">{{ unitIdFormatter }}</el-descriptions-item>
            <el-descriptions-item label="污染分类" label-class-name="itemSpan">{{ polluteTypeFormatter }}</el-descriptions-item>
            <el-descriptions-item label="整改类型" label-class-name="itemSpan">{{ dictObj.changeEnum[parentFormData.changeType] }}</el-descriptions-item>
            <el-descriptions-item label="期限天数" label-class-name="itemSpan">{{ parentFormData.changeDay }}</el-descriptions-item>
            <el-descriptions-item label="上报单位" label-class-name="itemSpan">{{ updataUnitIdFormatter }}</el-descriptions-item>
            <el-descriptions-item label="上报人" label-class-name="itemSpan">{{ parentFormData.escalationName }}</el-descriptions-item>
            <el-descriptions-item label="污染位置" label-class-name="itemSpan">{{ parentFormData.pollutePosition }}</el-descriptions-item>
          </el-descriptions>
          <el-descriptions :column="parseInt('1')">
            <el-descriptions-item label="问题描述" label-class-name="itemSpan" :content-style="{'width': '80%'}">{{ parentFormData.problemDescribe }}</el-descriptions-item>
            <el-descriptions-item label="附件" label-class-name="itemSpan" :content-style="{'width': '80%'}">
              <div>
                <div v-for="(file,index) in fileBaseListCover" :key="file.id+index" class="block">
                  <el-image
                    v-if="file.fileType ===1"
                    style="width: 100px; height: 100px"
                    :src="file.url"
                    :preview-src-list="getPreviewImages(file.id,fileBaseList)"
                    :initial-index="index"
                  />
                  <el-image v-if="file.fileType ===1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="getPreviewImages(file.id,fileBaseList)" :initial-index="index" />
                  <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
                    您的浏览器不支持 video 标签。
                  </video>
@@ -63,12 +52,7 @@
                </el-form-item>
              </div>
              <el-form-item label="整改反馈:">
                <el-input
                  v-model="workForme.changeDescribe"
                  type="textarea"
                  :autosize="{ minRows: 2, maxRows: 4}"
                  placeholder="请输入内容"
                />
                <el-input v-model="workForme.changeDescribe" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" placeholder="请输入内容" />
              </el-form-item>
              <el-row>
                <el-form-item label="附件:">
@@ -82,7 +66,8 @@
        <!-- 整改信息 -->
        <div v-if="(dialogData.pageType ==='detail'||dialogData.pageType ==='approve' )&& parentFormData.state >=30">
          <el-row class="rectificationContent">
            <el-col :span="12"><div class="grid-content bg-purple" />
            <el-col :span="12">
              <div class="grid-content bg-purple" />
              <el-descriptions title="整改信息" :column="parseInt('2')">
                <el-descriptions-item label="是否整改" label-class-name="itemSpan">{{ parentFormData.changeType }}</el-descriptions-item>
                <el-descriptions-item label="整改人" label-class-name="itemSpan">{{ parentFormData.changeName }}</el-descriptions-item>
@@ -91,19 +76,17 @@
                <el-descriptions-item label="整改反馈" label-class-name="itemSpan">{{ parentFormData.changeDescribe }}</el-descriptions-item>
              </el-descriptions>
            </el-col>
            <el-col :span="12"><div class="grid-content bg-purple-light" />
            <el-col :span="12">
              <div class="grid-content bg-purple-light" />
              <el-row>
                <el-col :span="3" style="margin-top: 40px;font-size: 15px;color: #101010;"><div class="grid-content bg-purple" />附件:</el-col>
                <el-col :span="21"><div class="grid-content bg-purple-light" />
                <el-col :span="3" style="margin-top: 40px;font-size: 15px;color: #101010;">
                  <div class="grid-content bg-purple" />附件:
                </el-col>
                <el-col :span="21">
                  <div class="grid-content bg-purple-light" />
                  <div>
                    <div v-for="(file,index) in fileChangeListCover" :key="file.id+index" class="block">
                      <el-image
                        v-if="file.fileType ===1"
                        style="width: 100px; height: 100px"
                        :src="file.url"
                        :preview-src-list="getPreviewImages(file.id,fileChangeList)"
                        :initial-index="index"
                      />
                      <el-image v-if="file.fileType ===1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="getPreviewImages(file.id,fileChangeList)" :initial-index="index" />
                      <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
                        您的浏览器不支持 video 标签。
                      </video>
@@ -117,7 +100,8 @@
        <!-- 审批信息 -->
        <div v-if="dialogData.pageType ==='detail'&& parentFormData.state>30">
          <el-row class="rectificationContent">
            <el-col :span="12"><div class="grid-content bg-purple" />
            <el-col :span="12">
              <div class="grid-content bg-purple" />
              <el-descriptions title="审批信息" :column="2">
                <el-descriptions-item label="考核打分" label-class-name="itemSpan">{{ parentFormData.checkScore }}</el-descriptions-item>
              </el-descriptions>
@@ -125,20 +109,18 @@
                <el-descriptions-item label="理由" label-class-name="itemSpan">{{ parentFormData.checkDescribe }}</el-descriptions-item>
              </el-descriptions>
            </el-col>
            <el-col :span="12"><div class="grid-content bg-purple-light" />
            <el-col :span="12">
              <div class="grid-content bg-purple-light" />
              <el-row>
                <el-col :span="3" style="margin-top: 40px;font-size: 15px;color: #101010;"><div class="grid-content bg-purple" />附件:</el-col>
                <el-col :span="21"><div class="grid-content bg-purple-light" />
                <el-col :span="3" style="margin-top: 40px;font-size: 15px;color: #101010;">
                  <div class="grid-content bg-purple" />附件:
                </el-col>
                <el-col :span="21">
                  <div class="grid-content bg-purple-light" />
                  <div>
                    <div>
                      <div v-for="(file,index) in fileApproveListCover" :key="file.id+index" class="block">
                        <el-image
                          v-if="file.fileType ===1"
                          style="width: 100px; height: 100px"
                          :src="file.url"
                          :preview-src-list="getPreviewImages(file.id,fileApproveList)"
                          :initial-index="index"
                        />
                        <el-image v-if="file.fileType ===1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="getPreviewImages(file.id,fileApproveList)" :initial-index="index" />
                        <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
                          您的浏览器不支持 video 标签。
                        </video>
@@ -153,30 +135,30 @@
        <!-- 延期信息 -->
        <div v-if="(dialogData.pageType ==='delay' && (dialogData.pageState ==='view' ||dialogData.pageState ==='edit'))">
          <el-row class="rectificationContent">
            <el-col :span="12"><div class="grid-content bg-purple" />
            <el-col :span="12">
              <div class="grid-content bg-purple" />
              <el-descriptions title="延期信息" :column="1">
                <el-descriptions-item label="延期天数" label-class-name="itemSpan">{{ parentFormData.extensionNum }}</el-descriptions-item>
                <el-descriptions-item label="延期理由" label-class-name="itemSpan">{{ parentFormData.remake }}</el-descriptions-item>
              </el-descriptions>
            </el-col>
            <el-col :span="12"><div class="grid-content bg-purple-light" />
            <el-col :span="12">
              <div class="grid-content bg-purple-light" />
              <el-row>
                <el-col :span="3" style="margin-top: 40px;font-size: 15px;color: #101010;"><div class="grid-content bg-purple" />附件:</el-col>
                <el-col :span="21"><div class="grid-content bg-purple-light" />
                <el-col :span="3" style="margin-top: 40px;font-size: 15px;color: #101010;">
                  <div class="grid-content bg-purple" />附件:
                </el-col>
                <el-col :span="21">
                  <div class="grid-content bg-purple-light" />
                  <div>
                    <div v-for="(file,index) in fileDelayListCover" :key="file.id+index" class="block">
                      <el-image
                        v-if="file.fileType ===1"
                        style="width: 100px; height: 100px"
                        :src="file.url"
                        :preview-src-list="getPreviewImages(file.id,fileDelayList)"
                        :initial-index="index"
                      />
                      <el-image v-if="file.fileType ===1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="getPreviewImages(file.id,fileDelayList)" :initial-index="index" />
                      <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
                        您的浏览器不支持 video 标签。
                      </video>
                    </div>
                  </div></el-col>
                  </div>
                </el-col>
              </el-row>
            </el-col>
          </el-row>
@@ -188,12 +170,7 @@
              <el-input v-model="approveForm.checkScore" style="width: 120px;" size="mini" />
            </el-form-item>
            <el-form-item label="理由:">
              <el-input
                v-model="approveForm.checkDescribe"
                type="textarea"
                :autosize="{ minRows: 2, maxRows: 4}"
                placeholder="请输入内容"
              />
              <el-input v-model="approveForm.checkDescribe" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" placeholder="请输入内容" />
            </el-form-item>
            <el-form-item label="附件:">
              <uploadFile :upload-url="uploadTermExcelUrl" :sys-code="dialogData.sysCode" />
@@ -207,12 +184,7 @@
              <el-input v-model="delayForm.extensionNum" style="width: 200px;" />
            </el-form-item>
            <el-form-item label="延期理由:">
              <el-input
                v-model="delayForm.remake"
                type="textarea"
                :autosize="{ minRows: 2, maxRows: 4}"
                placeholder="请输入内容"
              />
              <el-input v-model="delayForm.remake" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" placeholder="请输入内容" />
            </el-form-item>
            <el-form-item label="附件:">
              <uploadFile :upload-url="uploadTermExcelUrl" :sys-code="dialogData.sysCode" />
@@ -230,13 +202,7 @@
    </el-dialog>
    <el-dialog :visible.sync="videoVisible" width="600px" :modal-append-to-body="false" :destroy-on-close="true" @close="handleCancel">
      <div style="text-align: center;">
        <video
          ref="video"
          style="width: 300px;height: 500px"
          :src="dialogImageUrl"
          controls
          autoplay
        />
        <video ref="video" style="width: 300px;height: 500px" :src="dialogImageUrl" controls autoplay />
      </div>
    </el-dialog>
  </div>
@@ -272,9 +238,7 @@
        remake: '',
        extensionNum: ''
      },
      rectificationFromData: {
      },
      rectificationFromData: {},
      dialogVisibleMainGraph: false,
      hasFile: '',
      setepListAdd: {
@@ -287,9 +251,7 @@
          { createName: '', stateName: '审批', createTime: '' },
          { createName: '', stateName: '完成', createTime: '' }
        ],
        set3: [
          { createName: '', stateName: '完成', createTime: '' }
        ]
        set3: [{ createName: '', stateName: '完成', createTime: '' }]
      },
      unitList: [],
      polluteList: [],
@@ -317,15 +279,25 @@
      return this.dialogData.parentFormData
    },
    updataUnitIdFormatter: function() {
      const data = this.unitList.find(item => item && item.unitId === this.dialogData.parentFormData.escalationUnitId)
      const data = this.unitList.find(
        item =>
          item &&
          item.unitId === this.dialogData.parentFormData.escalationUnitId
      )
      return data ? data.unitName : ''
    },
    unitIdFormatter: function() {
      const data = this.unitList.find(item => item && item.unitId === this.dialogData.parentFormData.unitId)
      const data = this.unitList.find(
        item => item && item.unitId === this.dialogData.parentFormData.unitId
      )
      return data ? data.unitName : ''
    },
    polluteTypeFormatter: function() {
      const data = this.polluteList.find(item => item && parseInt(item.dataKey) === this.dialogData.parentFormData.polluteType)
      const data = this.polluteList.find(
        item =>
          item &&
          parseInt(item.dataKey) === this.dialogData.parentFormData.polluteType
      )
      return data ? data.dataValue : ''
    },
    setepList() {
@@ -346,7 +318,7 @@
    }
  },
  watch: {
    'parentFormData': {
    parentFormData: {
      handler(newVal) {
        this.searchthisFileList(newVal)
      },
@@ -363,7 +335,7 @@
      console.log('fileList', fileList)
      this.fileList = []
      if (fileList.length > 0) {
        fileList.map((item) => {
        fileList.map(item => {
          if (item.response) {
            this.fileList.push(item.response.data)
          }
@@ -401,11 +373,16 @@
      if (newVal.fileBaseList && newVal.fileBaseList.length > 0) {
        newVal.fileBaseList.forEach(item => {
          if (item.fileType === 1) {
            this.fileBaseList.push(`${requestObj.baseUrl}/file/preview/${item.fileId}`) // 原图
            this.fileBaseList.push(
              `${requestObj.baseUrl}/file/preview/${item.fileId}`
            ) // 原图
          }
          this.fileBaseListCover.push({
            url: item.fileType === 1 ? `${requestObj.baseUrl}/file/preview/cover/${item.fileId}` : `${requestObj.baseUrl}/file/preview/${item.fileId}`,
            url:
              item.fileType === 1
                ? `${requestObj.baseUrl}/file/preview/cover/${item.fileId}`
                : `${requestObj.baseUrl}/file/preview/${item.fileId}`,
            fileType: item.fileType,
            id: item.fileId
          })
@@ -415,10 +392,15 @@
      if (newVal.fileChangeList && newVal.fileChangeList.length > 0) {
        newVal.fileChangeList.forEach(item => {
          if (item.fileType === 1) {
            this.fileChangeList.push(`${requestObj.baseUrl}/file/preview/${item.fileId}`) // 原图
            this.fileChangeList.push(
              `${requestObj.baseUrl}/file/preview/${item.fileId}`
            ) // 原图
          }
          this.fileChangeListCover.push({
            url: item.fileType === 1 ? `${requestObj.baseUrl}/file/preview/cover/${item.fileId}` : `${requestObj.baseUrl}/file/preview/${item.fileId}`,
            url:
              item.fileType === 1
                ? `${requestObj.baseUrl}/file/preview/cover/${item.fileId}`
                : `${requestObj.baseUrl}/file/preview/${item.fileId}`,
            fileType: item.fileType,
            id: item.fileId
          })
@@ -427,11 +409,18 @@
      if (newVal.fileApproveList && newVal.fileApproveList.length > 0) {
        newVal.fileApproveList.forEach(item => {
          if (item.fileType === 1) {
            this.fileApproveList.push(`${requestObj.baseUrl}/file/preview/${item.fileId}`) // 原图
            this.fileApproveList.push(
              `${requestObj.baseUrl}/file/preview/${item.fileId}`
            ) // 原图
          }
          this.fileApproveList.push(`${requestObj.baseUrl}/file/preview/${item.fileId}`) // 原图
          this.fileApproveList.push(
            `${requestObj.baseUrl}/file/preview/${item.fileId}`
          ) // 原图
          this.fileApproveListCover.push({
            url: item.fileType === 1 ? `${requestObj.baseUrl}/file/preview/cover/${item.fileId}` : `${requestObj.baseUrl}/file/preview/${item.fileId}`,
            url:
              item.fileType === 1
                ? `${requestObj.baseUrl}/file/preview/cover/${item.fileId}`
                : `${requestObj.baseUrl}/file/preview/${item.fileId}`,
            fileType: item.fileType,
            id: item.fileId
          })
@@ -440,11 +429,18 @@
      if (newVal.fileList && newVal.fileList.length > 0) {
        newVal.fileList.forEach(item => {
          if (item.fileType === 1) {
            this.fileDelayList.push(`${requestObj.baseUrl}/file/preview/${item.fileId}`) // 原图
            this.fileDelayList.push(
              `${requestObj.baseUrl}/file/preview/${item.fileId}`
            ) // 原图
          }
          this.fileDelayList.push(`${requestObj.baseUrl}/file/preview/${item.fileId}`) // 原图
          this.fileDelayList.push(
            `${requestObj.baseUrl}/file/preview/${item.fileId}`
          ) // 原图
          this.fileDelayListCover.push({
            url: item.fileType === 1 ? `${requestObj.baseUrl}/file/preview/cover/${item.fileId}` : `${requestObj.baseUrl}/file/preview/${item.fileId}`,
            url:
              item.fileType === 1
                ? `${requestObj.baseUrl}/file/preview/cover/${item.fileId}`
                : `${requestObj.baseUrl}/file/preview/${item.fileId}`,
            fileType: item.fileType,
            id: item.fileId
          })
@@ -459,7 +455,7 @@
      this.$request({
        url: '/allocation/unit',
        method: 'get'
      }).then((res) => {
      }).then(res => {
        this.unitList = res.data
      })
    },
@@ -471,7 +467,7 @@
          id: this.dialogData.parentFormData.id,
          state: state
        }
      }).then((res) => {
      }).then(res => {
        if (res.code === 0) {
          this.$emit('update:visible', false)
          this.$emit('handeleSumit')
@@ -488,32 +484,32 @@
      if (this.dialogData.pageType === 'work') {
        api = '/allocation/change'
        data = {
          'allocationId': this.dialogData.parentFormData.allocationId,
          allocationId: this.dialogData.parentFormData.allocationId,
          ...this.workForme,
          'fileChangeList': this.fileList,
          fileChangeList: this.fileList,
          state: 30
        }
      } else if (this.dialogData.pageType === 'approve') {
        api = '/allocation/check'
        data = {
          'allocationId': this.dialogData.parentFormData.allocationId,
          allocationId: this.dialogData.parentFormData.allocationId,
          ...this.approveForm,
          'fileApproveList': this.fileList,
          fileApproveList: this.fileList,
          state: state
        }
      } else if (this.dialogData.pageType === 'delay') {
        api = '/allocation/applyfor'
        data = {
          'allocationId': this.dialogData.parentFormData.allocationId,
          allocationId: this.dialogData.parentFormData.allocationId,
          ...this.delayForm,
          'fileList': this.fileList
          fileList: this.fileList
        }
      }
      this.$request({
        url: api,
        method: 'post',
        data: data
      }).then((res) => {
      }).then(res => {
        if (res.code === 0) {
          this.$emit('update:visible', false)
          this.$emit('handeleSumit')
@@ -526,7 +522,7 @@
      this.$request({
        url: '/allocation/contaminate',
        method: 'get'
      }).then((res) => {
      }).then(res => {
        this.polluteList = res.data
      })
    }
@@ -563,7 +559,9 @@
    font-size: 15px;
    color: rgba(16, 16, 16, 1);
  }
  .rectification ,.examineAndApprove,.rectificationContent{
.rectification,
.examineAndApprove,
.rectificationContent {
    margin-top: 20px;
    border-bottom: 1px dashed rgba(187, 187, 187, 1);
    margin-bottom: 10px;
src/views/toCarryOutLegislativeReforms/reform/index.vue
@@ -1,36 +1,15 @@
<template>
  <div class="main">
    <div>
      <searchBar v-if="searchType" :search-type="'reform'" @handleSearch="handleSearch" @handleAdd="handleOpenDialog(null,'add')" />
      <newWorkOrder
        v-if="centerDialogVisible"
        ref="newWorkOrder"
        :parent-form-data="parentFormData"
        :title="title"
        :page-state="pageState"
        :visible.sync="centerDialogVisible"
        @handleSubmit="newHandleSubmit"
      />
      <searchBar v-if="searchType" :search-type="'reform'" @handleSearch="handleSearchBut" @handleAdd="handleOpenDialog(null, 'add')" />
      <newWorkOrder v-if="centerDialogVisible" ref="newWorkOrder" :parent-form-data="parentFormData" :title="title" :page-state="pageState" :visible.sync="centerDialogVisible" @handleSubmit="newHandleSubmit" />
      <div class="tab">
        <el-table
          size="mini"
          :data="tableData"
          border
          max-height="680"
          style="width: 100%"
          :header-cell-style="{
            color: '#101111', fontSize: '16px'
          }"
        >
          <el-table-column
            type="index"
            label="序号"
            width="60px"
            align="center"
          />
          <el-table-column
            align="center"
          >
        <el-table size="mini" :data="tableData" border max-height="680" style="width: 100%" :header-cell-style="{
            color: '#101111',
            fontSize: '16px'
          }">
          <el-table-column type="index" label="序号" width="60px" align="center" />
          <el-table-column align="center">
            <template slot="header">
              <div>单号</div>
              <div>上报时间</div>
@@ -38,25 +17,11 @@
            <template slot-scope="scope">
              <div> {{ scope.row.allocationNum }}</div>
              <div> {{ scope.row.escalationTime }}</div>
            </template>
          </el-table-column>
          <el-table-column
            align="center"
            prop="unitId"
            label="责任主体"
            :formatter="unitIdFormatter"
          />
          <el-table-column
            align="center"
            prop="polluteType"
            label="污染分类"
            width="120px"
            :formatter="polluteTypeFormatter"
          />
          <el-table-column
            align="center"
          >
          <el-table-column align="center" prop="unitId" label="责任主体" :formatter="unitIdFormatter" />
          <el-table-column align="center" prop="polluteType" label="污染分类" width="120px" :formatter="polluteTypeFormatter" />
          <el-table-column align="center">
            <template slot="header">
              <div>整改方式</div>
              <div>剩余天数</div>
@@ -67,26 +32,12 @@
                <span v-if="Number(scope.row.residueDay) < 0">
                  延期 {{ Math.abs(scope.row.residueDay) }}天
                </span>
                <span v-else>
                  {{ scope.row.residueDay }}天
                </span>
                <span v-else> {{ scope.row.residueDay }}天 </span>
              </div>
            </template>
          </el-table-column>
          <el-table-column
            align="center"
            prop="investigationType"
            label="排查方式"
            width="100px"
            :formatter="investigationTypeFormatter"
          />
          <el-table-column
            align="center"
            prop="state"
            width="100px"
            label="流程状态"
          >
          <el-table-column align="center" prop="investigationType" label="排查方式" width="100px" :formatter="investigationTypeFormatter" />
          <el-table-column align="center" prop="state" width="100px" label="流程状态">
            <template slot-scope="scope">
              <el-tag v-if="scope.row.state===40" type="success">
                {{ stateFormatter(scope.row) }}
@@ -108,16 +59,8 @@
              </el-tag>
            </template>
          </el-table-column>
          <el-table-column
            align="center"
            prop="isInvalid"
            label="是否作废"
            width="60px"
            :formatter="isInvalidFormatter"
          />
          <el-table-column
            align="center"
          >
          <el-table-column align="center" prop="isInvalid" label="是否作废" width="60px" :formatter="isInvalidFormatter" />
          <el-table-column align="center">
            <template slot="header">
              <div>上报单位</div>
              <div>上报人</div>
@@ -125,12 +68,9 @@
            <template slot-scope="scope">
              <div> {{ scope.row.escalationName }}</div>
              <div> {{ updatUnitIdFormatter(scope.row) }}</div>
            </template>
          </el-table-column>
          <el-table-column
            align="center"
          >
          <el-table-column align="center">
            <template slot="header">
              <div>操作人</div>
              <div>操作时间</div>
@@ -140,59 +80,105 @@
              <div>{{ scope.row.updateTime }}</div>
            </template>
          </el-table-column>
          <el-table-column
            align="center"
            prop="createTime"
            width="100px"
            label="操作"
          >
          <el-table-column align="center" prop="createTime" width="100px" label="操作">
            <template slot-scope="scope">
              <el-button type="text" size="medium" @click="openWorkOrdinDialog(scope.row,'detail')">详情</el-button>
              <el-button v-if="scope.row.state===9" type="text" size="medium" @click="handleOpenDialog(scope.row,'edit')">编辑</el-button>
              <el-button v-if="scope.row.state>30&&scope.row.isInvalid===0" type="text" size="medium" @click="handleCancel(scope.row)">作废</el-button>
              <el-button v-if="scope.row.state===20" type="text" size="medium" @click="openWorkOrdinDialog(scope.row,'work')">整改</el-button>
              <el-button v-if="scope.row.state===30&&scope.row.isApprove===1" type="text" size="medium" @click="openWorkOrdinDialog(scope.row,'approve')">审批</el-button>
              <el-button v-if="scope.row.state===20&&scope.row.changeType===2&&scope.row.applyState===0" type="text" size="medium" @click="openWorkOrdinDialog(scope.row,'delay')">延期申请</el-button>
              <el-button type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'detail')">
                详情
              </el-button>
              <el-button type="text" v-if="scope.row.isCode==='1'" size="medium" @click="openEditDialog(scope.row)">
                修改单位
              </el-button>
              <el-button v-if="scope.row.state === 9" type="text" size="medium" @click="handleOpenDialog(scope.row, 'edit')">
                编辑
              </el-button>
              <el-button v-if="scope.row.state > 30 && scope.row.isInvalid === 0" type="text" size="medium" @click="handleCancel(scope.row)">
                作废
              </el-button>
              <el-button v-if="scope.row.state === 20" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'work')">
                整改
              </el-button>
              <el-button v-if="scope.row.state === 30 && scope.row.isApprove === 1" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'approve')">
                审批
              </el-button>
              <el-button v-if="
                  scope.row.state === 20 &&
                  scope.row.changeType === 2 &&
                  scope.row.applyState === 0
                " type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'delay')">
                延期申请
              </el-button>
            </template>
          </el-table-column>
        </el-table>
      </div>
      <div class="pagina">
        <el-pagination
          background
          :current-page="pagination.currentPage"
          :page-sizes="pagination.pageSizes"
          :page-size="pagination.pageSize"
          :total="pagination.totalCount"
          layout="total, sizes, prev, pager, next, jumper"
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
        />
        <el-pagination background :current-page="pagination.currentPage" :page-sizes="pagination.pageSizes" :page-size="pagination.pageSize" :total="pagination.totalCount" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
      </div>
    </div>
    <workOrderInformation v-if="workOrdinDialogVisible" :dialog-data="dialogData" :visible.sync="workOrdinDialogVisible" @handeleSumit="handeleSumit" />
    <el-dialog
      title="作废"
      :visible.sync="dialogVisible"
      width="600px"
      :before-close="handleClose"
      center
    >
    <el-dialog title="作废" :visible.sync="dialogVisible" width="600px" :before-close="handleClose" center>
      <div>
        <el-form label-width="100px">
          <el-form-item label="作废理由:" style="margin-right: 30px;">
            <el-input
              v-model="invalidReason"
              type="textarea"
              :autosize="{ minRows: 2, maxRows: 10}"
              placeholder="请输入内容"
            />
          <el-form-item label="作废理由:" style="margin-right: 30px">
            <el-input v-model="invalidReason" type="textarea" :autosize="{ minRows: 2, maxRows: 10 }" placeholder="请输入内容" />
          </el-form-item>
        </el-form>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="handleClose">取 消</el-button>
        <el-button type="primary" @click="handleInvalid">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog title="修改" v-if="dialogEditVisible" :visible.sync="dialogEditVisible" width="800px" top='5vh' :before-close="handleClose" center>
      <el-descriptions title="基本信息">
        <template slot="extra">
          <div>
            {{ editEscalationUnitData.allocationNum}}
          </div>
        </template>
        <el-descriptions-item label="上报时间" label-class-name="itemSpan">{{ editEscalationUnitData.escalationTime }}</el-descriptions-item>
        <el-descriptions-item label="责任单位" label-class-name="itemSpan">{{ updataUnitIdFormatter }}</el-descriptions-item>
        <el-descriptions-item label="污染分类" label-class-name="itemSpan">{{ polluteTypeeDITFormatter }}</el-descriptions-item>
        <el-descriptions-item label="整改类型" label-class-name="itemSpan">{{ dictObj.changeEnum[editEscalationUnitData.changeType] }}</el-descriptions-item>
        <el-descriptions-item label="期限天数" label-class-name="itemSpan">{{ editEscalationUnitData.changeDay || 0}} 天</el-descriptions-item>
        <el-descriptions-item label="上报单位" label-class-name="itemSpan">{{ updataEscalationUnitIdFormatter }}</el-descriptions-item>
        <el-descriptions-item label="上报人" label-class-name="itemSpan">{{ editEscalationUnitData.escalationName }}</el-descriptions-item>
        <el-descriptions-item label="污染位置" label-class-name="itemSpan">{{ editEscalationUnitData.pollutePosition }}</el-descriptions-item>
      </el-descriptions>
      <el-divider></el-divider>
      <div>
        <p class="editTile">修改操作</p>
        <el-form :inline="true" class="demo-form-inline">
          <el-form-item label="责任单位:">
            <el-select v-model="formInEdit.unitId" size="small" clearable placeholder="请选择">
              <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
            </el-select>
          </el-form-item>
          <el-form-item label="污染分类:">
            <el-select v-model="formInEdit.polluteType" size="small" clearable placeholder="请选择">
              <el-option v-for="item in polluteList" :key="item.dataKey" :label="item.dataValue" :value="item.dataKey" />
            </el-select>
          </el-form-item>
        </el-form>
      </div>
      <el-collapse>
        <el-collapse-item title="修改记录" name="1">
          <div class="block">
            <el-timeline>
              <el-timeline-item v-for="(activity, index) in operatingLog" :key="index" :color="'#0bbd87'" :timestamp="activity.createTime">
                <div v-if="activity.content"> 操作人: {{activity.userName}}</div>
                <div v-if="activity.content"> 责任单位: {{activity.content}}</div>
                <div v-if="activity.polluteType"> 污染分类: {{activity.polluteType}}</div>
              </el-timeline-item>
            </el-timeline>
          </div>
        </el-collapse-item>
      </el-collapse>
      <span slot="footer" class="dialog-footer">
        <el-button @click="handleClose">取 消</el-button>
        <el-button type="primary" @click="handleEditChange">确 定</el-button>
      </span>
    </el-dialog>
  </div>
@@ -222,8 +208,7 @@
        pageSize: 10
      },
      formData: {},
      tableData: [
      ],
      tableData: [],
      dialogData: {
        title: '整改',
        parentFormData: {},
@@ -233,6 +218,7 @@
      workOrdinDialogVisible: false,
      centerDialogVisible: false,
      dialogVisible: false,
      dialogEditVisible: false,
      unitList: [],
      polluteList: [],
      Dic: JSON.parse(localStorage.getItem('dict')),
@@ -244,22 +230,106 @@
      title: '',
      searchData: {
        isInvalid: 0
      }
      },
      editEscalationUnitData: {},
      formInEdit: {
        polluteType: '',
        unitId: ''
      },
      operatingLog: []
    }
  },
  computed: {
    updataEscalationUnitIdFormatter: function () {
      const data = this.unitList.find(
        item =>
          item && item.unitId === this.editEscalationUnitData.escalationUnitId
      )
      return data ? data.unitName : ''
    },
    updataUnitIdFormatter: function () {
      const data = this.unitList.find(
        item => item && item.unitId === this.editEscalationUnitData.unitId
      )
      return data ? data.unitName : ''
    },
    polluteTypeeDITFormatter: function () {
      const data = this.polluteList.find(
        item =>
          item &&
          parseInt(item.dataKey) === this.editEscalationUnitData.polluteType
      )
      return data ? data.dataValue : ''
    }
  },
  created() {
    this.handleSearch()
    this.getUnitList()
    this.getContaminateList()
  },
  methods: {
    openEditDialog(row) {
      this.editEscalationUnitData = row
      this.dialogEditVisible = true
      this.$request({
        url: '/allocation/getLog',
        method: 'get',
        params: {
          allocationNum: this.editEscalationUnitData.allocationNum
        }
      })
        .then(res => {
          this.operatingLog = res.data
        })
        .catch(err => {
          this.$message.error(res.message)
          console.log('请求Region失败')
          console.log(err)
        })
    },
    handleCancel(row) {
      this.dialogVisible = true
      this.slectRow = row
    },
    handleClose() {
      this.dialogVisible = false
      this.dialogEditVisible = false
    },
    handleEditChange() {
      if (this.formInEdit.polluteType === '' && this.formInEdit.unitId === '') {
        this.$message({
          message: '请选择后再提交',
          type: 'error'
        })
        return
      }
      this.$request({
        url: '/allocation/updataUnit',
        method: 'get',
        params: {
          id: this.editEscalationUnitData.allocationId,
          ...this.formInEdit
        }
      })
        .then(res => {
          if (res.code === 0) {
            this.$message({
              message: '修改成功',
              type: 'success'
            })
            this.dialogEditVisible = false
            this.formInEdit = {
              polluteType: '',
              unitId: ''
            }
            this.handleSearch()
          }
        })
        .catch(err => {
          this.$message.error(res.message)
          console.log('请求Region失败')
          console.log(err)
        })
    },
    handleInvalid() {
      this.$request({
@@ -269,7 +339,7 @@
          id: this.slectRow.allocationId,
          invalidReason: this.invalidReason
        }
      }).then((res) => {
      }).then(res => {
        if (res.code === 0) {
          this.$message({
            message: '处理成功',
@@ -296,7 +366,7 @@
          params: {
            id: row.allocationId
          }
        }).then((res) => {
        }).then(res => {
          this.parentFormData = res.data
          console.log(this.parentFormData)
          this.centerDialogVisible = true
@@ -304,22 +374,27 @@
      }
    },
    updatUnitIdFormatter(val) {
      const data = this.unitList.find(item => item && item.unitId === val.escalationUnitId)
      const data = this.unitList.find(
        item => item && item.unitId === val.escalationUnitId
      )
      return data ? data.unitName : ''
    },
    unitIdFormatter(val) {
      const data = this.unitList.find(item => item && item.unitId === val.unitId)
      const data = this.unitList.find(
        item => item && item.unitId === val.unitId
      )
      return data ? data.unitName : ''
    },
    polluteTypeFormatter(val) {
      const data = this.polluteList.find(item => item && parseInt(item.dataKey) === val.polluteType)
      const data = this.polluteList.find(
        item => item && parseInt(item.dataKey) === val.polluteType
      )
      return data ? data.dataValue : ''
    },
    investigationTypeFormatter(val) {
      return this.dictObj.investigationEnum[val.investigationType]
    },
    stateFormatter(val) {
      console.log('valval', val)
      return this.dictObj.allocationApproveEnum[val.state]
    },
    isInvalidFormatter(val) {
@@ -330,7 +405,7 @@
      this.$request({
        url: '/allocation/unit',
        method: 'get'
      }).then((res) => {
      }).then(res => {
        if (res.code === 0) {
          this.unitList = res.data
        } else {
@@ -342,7 +417,7 @@
      this.$request({
        url: '/allocation/contaminate',
        method: 'get'
      }).then((res) => {
      }).then(res => {
        if (res.code === 0) {
          this.polluteList = res.data
        } else {
@@ -368,7 +443,7 @@
        data: {
          ...obj
        }
      }).then((res) => {
      }).then(res => {
        if (res.code === 0) {
          this.centerDialogVisible = false
@@ -377,6 +452,18 @@
          this.$message.error(res.message)
        }
      })
    },
    handleSearchBut(obj) {
      this.pagination = {
        currentPage: 1,
        // 总条数,根据接口获取数据长度(注意:这里不能为空)
        totalCount: 0,
        // 个数选择器(可修改)
        pageSizes: [10, 20, 30, 40],
        // 默认每页显示的条数(可修改)
        pageSize: 10
      }
      this.handleSearch(obj)
    },
    handleSearch(obj) {
      this.searchData.isInvalid = 0
@@ -388,9 +475,9 @@
        method: 'post',
        data: {
          ...this.searchData,
          'page': this.pagination
          page: this.pagination
        }
      }).then((res) => {
      }).then(res => {
        if (res.code === 0) {
          this.tableData = res.data.list
          this.pagination.totalCount = res.data.page.totalNum
@@ -403,6 +490,7 @@
    // 每页显示的条数
    handleSizeChange(val) {
      // 改变每页显示的条数
      console.log('345')
      this.pagination.pageSize = val
      // 注意:在改变每页显示的条数时,要将页码显示到第一页
      this.pagination.currentPage = 1
@@ -411,6 +499,7 @@
    // 显示第几页
    handleCurrentChange(val) {
      // 改变默认的页数
      console.log('123')
      this.pagination.currentPage = val
      this.handleSearch()
      // console.log(val)
@@ -422,7 +511,7 @@
        params: {
          id: row.allocationId
        }
      }).then((res) => {
      }).then(res => {
        this.parentFormData = res.data
        this.workOrdinDialogVisible = true
        if (type === 'work') {
@@ -494,9 +583,18 @@
      margin:0;
    }
  }
}
.errorClass{
  color: red;
}
.editTile {
  color: #303133;
  font-size: 16px;
  font-weight: 700;
}
/deep/.el-collapse-item__header {
  color: #303133;
  font-size: 16px;
  font-weight: 700;
}
</style>