Prechádzať zdrojové kódy

售后问题平台BUG修改

youchen 11 mesiacov pred
rodič
commit
28b3da4661

+ 69 - 16
src/views/business/as/hospital/assignAuthority/index.vue

@@ -13,6 +13,7 @@
       </el-col>
       <el-col :span="6" >
         <el-button type="primary" @click="queryBtn">搜索</el-button>
+        <el-button type="primary" @click="resetBtn">重置</el-button>
       </el-col>
      <el-col :span="6" >
        <el-button type="primary" @click="addBtn">新增</el-button>
@@ -82,12 +83,12 @@
       :title="title"
       :visible.sync="dialogVisible"
       width="80%"
-      :before-close="handleClose">
+      :before-close="userQueryHandleClose">
       <el-row :gutter="10">
         <el-col :span="10">
-          <el-form ref="queryParams" :model="queryParams" label-width="90px">
+          <el-form ref="userQueryParams" :model="userQueryParams" label-width="90px">
             <el-form-item label="名称/编号">
-              <el-input v-model="queryParams.userName" placeholder="请输入名称/编号"></el-input>
+              <el-input v-model="userQueryParams.userName" placeholder="请输入名称/编号"></el-input>
             </el-form-item>
           </el-form>
         </el-col>
@@ -95,7 +96,7 @@
           <el-button type="primary" @click="queryUserBtn">搜索</el-button>
         </el-col>
         <el-col :span="2">
-          <el-button @click="">重置</el-button>
+          <el-button @click="userQueryParamReset">重置</el-button>
         </el-col>
       </el-row>
       <el-row>
@@ -125,15 +126,15 @@
         <el-pagination
           @size-change="handleSizeChange2"
           @current-change="handleCurrentChange2"
-          :current-page=this.queryParams.pageNum
+          :current-page=this.userQueryParams.pageNum
           :page-sizes="[10,20,50,100]"
-          :page-size=this.queryParams.pageSize
+          :page-size=this.userQueryParams.pageSize
           layout="total, sizes, prev, pager, next, jumper"
           :total=this.userTotal>
         </el-pagination>
       </el-row>
       <span slot="footer" class="dialog-footer">
-    <el-button @click="dialogVisible = false">取 消</el-button>
+    <el-button @click="userQueryCancel">取 消</el-button>
     <el-button type="primary" @click="addUserBtn">确 定</el-button>
   </span>
     </el-dialog>
@@ -146,7 +147,12 @@ export default {
   created() {
     if(this.$route.query.id){
       this.queryParams.hId=this.$route.query.id
-      this.queryBtn()
+      list(this.queryParams).then(res =>{
+        if(res.code == 200){
+          this.dataList=res.rows
+          this.total=res.total
+        }
+      })
     }
   },
   mounted() {
@@ -193,8 +199,7 @@ export default {
         }
       })
     },
