Преглед на файлове

Merge remote-tracking branch 'origin/master'

xiongchao преди 3 години
родител
ревизия
83564ccc0d

+ 1 - 0
src/router/generator-platform-routers.js

@@ -167,6 +167,7 @@ const constantRouterComponents = {
   'TransferStoreDetail': () => import('@/views/store/transferstoredetail/TransferStoreDetail'),
   // 报修单
   'RepairApplicationForm': () => import('@/views/repair/application-form/RepairApplicationForm'),
+  'RepairOut': () => import('@/views/repair/application-form/RepairOut'),
   // 验收单
   'RepairCheckForm': () => import('@/views/repair/application-form/RepairCheckForm'),
   // 维修单

+ 2 - 3
src/views/repair/application-form/MyRepairForm.vue

@@ -21,7 +21,6 @@
 
       <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-add')" type="primary" icon="plus" @click="$refs.baseOutModal.base()">新增委外</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">
@@ -185,6 +184,7 @@ export default {
         parameter = {
           ...parameter,
           ...this.queryParam,
+          type: 1,
           dataScope: {
             sortBy: 'desc',
             sortName: 'update_time'
@@ -269,8 +269,7 @@ export default {
     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
+        const modal = this.$refs.detailModal
         modal.base(res.data)
       })
     },

+ 1 - 1
src/views/repair/application-form/RepairForm.vue

@@ -21,7 +21,6 @@
 
       <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-add')" type="primary" icon="plus" @click="$refs.baseOutModal.base()">新增委外</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">
@@ -193,6 +192,7 @@ export default {
         parameter = {
           ...parameter,
           ...this.queryParam,
+          type: 1,
           dataScope: {
             sortBy: 'desc',
             sortName: 'update_time'

+ 308 - 0
src/views/repair/application-form/RepairOut.vue

@@ -0,0 +1,308 @@
+<template>
+  <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="8" :sm="24">
+              <a-form-item label="关键字">
+                <a-input v-model="queryParam.keyword" placeholder="请输入名称/类型名称"/>
+              </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-add')" type="primary" icon="plus" @click="$refs.baseOutModal.base()">新增</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"
+        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>
+            <operation-button
+              v-if="DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.NOT_ALLOCATED === record.status && $auth('repair-application-forms-del')"
+              :type="2"
+              title="是否要删除该条数据?"
+              @confirm="batchDelete(record.id)">删除</operation-button>
+            <!--<operation-button
+              v-if="DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.NOT_ALLOCATED === record.status && $auth('repair-application-forms-dispatch')"
+              @click="handleDispatching(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"/>
+    <detail-out ref="detailOutModal" @ok="handleOk"/>
+  </a-card>
+</template>
+
+<script>
+import { STable, Ellipsis } from '@/components'
+import BaseForm from './modules/BaseOutForm'
+import DetailOut from './modules/DetailRepairOut'
+import { getRepairApplicationFormPage, deleteRepairApplicationForms, fetchRepairApplicationForm, exportRepairApplicationForm } from '@/api/repair/application-form'
+
+export default {
+  name: 'RepairOut',
+  components: {
+    STable,
+    Ellipsis,
+    BaseForm,
+    DetailOut
+  },
+  data () {
+    return {
+      // 查询参数
+      queryParam: {
+        filter: 0,
+        searchType: 2
+      },
+      visible: true,
+      // 表头
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'index',
+          checked: true,
+          customRender: (text, record, index) => {
+            return `${(this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1}`
+          }
+        },
+        {
+          title: '委外单号',
+          checked: true,
+          dataIndex: 'outNo'
+        },
+        {
+          title: '设备名称',
+          checked: true,
+          dataIndex: 'sbId',
+          customRender: (text, record, index) => {
+            return record.sbName
+          }
+        },
+        // {
+        //   title: '报修人',
+        //   checked: true,
+        //   dataIndex: 'actualUser'
+        // },
+        {
+          title: '维修人',
+          checked: true,
+          dataIndex: 'repairUserName'
+        },
+        {
+          title: '报修来源',
+          // checked: true,
+          dataIndex: 'source',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.sourceMap, text)
+          }
+        },
+        {
+          title: '报修时间',
+          checked: true,
+          dataIndex: 'applyTime'
+        },
+        // {
+        //   title: '紧急等级',
+        //   checked: true,
+        //   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: '报修状态',
+          checked: true,
+          dataIndex: 'status',
+          scopedSlots: { customRender: 'status' }
+        },
+
+        {
+          title: '创建日期',
+          dataIndex: 'createdTime'
+        },
+        {
+          title: '操作',
+          checked: true,
+          key: 'action',
+          width: '200px',
+          align: 'center',
+          scopedSlots: { customRender: 'action' }
+        }
+      ],
+      // 下拉框map
+      sourceMap: {},
+      levelMap: {},
+      statusMap: {},
+      needStopMap: {},
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        parameter = {
+          ...parameter,
+          ...this.queryParam,
+          type: 2,
+          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)
+
+    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 modal = this.$refs.baseModal
+        modal.base(res.data)
+      })
+    },
+    handleView (record) {
+      fetchRepairApplicationForm({ id: record.id }).then(res => {
+        this.visible = false
+        const modal = this.$refs.detailOutModal
+        modal.base(res.data)
+      })
+    },
+    handleOk () {
+      this.visible = true
+      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
+      }
+      exportRepairApplicationForm(parameter).then(file => {
+        this.BaseTool.UPLOAD.downLoadExportExcel(file)
+      })
+    },
+    handleDispatching (record) {
+      const modal = this.$refs.dispatchBaseForm
+      modal.base(record)
+    }
+  }
+}
+</script>

