Parcourir la source

Merge branch 'master' of http://47.110.251.215:3000/web/saber

gangyj il y a 3 ans
Parent
commit
8945fa1047
3 fichiers modifiés avec 93 ajouts et 37 suppressions
  1. 9 0
      src/api/news/news.js
  2. 21 21
      src/views/news/news.vue
  3. 63 16
      src/views/wel/index.vue

+ 9 - 0
src/api/news/news.js

@@ -68,3 +68,12 @@ export const queryOpinionTypeAmount = () => {
     method: 'post'
   })
 }
+
+//工单详情
+export const queryOpinionDetails = (params) => {
+  return request({
+    url: '/api/blade-manager/managerHomePage/queryOpinionDetails',
+    method: 'post',
+    params
+  })
+}

+ 21 - 21
src/views/news/news.vue

@@ -21,16 +21,16 @@
         slot="imageUrl"
         slot-scope="scope"
       >
-        <!-- <el-button
-          v-if="scope.row.imageUrl.length>0"
-          size="small"
-          @click="openPreview(scope.row.imageUrl,scope.$index)"
-        >图片</el-button> -->
         <el-button
           v-if="scope.row.imageUrl.length>0"
           size="small"
-          @click="openPreview(scope.row)"
+          @click="openPreview(scope.row.imageUrl,scope.$index)"
         >图片</el-button>
+<!--        <el-button-->
+<!--          v-if="scope.row.imageUrl.length>0"-->
+<!--          size="small"-->
+<!--          @click="openPreview(scope.row)"-->
+<!--        >图片</el-button>-->
       </template>
       <!-- 提交进度 -->
       <template
@@ -247,22 +247,22 @@ export default {
         this.operation.manageTime = '';
       }
     },
