Selaa lähdekoodia

隐患问题已逾期状态显示不对

jiawuxian 1 vuosi sitten
vanhempi
commit
90aad2957e
2 muutettua tiedostoa jossa 230 lisäystä ja 175 poistoa
  1. 226 174
      src/views/menu/problemItem/detail.vue
  2. 4 1
      src/views/menu/problemItem/index.vue

+ 226 - 174
src/views/menu/problemItem/detail.vue

@@ -3,7 +3,7 @@
     <nav-bar></nav-bar>
     <div class="page-container">
       <!--   基本信息   -->
-      <div  v-if="taskInfo">
+      <div v-if="taskInfo">
         <div class="card">
           <div class="mainItem">
             <van-row>
@@ -11,9 +11,9 @@
                 <div>问题名称</div>
               </van-col>
               <van-col :span="16">
-              <span>
-                {{taskInfo.srcTaskName}}
-              </span>
+                <span>
+                  {{ taskInfo.srcTaskName }}
+                </span>
               </van-col>
             </van-row>
           </div>
@@ -24,11 +24,23 @@
                   <div>问题状态</div>
                 </van-col>
                 <van-col :span="16">
-                 <span v-if="taskInfo.reformStatus" :style="{color:getState(getDictLabel(taskInfo.reformStatus,'app_question_status'))}">
-                  {{getDictLabel(taskInfo.reformStatus,'app_question_status')}}
+                  <span
+                    v-if="taskInfo.overdueStatus"
+                    :style="{ color: getState(getDictLabel(taskInfo.overdueStatus, 'app_question_status')) }"
+                  >
+                    {{ getDictLabel(taskInfo.overdueStatus, 'app_question_status') }}
+                  </span>
+                  <span
+                    v-else-if="taskInfo.reformStatus"
+                    :style="{ color: getState(getDictLabel(taskInfo.reformStatus, 'app_question_status')) }"
+                  >
+                    {{ getDictLabel(taskInfo.reformStatus, 'app_question_status') }}
                   </span>
-                  <span v-else :style="{color:getState(getDictLabel(taskInfo.confirmStatus,'app_question_status'))}">
-                  {{getDictLabel(taskInfo.confirmStatus,'app_question_status')}}
+                  <span
+                    v-else
+                    :style="{ color: getState(getDictLabel(taskInfo.confirmStatus, 'app_question_status')) }"
+                  >
+                    {{ getDictLabel(taskInfo.confirmStatus, 'app_question_status') }}
                   </span>
                 </van-col>
               </van-row>
@@ -39,9 +51,9 @@
                   <div>隐患所在机构</div>
                 </van-col>
                 <van-col :span="16">
-                <span>
-                  {{taskInfo.orgName}}
-                </span>
+                  <span>
+                    {{ taskInfo.orgName }}
+                  </span>
                 </van-col>
               </van-row>
             </div>
@@ -52,9 +64,9 @@
                   <div>检查项</div>
                 </van-col>
                 <van-col :span="16">
-                 <span>
-                  {{taskInfo.checkItem}}
-                </span>
+                  <span>
+                    {{ taskInfo.checkItem }}
+                  </span>
                 </van-col>
               </van-row>
             </div>
@@ -65,9 +77,9 @@
                   <div>检查内容</div>
                 </van-col>
                 <van-col :span="16">
-                 <span>
-                  {{taskInfo.checkContent}}
-                </span>
+                  <span>
+                    {{ taskInfo.checkContent }}
+                  </span>
                 </van-col>
               </van-row>
             </div>
@@ -78,9 +90,9 @@
                   <div>隐患描述</div>
                 </van-col>
                 <van-col :span="16">
-                 <span>
-                  {{taskInfo.questionDesc}}
-                </span>
+                  <span>
+                    {{ taskInfo.questionDesc }}
+                  </span>
                 </van-col>
               </van-row>
             </div>
@@ -91,9 +103,9 @@
                   <div>发现时间</div>
                 </van-col>
                 <van-col :span="16">
-                 <span>
-                  {{taskInfo.submitTime}}
-                </span>
+                  <span>
+                    {{ taskInfo.submitTime }}
+                  </span>
                 </van-col>
               </van-row>
             </div>
