408249787 пре 2 година
родитељ
комит
24b0ddfd63

+ 28 - 1
src/api/repair/repair.js

@@ -48,7 +48,19 @@ export function updateRepairScheme (parameter) {
     data: parameter
   })
 }
-
+/**
+ * update func
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function addRepairSchemes (parameter) {
+  return axios({
+    url: `/repair/repairs/${parameter.id}/${parameter.repairId}`,
+    method: 'PUT',
+    data: parameter
+  })
+}
 /**
  * fetch single func
  * parameter: { }
@@ -65,6 +77,21 @@ export function fetchRepairScheme (parameter) {
   })
 }
 
+/**
+ * fetch single func
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function getRepairType () {
+  return axios({
+    url: '/repair/error-types/tree',
+    method: 'get',
+    headers: {
+      'Content-Type': 'application/json;charset=UTF-8'
+    }
+  })
+}
 /**
  * query list func
  * parameter: { }

+ 1 - 1
src/utils/tool.js

@@ -1017,7 +1017,7 @@ BaseTool.UPLOAD = {
         fileDTO.fileName = data.fileName
         fileDTO.fileFormat = data.fileFormat
         fileDTO.url = data.url
-        fileDTO.id = data.id || fileList[i].uid
+        // fileDTO.id = data.id || fileList[i].uid
         temp.push(fileDTO)
       }
     }

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

@@ -237,6 +237,10 @@
               <a-icon type="plus"/>
               添加方案
             </a-button>
+            <a-button style="margin-left:30px;" v-if="$auth('repair-repairs-add')" type="primary" @click="handleAddRepairResolves">
+              <a-icon type="read" />
+              方案库
+            </a-button>
           </div>
           <a-table
             :data-source="dataRepairResolve"
@@ -301,6 +305,7 @@
     <report-up-form ref="reportUpForm" @ok="handleOk" @okk="handleCancel" />
     <ticket-form ref="ticketForm" @ok="handleOk" />
     <longYanSelectSpareForm ref="longYanSelectSpareForm" @ok="handleOk"/>
+    <scheme-library ref="schemeLibrary" @ok="handleOk"/>
   </div>
 </template>
 
@@ -314,6 +319,7 @@ import FinishForm from './FinishForm'
 import EditForm from './EditForm'
 import DispatchForm from './DispatchForm'
 import AssignForm from './AssignForm'
+import SchemeLibrary from './SchemeLibrary'
 import SparePickBaseForm from '../../../store/sparepickform/modules/BaseForm'
 import SparePartUsedSelectTable from '@/views/sqarepartmanage/sparepartused/modules/SparePartUsedSelectTable'
 import SparePickFormSelectTable from '@/views/store/sparepickform/modules/SparePickFormSelectTable'
@@ -353,6 +359,7 @@ export default {
   name: 'RepairApplicationFormDetail',
   components: {
     CheckForm,
+    SchemeLibrary,
     EditForm,
     DetailList,
     DetailSbCheck,
@@ -898,7 +905,11 @@ export default {
     },
     handleAddRepairResolve () {
       const modal = this.$refs.resolveBaseForm
-      modal.base({ repairId: this.model.id, repairNo: this.model.no })
+      modal.base({ repairId: this.model.id, repairNo: this.model.no, errorContent: this.model.content, sbId: this.model.sbId })
+    },
+    handleAddRepairResolves () {
+      const modal = this.$refs.schemeLibrary
+      modal.base(this.model)
     },
     handleViewRepairResolve (record) {
       this.visible = false

+ 133 - 0
src/views/repair/application-form/modules/SchemeLibrary.vue

@@ -0,0 +1,133 @@
+<template>
+  <a-modal
+    title="方案库"
+    :width="1000"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    @cancel="handleCancel"
+    :footer="null"
+  >
+    <div>
+      <a-form layout="inline">
+        <a-row >
+          <a-col :md="8" :sm="24">
+            <a-form-item label="关键字">
+              <a-input v-model="keyword" placeholder="请输入关键字!"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <span class="table-page-search-submitButtons">
+              <a-button type="primary" @click="getInfo">查询</a-button>
+              <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
+            </span>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <a-table
+      :columns="columns"
+      :data-source="dataSource"
+      bordered
+      :defaultExpandAllRows="true"
+    >
+      <template v-slot:index="text,record,index">
+        {{ index+1 }}
+      </template>
+      <template v-slot:action="text,record">
+        <a-button type="link" @click="addRepairSchemes(record)"> 获取 </a-button>
+      </template>
+    </a-table>
+  </a-modal>
+</template>
+
+<script>
+import { getRepairSchemePage, addRepairSchemes } from '@/api/repair/repair'
+
+export default {
+  name: 'LongYanSelectSpareForm',
+  data () {
+    return {
+      model: null,
+      visible: false,
+      confirmLoading: false,
+      keyword: '',
+      dataSource: [],
+      columns: [
+        {
+          title: '序号',
+          key: 'index',
+          align: 'center',
+          width: 50,
+          scopedSlots: { customRender: 'index' }
+        },
+        {
+          title: '维修建议',
+          width: 100,
+          dataIndex: 'opinion'
+        },
+        {
+          title: '方案提供者',
+          dataIndex: 'createdUserName',
+          width: 120
+        },
+        {
+          title: '方案提供时间',
+          dataIndex: 'createdTime',
+          width: 150
+        },
+        {
+          title: '操作',
+          key: 'action',
+          align: 'center',
+          width: 150,
+          scopedSlots: { customRender: 'action' }
+        }
+      ]
+    }
+  },
+  components: {
+  },
+  props: {
+  },
+  created () {
+    // 下拉框map
+  },
+  methods: {
+    base (record) {
+      this.visible = true
+      this.model = record
+      console.log(record)
+      this.getInfo()
+    },
+    getInfo () {
+      getRepairSchemePage({
+        keyword: this.keyword,
+        dataScope: {
+          sortBy: 'desc',
+          sortName: 'created_time'
+        }
+      }).then(res => {
+        this.dataSource = res.data.rows
+      })
+    },
+    resetSearchForm () {
+      this.keyword = ''
+      this.getInfo()
+    },
+    addRepairSchemes (val) {
+      addRepairSchemes({
+        id: val.id,
+        repairId: this.model.id
+      }).then(res => {
+        this.$message.success('添加成功!')
+        this.handleCancel()
+      })
+    },
+    handleCancel () {
+      this.visible = false
+      this.confirmLoading = false
+      this.$emit('ok')
+    }
+  }
+}
+</script>

+ 47 - 13
src/views/repair/repair/modules/BaseForm.vue

@@ -6,25 +6,50 @@
     :confirmLoading="confirmLoading"
     @cancel="handleCancel"
   >
-    <a-form :form='form'>
+    <a-form :form="form">
 
-      <a-form-item v-show='false'>
-        <a-input v-decorator="['id']" type='hidden' />
-        <a-input v-decorator="['repairId']" type='hidden' />
+      <a-form-item v-show="false">
+        <a-input v-decorator="['id']" type="hidden" />
+        <a-input v-decorator="['repairId']" type="hidden" />
+        <a-input v-decorator="['sbId']" type="hidden" />
       </a-form-item>
 
-      <row-list :col='1'>
+      <row-list :col="1">
         <row-item>
           <a-form-item
-            label='维修单号'
-            :labelCol='BaseTool.Constant.labelCol'
-            :wrapperCol='BaseTool.Constant.wrapperCol'
+            label="维修单号"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
           >
             <a-input
-              disabled='disabled'
+              disabled="disabled"
               v-decorator="['repairNo']" />
           </a-form-item>
         </row-item>
+        <row-item>
+          <a-form-item
+            label="故障类别"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select style="width: 100%" v-decorator="['errorTypeId', {rules: [{required: true, message: '故障类别不能为空'}]}]">
+              <a-select-option v-for="item in errorType" :key="item.id" :value="item.id">
+                {{ item.title }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="故障描述"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-textarea
+              :rows="4"
+              v-decorator="['errorContent', {rules: [{required: true, message: '故障描述不能为空'}]}]"/>
+          </a-form-item>
+        </row-item>
         <row-item>
           <a-form-item
             label="方案描述"
@@ -33,7 +58,7 @@
           >
             <a-textarea
               :rows="4"
-              v-decorator="['opinion', {rules: [{required: true, message: '故障描述不能为空'}]}]"/>
+              v-decorator="['opinion', {rules: [{required: true, message: '方案描述不能为空'}]}]"/>
           </a-form-item>
         </row-item>
         <row-item>
@@ -55,7 +80,7 @@
             </a-upload>
           </a-form-item>
         </row-item>
-<!--        <row-item>
+        <!--        <row-item>
           <a-form-item
             label='方案图'
             :labelCol='BaseTool.Constant.labelCol'
@@ -82,7 +107,7 @@
             </a-upload>
           </a-form-item>
 
-<!--          <a-form-item
+          <!--          <a-form-item
             label='维修方案文件'
             :labelCol='BaseTool.Constant.labelCol'
             :wrapperCol='BaseTool.Constant.wrapperCol'
@@ -129,7 +154,7 @@
 
 <script>
 import pick from 'lodash.pick'
-import { addRepairScheme, updateRepairScheme } from '@/api/repair/repair'
+import { addRepairScheme, updateRepairScheme, getRepairType } from '@/api/repair/repair'
 import { uploadUrl } from '@/api/upms/file'
 import Vue from 'vue'
 import { ACCESS_TOKEN } from '@/store/mutation-types'
@@ -143,6 +168,7 @@ export default {
       form: this.$form.createForm(this),
       visible: false,
       uploadUrl: uploadUrl,
+      errorType: [],
       defaultApplicationFileList: [],
       applicationFileList: [],
       defaultFileList: [],
@@ -158,10 +184,15 @@ export default {
   },
   created () {
     // 下拉框map
+
   },
   methods: {
     base (record) {
       this.visible = true
+      getRepairType().then(res => {
+        this.errorType = res.data
+      })
+      console.log(record)
       this.defaultFileList = []
       this.applicationFileList = []
       const { form: { setFieldsValue } } = this
@@ -170,8 +201,11 @@ export default {
         setFieldsValue(Object.assign(pick(record, [
           'id',
           'repairId',
+          'sbId',
+          'errorContent',
           'opinion',
           'imageList',
+          'errorTypeId',
           'opinionFile',
           'status',
           'deleteFlag',