-    // openPreview (imageUrl, index) {
-    //   let imageUrls = []
-    //   imageUrl.forEach(val => {
-    //     imageUrls.push({ url: val })
-    //   });
-    //   this.$ImagePreview(imageUrls, index, {
-    //     closeOnClickModal: true,
-    //     // beforeClose:()=>{
-    //     //   this.$message.success('关闭回调')
-    //     // }
-    //   });
-    // },
-    openPreview(row){
-      this.imgVisible = true;
-      this.curNew = row;
+    openPreview (imageUrl, index) {
+      let imageUrls = []
+      imageUrl.forEach(val => {
+        imageUrls.push({ url: val })
+      });
+      this.$ImagePreview(imageUrls, index, {
+        closeOnClickModal: true,
+        // beforeClose:()=>{
+        //   this.$message.success('关闭回调')
+        // }
+      });
     },
+    // openPreview(row){
+    //   this.imgVisible = true;
+    //   this.curNew = row;
+    // },
     changeProgres (row) {
       this.curRow = { ...row }
       this.operation.show = this.curRow.currentLink == 2;

+ 63 - 16
src/views/wel/index.vue

@@ -28,6 +28,7 @@
               <el-button
                 type="text"
                 style="color:rgb(65, 80, 88);"
+                @click="openPreview(item)"
               >立即处理</el-button>
             </div>
             <div>
@@ -57,6 +58,7 @@
                 <el-button
                   type="text"
                   style="color:rgb(65, 80, 88);"
+                  @click="openPreview(item)"
                 >立即处理</el-button>
               </div>
               <div>
@@ -95,13 +97,38 @@
           <div id="container3"></div>
         </el-col>
       </el-row>
+
+      <el-dialog
+        title=""
+        :visible.sync="imgVisible"
+        append-to-body
+        width="80%">
+        <div class="mg-b-20">{{curNew.projectName}}——{{curNew.contractName}}</div>
+        <div class="mg-b-20">问题描述:{{curNew.opinionContent}}</div>
+        <div class="mg-b-20">
+          <span class="mg-r-20">反馈人员:{{curNew.submitUserName}}</span>
+          <span class="mg-r-20">电话:{{curNew.submitPhone}}</span>
+          <span class="mg-r-20">岗位:资料员</span>
+        </div>
+        <div class="mg-b-20">反馈时间:{{curNew.manageTime}}</div>
+        <el-carousel trigger="click" height="500px" :autoplay="false" style="text-align:center;">
+          <el-carousel-item v-for="item in curNew.fileUrl" :key="item">
+            <el-image :src="item" fit="scale-down" style="height:500px;" :preview-src-list="curNew.fileUrl"></el-image>
+          </el-carousel-item>
+        </el-carousel>
+        <span slot="footer" class="dialog-footer">
+          <el-button @click="imgVisible = false">取 消</el-button>
+          <el-button type="primary" @click="submissionProgress">前 往 处 理</el-button>
+        </span>
+      </el-dialog>
+
     </div>
   </div>
 </template>
 <script>
 // 引入统计图
 import { Area, Column, Pie } from '@antv/g2plot';
-import { queryBusinessUserOpinion, queryBusinessUserOpinionAll, queryProjectUserAmount, queryProjectPfx, queryOpinionTypeAmount } from '@/api/news/news.js';
+import { queryBusinessUserOpinion, queryBusinessUserOpinionAll, queryProjectUserAmount, queryProjectPfx, queryOpinionTypeAmount, queryOpinionDetails } from '@/api/news/news.js';
 export default {
   data () {
     return {
@@ -115,22 +142,38 @@ export default {
       userOpinionTypeList:[],
       projectList:[],
       projectId:'',
+      imgVisible:false,
+      curNew:{},
+      pieObj:null,
     }
   },
   methods: {
+    submissionProgress(){
+      this.$router.push({
+        path: '/news/news'
+      })
+    },
+    async openPreview(row){
+      const { data : res } = await queryOpinionDetails({userOpinionId : row.userOpinionId});
+      if(res.code == 200){
+        this.curNew = res.data;
+      }
+      this.imgVisible = true;
+    },
     selectProjectOpinion(){
       let _this = this;
-      this.userOpinionTypeList.forEach(vo => {
-        if(vo.projectId === _this.projectId){
-          _this.PieData = [];
-          let problemType = vo.problemType;
-          let problemTypeAmount = vo.problemTypeAmount;
-          _this.projectId = vo.projectId;
-          problemType.forEach((name, index) => {
-            _this.PieData.push({type : name, value : Number(problemTypeAmount[index])});
-          });
-        }
+      _this.PieData = [];
+      this.userOpinionTypeList.forEach(obj => {
+          if(obj.projectId == _this.projectId){
+            let problemType = obj.problemType;
+            let problemTypeAmount = obj.problemTypeAmount;
+            problemType.forEach((name, index) => {
+              _this.PieData.push({type : name, value : Number(problemTypeAmount[index])});
+            });
+          }
       })
+
+      this.pieObj.changeData(_this.PieData);
     },
     async handleSelect (key) {
       if (key == 2) {
@@ -238,6 +281,7 @@ export default {
         },
       });
       piePlot.render();
+      this.pieObj = piePlot;
     },
     //获取人员账户
     async queryProjectUserAmount(){
@@ -262,16 +306,19 @@ export default {
     },
     //维护类型统计汇总
     async queryOpinionTypeAmount(){
-      let _this = this;
+        let _this = this;
         const {data : res} = await queryOpinionTypeAmount();
         this.userOpinionTypeList = res.data.userOpinionList;
-        let problemType = this.userOpinionTypeList[0].problemType;
-        let problemTypeAmount = this.userOpinionTypeList[0].problemTypeAmount;
-        this.projectId = this.userOpinionTypeList[0].projectId;
+        this.projectList = res.data.projectInfos;
+
+        let userOpinion = this.userOpinionTypeList[0];
+        let problemType = userOpinion.problemType;
+        let problemTypeAmount = userOpinion.problemTypeAmount;
+        this.projectId = userOpinion.projectId;
+
         problemType.forEach((name, index) => {
           _this.PieData.push({type : name, value : Number(problemTypeAmount[index])});
         });
-        this.projectList = res.data.projectInfos;
     }
   },
   created () {