Selaa lähdekoodia

德荣售后问题处理分析平台

youchen 1 vuosi sitten
vanhempi
commit
0a7c3b045f

+ 48 - 0
src/api/business/as/problemInfo.js

@@ -0,0 +1,48 @@
+import request from "@/utils/request";
+
+
+//查询售后问题列表
+export function list(param) {
+  return request({
+    url: '/mk/as/problem/list',
+    method: 'get',
+    params: param
+  })
+}
+
+//批量删除售后问题
+export function remove(data) {
+  return request({
+    url: '/mk/as/problem/deleteBatch',
+    method: 'post',
+    data: data
+  })
+}
+
+//修改删除售后状态
+export function updateStage(data) {
+  return request({
+    url: '/mk/as/problem/updateStage',
+    method: 'post',
+    data: data
+  })
+}
+
+//工单推送
+export function pushWorkOrder(data) {
+  return request({
+    url: '/mk/as/problem/pushWorkOrder',
+    method: 'post',
+    data: data
+  })
+}
+
+export function downloadExcel() {
+  return request({
+    url: '/mk/as/problem/download',
+    method: 'get',
+    responseType: 'blob', // 使用blob下载
+  })
+}
+
+

+ 15 - 0
src/router/index.js

@@ -96,6 +96,21 @@ export const constantRoutes = [
     component: () => import('@/views/business/bid/detail/detail'),
     hidden: true
   },
