瀏覽代碼

fix:修改首页工单记录字段和样式,修改交付工单权限配置,增加试用反馈详情

liuzl 2 年之前
父節點
當前提交
881a9d7ca3

+ 9 - 13
src/views/base/partners/index.vue

@@ -30,8 +30,8 @@
                   <!-- <i class="el-icon-arrow-down el-icon--right"></i> -->
                 </span>
                 <el-dropdown-menu slot="dropdown">
-                  <el-dropdown-item v-permissions="['partner/contact/edit']" command="edit">编辑</el-dropdown-item>
-                  <el-dropdown-item v-permissions="['partner/contact/del']" command="del">删除</el-dropdown-item>
+                  <el-dropdown-item v-permissions="['partner/company/edit']" command="edit">编辑</el-dropdown-item>
+                  <el-dropdown-item v-permissions="['partner/company/del']" command="del">删除</el-dropdown-item>
                 </el-dropdown-menu>
               </el-dropdown>
             </span>
@@ -56,15 +56,9 @@
             </el-form>
           </vab-query-form-top-panel>
           <vab-query-form-left-panel>
+            <el-button icon="el-icon-plus" type="primary" @click="$refs.edit.open(queryForm.partnerId)">添加</el-button>
             <el-button
-              v-permissions="['base:product:add']"
-              icon="el-icon-plus"
-              type="primary"
-              @click="$refs.edit.open(queryForm.partnerId)">
-              添加
-            </el-button>
-            <el-button
-              v-permissions="['base:product:import']"
+              v-permissions="['partner/contact/import']"
               icon="el-icon-download"
               type="primary"
               @click="downloadTemplate">
@@ -82,7 +76,9 @@
               :http-request="uploadrequest"
               :show-file-list="false"
               style="margin: 0 10px 10px 0 !important">
-              <el-button v-permissions="['base:product:import']" icon="el-icon-upload2" type="primary">导入</el-button>
+              <el-button v-permissions="['partner/contact/import']" icon="el-icon-upload2" type="primary">
+                导入
+              </el-button>
             </el-upload>
           </vab-query-form-left-panel>
           <vab-query-form-right-panel>
@@ -112,11 +108,11 @@
           </el-table-column>
           <el-table-column align="center" fixed="right" label="操作" show-overflow-tooltip width="120">
             <template #default="{ row }">
-              <el-button v-permissions="['partner/company/edit']" type="text" @click="$refs.edit.open(row)">
+              <el-button v-permissions="['partner/contact/edit']" type="text" @click="$refs.edit.open(row)">
                 编辑
               </el-button>
               <el-button type="text" @click="handleDetail(row)">详情</el-button>
-              <el-button v-permissions="['partner/company/del']" type="text" @click="handleDelete(row)">删除</el-button>
+              <el-button v-permissions="['partner/contact/del']" type="text" @click="handleDelete(row)">删除</el-button>
             </template>
           </el-table-column>
           <template #empty>

+ 211 - 68
src/views/plat/work/index.vue

@@ -1,72 +1,163 @@
 <template>
   <div class="app-container">
-    <ul class="records" :style="{ height: height }">
+    <vab-query-form>
+      <vab-query-form-top-panel>
+        <el-form :inline="true" :model="queryForm" @submit.native.prevent>
+          <el-form-item label="项目名">
+            <el-input
+              v-model="queryForm.nboName"
+              clearable
+              filterable
+              placeholder="请选择项目名"
+              @keyup.enter.native="fetchData" />
+          </el-form-item>
+          <el-form-item label="工单类型">
+            <el-select
+              v-model="queryForm.orderTypeName"
+              clearable
+              filterable
+              placeholder="请选择工单类型"
+              @change="fetchData">
+              <el-option v-for="user in orderTypeList" :key="user.val" :label="user.val" :value="user.val" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="分派人员">
+            <el-input
+              v-model="queryForm.assignUserName"
+              clearable
+              filterable
+              placeholder="请输入分派人员"
+              @keyup.enter.native="fetchData" />
+          </el-form-item>
+          <el-form-item label="时间">
+            <el-date-picker
+              v-model="queryForm.trialTime"
+              end-placeholder="结束日期"
+              range-separator="至"
+              start-placeholder="开始日期"
+              style="width: 100%"
+              type="datetimerange"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              @change="fetchData" />
+          </el-form-item>
+          <el-form-item>
+            <el-button icon="el-icon-search" type="primary" @click="fetchData">查询</el-button>
+            <el-button icon="el-icon-refresh-right" @click="reset">重置</el-button>
+          </el-form-item>
+        </el-form>
+      </vab-query-form-top-panel>
+    </vab-query-form>
+    <el-empty v-if="dynamicsList.length == 0" :image-size="200" />
+    <ul v-else class="records" :style="{ height: height }">
       <li v-for="(v, index) in dynamicsList" :key="index">
         <div class="date">
