whj 1 year ago
parent
commit
21cdd48572

+ 13 - 0
src/api/repair/application-form.js

@@ -642,3 +642,16 @@ export function receiveProfessor (parameter) {
     }
   })
 }
+/**
+ * 回退工单
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function backRepair (parameter) {
+  return axios({
+    url: '/repair/application-forms/back/repair',
+    method: 'put',
+    data: parameter
+  })
+}

+ 3 - 1
src/utils/dict.js

@@ -1411,7 +1411,9 @@ DictCache.COLOR = {
     22: '计划性维修报修成功',
     23: '报修撤回',
     24: '报修',
-    25: '报修待审'
+    25: '报修待审',
+    26: '报修回退'
+
   },
   WHETHER: {
     0: 'error',

+ 103 - 0
src/views/repair/application-form/modules/BackForm.vue

@@ -0,0 +1,103 @@
+<template>
+  <a-modal
+    :title="modalTitle"
+    :width="800"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    class="ant-modal2"
+    @cancel="handleCancel"
+  >
+    <a-form :form="form">
+
+      <a-form-item v-show="false" >
+        <a-input v-decorator="['id']" type="hidden"/>
+        <a-input v-decorator="['category']" type="hidden"/>
+      </a-form-item>
+
+      <row-list :col="1">
+        <row-item>
+          <a-form-item
+            label="备注"
+            :labelCol="BaseTool.Constant.labelCol2"
+            :wrapperCol="BaseTool.Constant.wrapperCol2"
+          >
+            <a-textarea
+              :rows="4"
+              v-decorator="['backReason']"/>
+          </a-form-item>
+        </row-item>
+      </row-list>
+    </a-form>
+    <template slot="footer">
+      <a-button :loading="confirmLoading" type="primary" @click="save()">保存</a-button>
+    </template>
+  </a-modal>
+</template>
+
+<script>
+import pick from 'lodash.pick'
+import { backRepair } from '@/api/repair/application-form'
+
+export default {
+  name: 'BaseRepairApplicationForm',
+  data () {
+    return {
+      confirmLoading: false,
+      modalTitle: '回退',
+      form: this.$form.createForm(this),
+      visible: false,
+      // 下拉框map
+      model: null
+    }
+  },
+  components: {
+  },
+  props: {
+  },
+  created () {
+    // 下拉框map
+  },
+  methods: {
+    base (record) {
+      this.visible = true
+      this.model = record
+      // 如果是空标识添加
+      const { form: { setFieldsValue } } = this
+      // 日期处理
+      record.applyTime = this.BaseTool.Moment(record.applyTime, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
+      this.$nextTick(() => {
+        setFieldsValue(Object.assign(pick(record, [
+          'id',
+          'category'
+        ])))
+      })
+    },
+    save () {
+      const { form: { validateFieldsAndScroll } } = this
+      this.confirmLoading = true
+      validateFieldsAndScroll((errors, values) => {
+        if (errors) {
+          this.confirmLoading = false
+          return
+        }
+        // 日期处理
+        backRepair(values)
+          .then(() => {
+            this.handleCancel(values)
+          }).catch(() => {
+            this.confirmLoading = false
+          })
+      })
+    },
+    handleCancel (values) {
+      this.visible = false
+      this.confirmLoading = false
+      this.form.resetFields()
+      if (this.BaseTool.Object.isNotBlank(values)) {
+        this.$emit('ok')
+      }
+    }
+
+  }
+}
+</script>

+ 7 - 1
src/views/repair/application-form/modules/DetailRepair.vue

@@ -89,6 +89,7 @@
               <a-descriptions-item v-if="model.category===2 && model.verifyRepairUserId != null && model.verifyRepairUserId != ''" label="报修审批人" >{{ userRepairList.find(item=>item.userId==model.verifyRepairUserId).realName }}</a-descriptions-item>
               <a-descriptions-item label="报修类型" >{{ repairFormTypeMap[model.repairFormType] }}</a-descriptions-item>
               <a-descriptions-item label="委托内容描述" :span="3"> <span v-html="model.content "></span><a-divider type="vertical" /><a @click="handleEdit(model)">编辑</a> </a-descriptions-item>
+              <a-descriptions-item v-if="model.status===26" label="回退备注" :span="3"> {{ model.backReason }}</a-descriptions-item>
               <a-descriptions-item label="报修图片" :span="3">
                 <div v-if="model.applicationFileList != null && model.applicationFileList.length > 0">
                   <viewer :images="model.applicationFileList" @inited="inited" ref="viewer" :index="1" >
@@ -297,6 +298,7 @@
         <a-popconfirm v-if="DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.NOT_ALLOCATED === model.status " title="是否要接单?" @confirm="receiveRepair">
           <a-button style="margin-left: 8px" type="default">接单</a-button>
         </a-popconfirm>
+        <a-button v-if="DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.NOT_ALLOCATED === model.status " style="margin-left: 8px" type="default" @click="$refs.backForm.base( )">退回</a-button>
         <a-button
           v-if="DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.RECEIVED === model.status ||
             DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.HANG_UP === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REPAIR_FAIL === model.status ||
@@ -325,7 +327,7 @@
         <a-button v-show=" model.status===10" style="margin-left: 8px" type="primary" @click="recoverPause">挂起解除</a-button>
         <a-button v-show="model.level!==6 && model.status!==6 && model.status!==14 && model.status!==21&& model.status!==23" style="margin-left: 8px" type="primary" @click="handleBigRepair">转大修</a-button>
         <a-button v-show="model.status===21" style="margin-left: 8px" type="primary" @click="handleCheckBigRepair">大修审核</a-button>
-        <a-button v-show="model.status===23" style="margin-left: 8px" type="primary" @click="handleAgain">再次报修</a-button>
+        <a-button v-show="model.status===23||model.status===26" style="margin-left: 8px" type="primary" @click="handleAgain">再次报修</a-button>
         <a-popconfirm
           v-show=" model.status===1||model.status===9"
           title="确定撤回?"
@@ -341,6 +343,7 @@
         <a-button style="margin-left: 8px" type="primary" @click="handleCancel">返回</a-button>
       </div>
       <div class="btn" v-else>
+        <a-button v-if="DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.NOT_ALLOCATED === model.status " style="margin-left: 8px" type="default" @click="$refs.backForm.base(model)">退回</a-button>
         <a-button style="margin-left: 8px" type="primary" @click="handleCancel">返回</a-button>
         <a-button v-show="model.status===15 || model.status===17 || model.status === 19 " style="margin-left: 8px" type="primary" @click="handleCheck">审核</a-button>
         <a-button v-if="DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.CALLER_REPAIR_VERIFY_SUCCESS_THREE === model.status " style="margin-left: 16px" type="default" @click="handleAssign">派单</a-button>
@@ -390,6 +393,7 @@
     <ToPlanForm ref="toPlanForm" @ok="handleOk" />
     <AddForm ref="addForm" @ok="handleOk"/>
     <AuditFrom2 ref="auditFrom2" @ok="handleOk"/>
+    <BackForm ref="backForm" @ok="handleOk"/>
   </div>
 </template>
 
@@ -407,6 +411,7 @@ import EditForm from './RemarkForm'
 import DispatchForm from './DispatchForm'
 import AssignForm from './AssignForm'
 import SchemeLibrary from './SchemeLibrary'
+import BackForm from './BackForm'
 import SparePickBaseForm from '../../../store/sparepickform/modules/BaseForm'
 import SparePartUsedSelectTable from '@/views/sqarepartmanage/sparepartused/modules/SparePartUsedSelectTable'
 import SparePickFormSelectTable from '@/views/store/sparepickform/modules/SparePickFormSelectTable'
@@ -453,6 +458,7 @@ export default {
   name: 'RepairApplicationFormDetail',
   components: {
     CheckForm,
+    BackForm,
     SchemeLibrary,
     EditForm,
     DetailList,