+  // {
+  //   path: '/business/bid/customerZhaoUnitRelational',
+  //   component: () => import('@/views/business/bid/customerZhaoUnitRelational/index'),
+  //   hidden: true
+  // },
+  {
+    path: '/business/as/problemInfo',
+    component: () => import('@/views/business/as/problemInfo/index'),
+    hidden: true
+  },
+  // {
+  //   path: '/business/as/problemInfo/detail',
+  //   component: () => import('@/views/business/as/problemInfo/detail'),
+  //   hidden: true
+  // },
   {
     path: '/business/SupAtttachment',
     component: () => import('@/views/purchase/SupAtttachment/index'),

+ 916 - 0
src/views/business/as/problemInfo/index.vue

@@ -0,0 +1,916 @@
+<template>
+  <div class="problemInfo">
+    <el-row>
+      <el-tabs v-model="activeName" @tab-click="handleClick">
+        <el-tab-pane label="全部问题" name="1" ></el-tab-pane>
+        <el-tab-pane label="待解决" name="2" ></el-tab-pane>
+        <el-tab-pane label="转工单" name="3" ></el-tab-pane>
+        <el-tab-pane label="已解决" name="4" ></el-tab-pane>
+      </el-tabs>
+    </el-row>
+    <el-form ref="form" :model="queryParams" label-width="90px">
+      <el-row>
+        <el-col :span="5">
+          <el-form-item label="项目/医院">
+            <el-input v-model="queryParams.projectSource"></el-input>
+<!--            <el-select v-model="queryParams.projectSource" placeholder="请选择">-->
+<!--              <el-option-->
+<!--                v-for="item in dataList1"-->
+<!--                :key="item.projectSource"-->
+<!--                :label="item.projectSource"-->
+<!--                :value="item.projectSource">-->
+<!--              </el-option>-->
+<!--            </el-select>-->
+          </el-form-item>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item label="问题类别" v-if="activeName != '2' && activeName != '3' && activeName != '4'">
+            <el-input v-model="queryParams.problemType"></el-input>
+<!--            <el-select  v-model="queryParams.problemType" placeholder="请选择">-->
+<!--              <el-option-->
+<!--                v-for="item in problemTypeOptions"-->
+<!--                :key="item.problemType"-->
+<!--                :label="item.problemType"-->
+<!--                :value="item.problemType">-->
+<!--              </el-option>-->
+<!--            </el-select>-->
+          </el-form-item>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item label="科室信息">
+            <el-input v-model="queryParams.roomInformation"></el-input>
+<!--            <el-select v-model="queryParams.roomInformation" placeholder="请选择">-->
+<!--              <el-option-->
+<!--                v-for="item in dataList1"-->
+<!--                :key="item.roomInformation"-->
+<!--                :label="item.roomInformation"-->
+<!--                :value="item.roomInformation">-->
+<!--              </el-option>-->
+<!--            </el-select>-->
+          </el-form-item>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item label="提问人" v-if="activeName != '3'">
+            <el-input v-model="queryParams.roomInformation"></el-input>
+<!--            <el-select v-model="queryParams.questioner" placeholder="请选择">-->
+<!--              <el-option-->
+<!--                v-for="item in dataList1"-->
+<!--                :key="item.questioner"-->
+<!--                :label="item.questioner"-->
+<!--                :value="item.questioner">-->
+<!--              </el-option>-->
+<!--            </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>
+      </el-row>
+      <el-row>
+        <el-col :span="5">
+          <el-form-item label="问题状态" v-if="activeName != '2' && activeName != '3' ">
+            <el-select v-model="state" placeholder="请选择" clearable>
+              <el-option
+                v-for="item in stateOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item label="处理负责人">
+            <el-input v-model="queryParams.processor"></el-input>
+<!--            <el-select v-model="queryParams.processor" placeholder="请选择">-->
+<!--              <el-option-->
+<!--                v-for="item in dataList1"-->
+<!--                :key="item.processor"-->
+<!--                :label="item.questioner"-->
+<!--                :value="item.processor">-->
+<!--              </el-option>-->
+<!--            </el-select>-->
+          </el-form-item>
+        </el-col>
+        <el-col :span="4" :offset="10">
+          <el-button icon="el-icon-refresh" @click="btnReset">重置</el-button>
+        </el-col>
+      </el-row>
+<!--      <el-divider></el-divider>-->
+      <el-row style="margin-bottom: 10px">
+        <el-col :span="1">
+          <el-button  @click="handleDelete" :disabled="multiple">删除</el-button>
+        </el-col>
+        <el-col :span="16" >
+          <el-button   @click="addFrom">新增问题</el-button>
+          <el-button  @click="handleUpdate">置为已解决</el-button>
+          <el-upload
+            class="upload-demo"
+            :on-change="handleChange"
+            :headers="upload.headers"
+            :action="upload.url"
+            :show-file-list="false"
+            style="width: 70px"
+            >
+            <el-button>导入</el-button>
+          </el-upload>
+          <el-button  @click="btnDownload">导出</el-button>
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-table
+      :data="dataList"
+      border
+      :header-cell-style="{'text-align':'center'}"
+      style="width: 100%"
+      @selection-change="handleSelectionChange"
+      @row-dblclick="handleRouter"
+    >
+      <el-table-column
+        type="selection"
+        width="55"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="problemCode"
+        label="编码"
+        width="55"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="projectSource"
+        label="来源项目/医院"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="problemDescription"
+        label="问题描述"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="problemPicture"
+        label="问题图片"
+        width="300"
+        align="center">
+        <template #default="scope">
+          <div v-for="v in scope.row.problemPicture" :key="v.id">
+            <el-image :src="v.filepath" style="width: 100px"></el-image>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column
+        sortable
+        prop="problemType"
+        label="问题类别"
+        width="120"
+        align="center">
+        <template slot-scope="scope">
+          {{getChangeType2(scope.row.problemType)}}<!--调用getChangeType方法-->
+        </template>
+      </el-table-column>
+      <el-table-column
+        sortable
+        prop="questioner"
+        label="提问人"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="roomInformation"
+        label="科室信息"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="questionerWay"
+        label="提问人联系方式"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="createTime"
+        label="创建时间"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="processor"
+        label="负责处理人"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="processorWay"
+        label="负责处理人联系方式"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="processingTime"
+        label="处理时长"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="processingFeedback"
+        label="处理反馈"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        prop="problemStateSolve"
+        label="问题状态"
+        width="200"
+        align="center">
+        <template scope="scope">
+          <span v-if="scope.row.problemStateSolve == 1 && scope.row.problemStateConvert == 1 "
+          >待解决</span>
+          <span v-if="scope.row.problemStateSolve == 1 && scope.row.problemStateConvert == 0 "
+          >转工单-待解决</span>
+          <span v-if="scope.row.problemStateSolve == 0 && scope.row.problemStateConvert == 1"
+          >已解决</span>
+          <span v-if="scope.row.problemStateSolve == 0 && scope.row.problemStateConvert == 0"
+          >转工单-已解决</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        label="操作"
+        width="200"
+        align="center">
+        <template slot-scope="scope">
+          <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
+
+          <el-button v-if="scope.row.problemStateSolve==1 " type="text" size="small" @click="handleSolve(scope.row)">解决</el-button>
+          <el-button v-if="scope.row.problemStateSolve==1 && scope.row.problemStateConvert == 1" type="text" size="small" @click="handleWorkOrder(scope.row)">转工单</el-button>
+
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page=this.queryParams.pageNum
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size=this.queryParams.pageSize
+      layout="total, sizes, prev, pager, next, jumper"
+      :total=this.total>
+    </el-pagination>
+
+    <el-dialog
+      :title="dialogTitle"
+      :visible.sync="dialogVisible"
+      width="90%"
+
+      :before-close="handleClose">
+      <el-button @click="cancel">取 消</el-button>
+      <el-button type="primary" @click="submitForm">确 定</el-button>
+
+      <el-form ref="form" :model="form" label-width="160px">
+        <el-row>
+<!--          <el-col :span="5">-->
+<!--            <el-form-item label="问题编码">-->
+<!--              <el-input v-model="form.problemCode"></el-input>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+          <el-col :span="5">
+            <el-form-item label="项目来源/医院">
+              <el-input v-model="form.projectSource"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="5">
+            <el-form-item label="提问人">
+              <el-input v-model="form.questioner"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="5">
+            <el-form-item label="提问人联系人方式">
+              <el-input v-model="form.questionerWay"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="5">
+            <el-form-item label="问题类别">
+              <el-select v-model="form.problemType" placeholder="请选择">
+                <el-option
+                  v-for="item in problemTypeOptions"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="5">
+            <el-form-item label="科室信息">
+              <el-input v-model="form.roomInformation"></el-input>
+            </el-form-item>
+          </el-col>
+            <el-col :span="5">
+              <el-form-item label="处理负责人">
+                <el-input v-model="form.processor"></el-input>
+<!--                <el-select v-model="form.processor" placeholder="请选择">-->
+<!--                  <el-option-->
+<!--                    v-for="item in processorOptions"-->
+<!--                    :key="item.userCode"-->
+<!--                    :label="item.nickName"-->
+<!--                    :value="item.userCode">-->
+<!--                  </el-option>-->
+<!--                </el-select>-->
+              </el-form-item>
+            </el-col>
+          <el-col :span="5">
+            <el-form-item label="处理负责人联系人方式">
+              <el-input v-model="form.processorWay"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="15">
+            <el-form-item label="问题描述">
+              <el-input
+                v-model="form.problemDescription"
+                type="textarea"
+                :rows="4"
+                placeholder="请输入内容"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="15">
+            <el-form-item label="问题图片">
+              <el-upload
+                class="upload-demo"
+                ref="upload"
+                multiple
+                list-type="picture-card"
+                :file-list="form.problemPicture"
+                action="#"
+                :on-change="handleChange"
+                :on-remove="handleRemove"
+                :on-preview="handlePictureCardPreview"
+                :auto-upload="false"
+                :limit="3"
+                drag
+              >
+                <i class="el-icon-upload">
+                  <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+                  <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
+                </i>
+              </el-upload>
+              <el-dialog :visible.sync="dialogVisiblePicture" append-to-body>
+                <img style="width: 100%;height: 100%"  :src="dialogImageUrl" />
+              </el-dialog>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-dialog>
+
+    <el-dialog
+      title="确认该问题已解决?"
+      :visible.sync="dialogSolve"
+      width="30%"
+      :before-close="handleClose">
+      <el-form ref="form" :model="form" label-width="100px">
+        <el-row>
+          <el-col :span="15">
+            <el-form-item label="描述">
+              <el-input
+                v-model="form.processingFeedback"
+                type="textarea"
+                :rows="4"
+                placeholder="请输入处理反馈"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="5">
+            <el-form-item label="图片">
+              <el-upload
+                class="upload-demo"
+                ref="upload"
+                list-type="picture-card"
+                :file-list="form.processorPicture"
+                :on-change="handleChange"
+                :on-remove="handleRemove"
+                :auto-upload="false"
+                :limit="1"
+              >
+                <i slot="default" class="el-icon-plus"></i>
+              </el-upload>
+              <el-dialog :visible.sync="dialogVisiblePicture" append-to-body>
+                <img style="width: 100%;height: 100%"  :src="dialogImageUrl" />
+              </el-dialog>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-button @click="cancel">取 消</el-button>
+      <el-button type="primary" @click="submitFormSolve">确 定</el-button>
+    </el-dialog>
+
+    <el-dialog
+      title="确认该问题转工单处理?"
+      :visible.sync="dialogWorkOrder"
+      width="30%"
+      :before-close="handleClose">
+      <el-form ref="form" :model="form" >
+        <el-row>
+          <el-col :span="15">
+            <el-form-item >
+              <el-select v-model="form.workOrderProcessor" placeholder="请选择工单处理人">
+                <el-option
+                  v-for="item in processorOptions"
+                  :key="item.userCode"
+                  :label="item.nickName"
+                  :value="item.userCode">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="15">
+            <el-form-item>
+              <el-date-picker
+                v-model="form.processorEndTime"
+                value-format="yyyy-MM-dd"
+                type="date"
+                placeholder="选择处理截至时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-button @click="cancel">取 消</el-button>
+      <el-button type="primary" @click="submitFormWorkOrder">确 定</el-button>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+
+import {list, remove, updateStage, pushWorkOrder, downloadExcel} from "@/api/business/as/problemInfo"
+import {getToken} from "@/utils/auth";
+import {Axios} from "axios";
+import axios from 'axios'
+export default {
+  created() {
+    this.handleClick()
+  },
+  methods: {
+    getChangeType2(e) {
+      for (var i = 0; i < this.problemTypeOptions.length; i++) {
+        if (this.problemTypeOptions[i].value === e) { //dictValue,dictLabel保持和上面定义一致
+          return this.problemTypeOptions[i].label;
+        }
+      }
+    },
+    handleRouter(row,event,colum) {
+     // let resolve = this.$router.push({path:'/business/as/problemInfo/detail',query:{id:row.id}});
+    },
+    btnDownload(){
+      downloadExcel().then((res) => {
+        let blob = new Blob([res], {
+          type: "application/vnd.ms-excel" ,
+        })
+        let fileName = Date.parse(new Date()) + ".xlsx";
+        if (window.navigator.msSaveOrOpenBlob) {
+          navigator.msSaveBlob(blob, fileName);
+        } else {
+          var link = document.createElement("a");
+          link.href = window.URL.createObjectURL(blob);
+          link.download = fileName;
+          link.click();
+          window.URL.revokeObjectURL(link.href);
+        }
+      })
+    },
+    handleWorkOrder(data){
+      this.dialogWorkOrder=true
+      this.form=data
+    },
+    handleSolve(data){
+      this.dialogSolve=true
+      this.form=data
+    },
+    handleEdit(data){
+      this.dialogTitle='编辑'
+      this.dialogVisible = true
+      this.form=data
+    },
+    // 删除
+    handleDelete() {
+      this.$confirm("是否确认删除选中的数据项?", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(()=> {
+        remove(this.problemInfos).then(res =>{
+          // console.log(res)
+          this.queryParams.pageNum=1;
+          this.handleClick()
+          this.msgSuccess("删除成功");
+        })
+      })
+      // console.log("this.ids",this.problemInfos)
+    },
+    handleUpdate() {
+      this.$confirm("是否确认修改选中的数据项?", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(()=>{
+        updateStage(this.problemInfos).then(res =>{
+          // console.log(res)
+        })
+      }).then(()=>{
+        this.queryParams.pageNum=1;
+        this.handleClick()
+        this.msgSuccess("修改成功");
+      })
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.problemInfos = selection// 需要根据数据情况调整id名称
+      this.single = selection.length != 1;
+      this.multiple = !selection.length;
+    },
+    handleSizeChange(val) {
+      this.queryParams.pageSize = val
+      this.handleClick()
+    },
+    handleCurrentChange(val) {
+      this.queryParams.pageNum = val
+      this.handleClick()
+    },
+    handleClick(tab, event){
+      if(this.state){
+        const stateList= this.state.split(',')
+        this.queryParams.problemStateSolve=stateList[0]
+        this.queryParams.problemStateConvert=stateList[1]
+      }
+
+      console.log('this.activeName',this.activeName)
+
+      if(this.activeName){
+        if(this.activeName=='1'){
+          list(this.queryParams).then(res => {
+            if(res.code == 200){
+              this.dataList=res.rows
+              this.total=res.total
+            }
+          })
+        }
+        if(this.activeName=='2'){
+          this.queryParams.problemStateSolve=1
+          list(this.queryParams).then(res => {
+            if(res.code == 200){
+              this.dataList=res.rows
+              this.total=res.total
+            }
+          })
+        }
+        if(this.activeName=='3'){
+          this.queryParams.problemStateConvert=0
+          list(this.queryParams).then(res => {
+            if(res.code == 200){
+              this.dataList=res.rows
+              this.total=res.total
+            }
+          })
+        }
+        if(this.activeName=='4'){
+          this.queryParams.problemStateSolve=0
+          list(this.queryParams).then(res => {
+            if(res.code == 200){
+              this.dataList=res.rows
+              this.total=res.total
+            }
+          })
+        }
+        this.btnReset()
+      }else {
+        list(this.queryParams).then(res => {
+          if(res.code == 200){
+            this.dataList=res.rows
+            this.total=res.total
+          }
+        })
+      }
+    },
+    btnReset(){
+      this.queryParams={
+        projectSource:'',
+        problemType:'',
+        roomInformation:'',
+        questioner:'',
+        processor:'',
+        pageNum:1,
+        pageSize:10,
+        problemStateSolve:null,
+        problemStateConvert:null
+      }
+      this.state=''
+    },
+    addFrom(){
+      this.dialogTitle='新增问题'
+      this.dialogVisible = true
+    },
+    cancel(){
+      this.form = {
+        id:undefined,
+        problemCode:'',
+        projectSource:'',
+        questioner:'',
+        problemType:'',
+        roomInformation:'',
+        processor:'',
+        processorWay:'',
+        problemDescription:'',
+        problemPicture:[],
+        questionerWay:'',
+        processingFeedback:'',
+        problemStateSolve:'',
+        problemStateConvert:'',
+        processorPicture:[],
+        workOrderProcessor:'',
+        processorEndTime:'',
+      }
+      this.dialogVisible = false
+      this.dialogSolve = false
+      this.dialogWorkOrder = false
+    },
+    submitFormWorkOrder(){
+      pushWorkOrder(this.form).then(res =>{
+
+      })
+      this.dialogWorkOrder=false
+    },
+    submitForm(){
+      this.$refs["form"].validate(async valid => {
+        if (valid) {
+          if (this.form.id == undefined) {
+            //新增售后问题
+            let formData = new FormData();
+            formData.append("problemInfo",new Blob([JSON.stringify(this.form)], {type: "application/json"}))
+            if(this.pictureList.length < 1 ){
+                formData.append("files",null)
+            }else {
+              this.pictureList.forEach(file =>{
+                formData.append("files",file.raw)
+              })
+            }
+            return await axios({
+              method: "POST",
+              url: process.env.VUE_APP_BASE_API + '/mk/as/problem/add',
+              headers: {
+                'Content-Type': 'multipart/form-data',
+                'Authorization': 'Bearer ' + getToken()
+              },
+              data: formData,
+            }).then(res =>{
+              if(res.data.code == 200){
+                this.$modal.msgSuccess("新增成功");
+                console.log("图片返回结果",res)
+                this.dialogVisible = false
+                this.handleClick()
+              }
+            })
+          } else {
+            //修改售后问题
+            let formData = new FormData();
+            formData.append("problemInfo",new Blob([JSON.stringify(this.form)], {type: "application/json"}))
+            if(this.pictureList.length < 1 ){
+              formData.append("files",null)
+            }else {
+              this.pictureList.forEach(file =>{
+                formData.append("files",file.raw)
+              })
+            }
+            return await axios({
+              method: "POST",
+              url: process.env.VUE_APP_BASE_API + '/mk/as/problem/edit',
+              headers: {
+                'Content-Type': 'multipart/form-data',
+                'Authorization': 'Bearer ' + getToken()
+              },
+              data: formData,
+            }).then(res =>{
+              if(res.data.code == 200){
+                this.$modal.msgSuccess("修改成功");
+                console.log("图片返回结果",res)
+                this.dialogVisible = false
+                this.cancel()
+                this.handleClick()
+              }
+            })
+          }
+        }
+      })
+    },
+    async submitFormSolve(){
+      if(this.form.id != undefined){
+        let formData = new FormData();
+        formData.append("problemInfo",new Blob([JSON.stringify(this.form)], {type: "application/json"}))
+        if(this.pictureList.length < 1 ){
+          formData.append("files",null)
+        }else {
+          this.pictureList.forEach(file =>{
+            formData.append("files",file.raw)
+          })
+        }
+        return await axios({
+          method: "POST",
+          url: process.env.VUE_APP_BASE_API + '/mk/as/problem/editSolve',
+          headers: {
+            'Content-Type': 'multipart/form-data',
+            'Authorization': 'Bearer ' + getToken()
+          },
+          data: formData,
+        }).then(res =>{
+          if(res.data.code == 200){
+            this.$modal.msgSuccess("修改成功");
+            console.log("图片返回结果",res)
+            this.dialogVisible = false
+            this.cancel()
+            this.handleClick()
+          }
+        })
+      }
+    },
+    //预览图片功能
+    handlePictureCardPreview(file) {
+      // console.log(file.url);
+      this.dialogVisiblePicture = true
+      this.dialogImageUrl = file.url
+
+    },
+    //移除图片功能
+    async handleRemove(file, fileList) {
+      await axios({
+        method: "get",
+        url: `https://dev-sy.derom.com/document-center/fastdfs/delete?id=${file.id}`,
+      }).then(res =>{
+        console.log("删除结果",res)
+        if(res.data.code == 200) {
+          this.$message.success("移除图片成功")
+        }
+      })
+      this.form.problemPicture=fileList
+    },
+    // 文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用,function(file, fileList)
+    handleChange(file, fileList) {
+      this.pictureList = fileList
+    },
+    handleClose(done) {
+      this.form = {
+        id:undefined,
+        problemCode:'',
+        projectSource:'',
+        questioner:'',
+        problemType:'',
+        roomInformation:'',
+        processor:'',
+        processorWay:'',
+        problemDescription:'',
+        problemPicture:[],
+        questionerWay:'',
+        processingFeedback:'',
+        problemStateSolve:'',
+        problemStateConvert:'',
+        processorPicture:[],
+        workOrderProcessor:'',
+        processorEndTime:'',
+      }
+      this.$confirm('确认关闭?')
+        .then(_ => {
+          done();
+        })
+        .catch(_ => {});
+    }
+  },
+  data() {
+    return {
+      dialogTitle:'',
+      pictureList:[],
+      //标签
+      activeName:'1',
+      // 选中数组
+      problemInfos: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      state:'',
+      stateOptions:[
+        {
+          value:'1,1',
+          label:'待解决'
+        },
+        {
+          value:'0,1',
+          label:'已解决'
+        },
+        {
+          value:'1,0',
+          label:'转工单-待解决'
+        },
+        {
+          value:'0,0',
+          label:'转工单-已解决'
+        }
+      ],
+      processorOptions:[
+        {
+          userCode: '10001',
+          nickName: '王五'
+        },
+        {
+          userCode: '10002',
+          nickName: '张三'
+        }
+      ],
+      problemTypeOptions:[
+        {
+          value: '1',
+          label: '软件问题'
+        },
+        {
+          value: '2',
+          label: '硬件问题'
+        },
+        {
+          value: '3',
+          label: '服务问题'
+        },
+        {
+          value: '4',
+          label: '其他问题'
+        },
+      ],
+      dialogWorkOrder:false,
+      dialogSolve:false,
+      dialogImageUrl:'',
+      dialogVisible: false,
+      dialogVisiblePicture: false,
+      queryParams: {
+        projectSource:'',
+        problemType:'',
+        roomInformation:'',
+        questioner:'',
+        processor:'',
+        pageNum:1,
+        pageSize:10,
+        problemStateSolve:null,
+        problemStateConvert:null
+      },
+      form: {
+        id:undefined,
+        problemCode:'',
+        projectSource:'',
+        questioner:'',
+        problemType:'',
+        roomInformation:'',
+        processor:'',
+        processorWay:'',
+        problemDescription:'',
+        problemPicture:[],
+        questionerWay:'',
+        processingFeedback:'',
+        problemStateSolve:'',
+        problemStateConvert:'',
+        processorPicture:[],
+        workOrderProcessor:'',
+        processorEndTime:'',
+      },
+      upload: {
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/mk/as/problem/upload",
+      },
+      dataList:[],
+      total:null,
+    }
+  }
+}
+
+</script>
+
+<style lang="scss" scoped>
+.problemInfo {
+  margin-right: 10px;
+  margin-left: 10px;
+}
+.el-col {
+  text-align: end;
+}
+</style>