Forráskód Böngészése

添加工单驳回按钮

aXin-0810 1 éve
szülő
commit
5d490b7e39

+ 7 - 5
src/api/workOrderPool.js

@@ -1,7 +1,5 @@
 import request, { postBlob, getBlob, handleImport } from '@/utils/request'
 
-
-
 export function orderBaseImport(data) {
   return handleImport('/order/base/import', data.formdata, data.id || '')
 }
@@ -142,8 +140,6 @@ export function orderBaseProductDelete(params) {
   })
 }
 
-
-
 export function orderBaseList(data) {
   return request({
     url: `/order/base/list?moduleId=${data.moduleId}`,
@@ -200,7 +196,6 @@ export function settleNormOtherQuery(params) {
   })
 }
 
-
 export function orderBaseSettleNormReset(data) {
   return request({
     url: `/order/base/settle/norm/reset`,
@@ -209,3 +204,10 @@ export function orderBaseSettleNormReset(data) {
   })
 }
 
+export function orderBaseReject(params) {
+  return request({
+    url: `/order/base/reject`,
+    method: 'post',
+    params
+  })
+}

+ 56 - 0
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/orderReject.vue

@@ -0,0 +1,56 @@
+<template>
+  <div class="withinLine">
+    <el-button @click="urgent" :disabled="disabled" type="primary" size="mini">工单驳回</el-button>
+  </div>
+</template>
+
+<script>
+import buttonMixin from './button_mixin.js'
+import { MessageBox } from '@zjlib/element-ui2'
+import { orderBaseReject } from '@/api/workOrderPool.js'
+export default {
+  mixins: [buttonMixin],
+  methods: {
+    urgent() {
+      this.lockBtn()
+      MessageBox.confirm('是否确定工单驳回?', '工单驳回', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
+          orderBaseReject({ orderBaseId: this.orderInfo.id })
+            .then(res => {
+              this.unlockBtn()
+              // 编辑保存后不跳转列表,刷新数据
+              this.acquireVerify(this, 'getorderDetail')()
+              // 刷新操作记录
+              this.acquireVerify(this, 'getOrderBaseLogList')()
+              this.$message({
+                type: 'success',
+                message: '驳回成功!'
+              })
+            })
+            .catch(() => {
+              this.unlockBtn()
+            })
+        })
+        .catch(() => {
+          this.unlockBtn()
+        })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.withinLine {
+  display: inline-block;
+
+  ::v-deep .el-button {
+    margin-left: 0;
+    margin-right: 10px;
+    margin-bottom: 10px;
+  }
+}
+</style>

+ 39 - 14
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/index.vue

@@ -1,7 +1,12 @@
 <template>
   <zj-page-container v-if="orderInfo">
     <zj-page-fill class="neibuview">
-      <zj-form-container ref="formRef" :form-data="orderInfo" :form-rules="formRules" :form-attributes="{ size: 'mini' }">
+      <zj-form-container
+        ref="formRef"
+        :form-data="orderInfo"
+        :form-rules="formRules"
+        :form-attributes="{ size: 'mini' }"
+      >
         <!-- 派工信息 创建不需要 -->
         <zj-form-module v-if="id" title="派工信息" label-width="90px" :form-data="orderInfo" :form-items="dispatchInfo">
           <div slot="internal-bottom">
@@ -9,8 +14,11 @@
           </div>
           <div slot="right" style="width: 55%; position: relative">
             <div class="pgxxTable">
-              <zj-table :columns="logColumns" :table-data="logList"
-                :table-attributes="{ height: '100%', border: true }" />
+              <zj-table
+                :columns="logColumns"
+                :table-data="logList"
+                :table-attributes="{ height: '100%', border: true }"
+              />
             </div>
           </div>
         </zj-form-module>
@@ -19,7 +27,11 @@
         <!-- 服务信息 -->
         <zj-form-module title="服务信息" label-width="110px" :form-data="orderInfo" :form-items="serviceInfo" />
         <!-- 产品信息 -->
-        <zj-form-module title="产品信息" :form-data="orderInfo" :form-items="workOrderType == 1 ? product_wb : product" />
+        <zj-form-module
+          title="产品信息"
+          :form-data="orderInfo"
+          :form-items="workOrderType == 1 ? product_wb : product"
+        />
         <!-- 其它信息 -->
         <zj-form-module title="其它信息" :form-data="orderInfo" :form-items="otherInfo" />
         <!-- 派单信息 -->
@@ -28,14 +40,18 @@
     </zj-page-fill>
     <!-- 操作按钮 -->
     <div>
-      <div style="box-sizing: border-box;padding: 10px 10px 0;" v-if="id">
+      <div style="box-sizing: border-box; padding: 10px 10px 0" v-if="id">
         <!-- 关闭 -->
         <close-button />
         <!-- 1,保存  -->
         <commitSave v-if="~btnRestrict.indexOf(1)" :orderInfo="orderInfo" :orderType="orderType" />
         <!-- 2,过程反馈  -->
-        <processFeedback v-if="~btnRestrict.indexOf(2)" resultCodeName="过程反馈" :orderInfo="orderInfo"
-          :orderType="orderType" />
+        <processFeedback
+          v-if="~btnRestrict.indexOf(2)"
+          resultCodeName="过程反馈"
+          :orderInfo="orderInfo"
+          :orderType="orderType"
+        />
         <!-- 3,设为异常  -->
         <abnormal v-if="~btnRestrict.indexOf(3)" :orderInfo="orderInfo" :orderType="orderType" />
         <!-- 4,加急  -->
@@ -45,11 +61,18 @@
         <!-- 6,取消工单  -->
         <cancelOrder v-if="~btnRestrict.indexOf(6)" :orderInfo="orderInfo" :orderType="orderType" />
         <!-- 7,回访  -->
-        <processFeedback v-if="~btnRestrict.indexOf(7)" resultCodeName="回访" resultCode="回访" :orderInfo="orderInfo"
-          :orderType="orderType" />
+        <processFeedback
+          v-if="~btnRestrict.indexOf(7)"
+          resultCodeName="回访"
+          resultCode="回访"
+          :orderInfo="orderInfo"
+          :orderType="orderType"
+        />
+        <!-- 工单驳回 -->
+        <orderReject v-if="~btnRestrict.indexOf(9)" :orderInfo="orderInfo" :orderType="orderType" />
         <!-- 8,新建工单 -->
       </div>
-      <div style="box-sizing: border-box;padding: 10px 10px 0;" v-else>
+      <div style="box-sizing: border-box; padding: 10px 10px 0" v-else>
         <!-- 关闭 -->
         <close-button />
         <!-- 1,下派服务单  -->
@@ -76,6 +99,7 @@ import unurgent from './buttons/unurgent.vue'
 import abnormal from './buttons/abnormal.vue'
 import processFeedback from './buttons/processFeedback.vue'
 import cancelOrder from './buttons/cancelOrder.vue'
+import orderReject from './buttons/orderReject.vue'
 
 export default {
   components: {
@@ -86,7 +110,8 @@ export default {
     unurgent,
     abnormal,
     processFeedback,
-    cancelOrder
+    cancelOrder,
+    orderReject
   },
   mixins: [
     workOrderLogic,
@@ -96,7 +121,7 @@ export default {
     productColumns,
     wb_productColumns,
     serviceInfo,
-    pandanxinxi,
+    pandanxinxi
   ],
   methods: {
     allVerify(cb) {
@@ -118,11 +143,11 @@ export default {
   box-sizing: border-box;
   padding-left: 16px;
 
-  ::v-deep &>.zj-page-fill-scroll {
+  ::v-deep & > .zj-page-fill-scroll {
     box-sizing: border-box;
     padding-right: 16px;
 
-    &>div:nth-child(1) {
+    & > div:nth-child(1) {
       margin-top: 20px;
     }
   }

+ 40 - 42
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/mixins/workOrderLogic.js

@@ -1,48 +1,48 @@
 import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
-import { orderBaseDetail, orderBaseProductList } from "@/api/workOrderPool.js"
+import { orderBaseDetail, orderBaseProductList } from '@/api/workOrderPool.js'
 var initdata_ = {
   // 基础信息--------------------
   // 维保项目
-  rpProjectRepairId: "",
+  rpProjectRepairId: '',
   // 客户名称
-  userName: "",
+  userName: '',
   // 联系人
-  linkName: "",
+  linkName: '',
   // 客户电话
-  userMobile: "",
+  userMobile: '',
   // 客户电话2
-  userMobile2: "",
+  userMobile2: '',
   // 省
-  provinceId: "",
+  provinceId: '',
   // 市
-  cityId: "",
+  cityId: '',
   // 区
-  areaId: "",
+  areaId: '',
   // 街道
-  streetId: "",
+  streetId: '',
   // gps地址
-  gpsAddress: "",
+  gpsAddress: '',
   // 详细地址
-  address: "",
+  address: '',
   // 服务信息--------------------------------
   // 工单类型
-  orderSmallType: "",
+  orderSmallType: '',
   // 工单来源
-  orderChannelId: "",
+  orderChannelId: '',
   // 预约上门日期
-  appointmentTime: "",
+  appointmentTime: '',
   // 销售单位
-  saleCompany: "",
+  saleCompany: '',
   // 产品信息------------------------
   orderProducts: [],
   // 其它信息------------------------
   // 备注
-  remark: "",
+  remark: '',
   // 派单信息-----------------------------
   // 服务商网点
-  websitId: "",
+  websitId: '',
   // 主要工程师id
-  workerId: "",
+  workerId: '',
   // 工程师列表
   orderWorkers: [],
   orderWorkers_cp: []
@@ -52,22 +52,22 @@ export default {
   props: {
     id: {
       type: [String, Number],
-      default: null,
+      default: null
     },
     workOrderType: {
       type: Number,
-      default: 0, // 0普通工单, 1维保工单
-    },
+      default: 0 // 0普通工单, 1维保工单
+    }
   },
   data() {
     return {
-      orderInfo: null,
+      orderInfo: null
     }
   },
   watch: {
     id: {
       handler(newVal, oldVal) {
-        this.getorderDetail((data) => {
+        this.getorderDetail(data => {
           if (this.workOrderType == 0) {
             this.$nextTick(() => {
               // 获取地址信息
@@ -85,8 +85,8 @@ export default {
         this.getOrderBaseLogList()
       },
       deep: true,
-      immediate: true,
-    },
+      immediate: true
+    }
   },
   computed: {
     // 用户信息
@@ -96,13 +96,12 @@ export default {
     // 判断工单状态
     orderType() {
       if (this.orderInfo) {
-
       }
       return -1
     },
     // 处理操作按钮是否可以操作
     btnRestrict() {
-      // 1,保存 2,过程反馈 3,设为异常 4,加急 5,不加急 6,取消工单 7,回访 8,新建工单
+      // 1,保存 2,过程反馈 3,设为异常 4,加急 5,不加急 6,取消工单 7,回访 8,新建工单 9,工单驳回
       var btns = []
       if (this.orderInfo) {
         btns = {
@@ -119,7 +118,7 @@ export default {
           // 异常单
           YCD: [1, 2, 6],
           // 已完工待结算
-          YWG: [7, 8],
+          YWG: [7, 8, 9],
           // 已结算
           YJS: [],
           // 已取消
@@ -240,7 +239,7 @@ export default {
           isEdit: !finish,
           isShow: true,
           isRules: this.userInfo.type != 1 ? [...required] : []
-        },
+        }
       }
     },
     // 表单校验规则
@@ -260,21 +259,20 @@ export default {
           orderBaseProductList({
             orderBaseId: this.id
           })
-        ])
-          .then(([res, res1]) => {
-            this.orderInfo = {
-              ...res.data,
-              orderWorkers_cp: [...(res.data.orderWorkers || []).map(item => ({ ...item }))],
-              orderProducts: res1.data || [],
-              workerId_fz: "",
-            }
-            cb && cb(this.orderInfo)
-            console.log(this.orderInfo)
-          })
+        ]).then(([res, res1]) => {
+          this.orderInfo = {
+            ...res.data,
+            orderWorkers_cp: [...(res.data.orderWorkers || []).map(item => ({ ...item }))],
+            orderProducts: res1.data || [],
+            workerId_fz: ''
+          }
+          cb && cb(this.orderInfo)
+          console.log(this.orderInfo)
+        })
       } else {
         // 创建工单
         this.orderInfo = Object.assign({}, JSON.parse(JSON.stringify(initdata_)), {
-          workerId_fz: ""
+          workerId_fz: ''
         })
         cb && cb(this.orderInfo)
       }