lizhenhao 2 лет назад
Родитель
Сommit
dabafe8123

+ 46 - 0
src/api/klgBase/questions/KlgBaseQuestionsService.js

@@ -0,0 +1,46 @@
+import request from '@/utils/httpRequest'
+
+export default class KlgBaseQuestionsService {
+  list (params) {
+    return request({
+      url: '/klg/questions/list',
+      method: 'get',
+      params: params
+    })
+  }
+  queryById (id) {
+    return request({
+      url: '/klg/questions/queryById',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+  save (inputForm) {
+    return request({
+      url: `/klg/questions/save`,
+      method: 'post',
+      data: inputForm
+    })
+  }
+  saveForm (inputForm) {
+    return request({
+      url: `/klg/questions/saveForm`,
+      method: 'post',
+      data: inputForm
+    })
+  }
+  delete (ids) {
+    return request({
+      url: '/klg/questions/delete',
+      method: 'delete',
+      params: {ids: ids}
+    })
+  }
+  updateStatusById (data) {
+    return request({
+      url: '/klg/questions/updateStatusById',
+      method: 'post',
+      data: data
+    })
+  }
+}

+ 390 - 0
src/views/modules/klgBase/questions/KlgBaseQuestionsForm.vue

@@ -0,0 +1,390 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+  <div>
+    <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="formReadOnly"
+             label-width="120px" @submit.native.prevent>
+      <el-divider content-position="left"><i class="el-icon-document"></i> 业务提问信息</el-divider>
+      <el-row  :gutter="15">
+        <el-col :span="12">
+          <el-form-item label="标题" prop="title"
+                        :rules="[
+                        {required: true, message: '标题不能为空', trigger: 'blur'},{required: true, message: '标题不能为空', trigger: 'change'}
+                 ]">
+            <el-input v-model="inputForm.title" placeholder="请填写标题" clearable></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="问题类型" prop="type"
+                        :rules="[
+                        {required: true, message: '问题类型不能为空', trigger: 'blur'},{required: true, message: '问题类型不能为空', trigger: 'change'}
+                        ]">
+            <el-select v-model="inputForm.type" placeholder="请选择问题类型" clearable style="width: 100%;">
+              <el-option
+                v-for="item in $dictUtils.getDictList('question_type')"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+<!--        项目名称-->
+        <el-col :span="12">
+          <el-form-item label="所属项目" prop="programName"
+                        :rules="[
+                 ]">
+            <el-input @focus="openProgramPageForm()" v-model="inputForm.programName" placeholder="请选择项目" clearable></el-input>
+          </el-form-item>
+        </el-col>
+<!--        选择审核人  多选-->
+        <el-col :span="12">
+          <el-form-item label="问题处理人员" prop="disposeBy"
+                        :rules="[{required: true, message: '问题处理人员不能为空', trigger: 'blur'},{required: true, message: '问题处理人员不能为空', trigger: 'change'}]"
+          >
+            <UserSelect size="medium" :disabled="formReadOnly" :readonly="true" :limit='10' :value="inputForm.disposeBy" @getValue='(value) => {inputForm.disposeBy = value}'></UserSelect>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="期望完成时间" prop="expectFinishDate"
+                        :rules="[
+                 ]">
+            <el-date-picker
+              v-model="inputForm.expectFinishDate"
+              type="date"
+              value-format="yyyy-MM-dd"
+              placeholder="选择期望完成时间"
+              style="width:100%"
+              placement="bottom-start"
+              clearable>
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="问题内容" prop="content"
+          >
+            <WangEditor ref="contentEditor" v-model="inputForm.content"/>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <!--        附件-->
+    <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
+    <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>
+  </div>
+</template>
+
+<script>
+  import UpLoadComponent from '@/views/common/UpLoadComponent'
+  import SelectUserTree from '@/views/modules/utils/treeUserSelect'
+  import SelectTree from '@/components/treeSelect/treeSelect.vue'
+  import UserSelect from '@/components/userSelect'
+  import KlgBaseQuestionsService from '@/api/klgBase/questions/KlgBaseQuestionsService'
+  import ProgramPageForm from '@/views/modules/finance/invoice/ProgramPageForm'
+  import WangEditor from '@/components/editor/WangEditor'
+  export default {
+    props: {
+      businessId: {
+        type: String,
+        default: ''
+      },
+      formReadOnly: {
+        type: Boolean,
+        default: false
+      },
+      status: {
+        type: String,
+        default: ''
+      }
+    },
+    data () {
+      return {
+        title: '',
+        method: '',
+        loading: false,
+        inputForm: {
+          title: '',
+          type: '',
+          programId: '',
+          programName: '',
+          disposeBy: '',
+          expectFinishDate: '',
+          content: '',
+          status: '',
+          procInsId: '',
+          processDefinitionId: '',
+          klgBaseDisposeDTOList: [],
+          klgBaseReplyDTOList: [],
+          workAttachmentDtoList: []
+        },
+        keyWatch: ''
+      }
+    },
+    klgBaseQuestionsService: null,
+    created () {
+      this.klgBaseQuestionsService = new KlgBaseQuestionsService()
+    },
+    computed: {
+      bus: {
+        get () {
+          this.$refs.uploadComponent.setDividerName('附件')
+          this.$refs.contentEditor.clear()
+          return this.businessId
+        },
+        set (val) {
+          this.businessId = val
+        }
+      }
+    },
+    watch: {
+      'keyWatch': {
+        handler (newVal) {
+          if (this.bus) {
+            if (this.bus !== 'false') {
+              this.init('', this.bus)
+            }
+          } else {
+            this.$nextTick(() => {
+              this.$refs.inputForm.resetFields()
+            })
+          }
+        }
+      }
+    },
+    components: {
+      SelectUserTree,
+      UpLoadComponent,
+      SelectTree,
+      UserSelect,
+      ProgramPageForm,
+      WangEditor
+    },
+    methods: {
+      getKeyWatch (keyWatch) {
+        this.keyWatch = keyWatch
+      },
+      init (method, id) {
+        this.klgBaseQuestionsService = new KlgBaseQuestionsService()
+        this.method = method
+        this.inputForm = {
+          title: '',
+          type: '',
+          programId: '',
+          programName: '',
+          disposeBy: '',
+          expectFinishDate: '',
+          content: '',
+          status: '',
+          procInsId: '',
+          processDefinitionId: '',
+          klgBaseDisposeDTOList: [],
+          klgBaseReplyDTOList: [],
+          workAttachmentDtoList: []
+        }
+        this.inputForm.id = id
+        this.loading = false
+        this.$nextTick(() => {
+          this.$refs.inputForm.resetFields()
+          this.loading = true
+          this.klgBaseQuestionsService.queryById(this.inputForm.id).then(({data}) => {
+            this.$refs.contentEditor.clear()
+            if (this.commonJS.isNotEmpty(this.inputForm.status) && this.inputForm.status !== '1') {
+              this.$refs.contentEditor.disable()
+            }
+            this.$refs.uploadComponent.clearUpload()
+            this.inputForm = this.recover(this.inputForm, data)
+            this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+            if (this.commonJS.isNotEmpty(this.inputForm.content)) {
+              this.$refs.contentEditor.init(this.inputForm.content)
+            }
+            if (this.commonJS.isEmpty(this.inputForm.workAttachmentDtoList)) {
+              this.inputForm.workAttachmentDtoList = []
+            }
+            if (this.formReadOnly === true && this.status === 'taskFormDetail') {
+              this.$refs.uploadComponent.newUpload('view', this.inputForm.workAttachmentDtoList, 'klg_questions')
+            } else if (this.formReadOnly === true && this.status === 'audit') {
+              this.$refs.uploadComponent.newUpload('view', this.inputForm.workAttachmentDtoList, 'klg_questions', null, null, true, JSON.parse(localStorage.getItem('user')).name)
+            } else if (this.formReadOnly === true && this.status !== 'audit' && this.status !== 'taskFormDetail') {
+              this.$refs.uploadComponent.newUpload('view', this.inputForm.workAttachmentDtoList, 'klg_questions')
+            } else {
+              this.$refs.uploadComponent.newUpload('view', this.inputForm.workAttachmentDtoList, 'klg_questions', null, null, true, JSON.parse(localStorage.getItem('user')).name)
+            }
+            this.loading = false
+          })
+        })
+      },
+      saveForm (callback) {
+        this.doSubmit('save', callback)
+      },
+      startForm (callback) {
+        this.doSubmit('start', callback)
+      },
+      async agreeForm (callback) {
+        await this.klgBaseQuestionsService.queryById(this.inputForm.id).then(({data}) => {
+          if (data.status !== '2' || this.inputForm.procInsId !== data.procInsId) { // status的值不等于“审核中”,或者“procInsId”已经改变,就弹出提示
+            this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+            this.err = true
+          }
+        })
+        if (this.err === true) {
+          this.err = ''
+          throw new Error()
+        } else {
+          await this.doSubmit('agree', callback)
+        }
+      },
+      // 表单提交
+      doSubmit (status, callback) {
+        if (status === 'save') {
+          // 暂存
+          this.inputForm.status = '1'
+          this.loading = true
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
+          this.inputForm.workAttachmentDtoList = this.$refs.uploadComponent.getDataList()
+          if (this.commonJS.isNotEmpty(this.inputForm.disposeBy)) {
+            this.inputForm.klgBaseDisposeDTOList = []
+            this.inputForm.disposeBy.split(',').forEach(item => {
+              let i = {disposeBy: item, questionId: this.inputForm.id}
+              this.inputForm.klgBaseDisposeDTOList.push(i)
+            })
+          } else {
+            this.inputForm.klgBaseDisposeDTOList = []
+          }
+          this.klgBaseQuestionsService.saveForm(this.inputForm).then(({data}) => {
+            this.inputForm.assignee = this.inputForm.disposeBy
+            callback(data.businessTable, data.businessId, this.inputForm)
+            this.loading = false
+          }).catch(() => {
+            this.loading = false
+          })
+          return
+        } else if (status === 'start') {
+          // 送审  待审核
+          this.inputForm.status = '2'
+        } else if (status === 'agree') {
+          // 审核同意
+          this.inputForm.status = '5'
+        }
+        this.$refs['inputForm'].validate((valid) => {
+          if (valid) {
+            this.loading = true
+            if (this.$refs.uploadComponent.checkProgress()) {
+              this.loading = false
+              return
+            }
+            this.inputForm.workAttachmentDtoList = this.$refs.uploadComponent.getDataList()
+            if (this.commonJS.isNotEmpty(this.inputForm.disposeBy)) {
+              this.inputForm.klgBaseDisposeDTOList = []
+              this.inputForm.disposeBy.split(',').forEach(item => {
+                let i = {disposeBy: item, questionId: this.inputForm.id}
+                this.inputForm.klgBaseDisposeDTOList.push(i)
+              })
+            } else {
+              this.inputForm.klgBaseDisposeDTOList = []
+            }
+            this.klgBaseQuestionsService.saveForm(this.inputForm).then(({data}) => {
+              this.inputForm.assignee = this.inputForm.disposeBy
+              callback(data.businessTable, data.businessId, this.inputForm)
+              this.loading = false
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      async updateStatusById (type) {
+        if (await this.$refs.uploadComponent.checkProgress()) {
+          this.loading = false
+          throw new Error()
+        }
+        await this.klgBaseQuestionsService.queryById(this.inputForm.id).then(({data}) => {
+          if (data.status !== '2' || this.inputForm.procInsId !== data.procInsId) { // status的值不等于“审核中”,或者“procInsId”已经改变,就弹出提示
+            this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+            this.err = true
+          }
+        })
+        if (this.err === true) {
+          this.err = ''
+          throw new Error()
+        } else {
+          // if (type === 'agree') {
+          //   // 同意
+          //   this.inputForm.status = '5'
+          // }
+          if (type === 'reject') {
+            // 驳回
+            this.loading = true
+            if (this.$refs.uploadComponent.checkProgress()) {
+              this.loading = false
+              return
+            }
+            this.inputForm.workAttachmentDtoList = this.$refs.uploadComponent.getDataList()
+            if (this.commonJS.isNotEmpty(this.inputForm.disposeBy)) {
+              this.inputForm.klgBaseDisposeDTOList = []
+              this.inputForm.disposeBy.split(',').forEach(item => {
+                let i = {disposeBy: item, questionId: this.inputForm.id}
+                this.inputForm.klgBaseDisposeDTOList.push(i)
+              })
+            } else {
+              this.inputForm.klgBaseDisposeDTOList = []
+            }
+            this.klgBaseQuestionsService.saveForm(this.inputForm).then(({data}) => {
+              this.loading = false
+            }).catch(() => {
+              this.loading = false
+            })
+            return
+          }
+          if (type === 'reback') {
+            // 撤回
+            let param = {status: '3', id: this.inputForm.id}
+            this.klgBaseQuestionsService.updateStatusById(param)
+          }
+        }
+      },
+      close () {
+        this.inputForm = {
+          title: '',
+          type: '',
+          programId: '',
+          programName: '',
+          disposeBy: '',
+          expectFinishDate: '',
+          content: '',
+          status: '',
+          procInsId: '',
+          processDefinitionId: '',
+          klgBaseDisposeDTOList: [],
+          klgBaseReplyDTOList: [],
+          workAttachmentDtoList: []
+        }
+        this.$refs.uploadComponent.clearUpload()
+        this.$refs.inputForm.resetFields()
+      },
+      openProgramPageForm () {
+        this.$refs.programPageForm.init('1', false)
+      },
+      getProgram (rows) {
+        if (this.commonJS.isNotEmpty(rows)) {
+          this.inputForm.programId = rows[0].id // 项目id
+          this.inputForm.programName = rows[0].name // 项目名称
+        }
+      }
+    }
+  }
+</script>
+<style scoped>
+  /deep/ .el-input-number .el-input__inner {
+    text-align: left;
+  }
+  /deep/ .w-e-text-container {
+    z-index: 1 !important;
+  }
+  /deep/ .w-e-menu {
+    z-index: 1 !important;
+  }
+  /deep/ .wtext {
+    height: 200px
+  }
+</style>

+ 294 - 0
src/views/modules/klgBase/questions/KlgBaseQuestionsList.vue

@@ -0,0 +1,294 @@
+<template>
+  <div class="page">
+    <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+      <!-- 搜索框-->
+      <el-form-item prop="name">
+        <el-input size="small" v-model="searchForm.name" placeholder="请输入附件类型名称" clearable></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
+        <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <div class="bg-white top" style="">
+      <vxe-toolbar :refresh="{query: refreshList}" custom>
+        <template #buttons>
+          <el-button v-if="hasPermission('klg:question:add')" type="primary" size="small" icon="el-icon-plus" @click="start()">新建</el-button>
+          <el-button v-if="hasPermission('klg:question:del')" type="danger"   size="small" icon="el-icon-delete" @click="del()" :disabled="$refs.questionsTable && $refs.questionsTable.getCheckboxRecords().length === 0" plain>删除</el-button>
+        </template>
+      </vxe-toolbar>
+      <div style="height: calc(100% - 50px)">
+        <vxe-table
+          :key="tableKey"
+          border="inner"
+          auto-resize
+          resizable
+          height="auto"
+          :loading="loading"
+          size="small"
+          ref="questionsTable"
+          show-header-overflow
+          show-overflow
+          highlight-hover-row
+          :menu-config="{}"
+          @sort-change="sortChangeHandle"
+          :sort-config="{remote:true}"
+          :data="dataList"
+          :checkbox-config="{}">
+          <vxe-column type="seq" width="40"></vxe-column>
+          <vxe-column type="checkbox" width="40" ></vxe-column>
+          <vxe-column min-width="160" title="标题" field="title"></vxe-column>
+          <vxe-column min-width="160" title="问题类型" field="type"></vxe-column>
+          <vxe-column min-width="160" title="所属项目" field="programId"></vxe-column>
+          <vxe-column min-width="160" title="提交人" field="createBy.name"></vxe-column>
+          <vxe-column min-width="160" title="提交时间" field="createDate"></vxe-column>
+          <vxe-column min-width="160" title="处理人" field="createDate"></vxe-column>
+          <vxe-column min-width="160" title="结案时间" field="createDate"></vxe-column>
+          <vxe-column  min-width="150px"align="center" title="状态" field="status" >
+            <template slot-scope="scope">
+              <el-button  type="text" @click="registeredDetail(scope.row)" effect="dark" size="mini"
+                          :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.status, '-')">
+                {{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.status, '-')}}
+              </el-button>
+            </template>
+          </vxe-column>
+          <vxe-column title="操作" width="230px" fixed="right" align="center">
+            <template  slot-scope="scope">
+              <el-button v-if="hasPermission('klg:question:edit')" type="text" icon="el-icon-edit" size="small" @click="registeredPush(scope.row)">修改</el-button>
+              <el-button v-if="hasPermission('klg:question:del')" type="text"  icon="el-icon-delete" size="small" @click="del(scope.row.id)">删除</el-button>
+            </template>
+          </vxe-column>
+        </vxe-table>
+      </div>
+    </div>
+    <KlgBaseQuestionsForm  ref="klgBaseQuestionsForm" @refreshDataList="refreshList"></KlgBaseQuestionsForm>
+  </div>
+</template>
+
+<script>
+  import KlgBaseQuestionsService from '@/api/klgBase/questions/KlgBaseQuestionsService'
+  import KlgBaseQuestionsForm from './KlgBaseQuestionsForm'
+  import TaskService from '@/api/flowable/TaskService'
+  import ProcessService from '@/api/flowable/ProcessService'
+  import pick from 'lodash.pick'
+  export default {
+    data () {
+      return {
+        searchForm: {
+          type: '',
+          sort: ''
+        },
+        dataList: [],
+        tablePage: {
+          total: 0,
+          currentPage: 1,
+          pageSize: 10,
+          orders: []
+        },
+        tableKey: '',
+        loading: false,
+        processDefinitionAuditId: '',
+        procDefAuditKey: ''
+      }
+    },
+    klgBaseQuestionsService: null,
+    taskService: null,
+    processService: null,
+    created () {
+      this.klgBaseQuestionsService = new KlgBaseQuestionsService()
+      this.taskService = new TaskService()
+      this.processService = new ProcessService()
+    },
+    components: {
+      KlgBaseQuestionsForm
+    },
+    computed: {
+      userName () {
+        return JSON.parse(localStorage.getItem('user')).name
+      },
+      user () {
+        this.createName = JSON.parse(localStorage.getItem('user')).name
+        return JSON.parse(localStorage.getItem('user'))
+      }
+    },
+    mounted () {
+      this.refreshList()
+    },
+    methods: {
+      // 新增
+      add () {
+        this.$refs.klgBaseQuestionsForm.init('add', '')
+      },
+      // 修改
+      edit (id) {
+        id = id || this.$refs.questionsTable.getCheckboxRecords().map(item => {
+          return item.id
+        })[0]
+        this.$refs.klgBaseQuestionsForm.init('edit', id)
+      },
+      // 查看
+      view (id) {
+        this.$refs.klgBaseQuestionsForm.init('view', id)
+      },
+      // 获取数据列表
+      refreshList () {
+        this.loading = true
+        this.klgBaseQuestionsService.list({
+          'current': this.tablePage.currentPage,
+          'size': this.tablePage.pageSize,
+          'orders': this.tablePage.orders,
+          ...this.searchForm
+        }).then(({data}) => {
+          this.dataList = data.records
+          this.tablePage.total = data.total
+          this.tableKey = Math.random()
+          this.loading = false
+        })
+        this.processService.getByName('业务提问').then(({data}) => {
+          if (!this.commonJS.isEmpty(data.id)) {
+            this.processDefinitionAuditId = data.id
+            this.procDefAuditKey = data.key
+          }
+        })
+      },
+      // 当前页
+      currentChangeHandle ({ currentPage, pageSize }) {
+        this.tablePage.currentPage = currentPage
+        this.tablePage.pageSize = pageSize
+        this.refreshList()
+      },
+      // 排序
+      sortChangeHandle (column) {
+        this.tablePage.orders = []
+        if (column.order != null) {
+          this.tablePage.orders.push({column: this.$utils.toLine(column.property), asc: column.order === 'asc'})
+        }
+        this.refreshList()
+      },
+      // 删除
+      del (id) {
+        let ids = id || this.$refs.questionsTable.getCheckboxRecords().map(item => {
+          return item.id
+        }).join(',')
+        this.$confirm(`确定删除所选项吗?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.loading = true
+          this.klgBaseQuestionsService.delete(ids).then(({data}) => {
+            this.$message.success(data)
+            this.refreshList()
+            this.loading = false
+          })
+        })
+      },
+      resetSearch () {
+        this.$refs.searchForm.resetFields()
+        this.refreshList()
+      },
+      start () {
+        // 读取流程表单
+        let tabTitle = `发起流程【业务提问】`
+        let processTitle = `${this.userName} 在 ${this.moment(new Date()).format('YYYY-MM-DD HH:mm')} 发起了 [业务提问]`
+        this.taskService.getTaskDef({ procDefId: this.processDefinitionAuditId,
+          status: 'startAndHold'}).then((data) => {
+            this.$router.push({
+              path: '/flowable/task/TaskForm',
+              query: {
+                procDefId: this.processDefinitionAuditId,
+                procDefKey: this.procDefAuditKey,
+                status: 'startAndHold',
+                title: tabTitle,
+                formType: data.data.formType,
+                formUrl: data.data.formUrl,
+                formTitle: processTitle,
+                businessId: 'false',
+                isShow: false,
+                routePath: '/klgBase/questions/KlgBaseQuestionsList'
+              }
+            })
+          })
+      },
+      // 发起业务提问
+      registeredPush (row) {
+        // 读取流程表单
+        let title = `发起流程【业务提问】`
+        let processTitle = `${this.userName} 在 ${this.moment(new Date()).format('YYYY-MM-DD HH:mm')} 发起了[业务提问]`
+        let status = 'startAndHold'
+        if (row.status === '3' || row.status === '4') {
+          status = 'startAndClose'
+        }
+        this.taskService.getTaskDef({ procDefId: this.processDefinitionAuditId,
+          businessId: row.id,
+          businessTable: 'klg_base_questions'}).then((data) => {
+            this.$router.push({
+              path: '/flowable/task/TaskForm',
+              query: {
+                procDefId: this.processDefinitionAuditId,
+                procDefKey: this.procDefAuditKey,
+                title: title,
+                formType: data.data.formType,
+                formUrl: data.data.formUrl,
+                formTitle: processTitle,
+                businessTable: 'klg_base_questions',
+                businessId: row.id,
+                isShow: 'false',
+                status: status,
+                routePath: '/klgBase/questions/KlgBaseQuestionsList'
+              }
+            })
+          })
+      },
+      // 查看业务提问流程结果
+      registeredDetail (row) {
+        if (row.status !== '0' && row.status !== '1') {
+          // eslint-disable-next-line eqeqeq
+          this.taskService.getTaskDef({
+            procInsId: row.procInsId,
+            procDefId: this.processDefinitionAuditId
+          }).then(({data}) => {
+            this.$router.push({
+              path: '/flowable/task/TaskFormDetail',
+              query: {
+                isShow: 'false',
+                readOnly: true,
+                title: '业务提问' + '流程详情',
+                formTitle: '业务提问' + '流程详情',
+                businessId: row.id,
+                status: 'reback',
+                ...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'title', 'businessId')
+              }
+            })
+          })
+        }
+      },
+      // 撤回项目登记审批
+      registeredReback (row) {
+        this.$confirm(`确定要撤回该申请吗?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(async () => {
+          await this.klgBaseQuestionsService.queryById(row.id).then(({data}) => {
+            if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
+              this.$message.error('数据已发生改变或不存在,请刷新数据')
+              this.err = true
+            }
+          })
+          if (this.err === true) {
+            this.err = ''
+            this.refreshList()
+          } else {
+            this.processService.revokeProcIns(row.procInsId).then(({data}) => {
+              let form = {status: '3', id: row.id}
+              this.klgBaseQuestionsService.updateStatusById(form)
+              this.$message.success(data)
+              this.refreshList()
+            })
+          }
+        })
+      }
+    }
+  }
+</script>

+ 0 - 4
src/views/modules/program/registered/RegisItemForm.vue

@@ -778,10 +778,6 @@
         },
         set (val) {
           this.businessId = val
-        },
-        userId () {
-          this.create = JSON.parse(localStorage.getItem('user')).id
-          return JSON.parse(localStorage.getItem('user')).id
         }
       }
     },

+ 1 - 1
src/views/modules/sys/workClient/WorkClientForm.vue

@@ -271,7 +271,7 @@
           @cell-click="dbclickFun"
           @edit-closed=""
           highlight-current-row
-          :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          :edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true}"
         >
 
         <vxe-table-column field="name" title="联系人姓名" :edit-render="{}">