xiongchao 3 years ago
parent
commit
7fe525bf67

+ 75 - 39
src/views/check/checkjob/CheckJob.vue

@@ -14,9 +14,47 @@
                 <a-input v-model="queryParam.zbh" placeholder="请输入设备旧号"/>
               </a-form-item>
             </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="设备等级">
+                <a-select v-model="queryParam.level" placeholder="请选择">
+                  <a-select-option
+                    v-for="(label,value) in levelMap"
+                    :key="value"
+                    :label="label"
+                    :value="parseInt(value)">{{ label }}
+                  </a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="设备类型">
+                <a-tree-select
+                  style="width: 100%"
+                  :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+                  :treeData="treeData"
+                  :treeNodeFilterProp="'title'"
+                  :showSearch="true"
+                  v-model="queryParam.typeId"
+                  placeholder="请选择"
+                >
+                </a-tree-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="周期类型">
+                <a-select v-model="queryParam.periodType" placeholder="请选择">
+                  <a-select-option
+                    v-for="(label,value) in periodTypeMap"
+                    :key="value"
+                    :label="label"
+                    :value="parseInt(value)">{{ label }}
+                  </a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
             <a-col :md="6" :sm="24">
               <a-form-item label="执行人姓名">
-                <a-input v-model="queryParam.actualUser" placeholder="请输入执行人姓名"/>
+                <a-input v-model="queryParam.checkUserName" placeholder="请输入执行人姓名"/>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -64,8 +102,8 @@
       <div class="table-operator">
         <a-button v-if="$auth('check-polling-jobs-add')" type="primary" icon="plus" @click="$refs.baseModal.base()">新增</a-button>
         <a-button style="margin-left: 8px" v-if="($auth('check-spot-jobs-export') || $auth('check-polling-jobs-export'))" type="primary" icon="download" @click="doExport">导出</a-button>
-        <a-button style="margin-left: 8px" v-if="($auth('check-spot-jobs-export') || $auth('check-polling-jobs-export'))" type="success" @click="handleSeven">近七日</a-button>
-        <a-button style="margin-left: 8px" v-if="($auth('check-spot-jobs-export') || $auth('check-polling-jobs-export'))" type="success" @click="handleMonth">近30天</a-button>
+        <a-button style="margin-left: 8px" v-if="($auth('check-spot-jobs-export') || $auth('check-polling-jobs-export'))" type="success" @click="handleSeven">本周</a-button>
+        <a-button style="margin-left: 8px" v-if="($auth('check-spot-jobs-export') || $auth('check-polling-jobs-export'))" type="success" @click="handleMonth">本月</a-button>
         <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && ($auth('check-spot-jobs-edit') || $auth('check-polling-jobs-edit'))">
           <a-menu slot="overlay">
             <a-popconfirm title="是否要删除所选数据?" @confirm="batchDelete()">
@@ -126,8 +164,8 @@
 import { STable, Ellipsis } from '@/components'
 import BaseForm from './modules/BaseForm'
 import Detail from './modules/Detail'