-          {{ parseTime(v.createdTime, '{y}-{m}-{d}') }}
-          <h2>{{ parseTime(v.createdTime, '{y}-{m}-{d}').split('-')[2] }}</h2>
-          <h3>{{ parseTime(v.createdTime, '{y}-{m}-{d}').split('-').splice(0, 2).join('.') }}</h3>
+          <h2>{{ parseTime(v.updatedTime, '{y}-{m}-{d}').split('-')[2] }}</h2>
+          <h3>{{ parseTime(v.updatedTime, '{y}-{m}-{d}').split('-').splice(0, 2).join('.') }}</h3>
         </div>
         <ul class="content">
           <li>
             <vab-icon class="user-avatar" icon="account-circle-fill" />
             <div class="text">
-              <p class="action">{{ v.assignUserName }} {{ v.orderTypeName }}</p>
-              <p>{{ parseTime(v.updatedTime, '{y}-{m}-{d}') }}</p>
+              <p class="action">{{ v.custName }} - {{ v.orderTypeName }} - {{ v.assignUserName }}</p>
               <el-row
                 v-if="v.orderTypeName == '产品试用申请(硬件)' || v.orderTypeName == '产品试用申请(软件)'"
                 :gutter="20">
                 <el-col v-if="v.feedbackTrail" :span="24">