-    queryBtn(){
-      this.queryParams.deptName=this.queryParams.nickName
+    getList(){
       list(this.queryParams).then(res =>{
         if(res.code == 200){
           this.dataList=res.rows
@@ -202,6 +207,22 @@ export default {
         }
       })
     },
+    queryBtn(){
+      this.queryParams.deptName=this.queryParams.nickName
+      this.getList()
+    },
+    resetBtn(){
+      this.queryParams={
+        hId:this.$route.query.id,
+        pageNum:1,
+        pageSize:10,
+        userName:'',
+        nickName:'',
+        deptName:'',
+      }
+      this.getList()
+      console.log("this.queryParams",this.queryParams)
+    },
     handleSelectionChange(val) {
       this.userFormList = val;
       console.log("this.userFormList",this.userFormList)
@@ -214,23 +235,49 @@ export default {
         if(res.code == 200){
           this.$message.success("新增成功")
           this.dialogVisible = false
+          this.userQueryParamReset()
+          this.queryBtn()
         }
       })
-      this.queryBtn()
     },
     queryUserBtn(){
-      this.queryParams.nickName=this.queryParams.userName
-      userList(this.queryParams).then(res =>{
+      this.userQueryParams.nickName=this.userQueryParams.userName
+      userList(this.userQueryParams).then(res =>{
         if(res.code == 200){
           this.userDataList = res.rows
           this.userTotal=res.total
         }
       })
     },
+    userQueryParamReset(){
+      this.userQueryParams={
+        pageNum:1,
+        pageSize:10,
+        userName:'',
+        nickName:'',
+      }
+    },
+    userQueryHandleClose(done){
+      this.$confirm('确认关闭?')
+        .then(_ => {
+          done()
+          this.userQueryParamReset()
+        })
+        .catch(_ => {});
+    },
+    userQueryCancel(){
+      this.dialogVisible=false
+      this.userQueryParamReset()
+    },
     addBtn(){
       this.dialogVisible=true
       this.title="需求人员"
-      this.queryUserBtn()
+      userList().then(res =>{
+        if(res.code == 200){
+          this.userDataList = res.rows
+          this.userTotal=res.total
+        }
+      })
     },
     //计算table高度(动态设置table高度)
     getTableHeight() {
@@ -247,7 +294,7 @@ export default {
       this.queryBtn()
     },
     handleSizeChange2(val) {
-      this.queryParams.pageSize = val
+      this.userQueryParams.pageSize = val
       this.queryUserBtn()
     },
     handleCurrentChange1(val) {
@@ -255,7 +302,7 @@ export default {
       this.queryBtn()
     },
     handleCurrentChange2(val) {
-      this.queryParams.pageNum = val
+      this.userQueryParams.pageNum = val
       this.queryUserBtn()
     },
   },
@@ -281,6 +328,12 @@ export default {
       loading:false,
       total:0,
       tableHeight:'', //表格高度
+      userQueryParams:{
+        pageNum:1,
+        pageSize:10,
+        userName:'',
+        nickName:'',
+      },
       queryParams:{
         hId:undefined,
         pageNum:1,

+ 21 - 13
src/views/business/as/problemInfo/detail.vue

@@ -96,10 +96,10 @@
         :visible.sync="dialogSolve"
         width="30%"
         :before-close="handleClose">
-        <el-form ref="form" :model="form" label-width="100px">
+        <el-form ref="form" :model="form" :rules="rules" label-width="100px">
           <el-row>
             <el-col :span="15">
-              <el-form-item label="描述">
+              <el-form-item label="描述" prop="processingFeedback">
                 <el-input
                   v-model="form.processingFeedback"
                   type="textarea"
@@ -146,12 +146,12 @@
           <el-row>
             <el-col :span="15">
               <el-form-item >
-                <el-select v-model="form.workOrderProcessor" filterable="true" placeholder="请选择工单处理人" clearable="true">
+                <el-select v-model="form.workOrderProcessor" filterable="true" placeholder="请选择工单处理人" clearable>
                   <el-option
                     v-for="item in workOrderProcessorOptions"
-                    :key="item.userCode"
+                    :key="item.userName"
                     :label="item.nickName"
-                    :value="item.userCode">
+                    :value="item.userName">
                   </el-option>
                 </el-select>
               </el-form-item>
@@ -182,7 +182,7 @@
 import {getDetail} from "@/api/business/as/detail";
 import axios from "axios";
 import {getToken} from "@/utils/auth";
-import {getWorkOrderProcessorList, pushWorkOrder} from "@/api/business/as/problemInfo";
+import {getProcessorOptions, getWorkOrderProcessorList, pushWorkOrder} from "@/api/business/as/problemInfo";
 
 export default {
   created() {
@@ -191,11 +191,7 @@ export default {
       getDetail(this.queryParams.id).then(res => {
         if(200 == res.code){
           this.data=res.data
-          // if(this.data.problemStateConvert == 0){
-          //   this.flag=false
-          // }else {
-          //   this.flag=true
-          // }
+          this.hospitalId=res.data.hospitalId
         }
       })
     }
@@ -243,6 +239,11 @@ export default {
         if(res.data.code == 200){
           this.$modal.msgSuccess("修改成功");
           this.dialogSolve = false
+          getDetail(this.queryParams.id).then(res => {
+            if(200 == res.code){
+              this.data=res.data
+            }
+          })
         }
       })
     },
@@ -269,9 +270,10 @@ export default {
       this.form=this.data
     },
     handleWorkOrder(){
-      getWorkOrderProcessorList().then(res =>{
-        if(200 == res.code){
+      getProcessorOptions(this.hospitalId).then(res =>{
+        if(res.code == 200){
           this.workOrderProcessorOptions=res.data
+          console.log("this.workOrderProcessorOptions",this.workOrderProcessorOptions)
         }
       })
       this.dialogWorkOrder=true
@@ -280,6 +282,7 @@ export default {
   },
   data() {
     return {
+      hospitalId:'',
       dialogImageUrl:'',
       dialogVisiblePicture: false,
       workOrderProcessorOptions:[],
@@ -303,6 +306,11 @@ export default {
         workOrderProcessor:'',
         processorEndTime:'',
       },
+      rules: {
+        processingFeedback: [
+          { required: true, message: '请输入处理反馈', trigger: 'blur' },
+        ],
+      },
       dialogSolve:false,
       dialogWorkOrder:false,
       problemTypeOptions:[

+ 78 - 66
src/views/business/as/problemInfo/index.vue

@@ -8,9 +8,9 @@
         <el-tab-pane label="已解决" name="4" ></el-tab-pane>
       </el-tabs>
     </el-row>
-    <el-form ref="form" :model="queryParams" label-width="100px">
-      <el-row>
-        <el-col :span="5">
+    <el-form ref="form" :model="queryParams" size="small" :inline="true" label-width="100px">
+      <el-row type="flex" justify="space-between">
+        <el-col :span="25">
           <el-form-item label="项目/医院">
             <el-select v-model="queryParams.hospitalId" filterable placeholder="请选择" clearable @change="changeBtn">
               <el-option
@@ -21,13 +21,9 @@
               </el-option>
             </el-select>
           </el-form-item>
-        </el-col>
-        <el-col :span="5">
           <el-form-item label="问题描述">
             <el-input v-model="queryParams.problemDescription" clearable placeholder="请输入内容"></el-input>
           </el-form-item>
-        </el-col>
-        <el-col :span="5">
           <el-form-item label="问题类别" v-if="activeName != '2' && activeName != '3' && activeName != '4'">
             <el-select  v-model="queryParams.problemType" placeholder="请选择" clearable>
               <el-option
@@ -38,8 +34,6 @@
               </el-option>
             </el-select>
           </el-form-item>
-        </el-col>
-        <el-col :span="5">
           <el-form-item label="科室信息">
             <el-select v-model="queryParams.roomInformation" filterable placeholder="请选择" clearable>
               <el-option
@@ -51,12 +45,14 @@
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="4">
-          <el-button type="primary" @click="handleClick" icon="el-icon-search">搜索</el-button>
+        <el-col :span="2">
+          <el-form-item>
+            <el-button type="primary" size="mini" @click="handleClick" icon="el-icon-search">搜索</el-button>
+          </el-form-item>
         </el-col>
       </el-row>
-      <el-row>
-        <el-col :span="5">
+      <el-row type="flex" justify="space-between">
+        <el-col :span="25">
           <el-form-item label="提问人" v-if="activeName != '3'">
             <el-select v-model="queryParams.questioner" filterable placeholder="请选择" clearable>
               <el-option
@@ -67,8 +63,6 @@
               </el-option>
             </el-select>
           </el-form-item>
-        </el-col>
-        <el-col :span="5">
           <el-form-item label="问题状态" v-if="activeName != '2' && activeName != '3' ">
             <el-select v-model="state" placeholder="请选择" clearable>
               <el-option
@@ -79,8 +73,6 @@
               </el-option>
             </el-select>
           </el-form-item>
-        </el-col>
-        <el-col :span="5">
           <el-form-item label="处理负责人">
             <el-select v-model="queryParams.processor" filterable placeholder="请选择" clearable>
               <el-option
@@ -91,8 +83,6 @@
               </el-option>
             </el-select>
           </el-form-item>
-        </el-col>
-        <el-col :span="5">
           <el-form-item label="是否非问题">
             <el-select v-model="queryParams.isProblem" placeholder="请选择" clearable>
               <el-option
@@ -104,23 +94,23 @@
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="4">
-          <el-button icon="el-icon-refresh" @click="btnReset">重置</el-button>
+        <el-col :span="2">
+          <el-form-item>
+            <el-button size="mini" icon="el-icon-refresh" @click="btnReset" style="padding-right: 10px">重置</el-button>
+          </el-form-item>
         </el-col>
       </el-row>
       <el-row>
-        <el-col :span="5">
-          <el-form-item label="问题创建时间">
-            <el-date-picker
-              v-model="dateRange"
-              type="daterange"
-              value-format="yyyy-MM-dd"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期">
-            </el-date-picker>
-          </el-form-item>
-        </el-col>
+        <el-form-item label="问题创建时间">
+          <el-date-picker
+            v-model="dateRange"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期">
+          </el-date-picker>
+        </el-form-item>
       </el-row>
       <el-row style="margin-bottom: 10px">
 <!--        <el-col :span="1">-->
@@ -128,30 +118,16 @@
 <!--        </el-col>-->
         <el-col :span="24">
           <el-row type="flex" justify="end">
-            <el-col :span="2">
-              <el-button   @click="handleUpdateProblem">置为非问题</el-button>
-            </el-col>
-            <el-col :span="2">
-              <el-button   @click="addFrom">新增问题</el-button>
-            </el-col>
-            <el-col :span="2" style="width: 120px">
-              <el-button  @click="handleUpdate">置为已解决</el-button>
-            </el-col>
-            <el-col :span="1" style="width: 75px">
-              <el-upload
-                class="upload-demo"
-                :on-change="handleChange"
-                :headers="upload.headers"
-                :action="upload.url"
-                :show-file-list="false"
-                style="width: 80px"
-              >
-                <el-button>导入</el-button>
-              </el-upload>
-            </el-col>
-            <el-col :span="1" style="width: 85px">
-              <el-button  @click="btnDownload">导出</el-button>
-            </el-col>
+            <el-button type="primary" size="mini" @click="handleUpdateProblem">置为非问题</el-button>
+            <el-button type="primary" size="mini" @click="addFrom">新增问题</el-button>
+            <el-button type="primary" size="mini" @click="handleUpdate">置为已解决</el-button>
+            <BatchImport
+              ref="batchImport"
+              @import="handelImport"
+              @temDownload="handleTemDownload"
+              :fileSize="1"></BatchImport>
+            <el-button type="primary" size="mini" @click="btnDownload">导出</el-button>
+
           </el-row>
         </el-col>
       </el-row>
@@ -514,11 +490,9 @@ import {
   updateStage,
   pushWorkOrder,
   downloadExcel,
-  getHospitalAndProcessor,
   getRoomInformation,
   getQuestionerList,
   updateStageProblem,
-  getWorkOrderProcessorList,
   getProcessorOptions,
   addProblem,
   getProjectSourceOptions
@@ -526,6 +500,9 @@ import {
 import {getToken} from "@/utils/auth";
 import axios from 'axios'
 export default {
+  components: {
+    BatchImport: () => import("@/components/BatchImport/indexa.vue"),
+  },
   created() {
     this.handleClick()
     getProjectSourceOptions().then(res =>{
@@ -546,6 +523,9 @@ export default {
     })
   },
   methods: {
+    handelImport(){},
+    handleTemDownload(){
+    },
     changeBtn(param){
       console.log("param",param)
       this.form.processor=''
@@ -585,7 +565,7 @@ export default {
      let resolve = this.$router.push({path:'/business/as/problemInfo/detail',query:{id:row.id}});
     },
     btnDownload(){
-      downloadExcel().then((res) => {
+       downloadExcel().then(async (res) => {
         let blob = new Blob([res], {
           type: "application/vnd.ms-excel" ,
         })
@@ -599,22 +579,19 @@ export default {
           link.click();
           window.URL.revokeObjectURL(link.href);
         }
+         await this.$message.success("导出完成")
       })
     },
     handleWorkOrder(data){
+      console.log("data1",data)
       getProcessorOptions(data.hospitalId).then(res =>{
         if(res.code == 200){
           this.workOrderProcessorOptions=res.data
         }
       })
-      // getWorkOrderProcessorList().then(res =>{
-      //   if(200 == res.code){
-      //
-      //   }
-      // })
       this.dialogWorkOrder=true
       this.form=data
-      console.log(this.form)
+      console.log("this.form",this.form)
     },
     handleSolve(data){
       this.dialogSolve=true
@@ -625,6 +602,7 @@ export default {
       this.dialogVisible = true
       console.log('data',data)
       this.form=data
+      console.log('this.form',data)
       this.form.problemPicture.map((item) =>{
         console.log("item",item)
         item.name=item.id
@@ -636,6 +614,7 @@ export default {
           this.projectSourceOptions=res.data
         }
       })
+      console.log("projectSourceOptions",this.projectSourceOptions)
       getProcessorOptions(data.hospitalId).then(res =>{
         if(res.code ==200){
           this.processorOptions=res.data
@@ -813,9 +792,18 @@ export default {
       pushWorkOrder(this.form).then(res =>{
         if(200 == res.code){
           this.$message.success('转工单成功')
+          list(this.queryParams).then(res => {
+            if(res.code == 200){
+              this.dataList=res.rows
+              this.total=res.total
+              this.queryParams.creatStart=''
+              this.queryParams.creatEnd=''
+            }
+          })
         }
       })
       this.dialogWorkOrder=false
+
     },
     submitForm(){
       this.$refs["form"].validate(async valid => {
@@ -832,9 +820,15 @@ export default {
               })
             }
             if(this.form){
+              console.log("AAAAAAA",this.projectSourceOptions)
               this.projectSourceOptions.forEach((item) =>{
                 if(item.id == this.form.hospitalId){
+                  console.log("BBBBBB",item.id)
+                  console.log("CCCCCC",this.form.hospitalId)
+                  console.log("DDDDDD",item.projectSource)
+
                   this.form.projectSource=item.projectSource
+                  console.log("EEEEE",this.form.projectSource)
                 }
               })
               this.processorOptions.forEach((item) =>{
@@ -852,6 +846,24 @@ export default {
             })
           } else {
             //修改售后问题
+            if(this.form){
+              console.log("AAAAAAA",this.projectSourceOptions)
+              this.projectSourceOptions.forEach((item) =>{
+                if(item.id == this.form.hospitalId){
+                  console.log("BBBBBB",item.id)
+                  console.log("CCCCCC",this.form.hospitalId)
+                  console.log("DDDDDD",item.projectSource)
+
+                  this.form.projectSource=item.projectSource
+                  console.log("EEEEE",this.form.projectSource)
+                }
+              })
+              this.processorOptions.forEach((item) =>{
+                if(item.userName == this.form.processor){
+                  this.form.processorName=item.nickName
+                }
+              })
+            }
             let formData = new FormData();
             formData.append("problemInfo",new Blob([JSON.stringify(this.form)], {type: "application/json"}))
             if(this.pictureList.length < 1 ){