-import { queryNum, getCheckJobPage, deleteCheckJobs, fetchCheckJob, exportCheckJob, executeJob } from '@/api/check/checkjob'
-import BaseTool from '@/utils/tool'
+import { getCheckJobPage, deleteCheckJobs, fetchCheckJob, exportCheckJob, executeJob } from '@/api/check/checkjob'
+import { fetchSbTypeTree } from '@/api/sb/type'
 
 export default {
   name: 'CheckJobList',
@@ -161,6 +199,7 @@ export default {
         searchEndTime: null,
         filter: this.filter
       },
+      treeData: [],
       // 表头
       columns: [
         {
@@ -190,14 +229,9 @@ export default {
           checked: true,
           width: '150px'
         },
-        // {
-        // title: '计划单号',
-        // dataIndex: 'planNo',
-        // checked: true
-        // },
         {
-          title: '任务名称',
-          dataIndex: 'name',
+          title: '任务要求',
+          dataIndex: 'requirement',
           checked: true,
           width: '200px'
         },
@@ -227,12 +261,12 @@ export default {
         // dataIndex: 'partName',
         // checked: true
         // },
-      /*  {
+        /*  {
           title: '截至日期',
           dataIndex: 'endTime',
           checked: true,
           width: '200px'
-        },*/
+        }, */
         {
           title: '标准工时',
           dataIndex: 'standardHours',
@@ -272,21 +306,6 @@ export default {
           checked: true,
           scopedSlots: { customRender: 'status' }
         },
-        // {
-        //  title: '是否停机',
-        //  dataIndex: 'stopFlag',
-        //  checked: true,
-        //  scopedSlots: { customRender: 'stopFlag' }
-        // },
-     /*   {
-          title: '创建人名称',
-          dataIndex: 'createdUserName'
-        },
-        {
-          title: '创建时间',
-          dataIndex: 'createdTime',
-          checked: true
-        },*/
         {
           title: '操作',
           key: 'action',
@@ -298,6 +317,7 @@ export default {
         }
       ],
       // 下拉框map
+      levelMap: {},
       statusMap: {},
       sbStatusMap: {},
       periodTypeMap: {},
@@ -307,8 +327,6 @@ export default {
           ...parameter,
           ...this.queryParam,
           dataScope: {
-            sortBy: 'asc',
-            sortName: 'sbNo'
           }
         }
         return getCheckJobPage(Object.assign(parameter, this.queryParam))
@@ -334,6 +352,10 @@ export default {
     this.statusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.CHECK_JOB_STATUS)
     this.sbStatusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
     this.periodTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.CHECK_PLAN_PERIOD_TYPE)
+    this.levelMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_LEVEL)
+    fetchSbTypeTree().then(res => {
+      this.treeData = res.data
+    })
     this.tableOption()
   },
   methods: {
@@ -419,17 +441,31 @@ export default {
       this.$refs.table.refresh(true)
     },
     handleSeven () {
-      this.queryParam.searchStartTime = this.BaseTool.Date.formatter(this.getBeforeDate(0), this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
-      this.queryParam.searchEndTime = this.BaseTool.Date.formatter(this.getBeforeDate(-7), this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
-      console.log(this.queryParam.searchStartTime)
-      console.log(this.queryParam.searchEndTime)
+      var now = new Date()
+      var nowTime = now.getTime()
+      var day = now.getDay()
+      var oneDayTime = 24 * 60 * 60 * 1000
+      // 显示周一
+      var MondayTime = nowTime - (day - 1) * oneDayTime
+      // 显示周日
+      var SundayTime = nowTime + (7 - day) * oneDayTime
+      // 初始化日期时间
+      var monday = new Date(MondayTime)
+      var sunday = new Date(SundayTime)
+      this.queryParam.searchStartTime = this.BaseTool.Date.formatter(monday, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
+      this.queryParam.searchEndTime = this.BaseTool.Date.formatter(sunday, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
       this.$refs.table.refresh()
     },
     handleMonth () {
-      this.queryParam.searchStartTime = this.BaseTool.Date.formatter(this.getBeforeDate(0), this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
-      this.queryParam.searchEndTime = this.BaseTool.Date.formatter(this.getBeforeDate(-30), this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
-      console.log(this.queryParam.searchStartTime)
-      console.log(this.queryParam.searchEndTime)
+      var now = new Date() // 当前日期
+      var nowMonth = now.getMonth() // 当前月
+      var nowYear = now.getFullYear() // 当前年
+      // 本月的开始时间
+      var monthStartDate = new Date(nowYear, nowMonth, 1)
+      // 本月的结束时间
+      var monthEndDate = new Date(nowYear, nowMonth + 1, 0)
+      this.queryParam.searchStartTime = this.BaseTool.Date.formatter(monthStartDate, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
+      this.queryParam.searchEndTime = this.BaseTool.Date.formatter(monthEndDate, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
       this.$refs.table.refresh()
     },
     getBeforeDate (num, time) {

+ 26 - 4
src/views/check/checkjob/modules/BaseForm.vue

@@ -12,7 +12,7 @@
       <a-form-item v-show="false">
         <a-input v-decorator="['id']" type="hidden"/>
       </a-form-item>
-<!--      <a-form-item label="计划id" v-show="false">
+      <!--      <a-form-item label="计划id" v-show="false">
         <a-input
           v-decorator="['planId', {rules: [{required: true, message: '计划id不能为空'}]}]"/>
       </a-form-item>
@@ -240,7 +240,9 @@
     </a-form>
     <template slot="footer">
       <a-button :loading="confirmLoading" type="primary" @click="save()">完成</a-button>
+      <a-button :loading="confirmLoading" type="danger" @click="save(1)">完成并报修</a-button>
     </template>
+    <base-form ref="baseModal" @ok="handleOk"/>
   </a-modal>
 </template>
 
@@ -250,9 +252,14 @@ import { addCheckJob, finishJob } from '@/api/check/checkjob'
 import { uploadUrl } from '@/api/upms/file'
 import Vue from 'vue'
 import { ACCESS_TOKEN } from '@/store/mutation-types'
+import BaseForm from '@/views/repair/application-form/modules/BaseForm'
+import { fetchSbInfo } from '@/api/sb/info'
 
 export default {
   name: 'BaseCheckJob',
+  components: {
+    BaseForm
+  },
   data () {
     return {
       confirmLoading: false,
@@ -261,6 +268,7 @@ export default {
       visible: false,
       // 下拉框map
       statusMap: {},
+      sbId: null,
       sbStatusMap: {},
       checkImgList: [],
       defaultCheckImgList: [],
@@ -288,7 +296,6 @@ export default {
     base (record) {
       this.visible = true
       // 如果是空标识添加
-      console.log(record, 87878)
       if (this.BaseTool.Object.isBlank(record)) {
         this.modalTitle = '添加'
         return
@@ -301,6 +308,7 @@ export default {
       record.endTime = this.BaseTool.Moment(record.endTime, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
       record.actualStartTime = this.BaseTool.Moment(record.actualStartTime, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
       record.actualEndTime = this.BaseTool.Moment(record.actualEndTime, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
+      this.sbId = record.sbId
       this.$nextTick(() => {
         setFieldsValue(Object.assign(pick(record, [
           'id',
@@ -335,7 +343,7 @@ export default {
         }
       })
     },
-    save () {
+    save (type) {
       const { form: { validateFieldsAndScroll } } = this
       this.confirmLoading = true
       validateFieldsAndScroll((errors, values) => {
@@ -360,7 +368,11 @@ export default {
         } else {
           finishJob(values)
             .then(() => {
-              this.handleCancel(values)
+              if (type === 1) {
+                this.handleAdd()
+              } else {
+                this.handleCancel(values)
+              }
             }).catch(() => {
               this.confirmLoading = false
             })
@@ -375,6 +387,16 @@ export default {
         this.$emit('ok', values)
       }
     },
+    handleAdd () {
+      fetchSbInfo({ id: this.sbId }).then(res => {
+        this.visible = false
+        const modal = this.$refs.baseModal
+        modal.base({ sbId: this.sbId, sbName: res.data.name, sbCph: res.data.cph })
+      })
+    },
+    handleOk () {
+      this.handleCancel()
+    },
     handleCheckImgChange (info) {
       this.defaultCheckImgList = info.fileList
       this.checkImgList = this.setFileList(info, 23)

+ 8 - 35
src/views/check/checkjob/modules/CheckJobTable.vue

@@ -102,7 +102,7 @@ import Detail from './Detail'
 import { getCheckJobPage, deleteCheckJobs, fetchCheckJob, exportCheckJob, executeJob } from '@/api/check/checkjob'
 
 export default {
-  name: 'CheckJobList',
+  name: 'CheckJobTable',
   components: {
     STable,
     Ellipsis,
@@ -160,21 +160,11 @@ export default {
           },
           checked: true
         },
-/*        {
-          title: '计划单号',
-          dataIndex: 'planNo',
-          checked: true
-        },*/
         {
-          title: '任务名称',
-          dataIndex: 'name',
+          title: '任务要求',
+          dataIndex: 'requirement',
           checked: true
         },
-/*        {
-          title: '计划名称',
-          dataIndex: 'planName',
-          checked: true
-        },*/
         {
           title: '负责人',
           dataIndex: 'checkUserName',
@@ -185,11 +175,11 @@ export default {
           dataIndex: 'sbName',
           checked: true
         },
-        // {
-        // title: '点检部件',
-        // dataIndex: 'partName',
-        // checked: true
-        // },
+        {
+          title: '部位',
+          dataIndex: 'partName',
+          checked: true
+        },
         {
           title: '执行日期',
           dataIndex: 'startTime',
@@ -214,21 +204,6 @@ export default {
           checked: true,
           scopedSlots: { customRender: 'status' }
         },
-        //{
-        //  title: '是否停机',
-        //  dataIndex: 'stopFlag',
-        //  checked: true,
-        //  scopedSlots: { customRender: 'stopFlag' }
-        //},
-        {
-          title: '创建人名称',
-          dataIndex: 'createdUserName'
-        },
-        {
-          title: '创建时间',
-          dataIndex: 'createdTime',
-          checked: true
-        },
         {
           title: '操作',
           key: 'action',
@@ -248,8 +223,6 @@ export default {
           ...this.queryParam,
           ...this.tableParams,
           dataScope: {
-            sortBy: 'desc',
-            sortName: 'update_time'
           }
         }
         return getCheckJobPage(Object.assign(parameter, this.queryParam))

+ 2 - 2
src/views/check/checkjob/modules/DetailSbCheckJob.vue

@@ -134,8 +134,8 @@ export default {
           }
         },
         {
-          title: '任务名称',
-          dataIndex: 'name',
+          title: '任务要求',
+          dataIndex: 'requirement',
           checked: true,
           width: '300px'
         },

+ 8 - 1
src/views/check/checkstandard/modules/BaseForm.vue

@@ -69,6 +69,7 @@
             :wrapperCol="BaseTool.Constant.wrapperCol"
           >
             <a-select
+              @change="changeCheckUserType"
               v-decorator="['checkUserType', {initialValue: 1,rules: [{required: true, message: '执行人方式不能为空'}]}]"
               placeholder="请选择">
               <a-select-option
@@ -80,7 +81,7 @@
             </a-select>
           </a-form-item>
         </row-item>
-        <row-item>
+        <row-item v-show="checkUserType === 3">
           <a-form-item
             label="指定执行人"
             :labelCol="BaseTool.Constant.labelCol"
@@ -365,6 +366,7 @@ export default {
       form: this.$form.createForm(this),
       visible: false,
       sbId: null,
+      checkUserType: null,
       // 下拉框map
       typeMap: {},
       actionTypeMap: {},
@@ -456,6 +458,7 @@ export default {
         this.modalTitle = '添加'
         this.data = []
         this.cacheData = []
+        this.checkUserType = 1
         if (sbId != null) {
           this.sbId = sbId
           const { form: { setFieldsValue } } = this
@@ -471,6 +474,7 @@ export default {
         this.modalTitle = '复制'
       }
       this.sbId = record.sbId
+      this.checkUserType = record.checkUserType
       // 查询列表
       fetchCheckStandard({ id: record.id }).then(res => {
         this.data = res.data.detailList
@@ -663,6 +667,9 @@ export default {
       const data = [...this.data]
       this.data = data.filter(item => record.bomId !== item.bomId)
     },
+    changeCheckUserType (value) {
+      this.checkUserType = value
+    },
     onQuantityChange (e, id, attr) {
       const value = e.target.value
       console.log(value)

+ 391 - 8
src/views/repair/application-form/RepairApplicationForm.vue

@@ -1,17 +1,400 @@
 <template>
-  <RepairForm :filter="0" :search-type="1"/>
+  <a-card :bordered="false">
+    <div v-show="visible">
+      <div class="table-page-search-wrapper">
+        <a-form layout="inline">
+          <a-row :gutter="48">
+            <a-col :md="6" :sm="24">
+              <a-form-item label="关键字">
+                <a-input v-model="queryParam.keyword" placeholder="请输入设备名称/设备新号"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="设备旧号">
+                <a-input v-model="queryParam.zbh" placeholder="请输入设备旧号"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="报修人">
+                <a-input v-model="queryParam.actualUser" placeholder="请输入报修人"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="问题描述">
+                <a-input v-model="queryParam.content" placeholder="问题描述模糊查询"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="起始日期">
+                <a-date-picker
+                  v-model="queryParam.searchStartTime"
+                  style="width: 100%"
+                  :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN"
+                />
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="结束日期">
+                <a-date-picker
+                  v-model="queryParam.searchEndTime"
+                  style="width: 100%"
+                  :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN"
+                />
+              </a-form-item>
+            </a-col>
+            <a-col :md="8 || 24" :sm="24">
+              <span class="table-page-search-submitButtons">
+                <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
+                <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
+              </span>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+
+      <div class="table-operator">
+        <a-button v-if="$auth('repair-application-forms-add')" type="primary" icon="plus" @click="$refs.baseModal.base({},{filter: -1})">新增</a-button>
+        <a-button style="margin-left: 8px" v-if="$auth('repair-application-forms-export')" type="primary" icon="download" @click="doExport">导出</a-button>
+        <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && $auth('repair-application-forms-del')">
+          <a-menu slot="overlay">
+            <a-popconfirm title="是否要删除所选数据?" @confirm="batchDelete()">
+              <a-menu-item key="1"><a-icon type="delete" /><a>删除</a></a-menu-item>
+            </a-popconfirm>
+          </a-menu>
+          <a-button style="margin-left: 8px">
+            批量操作 <a-icon type="down" />
+          </a-button>
+        </a-dropdown>
+      </div>
+
+      <s-table
+        ref="table"
+        size="default"
+        rowKey="id"
+        :columns="columns"
+        :data="loadData"
+        :alert="options.alert"
+        :rowSelection="options.rowSelection"
+        :scroll="{x: 1000, y: BaseTool.Constant.scrollY }"
+        showPagination="auto"
+      >
+        <span slot="action" slot-scope="record">
+          <template>
+            <a @click="handleView(record)">查看</a>
+            <operation-button
+              v-if="DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.NOT_ALLOCATED === record.status && $auth('repair-application-forms-edit')"
+              @click="handleEdit(record)" >修改</operation-button>
+          </template>
+        </span>
+        <span slot="status" slot-scope="text">
+          <badge :text="BaseTool.Object.getField(statusMap,text)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_STATUS[text]"/>
+        </span>
+        <span slot="level" slot-scope="text">
+          <badge :text="BaseTool.Object.getField(levelMap,text)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_LEVEL[text]"/>
+        </span>
+      </s-table>
+    </div>
+    <base-form ref="baseModal" @ok="handleOk"/>
+    <base-out-form ref="baseOutModal" @ok="handleOk"/>
+    <detail ref="detailModal" @ok="handleOk"/>
+    <detail-out ref="detailOutModal" @ok="handleOk"/>
+    <assign-form ref="assignForm" @ok="handleOk" />
+    <dispatch-base-form ref="dispatchBaseForm" @ok="handleOk" />
+  </a-card>
 </template>
 
 <script>
-import RepairForm from './RepairForm'
+import { STable, Ellipsis } from '@/components'
+import BaseForm from './modules/BaseForm'
+import BaseOutForm from './modules/BaseOutForm'
+import AssignForm from './modules/AssignForm'
+import Detail from './modules/Detail'
+import DetailOut from './modules/DetailRepairOut'
+import { getRepairApplicationFormPage, deleteRepairApplicationForms, fetchRepairApplicationForm, exportRepairApplicationForm } from '@/api/repair/application-form'
+import DispatchBaseForm from '@/views/repair/application-form/modules/DispatchBaseForm'
+
 export default {
-  name: 'RepairFormApply',
+  name: 'RepairForm',
   components: {
-    RepairForm
+    STable,
+    Ellipsis,
+    BaseForm,
+    BaseOutForm,
+    DetailOut,
+    AssignForm,
+    Detail,
+    DispatchBaseForm
+  },
+  props: {
+    filter: {
+      type: Number,
+      default: 0
+    },
+    searchType: {
+      type: Number,
+      default: 1
+    }
+  },
+  data () {
+    return {
+      // 查询参数
+      queryParam: {
+        filter: this.filter,
+        searchType: this.searchType
+      },
+      visible: true,
+      // 表头
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'index',
+          checked: true,
+          width: '70px',
+          customRender: (text, record, index) => {
+            return `${(this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1}`
+          }
+        },
+        {
+          title: '设备编号',
+          checked: true,
+          width: '100px',
+          dataIndex: 'sbNo'
+        },
+        {
+          title: '设备名称',
+          checked: true,
+          width: '150px',
+          dataIndex: 'sbId',
+          customRender: (text, record, index) => {
+            return record.sbName
+          }
+        },
+        {
+          title: '报修人',
+          checked: true,
+          width: '120px',
+          dataIndex: 'actualUser'
+        },
+        {
+          title: '报修来源',
+          checked: true,
+          width: '100px',
+          dataIndex: 'source',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.sourceMap, text)
+          }
+        },
+        {
+          title: '报修时间',
+          checked: true,
+          width: '150px',
+          dataIndex: 'applyTime'
+        },
+        /* {
+          title: '紧急等级',
+          checked: true,
+          width: '200px',
+          dataIndex: 'level',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.levelMap, text)
+          }
+        },
+        {
+          title: '是否停机',
+          checked: true,
+          dataIndex: 'needStop',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.needStopMap, text)
+          }
+        }, */
+        {
+          title: '创建日期',
+          width: '200px',
+          dataIndex: 'createdTime'
+        },
+        {
+          title: '接收超时',
+          checked: true,
+          width: '100px',
+          dataIndex: 'receiveOvertime',
+          customRender: (text, record, index) => {
+            if (text === '1') {
+              return '是'
+            } else {
+              return '否'
+            }
+          }
+        },
+        {
+          title: '维修超时',
+          checked: true,
+          width: '100px',
+          dataIndex: 'repairOvertime',
+          customRender: (text, record, index) => {
+            if (text === '1') {
+              return '是'
+            } else {
+              return '否'
+            }
+          }
+        },
+        {
+          title: '报修状态',
+          checked: true,
+          width: '100px',
+          fixed: 'right',
+          dataIndex: 'status',
+          scopedSlots: { customRender: 'status' }
+        },
+        {
+          title: '操作',
+          checked: true,
+          fixed: 'right',
+          key: 'action',
+          width: '150px',
+          align: 'center',
+          scopedSlots: { customRender: 'action' }
+        }
+      ],
+      // 下拉框map
+      sourceMap: {},
+      levelMap: {},
+      statusMap: {},
+      needStopMap: {},
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        parameter = {
+          ...parameter,
+          ...this.queryParam,
+          type: 1,
+          dataScope: {
+            sortBy: 'desc',
+            sortName: 'update_time'
+          }
+        }
+        return getRepairApplicationFormPage(Object.assign(parameter, this.queryParam))
+          .then(res => {
+            return res.data
+          })
+      },
+      selectedRowKeys: [],
+      selectedRows: [],
+
+      options: {
+        alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
+        rowSelection: {
+          selectedRowKeys: this.selectedRowKeys,
+          onChange: this.onSelectChange
+        }
+      },
+      optionAlertShow: false
+    }
+  },
+  created () {
+    // 下拉框map
+    this.sourceMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.REPAIR_APPLICATION_FORM_SOURCE)
+    this.levelMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.REPAIR_APPLICATION_FORM_LEVEL)
+    this.statusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.REPAIR_APPLICATION_FORM_STATUS)
+    this.needStopMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
+
+    // 获取浏览器的请求参数:报修单编号:no
+    const no = this.$route.query.no
+    if (no != null) {
+      this.queryParam.no = no
+    }
+    this.tableOption()
+  },
+  methods: {
+    tableOption () {
+      if (!this.optionAlertShow) {
+        this.options = {
+          alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
+          rowSelection: {
+            selectedRowKeys: this.selectedRowKeys,
+            onChange: this.onSelectChange,
+            getCheckboxProps: record => ({
+              props: {
+                disabled: false,
+                name: record.id
+              }
+            })
+          }
+        }
+        this.optionAlertShow = true
+      } else {
+        this.options = {
+          alert: false,
+          rowSelection: null
+        }
+        this.optionAlertShow = false
+      }
+    },
+    batchDelete (id) {
+      let ids = []
+      if (this.BaseTool.String.isBlank(id)) {
+        const length = this.selectedRows.length
+        if (length === 0) {
+          this.$message.info('请选择要删除的记录')
+          return
+        }
+        ids = this.selectedRows.map(item => item.id)
+      } else {
+        ids = [id]
+      }
+      deleteRepairApplicationForms(ids).then(res => {
+        this.$message.info('删除成功')
+        this.handleOk()
+        this.$refs.table.clearSelected()
+      })
+    },
+    handleEdit (record) {
+      fetchRepairApplicationForm({ id: record.id }).then(res => {
+        const type = res.data.type
+        const modal = type === 2 ? this.$refs.baseOutModal : this.$refs.baseModal
+        modal.base(res.data)
+      })
+    },
+    handleView (record) {
+      fetchRepairApplicationForm({ id: record.id }).then(res => {
+        this.visible = false
+        const type = res.data.type
+        const modal = type === 2 ? this.$refs.detailOutModal : this.$refs.detailModal
+        modal.base(res.data)
+      })
+    },
+    handleAssign (record) {
+      const modal = this.$refs.assignForm
+      modal.base(record)
+    },
+    handleOk () {
+      this.visible = true
+      this.queryParam.searchStartTime = this.queryParam.searchStartTime ? this.BaseTool.Date.formatter(this.queryParam.searchStartTime, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN) : null
+      this.queryParam.searchEndTime = this.queryParam.searchEndTime ? this.BaseTool.Date.formatter(this.queryParam.searchEndTime, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN) : null
+      this.$refs.table.refresh()
+    },
+    onSelectChange (selectedRowKeys, selectedRows) {
+      this.selectedRowKeys = selectedRowKeys
+      this.selectedRows = selectedRows
+    },
+    resetSearchForm () {
+      this.queryParam = {
+      }
+      this.$refs.table.refresh(true)
+    },
+    doExport () {
+      const parameter = {
+        ...this.queryParam,
+        searchStartTime: this.queryParam.searchStartTime,
+        searchEndTime: this.queryParam.searchEndTime
+      }
+      exportRepairApplicationForm(parameter).then(file => {
+        this.BaseTool.UPLOAD.downLoadExportExcel(file)
+      })
+    },
+    handleDispatching (record) {
+      const modal = this.$refs.dispatchBaseForm
+      modal.base(record)
+    }
   }
 }
 </script>
-
-<style scoped>
-
-</style>

+ 39 - 6
src/views/repair/application-form/modules/BaseForm.vue

@@ -1,7 +1,7 @@
 <template>
   <a-modal
     :title="modalTitle"
-    :width="800"
+    :width="900"
     :visible="visible"
     :confirmLoading="confirmLoading"
     class="ant-modal2"
@@ -56,14 +56,26 @@
         </row-item>
         <row-item>
           <a-form-item
-            label="维修时间"
+            label="要求日期"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-date-picker
+              style="width: 100%"
+              :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
+              v-decorator="['limitDate']" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="要求时间"
             :labelCol="BaseTool.Constant.labelCol"
             :wrapperCol="BaseTool.Constant.wrapperCol"
           >
             <a-input
               style="width: 100%"
               suffix="小时"
-              v-decorator="['limitHours', {rules: [{required: true, message: '多少小时内需要维修好'}]}]" />
+              v-decorator="['limitHours']" />
           </a-form-item>
         </row-item>
         <row-item>
@@ -279,8 +291,6 @@ export default {
       if (this.BaseTool.Object.isBlank(record)) {
         this.modalTitle = '添加'
         if (!this.BaseTool.Object.isBlank(record) && !this.BaseTool.Object.isBlank(record.sbId)) {
-          console.log('111record.sbId: ' + record.sbId)
-          console.log('111record.sbName: ' + record.sbName)
           const { form: { setFieldsValue } } = this
           this.$nextTick(() => {
             setFieldsValue(Object.assign(pick(record, [
@@ -291,6 +301,20 @@ export default {
         }
         return
       }
+      if (this.BaseTool.Object.isBlank(record.id)) {
+        this.modalTitle = '添加'
+        if (!this.BaseTool.Object.isBlank(record.sbId)) {
+          const { form: { setFieldsValue } } = this
+          this.$nextTick(() => {
+            setFieldsValue(Object.assign(pick(record, [
+              'sbId',
+              'sbName',
+              'sbCph'
+            ])))
+          })
+        }
+        return
+      }
       this.modalTitle = '编辑'
       this.applicationFileList = record.applicationFileList
       this.repairFileList = record.repairFileList
@@ -301,6 +325,14 @@ export default {
       const { form: { setFieldsValue } } = this
       // 日期处理
       record.applyTime = this.BaseTool.Moment(record.applyTime, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
+      if (record.limitDate != null) {
+        record.limitDate = this.BaseTool.Moment(record.limitDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
+        this.$nextTick(() => {
+          setFieldsValue(Object.assign(pick(record, [
+            'limitDate'
+          ])))
+        })
+      }
       this.$nextTick(() => {
         setFieldsValue(Object.assign(pick(record, [
           'id',
@@ -309,6 +341,7 @@ export default {
           'partId',
           'repairUserId',
           'no',
+          'limitDate',
           'limitHours',
           'source',
           'level',
@@ -335,7 +368,7 @@ export default {
         }
         // 日期处理
         values.applyTime = this.BaseTool.Date.formatter(values.applyTime, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
-
+        values.limitDate = BaseTool.Date.formatter(values.limitDate, BaseTool.Date.PICKER_NORM_DATE_PATTERN)
         // 上传文件
         values.repairFileList = this.repairFileList
         values.applicationFileList = this.applicationFileList

+ 4 - 31
src/views/repair/application-form/modules/Detail.vue

@@ -24,6 +24,8 @@
             <detail-list-item term="紧急等级"><badge :text="BaseTool.Object.getField(levelMap,model.level)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_LEVEL[model.applicationLevel]"/></detail-list-item>
             <detail-list-item term="报修时间">{{ model.applyTime }}</detail-list-item>
             <detail-list-item term="报修状态"><badge :text="BaseTool.Object.getField(statusMap,model.status)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_STATUS[model.status]"/></detail-list-item>
+            <detail-list-item term="要求时间">{{ model.limitHours }}小时</detail-list-item>
+            <detail-list-item term="要求日期">{{ model.limitDate }}</detail-list-item>
           </detail-list>
           <detail-list title="" :col="1">
             <!--<detail-list-item term="故障描述">{{ BaseTool.Object.getField(this.descripitionMap, model.content) }}</detail-list-item>-->
@@ -82,16 +84,9 @@
         :columns="columnsSpare"
         tableLayout="auto"
         rowKey="id">
-
       </a-table>
 
       <title-divider title="费用清单" width="90px"></title-divider>
-      <!--      <div class="table-operator" v-if="$auth('repair-application-forms-finish') && ( DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)">-->
-      <!--        <a-button type="primary" @click="handleAddFee">-->
-      <!--          <a-icon type="plus"/>-->
-      <!--          添加-->
-      <!--        </a-button>-->
-      <!--      </div>-->
       <a-table
         :data-source="dataFee"
         :columns="columnsFee"
@@ -100,26 +95,11 @@
         <span slot="action" slot-scope="record">
           <template>
             <a @click="handleViewFee(record)">查看</a>
-            <operation-button
-              v-if="$auth('repair-application-forms-finish') && ( DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)"
-              @click="handleEditFee(record)" >修改</operation-button>
-
-            <operation-button
-              v-if="$auth('repair-application-forms-finish') && ( DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)"
-              :type="2"
-              title="确认删除该笔费用?"
-              @confirm="batchDeleteFee(record.id)" >删除</operation-button>
           </template>
         </span>
       </a-table>
 
       <title-divider title="原因分析" width="90px"></title-divider>
-      <div class="table-operator" v-if="$auth('repair-application-forms-finish') && ( DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)">
-        <a-button type="primary" @click="handleAddReason">
-          <a-icon type="plus"/>
-          添加
-        </a-button>
-      </div>
       <a-table
         :data-source="dataReason"
         :columns="columnsReason"
@@ -128,15 +108,6 @@
         <span slot="action" slot-scope="record">
           <template>
             <a @click="handleViewReason(record)">查看</a>
-            <operation-button
-              v-if="$auth('repair-application-forms-finish') && ( DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)"
-              @click="handleEditReason(record)" >修改</operation-button>
-
-            <operation-button
-              v-if="$auth('repair-application-forms-finish') && ( DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)"
-              :type="2"
-              title="确认删除该记录?"
-              @confirm="batchDeleteReason(record.id)" >删除</operation-button>
           </template>
         </span>
       </a-table>
@@ -368,6 +339,8 @@ export default {
         'source': null,
         'applyTime': null,
         'level': null,
+        'limitHours': null,
+        'limitDate': null,
         'content': null,
         'status': null,
         'remark': null,

+ 4 - 0
src/views/repair/application-form/modules/DetailCheck.vue

@@ -30,6 +30,8 @@
             <detail-list-item term="紧急等级"><badge :text="BaseTool.Object.getField(levelMap,model.level)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_LEVEL[model.applicationLevel]"/></detail-list-item>
             <detail-list-item term="报修时间">{{ model.applyTime }}</detail-list-item>
             <detail-list-item term="报修状态"><badge :text="BaseTool.Object.getField(statusMap,model.status)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_STATUS[model.status]"/></detail-list-item>
+            <detail-list-item term="要求时间">{{ model.limitHours }}小时</detail-list-item>
+            <detail-list-item term="要求日期">{{ model.limitDate }}</detail-list-item>
           </detail-list>
           <detail-list title="" :col="1">
             <!--<detail-list-item term="故障描述">{{ BaseTool.Object.getField(this.descripitionMap, model.content) }}</detail-list-item>-->
@@ -382,6 +384,8 @@ export default {
         'updateUserId': null,
         'createdUserName': null,
         'sbName': null,
+        'limitHours': null,
+        'limitDate': null,
         'partName': null,
         'updateUserName': null,
         'repairFormVO': null,

+ 4 - 0
src/views/repair/application-form/modules/DetailExamine.vue

@@ -26,6 +26,8 @@
             <detail-list-item term="紧急等级"><badge :text="BaseTool.Object.getField(levelMap,model.level)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_LEVEL[model.applicationLevel]"/></detail-list-item>
             <detail-list-item term="报修时间">{{ model.applyTime }}</detail-list-item>
             <detail-list-item term="报修状态"><badge :text="BaseTool.Object.getField(statusMap,model.status)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_STATUS[model.status]"/></detail-list-item>
+            <detail-list-item term="要求时间">{{ model.limitHours }}小时</detail-list-item>
+            <detail-list-item term="要求日期">{{ model.limitDate }}</detail-list-item>
           </detail-list>
           <detail-list title="" :col="1">
             <!--<detail-list-item term="故障描述">{{ BaseTool.Object.getField(this.descripitionMap, model.content) }}</detail-list-item>-->
@@ -400,6 +402,8 @@ export default {
         'updateUserId': null,
         'createdUserName': null,
         'sbName': null,
+        'limitHours': null,
+        'limitDate': null,
         'partName': null,
         'updateUserName': null,
         'repairFormVO': null,

+ 25 - 4
src/views/repair/application-form/modules/DetailRepair.vue

@@ -6,8 +6,8 @@
           <span class="table-page-search-submitButtons" style="float: right">
             <a-button v-if="$auth('repair-application-forms-finish')" style="margin-left: 16px" type="default" @ok="handleOk" @click="handleViewBom()">备件BOM</a-button>
             <a-button v-if="$auth('repair-application-forms-finish')" style="margin-left: 16px" type="default" @ok="handleOk" @click="handleViewCheck()">保养项目</a-button>
-            <a-button v-if="$auth('repair-application-forms-assign') && DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.NOT_ALLOCATED === model.status &&  DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status" type="primary" @click="handleAssign">派工</a-button>
-            <a-popconfirm v-if="$auth('repair-application-forms-deal') && DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.NOT_ALLOCATED === model.status &&  DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status" title="是否要接收?" @confirm="receive">
+            <a-button v-if="$auth('repair-application-forms-assign') && (DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.NOT_ALLOCATED === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)" type="primary" @click="handleAssign">派工</a-button>
+            <a-popconfirm v-if="$auth('repair-application-forms-deal') && (DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)" title="是否要接收?" @confirm="receive">
               <a-button style="margin-left: 8px">接收</a-button>
             </a-popconfirm>
             <a-button v-if="$auth('repair-application-forms-out') && (DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING >= model.status) && model.type != 2" style="margin-left: 8px" type="primary" @click="handleOut">委外</a-button>
@@ -35,6 +35,8 @@
             <detail-list-item term="紧急等级"><badge :text="BaseTool.Object.getField(levelMap,model.level)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_LEVEL[model.applicationLevel]"/></detail-list-item>
             <detail-list-item term="报修时间">{{ model.applyTime }}</detail-list-item>
             <detail-list-item term="报修状态"><badge :text="BaseTool.Object.getField(statusMap,model.status)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_STATUS[model.status]"/></detail-list-item>
+            <detail-list-item term="要求时间">{{ model.limitHours }}小时</detail-list-item>
+            <detail-list-item term="要求日期">{{ model.limitDate }}</detail-list-item>
           </detail-list>
           <detail-list title="" :col="1">
             <!--<detail-list-item term="故障描述">{{ BaseTool.Object.getField(this.descripitionMap, model.content) }}</detail-list-item>-->
@@ -111,7 +113,7 @@
         </span>
       </a-table>
       <title-divider title="费用清单" width="90px"></title-divider>
-      <div class="table-operator"  v-if="$auth('repair-application-forms-finish')">
+      <div class="table-operator" v-if="$auth('repair-application-forms-finish')">
         <a-button type="primary" @click="handleAddFee">
           <a-icon type="plus"/>
           添加
@@ -134,7 +136,7 @@
         </span>
       </a-table>
       <title-divider title="原因分析" width="90px"></title-divider>
-      <div class="table-operator"  v-if="$auth('repair-application-forms-finish')">
+      <div class="table-operator" v-if="$auth('repair-application-forms-finish')">
         <a-button type="primary" @click="handleAddReason">
           <a-icon type="plus"/>
           添加
@@ -151,6 +153,9 @@
             <operation-button
               v-if="$auth('repair-application-forms-finish') && ( DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)"
               @click="handleEditReason(record)" >修改</operation-button>
+            <operation-button
+              v-if="$auth('repair-application-forms-finish') && ( DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)"
+              @click="handleCopyReason(record)" >复制</operation-button>
 
             <operation-button
               v-if="$auth('repair-application-forms-finish') && ( DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status || DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status)"
@@ -407,6 +412,12 @@ export default {
             return this.BaseTool.Object.getField(this.typeReasonMap, text)
           }
         },
+        {
+          title: '改进内容',
+          dataIndex: 'changeRepairPlanContent',
+          ellipsis: true,
+          width: '250px'
+        },
         {
           title: '操作',
           key: 'action',
@@ -435,6 +446,8 @@ export default {
         'createdUserName': null,
         'sbName': null,
         'partName': null,
+        'limitHours': null,
+        'limitDate': null,
         'updateUserName': null,
         'repairFormVO': null,
         'repairCheckVO': null
@@ -578,6 +591,14 @@ export default {
         modal.base(res.data, this.model)
       })
     },
+    handleCopyReason (record) {
+      fetchRepairReason({ id: record.id }).then(res => {
+        const modal = this.$refs.reasonForm
+        this.visible = false
+        res.data.id = null
+        modal.base(res.data, this.model)
+      })
+    },
     handleViewReason (record) {
       fetchRepairReason({ id: record.id }).then(res => {
         const modal = this.$refs.reasonDetail

+ 2 - 0
src/views/repair/application-form/modules/DetailRepairOut.vue

@@ -371,6 +371,8 @@ export default {
         'no': null,
         'source': null,
         'applyTime': null,
+        'limitHours': null,
+        'limitDate': null,
         'level': null,
         'content': null,
         'status': null,

+ 4 - 0
src/views/repair/fee/RepairFee.vue

@@ -96,6 +96,10 @@ export default {
             return record.repairNo
           }
         },
+        {
+          title: '委外单号',
+          dataIndex: 'no'
+        },
         {
           title: '费用金额',
           dataIndex: 'fee',

+ 12 - 2
src/views/repair/fee/modules/BaseForm.vue

@@ -22,13 +22,22 @@
         <a-input
           v-decorator="['repairId']" />
       </a-form-item>
+      <a-form-item
+        label="维修单号"
+        :labelCol="BaseTool.Constant.labelCol"
+        :wrapperCol="BaseTool.Constant.wrapperCol"
+      >
+        <a-input
+          disabled
+          v-decorator="['repairNo']" />
+      </a-form-item>
       <a-form-item
         label="委外单号"
         :labelCol="BaseTool.Constant.labelCol"
         :wrapperCol="BaseTool.Constant.wrapperCol"
       >
         <a-input
-          v-decorator="['repairNo', {rules: [{required: true, message: '委外单号不能为空'}]}]" />
+          v-decorator="['no']" />
       </a-form-item>
       <a-form-item
         label="费用金额"
@@ -189,7 +198,7 @@ export default {
           setFieldsValue({
             'sbId': repairForm.sbId,
             'repairId': repairForm.id,
-            'repairNo': repairForm.outNo
+            'repairNo': repairForm.no
           })
         })
         this.imageList = []
@@ -218,6 +227,7 @@ export default {
           'id',
           'repairId',
           'sbId',
+          'no',
           'repairNo',
           'fee',
           'moneyType',

+ 1 - 0
src/views/repair/fee/modules/Detail.vue

@@ -8,6 +8,7 @@
   >
     <detail-list title="" :col="2">
       <detail-list-item term="维修单号">{{ model.repairNo }}</detail-list-item>
+      <detail-list-item term="委外单号">{{ model.no }}</detail-list-item>
       <detail-list-item term="费用金额">{{ BaseTool.Amount.formatter(model.fee) }}</detail-list-item>
       <detail-list-item term="费用日期">{{ model.feeDate }}</detail-list-item>
       <detail-list-item term="货币类别">{{ BaseTool.Object.getField(moneyTypeMap,model.moneyType) }}</detail-list-item>

+ 4 - 0
src/views/repair/fee/modules/RepairFeeList.vue

@@ -57,6 +57,10 @@ export default {
             return record.repairNo
           }
         },
+        {
+          title: '委外单号',
+          dataIndex: 'no'
+        },
         {
           title: '费用金额',
           dataIndex: 'fee',

+ 4 - 0
src/views/repair/fee/modules/RepairFeeSelectModal.vue

@@ -110,6 +110,10 @@ export default {
           title: '维修单id',
           dataIndex: 'repairId'
         },
+        {
+          title: '委外单号',
+          dataIndex: 'no'
+        },
         {
           title: '费用金额',
           dataIndex: 'fee',

+ 4 - 0
src/views/repair/fee/modules/RepairFeeTable.vue

@@ -112,6 +112,10 @@ export default {
             return record.repairNo
           }
         },
+        {
+          title: '委外单号',
+          dataIndex: 'no'
+        },
         {
           title: '费用金额',
           dataIndex: 'fee',

+ 4 - 0
src/views/repair/repair-reason/modules/BaseForm.vue

@@ -195,6 +195,10 @@ export default {
       this.sbChange = record.sbChange
       this.otherChange = record.otherChange
       this.modalTitle = '编辑'
+      if (this.BaseTool.Object.isBlank(record.id)) {
+        this.addFlag = true
+        this.modalTitle = '复制'
+      }
       this.type = record.type
       // 日期处理
       this.$nextTick(() => {