-                  <p class="tit">支持人员总结:</p>
-                  <el-descriptions
-                    v-for="(row, idx) in v.feedbackTrail"
-                    v-show="idx < (v.showLength ? v.showLength : 3)"
-                    :key="idx"
-                    border
-                    :column="2"
-                    :content-style="CS"
-                    :label-style="LS">
-                    <el-descriptions-item label="反馈时间">
-                      {{ row.feedbackTrialTime }} {{ v.showLength }}
-                    </el-descriptions-item>
-                    <el-descriptions-item label="试用反馈类型">
-                      {{ tryType[row.feedbackTrialType] }}
-                    </el-descriptions-item>
-                    <el-descriptions-item label="总结/问题">
-                      {{ row.feedbackTrialContent }}
-                    </el-descriptions-item>
-                    <el-descriptions-item label="客户/经销商反馈">
-                      {{ row.feedbackTrialDist }}
-                    </el-descriptions-item>
-                    <el-descriptions-item label="计划">
-                      {{ row.feedbackTrialPlan }}
-                    </el-descriptions-item>
-                    <el-descriptions-item label="更新时间">
-                      {{ parseTime(row.feedbackSupportTime, '{y}-{m}-{d}') }}
-                    </el-descriptions-item>
-                  </el-descriptions>
-                  <div v-if="v.feedbackTrail && v.feedbackTrail.length > 3" style="margin-top: 10px">
-                    <el-button size="mini" @click="changeLength(index, 3)">收起</el-button>
+                  <p class="tit">试用开始反馈:</p>
+                  <div v-for="(row, idx) in startList(v.feedbackTrail)" :key="idx">
+                    <div>
+                      <el-descriptions border :column="2" :content-style="CS" :label-style="LS">
+                        <el-descriptions-item label="反馈时间">
+                          {{ parseTime(row.feedbackTrialTime, '{y}-{m}-{d}') }}
+                        </el-descriptions-item>
+                        <el-descriptions-item label="更新时间">
+                          {{ parseTime(row.createdTime, '{y}-{m}-{d}') }}
+                        </el-descriptions-item>
+                      </el-descriptions>
+                      <el-descriptions border :column="1" :content-style="CS" :label-style="LS">
+                        <el-descriptions-item label="总结/问题">
+                          {{ row.feedbackTrialContent }}
+                        </el-descriptions-item>
+                        <el-descriptions-item label="客户/经销商反馈">
+                          {{ row.feedbackTrialDist }}
+                        </el-descriptions-item>
+                        <el-descriptions-item label="计划">
+                          {{ row.feedbackTrialPlan }}
+                        </el-descriptions-item>
+                      </el-descriptions>
+                    </div>
+                  </div>
+                </el-col>
+                <el-col v-if="v.feedbackTrail" :span="24">
+                  <p class="tit">试用过程反馈:</p>
+                  <div v-for="(row, idx) in processList(v.feedbackTrail)" :key="idx">
+                    <div v-show="idx < (v.showLength ? v.showLength : 1)">
+                      <el-descriptions border :column="2" :content-style="CS" :label-style="LS">
+                        <el-descriptions-item label="反馈时间">
+                          {{ parseTime(row.feedbackTrialTime, '{y}-{m}-{d}') }}
+                        </el-descriptions-item>
+                        <el-descriptions-item label="更新时间">
+                          {{ parseTime(row.createdTime, '{y}-{m}-{d}') }}
+                        </el-descriptions-item>
+                      </el-descriptions>
+                      <el-descriptions border :column="1" :content-style="CS" :label-style="LS">
+                        <el-descriptions-item label="总结/问题">
+                          {{ row.feedbackTrialContent }}
+                        </el-descriptions-item>
+                        <el-descriptions-item label="客户/经销商反馈">
+                          {{ row.feedbackTrialDist }}
+                        </el-descriptions-item>
+                        <el-descriptions-item label="计划">
+                          {{ row.feedbackTrialPlan }}
+                        </el-descriptions-item>
+                      </el-descriptions>
+                    </div>
+                  </div>
+                  <div v-if="v.feedbackTrail && processList(v.feedbackTrail).length > 1" style="margin-top: 10px">
+                    <el-button size="mini" @click="changeLength(index, 1)">收起</el-button>
                     <el-button size="mini" @click="changeLength(index, 999)">展开</el-button>
                   </div>
                 </el-col>
+                <el-col v-if="v.feedbackTrail" :span="24">
+                  <p class="tit">试用总结反馈:</p>
+                  <div v-for="(row, idx) in endList(v.feedbackTrail)" :key="idx">
+                    <div>
+                      <el-descriptions border :column="2" :content-style="CS" :label-style="LS">
+                        <el-descriptions-item label="反馈时间">
+                          {{ parseTime(row.feedbackTrialTime, '{y}-{m}-{d}') }}
+                        </el-descriptions-item>
+                        <el-descriptions-item label="更新时间">
+                          {{ parseTime(row.createdTime, '{y}-{m}-{d}') }}
+                        </el-descriptions-item>
+                      </el-descriptions>
+                      <el-descriptions border :column="1" :content-style="CS" :label-style="LS">
+                        <el-descriptions-item label="总结/问题">
+                          {{ row.feedbackTrialContent }}
+                        </el-descriptions-item>
+                        <el-descriptions-item label="客户/经销商反馈">
+                          {{ row.feedbackTrialDist }}
+                        </el-descriptions-item>
+                        <el-descriptions-item label="计划">
+                          {{ row.feedbackTrialPlan }}
+                        </el-descriptions-item>
+                      </el-descriptions>
+                    </div>
+                  </div>
+                </el-col>
               </el-row>
               <el-row v-if="v.orderTypeName == '技术文件支持' || v.orderTypeName == '售前讲解支持'" :gutter="20">
                 <el-col v-if="v.feedbackSupportTime" :span="24">
                   <p class="tit">支持人员总结:</p>