@@ -104,9 +116,9 @@
                   <div>提出人</div>
                 </van-col>
                 <van-col :span="16">
-                 <span>
-                  {{taskInfo.submitorName}}
-                </span>
+                  <span>
+                    {{ taskInfo.submitorName }}
+                  </span>
                 </van-col>
               </van-row>
             </div>
@@ -117,9 +129,9 @@
                   <div>整改期限</div>
                 </van-col>
                 <van-col :span="16">
-                 <span>
-                  {{formatDate(taskInfo.reformDeadline,'YYYY-MM-DD')}}
-                </span>
+                  <span>
+                    {{ formatDate(taskInfo.reformDeadline, 'YYYY-MM-DD') }}
+                  </span>
                 </van-col>
               </van-row>
             </div>
@@ -130,8 +142,18 @@
                   <div>隐患图片</div>
                 </van-col>
                 <van-col :span="16">
-                  <div class="nfc-img" v-for="(v,i) in ['/2023/12/18/20231218165501A031.png','/2023/12/18/20231218165501A031.png','/statics/2023/12/18/20231218165501A031.png','/statics/2023/12/18/20231218165501A031.png']" :key="v" @click="clickImage(taskInfo.images,i)">
-                    <img :src="imgUrl(v)" alt="" >
+                  <div
+                    class="nfc-img"
+                    v-for="(v, i) in [
+                      '/2023/12/18/20231218165501A031.png',
+                      '/2023/12/18/20231218165501A031.png',
+                      '/statics/2023/12/18/20231218165501A031.png',
+                      '/statics/2023/12/18/20231218165501A031.png'
+                    ]"
+                    :key="v"
+                    @click="clickImage(taskInfo.images, i)"
+                  >
+                    <img :src="imgUrl(v)" alt="" />
                   </div>
                   <!-- <div class="nfc-img" v-for="(v,i) in taskInfo.images" :key="v" @click="clickImage(taskInfo.images,i)">
                     <img :src="imgUrl(v)" alt="" >
@@ -143,20 +165,24 @@
         </div>
       </div>
 
-      <div  v-if="taskInfo.reform">
+      <div v-if="taskInfo.reform">
         <p class="info-title">整改情况</p>
-        <div class="card" >
+        <div class="card">
           <div class="mainItem">
             <van-row>
               <van-col :span="8" class="label"><div>整改日期</div></van-col>
-              <van-col :span="16"><span>{{formatDate(taskInfo.reform.reformDate,'YYYY-MM-DD')}}</span></van-col>
+              <van-col :span="16"
+                ><span>{{ formatDate(taskInfo.reform.reformDate, 'YYYY-MM-DD') }}</span></van-col
+              >
             </van-row>
           </div>
 
           <div class="mainItem">
             <van-row>
               <van-col :span="8" class="label"><div>整改描述</div></van-col>
-              <van-col :span="16"><span>{{taskInfo.reform.description}}</span></van-col>
+              <van-col :span="16"
+                ><span>{{ taskInfo.reform.description }}</span></van-col
+              >
             </van-row>
           </div>
 
@@ -164,9 +190,14 @@
             <van-row>
               <van-col :span="8" class="label"><div>上传信息</div></van-col>
               <van-col :span="16">
-                <div  v-if="taskInfo.reform.images && taskInfo.reform.images.length > 0">
-                  <div class="nfc-img van-hairline--surround" v-for="(v,i) in taskInfo.reform.images" :key="v" @click="clickImage(taskInfo.reform.images,i)">
-                    <img :src="imgUrl(v)" alt="" >
+                <div v-if="taskInfo.reform.images && taskInfo.reform.images.length > 0">
+                  <div
+                    class="nfc-img van-hairline--surround"
+                    v-for="(v, i) in taskInfo.reform.images"
+                    :key="v"
+                    @click="clickImage(taskInfo.reform.images, i)"
+                  >
+                    <img :src="imgUrl(v)" alt="" />
                   </div>
                 </div>
               </van-col>
@@ -175,30 +206,35 @@
         </div>
       </div>
 