+ 3 - 4
src/views/repair/application-form/modules/BaseOutForm.vue

@@ -11,7 +11,6 @@
 
       <a-form-item v-show="false" >
         <a-input v-decorator="['id']" type="hidden"/>
-        <a-input v-decorator="['mainRepairId']" type="hidden"/>
       </a-form-item>
 
       <row-list :col="2">
@@ -22,7 +21,7 @@
             :wrapperCol="BaseTool.Constant.wrapperCol"
           >
             <a-input
-              v-decorator="['no', {rules: [{required: false, message: '委外订单号不能为空'}]}]"/>
+              v-decorator="['outNo', {rules: [{required: false, message: '委外订单号不能为空'}]}]"/>
           </a-form-item>
         </row-item>
         <row-item>
@@ -130,7 +129,7 @@ export default {
         if (mainForm != null && mainForm.id != null) {
           this.$nextTick(() => {
             setFieldsValue({
-              mainRepairId: mainForm.id
+              id: mainForm.id
             })
           })
         }
@@ -147,7 +146,7 @@ export default {
           'outType',
           'mainRepairId',
           'repairUserId',
-          'no',
+          'outNo',
           'source',
           'level',
           'content',

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

@@ -127,34 +127,34 @@
           </template>
         </span>
       </a-table>
-      <title-divider title="费用清单" width="90px" v-if="model.type == 2"></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) && model.type === 2">
-        <a-button type="primary" @click="handleAddFee">
-          <a-icon type="plus"/>
-          添加
-        </a-button>
-      </div>
-      <a-table
-        v-if="model.type == 2"
-        :data-source="dataFee"
-        :columns="columnsFee"
-        tableLayout="auto"
-        rowKey="id">
-        <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>
+<!--      <title-divider title="费用清单" width="90px" v-if="model.type == 2"></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) && model.type === 2">-->
+<!--        <a-button type="primary" @click="handleAddFee">-->
+<!--          <a-icon type="plus"/>-->
+<!--          添加-->
+<!--        </a-button>-->
+<!--      </div>-->
+<!--      <a-table-->
+<!--        v-if="model.type == 2"-->
+<!--        :data-source="dataFee"-->
+<!--        :columns="columnsFee"-->
+<!--        tableLayout="auto"-->
+<!--        rowKey="id">-->
+<!--        <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>
+<!--            <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">
@@ -193,7 +193,7 @@
 
     </a-card>
     <check-form ref="checkForm" @ok="handleOk" />
-    <base-out-form ref="outForm" @ok="handleOk" />
+    <base-out-form ref="outForm" @ok="handleCancel" />
     <finish-form ref="finishForm" @ok="handleOk" />
     <dispatch-form ref="dispatchForm" @ok="handleCancel" />
     <assign-form ref="assignForm" @ok="handleCancel" />

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

@@ -72,33 +72,33 @@
           </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"
-        tableLayout="fixed"
-        rowKey="id">
-        <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>
+<!--      <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"-->
+<!--        tableLayout="fixed"-->
+<!--        rowKey="id">-->
+<!--        <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>
+<!--            <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>-->
 
     </a-card>
     <check-form ref="checkForm" @ok="handleOk" />

+ 1 - 1
src/views/repair/fee/modules/BaseForm.vue

@@ -162,7 +162,7 @@ export default {
         this.$nextTick(() => {
           setFieldsValue({
             'repairId': repairForm.id,
-            'repairNo': repairForm.no
+            'repairNo': repairForm.outNo
           })
         })
         this.imageList = []