-                  <el-descriptions border :column="2" :content-style="CS" :label-style="LS">
+                  <el-descriptions border :column="1" :content-style="CS" :label-style="LS">
                     <el-descriptions-item label="反馈时间">{{ v.feedbackSupportTime }}</el-descriptions-item>
                     <el-descriptions-item label="本次讲解情况反馈">
                       {{ v.feedbackSupportContent }}
                     </el-descriptions-item>
-                    <el-descriptions-item label="更新时间">
-                      {{ parseTime(v.feedbackSupportTime, '{y}-{m}-{d}') }}
-                    </el-descriptions-item>
                   </el-descriptions>
                 </el-col>
                 <el-col v-if="v.feedbackSaleTime" :span="24">
                   <p class="tit">销售人员反馈:</p>
-                  <el-descriptions border :column="2" :content-style="CS" :label-style="LS">
+                  <el-descriptions border :column="1" :content-style="CS" :label-style="LS">
                     <el-descriptions-item label="反馈时间">{{ v.feedbackSaleTime }}</el-descriptions-item>
                     <el-descriptions-item v-if="v.orderTypeName == '售前讲解支持'" label="会议纪要">
                       {{ v.feedbackSaleMeeting }}
@@ -80,9 +171,6 @@
                     <el-descriptions-item label="下一步计划">
                       {{ v.feedbackSaleNext }}
                     </el-descriptions-item>
-                    <el-descriptions-item label="更新时间">
-                      {{ parseTime(v.feedbackSaleTime, '{y}-{m}-{d}') }}
-                    </el-descriptions-item>
                   </el-descriptions>
                 </el-col>
               </el-row>
@@ -91,14 +179,6 @@
         </ul>
       </li>
     </ul>
-    <el-pagination
-      background
-      :current-page="queryForm.pageNum"
-      :layout="layout"
-      :page-size="queryForm.pageSize"
-      :total="total"
-      @current-change="handleCurrentChange"
-      @size-change="handleSizeChange" />
   </div>
 </template>
 
@@ -110,49 +190,112 @@
     data() {
       return {
         LS: {
-          width: '15%',
+          width: '13%',
         },
         CS: {
-          width: '35%',
+          width: '150px',
         },
+        orderTypeList: [
+          {
+            val: '技术文件支持',
+          },
+          {
+            val: '售前讲解支持',
+          },
+          {
+            val: '产品试用申请(软件)',
+          },
+          {
+            val: '产品试用申请(硬件)',
+          },
+        ],
         tryType: {
           10: '试用启动反馈',
           20: '试用过程反馈',
           30: '试用总结反馈',
         },
-        height: this.$baseTableHeight(0),
-        layout: 'total, sizes, prev, pager, next, jumper',
-        total: 0,
+        height: this.$baseTableHeight(1),
         dynamicsList: [],
         queryForm: {
-          pageNum: 1,
-          pageSize: 10,
+          nboName: '',
+          orderTypeName: '',
+          assignUserName: '',
+          trialTime: [this.getFirstDay(), this.getLastDay()],
+          updatedTimeStart: this.getFirstDay(),
+          updatedTimeEnd: this.getLastDay(),
         },
       }
     },