-      <div v-if="taskInfo.confirm" >
+      <div v-if="taskInfo.confirm">
         <p class="info-title">处理情况</p>
         <div class="card">
           <div class="mainItem">
             <van-row>
               <van-col :span="8" class="label"><div>处理意见</div></van-col>
-              <van-col :span="16"><span>{{taskInfo.confirm.executeStatus === 0 ? '确认' : '提出异议'}}</span></van-col>
+              <van-col :span="16"
+                ><span>{{ taskInfo.confirm.executeStatus === 0 ? '确认' : '提出异议' }}</span></van-col
+              >
             </van-row>
           </div>
 
-          <div class="mainItem" v-show="taskInfo.confirm.executeStatus===1">
-            <van-row >
+          <div class="mainItem" v-show="taskInfo.confirm.executeStatus === 1">
+            <van-row>
               <van-col :span="8" class="label"><div>异议内容</div></van-col>
-              <van-col  :span="16"><span>{{taskInfo.confirm.description}}</span></van-col>
+              <van-col :span="16"
+                ><span>{{ taskInfo.confirm.description }}</span></van-col
+              >
             </van-row>
           </div>
 
           <div class="mainItem">
-            <van-row >
+            <van-row>
               <van-col :span="8" class="label"><div>异议人</div></van-col>
-              <van-col  :span="16"><span>{{taskInfo.confirm.executorName}}</span></van-col>
+              <van-col :span="16"
+                ><span>{{ taskInfo.confirm.executorName }}</span></van-col
+              >
             </van-row>
           </div>
-
         </div>
       </div>
 
@@ -208,13 +244,17 @@
           <div class="mainItem">
             <van-row>
               <van-col :span="8" class="label"><div>审核结果</div></van-col>
-              <van-col :span="16"><span>{{taskInfo.confirmDissent.executeStatus === 0 ? '同意' : '不同意'}}</span></van-col>
+              <van-col :span="16"
+                ><span>{{ taskInfo.confirmDissent.executeStatus === 0 ? '同意' : '不同意' }}</span></van-col
+              >
             </van-row>
           </div>
-          <div class="mainItem" v-show="taskInfo.confirmDissent.executeStatus===1">
+          <div class="mainItem" v-show="taskInfo.confirmDissent.executeStatus === 1">
             <van-row>
               <van-col :span="8" class="label"><div>原因</div></van-col>
-              <van-col :span="16"><span>{{taskInfo.confirmDissent.description}}</span></van-col>
+              <van-col :span="16"
+                ><span>{{ taskInfo.confirmDissent.description }}</span></van-col
+              >
             </van-row>
           </div>
         </div>
@@ -223,7 +263,7 @@
       <div class="card edit-panel" v-if="type === 'confirm'">
         <van-panel title="确认">
           <div class="panel-box">
-            <van-radio-group  v-model="confirmData.status" required>
+            <van-radio-group v-model="confirmData.status" required>
               <van-cell-group>
                 <van-cell title="确认情况" clickable>
                   <template #right-icon>
@@ -248,9 +288,10 @@
               label="异议内容"
               type="textarea"
               show-word-limit
-              placeholder="请输入"/>
-            <div class="big-btn-box"  v-if="taskInfo.orgId == orgId && taskInfo.confirmStatus==0">
-              <van-button  type="info" size="large"  @click="onSubmit('确认')">提交</van-button>
+              placeholder="请输入"
+            />
+            <div class="big-btn-box" v-if="taskInfo.orgId == orgId && taskInfo.confirmStatus == 0">
+              <van-button type="info" size="large" @click="onSubmit('确认')">提交</van-button>
             </div>
           </div>
         </van-panel>
@@ -285,9 +326,10 @@
               :rules="[{ required: true, message: '请输入' }]"
               type="textarea"
               show-word-limit
-              placeholder="请输入"/>
-            <div class="big-btn-box" v-if="taskInfo.submitorId == id && taskInfo.confirmStatus==1">
-              <van-button  type="info" size="large"  @click="onSubmit('审核')">提交</van-button>
+              placeholder="请输入"
+            />
+            <div class="big-btn-box" v-if="taskInfo.submitorId == id && taskInfo.confirmStatus == 1">
+              <van-button type="info" size="large" @click="onSubmit('审核')">提交</van-button>
             </div>
           </div>
         </van-panel>