+    computed: {
+      startList() {
+        return function (list) {
+          return list.filter((item) => item.feedbackTrialType == 10)
+        }
+      },
+      processList() {
+        return function (list) {
+          return list.filter((item) => item.feedbackTrialType == 20)
+        }
+      },
+      endList() {
+        return function (list) {
+          return list.filter((item) => item.feedbackTrialType == 30)
+        }
+      },
+    },
     mounted() {
       this.fetchData()
+      console.log(this.getFirstDay(), this.getLastDay())
     },
     methods: {
+      getFirstDay() {
+        var y = new Date().getFullYear() //获取年份
+        var m = new Date().getMonth() + 1 //获取月份
+        var d = '01'
+        m = m < 10 ? '0' + m : m //月份补 0
+
+        return [y, m, d].join('-') + ' 00:00:00'
+      },
+      getLastDay() {
+        var y = new Date().getFullYear() //获取年份
+        var m = new Date().getMonth() + 1 //获取月份
+        var d = new Date(y, m, 0).getDate() //获取当月最后一日
+        m = m < 10 ? '0' + m : m //月份补 0
+        d = d < 10 ? '0' + d : d //日数补 0
+
+        return [y, m, d].join('-') + ' 00:00:00'
+      },
+      reset() {
+        this.queryForm = {
+          nboName: '',
+          orderTypeName: '',
+          assignUserName: '',
+          trialTime: [this.getFirstDay(), this.getLastDay()],
+          updatedTimeStart: this.getFirstDay(),
+          updatedTimeEnd: this.getLastDay(),
+        }
+        this.fetchData()
+      },
       changeLength(index, length) {
         this.$set(this.dynamicsList[index], 'showLength', length)
       },
       async fetchData() {
-        const [err, res] = await to(workApi.getListFull(this.queryForm))
+        let params = this.queryForm
+        console.log(params)
+        if (params.trialTime && params.trialTime.length == 2) {
+          params.updatedTimeStart = params.trialTime[0]
+          params.updatedTimeEnd = params.trialTime[1]
+        } else {
+          params.updatedTimeStart = ''
+          params.updatedTimeEnd = ''
+        }
+        const [err, res] = await to(workApi.getListFull(params))
         if (err) return
         if (res.code == 200) {
           this.dynamicsList = res.data.list
           this.total = res.data.total
         }
       },
-      handleSizeChange(val) {
-        this.queryForm.pageSize = val
-        this.fetchData()
-      },
-      handleCurrentChange(val) {
-        this.queryForm.pageNum = val
-        this.fetchData()
-      },
     },
   }
 </script>

+ 2 - 2
src/views/work/order/components/ChangeTime.vue

@@ -21,8 +21,8 @@
               v-model="form.supportTime"
               placeholder="选择支持时间"
               style="width: 100%"
-              type="date"
-              value-format="yyyy-MM-dd" />
+              type="datetime"
+              value-format="yyyy-MM-dd HH:mm:ss" />
           </el-form-item>
         </el-col>
         <!-- end -->

+ 35 - 9
src/views/work/order/components/FeedbackRecord.vue

@@ -12,7 +12,10 @@
           :prop="item.prop"
           show-overflow-tooltip>
           <template #default="{ row }">
-            <span v-if="item.prop === 'feedbackTrialType'">
+            <el-button v-if="item.prop === 'id'" style="font-size: 14px" type="text" @click="handleDetail(row)">
+              {{ row.id }}
+            </el-button>
+            <span v-else-if="item.prop === 'feedbackTrialType'">
               {{ tryType[row.feedbackTrialType] }}
             </span>
             <span v-else-if="item.prop === 'feedbackTrialTime'">
@@ -25,31 +28,44 @@
     </div>
     <div v-if="type == 'support'">
       <el-empty v-if="!detail.feedbackSupportTime" :image-size="200" />
-      <el-descriptions v-else border :column="2" direction="vertical">
+      <el-descriptions v-else border :column="1" :label-style="{ width: '130px' }">
         <el-descriptions-item label="反馈时间">{{ detail.feedbackSupportTime }}</el-descriptions-item>
         <el-descriptions-item label="本次讲解情况反馈">{{ detail.feedbackSupportContent }}</el-descriptions-item>
       </el-descriptions>
     </div>
     <div v-if="type == 'sale'">
       <el-empty v-if="!detail.feedbackSaleTime" :image-size="200" />
-      <el-descriptions v-else-if="detail.orderTypeName == '技术文件支持'" border :column="3" direction="vertical">
+      <el-descriptions
+        v-else-if="detail.orderTypeName == '技术文件支持'"
+        border
+        :column="1"
+        :label-style="{ width: '130px' }">
         <el-descriptions-item label="反馈时间">{{ detail.feedbackSaleTime }}</el-descriptions-item>
         <el-descriptions-item label="用户反馈">{{ detail.feedbackSaleUser }}</el-descriptions-item>
         <el-descriptions-item label="下一步计划">{{ detail.feedbackSaleNext }}</el-descriptions-item>
       </el-descriptions>
-      <el-descriptions v-else-if="detail.orderTypeName == '售前讲解支持'" border :column="4" direction="vertical">
+      <el-descriptions
+        v-else-if="detail.orderTypeName == '售前讲解支持'"
+        border
+        :column="1"
+        :label-style="{ width: '130px' }">
         <el-descriptions-item label="反馈时间">{{ detail.feedbackSaleTime }}</el-descriptions-item>
         <el-descriptions-item label="会议纪要">{{ detail.feedbackSaleMeeting }}</el-descriptions-item>
         <el-descriptions-item label="客户/经销商反馈">{{ detail.feedbackSaleDist }}</el-descriptions-item>
         <el-descriptions-item label="下一步计划">{{ detail.feedbackSaleNext }}</el-descriptions-item>
       </el-descriptions>
     </div>
+    <try-feedback-detail ref="tryFB" />
   </div>
 </template>
 
 <script>
+  import TryFeedbackDetail from '@/views/work/order/components/TryFeedbackDetail'
+
   export default {
     name: 'DetailsContract',
+    components: { TryFeedbackDetail },
+
     props: {
       detail: {
         type: [Object, String],
@@ -68,6 +84,12 @@
           30: '试用总结反馈',
         },
         tryColumns: [
+          {
+            label: '编号',
+            width: '40px',
+            prop: 'id',
+            disableCheck: true,
+          },
           {
             label: '试用反馈类型',
             width: '100px',
@@ -77,28 +99,28 @@
           },
           {
             label: '总结/问题',
-            width: '100px',
+            width: 'auto',
             prop: 'feedbackTrialContent',
             sortable: false,
             disableCheck: false,
           },
           {
             label: '客户/经销商反馈',
-            width: '160px',
+            width: 'auto',
             prop: 'feedbackTrialDist',
             sortable: false,
             disableCheck: false,
           },
           {
             label: '计划',
-            width: '280px',
+            width: 'auto',
             prop: 'feedbackTrialPlan',
             sortable: false,
             disableCheck: false,
           },
           {
             label: '反馈时间',
-            width: '100px',
+            width: '80px',
             prop: 'feedbackTrialTime',
             sortable: false,
             disableCheck: false,
@@ -108,7 +130,11 @@
       }
     },
     mounted() {},
-    methods: {},
+    methods: {
+      handleDetail(row) {
+        this.$refs.tryFB.open(row)
+      },
+    },
   }
 </script>
 

+ 122 - 0
src/views/work/order/components/TryFeedbackDetail.vue

@@ -0,0 +1,122 @@
+<template>
+  <el-dialog title="试用反馈" :visible.sync="dialogFormVisible" width="600px" @close="close">
+    <el-form ref="form" label-position="top" :model="form" :rules="rules">
+      <el-row :gutter="20">
+        <el-col :span="24">
+          <el-form-item label="反馈时间" prop="feedbackTrialTime">
+            <el-date-picker
+              v-model="form.feedbackTrialTime"
+              placeholder="选择反馈时间"
+              readonly
+              style="width: 100%"
+              type="date"
+              value-format="yyyy-MM-dd" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item :label="summarizeLabel" prop="feedbackTrialContent">
+            <el-input
+              v-model="form.feedbackTrialContent"
+              :placeholder="summarizeLabel"
+              readonly
+              :rows="5"
+              show-word-limit
+              type="textarea" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="客户/经销商反馈" prop="feedbackTrialDist">
+            <el-input
+              v-model="form.feedbackTrialDist"
+              placeholder="客户/经销商反馈"
+              readonly
+              :rows="5"
+              show-word-limit
+              type="textarea" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item :label="nextPlanLabel" prop="feedbackTrialPlan">
+            <el-input
+              v-model="form.feedbackTrialPlan"
+              :placeholder="nextPlanLabel"
+              readonly
+              :rows="5"
+              show-word-limit
+              type="textarea" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <template #footer>
+      <el-button @click="close">取 消</el-button>
+    </template>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    name: 'WorkOrderFeedback',
+    data() {
+      return {
+        workType: '',
+        fbType: '',
+        form: {},
+        rules: {
+          feedbackTrialTime: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
+          feedbackTrialContent: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
+          feedbackTrialDist: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
+          feedbackTrialPlan: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
+        },
+        feedbackTrialTypeObj: {
+          start: '10',
+          process: '20',
+          summarize: '30',
+        },
+        dialogFormVisible: false,
+      }
+    },
+    computed: {
+      summarizeLabel() {
+        let str = ''
+        switch (this.form.feedbackTrialType) {
+          case '10':
+            str = '总结'
+            break
+          case '20':
+            str = '过程问题'
+            break
+          case '30':
+            str = '使用总结'
+            break
+        }
+        return str
+      },
+      nextPlanLabel() {
+        let str = ''
+        switch (this.form.feedbackTrialType) {
+          case '10':
+            str = '跟进计划'
+            break
+          case '20':
+            str = '跟进计划'
+            break
+          case '30':
+            str = '下一步计划'
+            break
+        }
+        return str
+      },
+    },
+    mounted() {},
+    methods: {
+      open(row) {
+        this.form = row
+        this.dialogFormVisible = true
+      },
+      close() {
+        this.dialogFormVisible = false
+      },
+    },
+  }
+</script>