@@ -296,7 +338,15 @@
       <div class="card edit-panel" v-if="type === 'reform'">
         <van-panel title="整改情况">
           <div class="panel-box">
-            <date-cell required :min-date="dayjs(taskInfo.submitTime).toDate()" :max-date="maxDate" is-row title="整改日期" v-model="reformData.reformDate" dateType="date" />
+            <date-cell
+              required
+              :min-date="dayjs(taskInfo.submitTime).toDate()"
+              :max-date="maxDate"
+              is-row
+              title="整改日期"
+              v-model="reformData.reformDate"
+              dateType="date"
+            />
             <van-field
               required
               v-model="reformData.description"
@@ -306,199 +356,202 @@
               label="整改描述:"
               type="textarea"
               show-word-limit
-              placeholder="请输入"/>
-            <div class="upload-box" >
-              <uploader :maxCount="5" v-model="reformData.images"/>
+              placeholder="请输入"
+            />
+            <div class="upload-box">
+              <uploader :maxCount="5" v-model="reformData.images" />
             </div>
-            <div class="big-btn-box" v-if="taskInfo.orgId==orgId && taskInfo.confirmStatus==2 && taskInfo.reformStatus!=11">
-              <van-button  type="info" size="large"  @click="onSubmit('整改')">提交</van-button>
+            <div
+              class="big-btn-box"
+              v-if="taskInfo.orgId == orgId && taskInfo.confirmStatus == 2 && taskInfo.reformStatus != 11"
+            >
+              <van-button type="info" size="large" @click="onSubmit('整改')">提交</van-button>
             </div>
           </div>
         </van-panel>
       </div>
-
-      </div>
+    </div>
   </div>
 </template>
 
 <script>
-import NavBar from '@/components/NavBar';
-import SelectCell from '@/components/selectCell';
-import DateCell from '@/components/dateCell';
-import Uploader from '@/components/upload/gxuploader.vue';
-import {taskDetails,confirm, confirmDissent, reform,} from "./api";
-import {formatDate} from "@/filters/filter";
-import { ImagePreview } from 'vant';
-import {mapGetters} from "vuex";
-import {imgUrl} from "@/utils";
-import dayjs from "dayjs";
+import NavBar from '@/components/NavBar'
+import SelectCell from '@/components/selectCell'
+import DateCell from '@/components/dateCell'
+import Uploader from '@/components/upload/gxuploader.vue'
+import { taskDetails, confirm, confirmDissent, reform } from './api'
+import { formatDate } from '@/filters/filter'
+import { ImagePreview } from 'vant'
+import { mapGetters } from 'vuex'
+import { imgUrl } from '@/utils'
+import dayjs from 'dayjs'
 export default {
-  components:{NavBar,SelectCell,DateCell,Uploader},
-  data(){
+  components: { NavBar, SelectCell, DateCell, Uploader },
+  data() {
     return {
-      maxDate:new Date(),
+      maxDate: new Date(),
       //基本信息
-      taskInfo:[],
-      formData:{},
+      taskInfo: [],
+      formData: {},
       //确认
       confirmData: {
         status: 0,
-        description: null,
+        description: null
       },
       //审核
       confirmDissentData: {
         status: 0,
-        description: null,
+        description: null
       },
       //整改
       reformData: {
         reformDate: null,
         description: null,
-        images: null,
+        images: null
       },
-      type:null,
-      preViewImages:{},
-      dicts:['resumption_status'],
+      type: null,
+      preViewImages: {},
+      dicts: ['resumption_status']
     }
   },
   mounted() {
-    console.log('系统信息:'+window.navigator.platform);
-    this.getData();
+    console.log('系统信息:' + window.navigator.platform)
+    this.getData()
   },
-  computed:{
-    ...mapGetters(['orgId','id','dictionary'])
+  computed: {
+    ...mapGetters(['orgId', 'id', 'dictionary'])
   },
-  methods:{
-    dayjs,formatDate,
-    getState(state){
-      switch (state){
+  methods: {
+    dayjs,
+    formatDate,
+    getState(state) {
+      switch (state) {
         case '待整改':
-          return '#008cd6';
+          return '#008cd6'
         case '已整改':
-          return '#009240';
+          return '#009240'
         case '已逾期':
-          return '#D7000F';
+          return '#D7000F'
       }
     },
     //图片预览
-    clickImage(arr,i){
-      this.preViewImages.images = arr.map(v=>imgUrl(v));
-      this.preViewImages.startPosition = i;
-      ImagePreview(this.preViewImages);
+    clickImage(arr, i) {
+      this.preViewImages.images = arr.map(v => imgUrl(v))
+      this.preViewImages.startPosition = i
+      ImagePreview(this.preViewImages)
     },
     //提交
-    onSubmit(type){
-      let data,queryMethod;
-      switch (type){
+    onSubmit(type) {
+      let data, queryMethod
+      switch (type) {
         case '确认':
-          data = this.confirmData;
-          queryMethod = confirm;
-          break;
+          data = this.confirmData
+          queryMethod = confirm
+          break
         case '审核':
-          data = this.confirmDissentData;
-          queryMethod = confirmDissent;
+          data = this.confirmDissentData
+          queryMethod = confirmDissent
           break
         case '整改':
-          data = this.reformData;
-          queryMethod = reform;
+          data = this.reformData
+          queryMethod = reform
       }
-      if(type === '确认' || type === '审核'){
-        if(data.status == 1 && !data.description) {
-          return this.$toast("请填写信息");
+      if (type === '确认' || type === '审核') {
+        if (data.status == 1 && !data.description) {
+          return this.$toast('请填写信息')
         }
-      }else {
-        if(!data.reformDate || !data.description){
-          return this.$toast("请填写完整信息");
+      } else {
+        if (!data.reformDate || !data.description) {
+          return this.$toast('请填写完整信息')
         }
-        if(data.images){
-          let img = data.images.map(v=>{return v.imgPath});
-          data.images = img.toString();
+        if (data.images) {
+          let img = data.images.map(v => {
+            return v.imgPath
+          })
+          data.images = img.toString()
         }
       }
-      data.id = this.taskInfo.id;
-      queryMethod(data).then((r) => {
-        this.$toast("提交成功");
+      data.id = this.taskInfo.id
+      queryMethod(data).then(r => {
+        this.$toast('提交成功')
         this.$router.replace({
-          name:'problemItem',
-          path:'/problemItem',
-          params:{event:'refresh'}
-        });
-      });
+          name: 'problemItem',
+          path: '/problemItem',
+          params: { event: 'refresh' }
+        })
+      })
     },
 
     //初始化数据
     getData() {
-      let id = this.$route.query.id;
-      this.type = this.$route.query.type;
-      taskDetails(id).then(res=>{
-        this.taskInfo = res.data;
-        this.taskInfo.confirm = res.data.flows.find((d) => d.executeStep === 1);
-        this.taskInfo.confirmDissent = res.data.flows.find((d) => d.executeStep === 2);
-        this.taskInfo.reform = res.data.flows.find((d) => d.executeStep === 11);
-        if(this.taskInfo.reform && this.taskInfo.reform.images)     {
-          this.taskInfo.reform.images=this.taskInfo.reform.images.split(",")
+      let id = this.$route.query.id
+      this.type = this.$route.query.type
+      taskDetails(id).then(res => {
+        this.taskInfo = res.data
+        this.taskInfo.confirm = res.data.flows.find(d => d.executeStep === 1)
+        this.taskInfo.confirmDissent = res.data.flows.find(d => d.executeStep === 2)
+        this.taskInfo.reform = res.data.flows.find(d => d.executeStep === 11)
+        if (this.taskInfo.reform && this.taskInfo.reform.images) {
+          this.taskInfo.reform.images = this.taskInfo.reform.images.split(',')
         }
       })
     },
 
     //返回
-    goBack(){
-      this.$router.go(-1);
-      this.clearData();
+    goBack() {
+      this.$router.go(-1)
+      this.clearData()
     },
 
     //清空数据
-    clearData(){
-      this.taskInfo= [];
+    clearData() {
+      this.taskInfo = []
       //确认
       this.confirmData = {
         status: 0,
-        description: null,
+        description: null
       }
       //审核
       this.confirmDissentData = {
         status: 0,
-        description: null,
+        description: null
       }
       //整改
       this.reformData = {
         reformDate: null,
         description: null,
-        images: null,
+        images: null
       }
-    },
+    }
   }
 }
 </script>
 
 <style lang="scss">
-.question-edit{
-  .panel-box{
-
+.question-edit {
+  .panel-box {
   }
 }
-
 </style>
 <style lang="scss" scoped>
-
-.question-edit{
+.question-edit {
   height: 100%;
   overflow: hidden;
 }
-.page-container{
+.page-container {
   height: calc(100vh - 194px);
   overflow: auto;
   padding: 20px;
 }
-.flex-box{
+.flex-box {
   display: flex;
   justify-content: space-between;
   align-items: center;
-  >span{
+  > span {
     margin: 0 20px;
   }
 }
-.info-title{
+.info-title {
   height: 100px;
   line-height: 120px;
 }
@@ -510,7 +563,6 @@ export default {
   justify-content: end;
 }
 
-
 .van-row {
   background-color: #f0f0f0;
   display: flex;
@@ -521,10 +573,10 @@ export default {
     justify-content: center;
     align-items: center;
     padding: 10px;
-    background-color: rgb(230, 230, 230,0.4);
+    background-color: rgb(230, 230, 230, 0.4);
     opacity: 1;
   }
-  .van-col{
+  .van-col {
     text-align: justify;
     white-space: pre-wrap;
   }
@@ -546,67 +598,67 @@ export default {
   .tagCls {
     margin-top: 10px;
   }
-  .bgc{
+  .bgc {
     background-color: #fff;
     padding: 10px;
   }
 }
 
-.edit-panel{
+.edit-panel {
   margin-top: 20px;
 }
 
-.card{
+.card {
   margin-bottom: 20px;
   box-shadow: 0 10px 10px #eaeaea;
 }
-.card:last-child{
+.card:last-child {
   margin-bottom: 0;
 }
-.panel-box{
-  padding:0 20px;
+.panel-box {
+  padding: 0 20px;
 }
-.panel-box-item{
+.panel-box-item {
   height: 36px;
   line-height: 36px;
 }
-.item-label{
+.item-label {
   width: 100%;
   display: flex;
   justify-content: right;
   align-items: center;
 }
-.item-value{
+.item-value {
   width: 100%;
   display: flex;
   justify-content: left;
   align-items: center;
 }
-.upload-box{
+.upload-box {
   padding: 20px 30px;
 }
-.nfc-img{
+.nfc-img {
   display: inline-block;
   width: 140px;
   height: 140px;
   margin: 10px;
   position: relative;
-  &:first-child{
+  &:first-child {
     margin-left: 0;
   }
-  >img{
+  > img {
     width: 100%;
     height: 100%;
     border: none;
   }
-  >span{
+  > span {
     position: absolute;
     padding: 0 10px;
     bottom: 0;
     left: 0;
     display: block;
     width: 100%;
-    background-color: rgba(0,0,0,.2 );
+    background-color: rgba(0, 0, 0, 0.2);
     color: #eaeaea;
     font-size: 20px;
     overflow: hidden;
@@ -616,7 +668,7 @@ export default {
     height: 30px;
   }
 }
-.big-btn-box{
+.big-btn-box {
   padding-bottom: 20px;
 }
 </style>

+ 4 - 1
src/views/menu/problemItem/index.vue

@@ -67,7 +67,10 @@
                 <template #default>
                   <div class="info-box">
                     <div class="info-desc">问题状态:
-                      <span v-if="v.reformStatus" :style="{color:getState(getDictLabel(v.reformStatus,'app_question_status'))}">
+                      <span v-if="v.overdueStatus" :style="{color:getState(getDictLabel(v.overdueStatus,'app_question_status'))}">
+                        {{getDictLabel(v.overdueStatus,'app_question_status')}}
+                      </span>
+                      <span v-else-if="v.reformStatus" :style="{color:getState(getDictLabel(v.reformStatus,'app_question_status'))}">
                         {{getDictLabel(v.reformStatus,'app_question_status')}}
                       </span>
                       <span v-else :style="{color:getState(getDictLabel(v.confirmStatus,'app_question_status'))}">