+ 29 - 6
src/views/work/order/detail.vue

@@ -8,13 +8,32 @@
             {{ detail.name }}
             <span v-if="detail.orderStatus == '30'">
               <span>
-                <el-button @click="handleChangeTime()">改期</el-button>
+                <el-button
+                  v-if="
+                    detail.orderTypeName == '产品试用申请(硬件)' || detail.orderTypeName == '产品试用申请(软件)'
+                  "
+                  v-permissions="['work:workOrder:try:changeTime']"
+                  @click="handleChangeTime()">
+                  改期
+                </el-button>
+                <el-button
+                  v-if="detail.orderTypeName == '技术文件支持'"
+                  v-permissions="['work:workOrder:support:changeTime']"
+                  @click="handleChangeTime()">
+                  改期
+                </el-button>
+                <el-button
+                  v-if="detail.orderTypeName == '售前讲解支持'"
+                  v-permissions="['work:workOrder:sale:changeTime']"
+                  @click="handleChangeTime()">
+                  改期
+                </el-button>
               </span>
               <!--支持人员反馈(总结)-->
               <span>
                 <el-button
                   v-if="
-                    detail.feedbackSupportBy == 0 &&
+                    !detail.feedbackSupportBy &&
                     (detail.orderTypeName == '技术文件支持' || detail.orderTypeName == '售前讲解支持')
                   "
                   v-permissions="['work:workOrder:feedback:support']"
@@ -26,8 +45,8 @@
               <span>
                 <el-button
                   v-if="
-                    detail.feedbackSupportBy == 1 &&
-                    detail.feedbackSaleBy != 1 &&
+                    detail.feedbackSupportBy &&
+                    !detail.feedbackSaleBy &&
                     (detail.orderTypeName == '技术文件支持' || detail.orderTypeName == '售前讲解支持')
                   "
                   v-permissions="['work:workOrder:feedback:sale']"
@@ -46,14 +65,18 @@
                 </el-button>
                 <!--试用过程反馈-->
                 <el-button
-                  v-if="detail.feedbackTrail"
+                  v-if="detail.feedbackTrail && !detail.feedbackTrail.find((item) => item.feedbackTrialType == 30)"
                   v-permissions="['work:workOrder:feedback:process']"
                   @click="openFeedBack('process')">
                   试用过程反馈
                 </el-button>
                 <!--试用总结反馈-->
                 <el-button
-                  v-if="detail.feedbackTrail && detail.feedbackTrail.length > 1"
+                  v-if="
+                    detail.feedbackTrail &&
+                    detail.feedbackTrail.length > 1 &&
+                    !detail.feedbackTrail.find((item) => item.feedbackTrialType == 30)
+                  "
                   v-permissions="['work:workOrder:feedback:summarize']"
                   @click="openFeedBack('summarize')">
                   试用总结反馈