Browse Source

故障类别

guarantee-lsq 1 year ago
parent
commit
71e53b48f5

+ 45 - 16
src/views/repair/application-form/modules/SchemeLibrary.vue

@@ -18,11 +18,33 @@
             </a-col>
             <a-col :md="8" :sm="24">
               <a-form-item label="故障类别">
-                <a-select style="width: 200px" v-model="errorTypeId">
+<!--               <a-tree-select
+                  style="width: 100%"
+                  :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+                  :treeData="treeData"
+                  :replaceFields="{value:'no'}"
+                  :treeNodeFilterProp="title"
+                  :showSearch="true"
+                  v-decorator="['errorTypeId', {rules: [{required: true, message: '故障类别不能为空'}]}]"
+                  placeholder="请选择"
+                >
+                </a-tree-select>-->
+                <a-tree-select
+                  style="width: 140px"
+                  :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+                  :treeData="treeData"
+                  :treeNodeFilterProp="'title'"
+                  v-model="errorTypeId"
+                  :showSearch="true"
+                  placeholder="请选择"
+                  @select="handleChange"
+                >
+                </a-tree-select>
+<!--                <a-select style="width: 200px" v-model="errorTypeId">
                   <a-select-option v-for="item in errorType" :key="item.id" :value="item.id">
                     {{ item.title }}
                   </a-select-option>
-                </a-select>
+                </a-select>-->
               </a-form-item>
             </a-col>
             <a-col :md="8" :sm="24">
@@ -43,9 +65,9 @@
         <template v-slot:index="text,record,index">
           {{ index+1 }}
         </template>
-        <template v-slot:errorTypeId="text,record">
+<!--        <template v-slot:errorTypeId="text,record">
           {{ errorType.find(item=>item.id===text).title }}
-        </template>
+        </template>-->
         <template v-slot:action="text,record">
           <a-button type="link" @click="addRepairSchemes(record)"> 获取 </a-button>
           <a-button type="link" @click="handleViewRepairResolve(record)"> 查看</a-button>
@@ -57,9 +79,9 @@
 </template>
 
 <script>
-import { getRepairSchemePage, addRepairSchemes, getRepairType, fetchRepairScheme } from '@/api/repair/repair'
+import { getRepairSchemePage, addRepairSchemes, fetchRepairScheme } from '@/api/repair/repair'
 import ResolveDetail from '@/views/repair/repair/modules/Detail'
-
+import { fetchErrorType, fetchErrorTypeTree } from '@/api/repair/errortype'
 export default {
   name: 'LongYanSelectSpareForm',
   data () {
@@ -69,9 +91,11 @@ export default {
       show: true,
       confirmLoading: false,
       keyword: '',
+      errorTypeNo: '',
       errorTypeId: '',
+      errorTypeList: [],
       dataSource: [],
-      errorType: [],
+      treeData: [],
       columns: [
         {
           title: '序号',
@@ -92,9 +116,8 @@ export default {
         },
         {
           title: '故障类别',
-          dataIndex: 'errorTypeId',
-          width: 100,
-          scopedSlots: { customRender: 'errorTypeId' }
+          dataIndex: 'errorTypeName',
+          width: 140
         },
         {
           title: '操作',
@@ -113,12 +136,13 @@ export default {
   },
   created () {
     // 下拉框map
+    fetchErrorTypeTree().then(res => {
+      // 循环获取样式
+      this.treeData = res.data
+    })
   },
   methods: {
     base (record) {
-      getRepairType().then(res => {
-        this.errorType = res.data
-      })
       this.visible = true
       this.model = record
       console.log(record)
@@ -127,7 +151,7 @@ export default {
     getInfo () {
       getRepairSchemePage({
         keyword: this.keyword,
-        errorTypeId: this.errorTypeId,
+        errorTypeNo: this.errorTypeNo,
         dataScope: {
           sortBy: 'desc',
           sortName: 'created_time'
@@ -138,7 +162,7 @@ export default {
     },
     resetSearchForm () {
       this.keyword = ''
-      this.errorTypeId = ''
+      this.errorTypeNo = ''
       this.getInfo()
     },
     handleViewRepairResolve (record) {
@@ -164,8 +188,13 @@ export default {
       this.visible = false
       this.confirmLoading = false
       this.keyword = ''
-      this.errorTypeId = ''
+      this.errorTypeNo = ''
       this.$emit('ok')
+    },
+    handleChange (selectedKeys, info) {
+      fetchErrorType({ id: selectedKeys }).then(res => {
+        this.errorTypeNo = res.data.no
+      })
     }
   }
 }

+ 108 - 225
src/views/repair/errortype/ErrorType.vue

@@ -1,260 +1,143 @@
 <template>
   <a-card :bordered="false">
-    <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.trim="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" style="margin-bottom: 8px;">
-      <a-button v-if="$auth('repairmanage-error-type-add')" type="primary" icon="plus" @click="$refs.baseModal.base()">新增</a-button>
-      <a-button style="margin-left: 8px" v-if="$auth('repairmanage-error-type-export')" type="primary" icon="download" @click="doExport">导出</a-button>
-      <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && $auth('repairmanage-error-type-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>
-          <a-divider type="vertical" />
-          <a v-if="$auth('repairmanage-error-type-edit')" @click="handleEdit(record)">修改</a>
-          <a-divider type="vertical" />
-          <a-popconfirm v-if="$auth('repairmanage-error-type-del')" title="是否要删除该条数据?" @confirm="batchDelete(record.id)">
-            <a>删除</a>
+    <a-row :gutter="8">
+      <a-col :span="5">
+        <div class="menu-button-group">
+          <a-button type="primary" @click="handleAdd">添加故障类别</a-button>
+          <a-popconfirm title="是否要删除所选故障类别?" @confirm="handleDelete()" v-show="deleteButtonShow">
+            <a-button type="primary" style="margin-left: 15px">删除</a-button>
           </a-popconfirm>
-          <a-divider type="vertical" />
-          <a @click="handleCopy(record)">复制</a>
-        </template>
-      </span>
-      <span slot="delFlag" slot-scope="text">
-        <badge
-          :status="DictCache.COLOR.DELFLAG[text]"
-          :text="delFlagMap[text]" />
-      </span>
-    </s-table>
-    <base-form ref="baseModal" @ok="handleOk"/>
-    <detail ref="detailModal"/>
+        </div>
+        <a-tree
+          @expand="onExpand"
+          :expandedKeys="expandedKeys"
+          :autoExpandParent="autoExpandParent"
+          @select="onSelect"
+          @rightClick="rightClick"
+          :selectedKeys="selectedKeys"
+          :treeData="treeData"
+        />
+      </a-col>
+      <a-col :span="19">
+        <a-card class="card" :title="title" :bordered="false">
+          <base-form
+            :detail="detail"
+            @ok="refresh">
+          </base-form>
+        </a-card>
+      </a-col>
+    </a-row>
   </a-card>
 </template>
 
 <script>
-import { STable, Ellipsis } from '@/components'
 import BaseForm from './modules/BaseForm'
-import Detail from './modules/Detail'
-import { getErrorTypePage, deleteErrorTypes, fetchErrorType, exportErrorType } from '@/api/repair/errortype'
+import { fetchErrorTypeTree, fetchErrorType, deleteErrorType } from '@/api/repair/errortype'
 
 export default {
-  name: 'ErrorTypeList',
+  name: 'ErrorType',
   components: {
-    STable,
-    Ellipsis,
-    BaseForm,
-    Detail
+    BaseForm
   },
   data () {
     return {
-      // 查询参数
-      queryParam: {
-      },
-      // 表头
-      columns: [
-        {
-          title: '序号',
-          dataIndex: 'index',
-          customRender: (text, record, index) => {
-            return `${(this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1}`
-          }
-        },
-        {
-          title: '故障代码',
-          dataIndex: 'no'
-        },
-        {
-          title: '名称',
-          dataIndex: 'name'
-        },
-        {
-          title: '类别',
-          dataIndex: 'type',
-          customRender: (text, record, index) => {
-            return this.BaseTool.Object.getField(this.typeMap, text)
-          }
-        },
-        {
-          title: '排序',
-          dataIndex: 'sort'
-        },
-        {
-          title: '上层类别类别',
-          dataIndex: 'parentId',
-          customRender: (text, record, index) => {
-            return record.parentName
-          }
-        },
-        {
-          title: '备注',
-          dataIndex: 'remark'
-        },
-        {
-          title: '是否删除',
-          dataIndex: 'delFlag',
-          scopedSlots: { customRender: 'delFlag' }
-        },
-        {
-          title: '操作',
-          key: 'action',
-          width: '200px',
-          align: 'center',
-          scopedSlots: { customRender: 'action' }
-        }
-      ],
-      // 下拉框map
-      typeMap: {},
-      delFlagMap: {},
-      // 加载数据方法 必须为 Promise 对象
-      loadData: parameter => {
-        parameter = {
-          ...parameter,
-          ...this.queryParam,
-          dataScope: {
-          }
-        }
-        return getErrorTypePage(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
+      openKeys: [''],
+      title: '添加故障类别',
+      selectedKeys: [],
+      treeData: [],
+      expandedKeys: [],
+      autoExpandParent: true,
+      deleteButtonShow: false,
+      importFlag: false,
+      rightSelectDept: {},
+      detail: {
+      }
     }
   },
   created () {
-    // 下拉框map
-    this.typeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBTYPE_TYPE)
-    this.delFlagMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.DELFLAG)
-    this.tableOption()
+    this.importFlag = false
+    this.rightSelectDept = {}
+    this.initErrorTypeTree()
   },
   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
-              }
-            })
-          }
+    initErrorTypeTree () {
+      const parameter = {
+      }
+      fetchErrorTypeTree(parameter).then(res => {
+        const treeData = res.data
+        this.setClass(treeData)
+        // 循环获取样式
+        this.treeData = treeData
+      })
+    },
+    setClass (treeData) {
+      treeData.forEach(item => {
+        if (this.BaseTool.Object.isNotBlank(item.clazz)) {
+          item['class'] = item.clazz
+        }
+        if (this.BaseTool.Object.isNotBlank(item.children) && item.children.length > 0) {
+          this.setClass(item.children)
         }
-        this.optionAlertShow = true
+      })
+    },
+    onSelect (selectedKeys, info) {
+      this.importFlag = false
+      this.rightSelectDept = {}
+      this.title = '编辑故障类别'
+      this.selectedKeys = selectedKeys
+      if (selectedKeys.length > 0) {
+        fetchErrorType({ id: selectedKeys }).then(res => {
+          this.detail = res.data
+          this.deleteButtonShow = true
+        })
       } else {
-        this.options = {
-          alert: false,
-          rowSelection: null
+        this.detail = {
+          type: 2
         }
-        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)
+    onExpand (expandedKeys) {
+      this.expandedKeys = expandedKeys
+      this.autoExpandParent = false
+    },
+    handleAdd () {
+      this.title = '添加故障类别'
+      if (this.selectedKeys.length > 0) {
+        fetchErrorType({ id: this.selectedKeys[0] }).then(res => {
+          this.detail = {
+            type: 2,
+            parentId: res.data.id,
+            parentName: res.data.name,
+            remark: res.data.no
+          }
+        })
       } else {
-        ids = [id]
+        this.detail = {
+          type: 2
+        }
       }
-      deleteErrorTypes(ids).then(res => {
-        this.$message.info('删除成功')
-        this.handleOk()
-        this.$refs.table.clearSelected()
-      })
-    },
-    handleEdit (record) {
-      fetchErrorType({ id: record.id }).then(res => {
-        const modal = this.$refs.baseModal
-        modal.base(res.data)
-      })
     },
-    handleView (record) {
-      fetchErrorType({ id: record.id }).then(res => {
-        const modal = this.$refs.detailModal
-        modal.base(res.data)
+    handleDelete () {
+      deleteErrorType({ id: this.selectedKeys[0] }).then(res => {
+        this.$message.info(`提示:删除成功 `)
+        this.refresh()
       })
     },
-    handleOk () {
-      this.$refs.table.refresh()
+    rightClick (info) {
+      this.importFlag = true
+      this.rightSelectDept = info.node.dataRef.item
     },
-    onSelectChange (selectedRowKeys, selectedRows) {
-      this.selectedRowKeys = selectedRowKeys
-      this.selectedRows = selectedRows
-    },
-    resetSearchForm () {
-      this.queryParam = {
-      }
-      this.$refs.table.refresh(true)
-    },
-    doExport () {
-      const parameter = {
-        ...this.queryParam
+    refresh () {
+      this.initErrorTypeTree()
+      this.detail = {
+        type: 2
       }
-      exportErrorType(parameter).then(file => {
-        this.BaseTool.UPLOAD.downLoadExportExcel(file)
-      })
-    },
-    handleCopy (record) {
-      fetchErrorType({ id: record.id }).then(res => {
-        const modal = this.$refs.baseModal
-        res.data.id = null
-        modal.base(res.data)
-      })
     }
   }
 }
 </script>
+<style>
+.tree-title-close-dept-future .ant-tree-title {
+  color: #c5baba;
+}
+</style>

+ 106 - 188
src/views/repair/errortype/modules/BaseForm.vue

@@ -1,211 +1,129 @@
 <template>
-  <a-modal
-    :title="modalTitle"
-    :width="800"
-    :visible="visible"
-    :confirmLoading="confirmLoading"
-    @cancel="handleCancel"
-  >
-    <a-form :form="form">
-
-      <a-form-item v-show="false" >
-        <a-input v-decorator="['id']" type="hidden"/>
-      </a-form-item>
+  <a-form @submit="handleSubmit" :form="form">
+    <a-form-item v-show="false" >
+      <a-input v-decorator="['id']" type="hidden"/>
+      <a-input v-decorator="['parentId']" type="hidden"/>
+    </a-form-item>
+    <a-form-item
+      label="父级名称"
+      :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+      :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
+      <a-input
+        v-decorator="['parentName']"
+        disabled/>
+    </a-form-item>
+    <a-form-item
+      label="父级编码"
+      :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+      :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
+      <a-input
+        v-decorator="['remark']"
+        disabled/>
+    </a-form-item>
+    <a-form-item
+      label="故障类别名称"
+      :required="true"
+      :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+      :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
+      <a-input
+        v-decorator="[
+          'name',
+          {rules: [{ required: true, message: '请输入存货名称' }]}
+        ]" />
+    </a-form-item>
+    <a-form-item
+      label="故障编码"
+      :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+      :wrapperCol="{lg: {span: 10}, sm: {span: 17} }"
+    >
+      <a-input
+        v-decorator="['no']"/>
+    </a-form-item>
 
-      <a-form-item
-        label="故障代码"
-        :labelCol="BaseTool.Constant.labelCol"
-        :wrapperCol="BaseTool.Constant.wrapperCol"
-      >
-        <a-input
-          v-decorator="['no', {rules: [{required: false, message: '编码不能为空'}]}]" />
-      </a-form-item>
-      <a-form-item
-        label="名称"
-        :labelCol="BaseTool.Constant.labelCol"
-        :wrapperCol="BaseTool.Constant.wrapperCol"
-      >
-        <a-input
-          v-decorator="['name', {rules: [{required: true, message: '名称不能为空'}]}]" />
-      </a-form-item>
-      <a-form-item
-        label="类别"
-        :labelCol="BaseTool.Constant.labelCol"
-        :wrapperCol="BaseTool.Constant.wrapperCol"
-      >
-        <a-select @change="handleTypeChange" v-decorator="['type', {initialValue: DictCache.VALUE.SBTYPE_TYPE.SON,rules: [{required: true, message: '类别不能为空'}]}]" placeholder="请选择">
-          <a-select-option
-            v-for="(label,value) in typeMap"
-            :key="value"
-            :label="label"
-            :value="parseInt(value)">{{ label }}
-          </a-select-option>
-        </a-select>
-      </a-form-item>
-      <a-form-item
-        label="排序"
-        :labelCol="BaseTool.Constant.labelCol"
-        :wrapperCol="BaseTool.Constant.wrapperCol"
-      >
-        <a-input-number
-          style="width: 100%"
-          :min="1"
-          v-decorator="['sort', {initialValue:1, rules: [{required: true, message: '排序不能为空'}]}]" />
-      </a-form-item>
-      <a-form-item
-        label="是否删除"
-        :labelCol="BaseTool.Constant.labelCol"
-        :wrapperCol="BaseTool.Constant.wrapperCol"
-      >
-        <a-select v-decorator="['delFlag', {initialValue:DictCache.VALUE.DELFLAG.NORMAL,rules: [{required: true, message: '是否删除不能为空'}]}]" placeholder="请选择">
-          <a-select-option
-            v-for="(label,value) in delFlagMap"
-            :key="value"
-            :label="label"
-            :value="parseInt(value)">{{ label }}
-          </a-select-option>
-        </a-select>
-      </a-form-item>
-      <a-form-item
-        label="上层类别"
-        :labelCol="BaseTool.Constant.labelCol"
-        :wrapperCol="BaseTool.Constant.wrapperCol"
-        v-show="isShowParent"
-      >
-        <a-tree-select
-          style="width: 100%"
-          :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
-          :treeData="treeData"
-          :treeNodeFilterProp="'title'"
-          :showSearch="true"
-          v-decorator="['parentId', {rules: [{required: isShowParent, message: '上层类别不能为空'}]}]"
-          placeholder="请选择"
-        >
-        </a-tree-select>
-      </a-form-item>
-      <a-form-item
-        label="备注"
-        :labelCol="BaseTool.Constant.labelCol"
-        :wrapperCol="BaseTool.Constant.wrapperCol"
-      >
-        <a-input
-          v-decorator="['remark', {rules: [{required: false, message: '备注不能为空'}]}]" />
-      </a-form-item>
-    </a-form>
-    <template slot="footer">
-      <a-button :loading="confirmLoading" type="primary" @click="save()">保存</a-button>
-    </template>
-  </a-modal>
+    <a-form-item
+      label="排序"
+      :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+      :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
+      <a-input
+        v-decorator="[
+          'sort'
+        ]"
+        type="number" />
+    </a-form-item>
+    <a-form-item
+      :wrapperCol="{ span: 24 }"
+      style="text-align: center"
+    >
+      <a-button htmlType="submit" :loading="loading" type="primary">提交</a-button>
+    </a-form-item>
+  </a-form>
 </template>
 
 <script>
 import pick from 'lodash.pick'
-import { addErrorType, updateErrorType, fetchErrorTypeTree } from '@/api/repair/errortype'
-
+import { addErrorType, updateErrorType } from '@/api/repair/errortype'
 export default {
-  name: 'BaseErrorType',
+  name: 'BaseDept',
   data () {
     return {
-      confirmLoading: false,
-      modalTitle: null,
-      form: this.$form.createForm(this),
-      visible: false,
-      // 下拉框map
-      typeMap: {},
-      delFlagMap: {},
-      treeData: [],
-      isShowParent: true
+      loading: false,
+      form: this.$form.createForm(this)
     }
   },
   props: {
+    detail: {
+      type: Object,
+      default: () => ({})
+    }
   },
   created () {
-    // 下拉框map
-    this.typeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBTYPE_TYPE)
-    this.delFlagMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.DELFLAG)
   },
-  methods: {
-    base (record) {
-      this.setTree(record)
-      this.visible = true
-      // 如果是空标识添加
-      const { form: { setFieldsValue } } = this
-      if (this.BaseTool.Object.isBlank(record)) {
-        this.modalTitle = '添加'
-        return
-      }
-      this.modalTitle = '编辑'
-      if (this.BaseTool.Object.isBlank(record.id)) {
-        this.modalTitle = '复制'
-      }
-      // 日期处理
+  watch: {
+    detail (newV, oldV) { // watch监听props里status的变化,然后执行操作
+      this.form.resetFields()
+      console.log(newV)
       this.$nextTick(() => {
-        setFieldsValue(Object.assign(pick(record, [
-          'id',
-          'no',
-          'name',
-          'type',
-          'sort',
-          'delFlag',
-          'parentId',
-          'remark'
-        ])))
+        this.form.setFieldsValue(pick(this.detail, ['id', 'parentId', 'parentName', 'name', 'sort', 'no', 'remark']))
       })
-      this.isShowParent = record.type === this.DictCache.VALUE.SBTYPE_TYPE.SON
-    },
-    save () {
-      const { form: { validateFieldsAndScroll } } = this
-      this.confirmLoading = true
-      validateFieldsAndScroll((errors, values) => {
-        if (errors) {
-          this.confirmLoading = false
-          return
-        }
-        // 日期处理
-        if (this.BaseTool.String.isBlank(values.id)) {
-          addErrorType(values)
-            .then(() => {
-              this.handleCancel(values)
-            }).catch(() => {
-              this.confirmLoading = false
-            })
-        } else {
-          updateErrorType(values)
-            .then(() => {
-              this.handleCancel(values)
-            }).catch(() => {
-              this.confirmLoading = false
-            })
+    }
+  },
+  methods: {
+    handleSubmit (e) {
+      e.preventDefault()
+      const { form: { validateFields } } = this
+      validateFields((errors, values) => {
+        if (!errors) {
+          this.loading = true
+          const id = values.id
+          values = {
+            ...values
+          }
+          if (id) {
+            updateErrorType(values)
+              .then(() => {
+                setTimeout(() => {
+                  this.loading = false
+                  this.$message.info(`提示:修改成功 `)
+                  this.$emit('ok', values)
+                }, 1500)
+              }).catch(() => {
+                this.loading = false
+              })
+          } else {
+            addErrorType(values)
+              .then(() => {
+                setTimeout(() => {
+                  this.loading = false
+                  this.$message.info(`提示:添加成功 `)
+                  this.$emit('ok', values)
+                }, 1500)
+              }).catch(() => {
+                this.loading = false
+              })
+          }
         }
       })
-    },
-    handleCancel (values) {
-      this.visible = false
-      this.confirmLoading = false
-      this.form.resetFields()
-      if (this.BaseTool.Object.isNotBlank(values)) {
-        this.$emit('ok', values)
-      }
-    },
-    /**
-     * 设置类别树
-     */
-    setTree (record = {}) {
-      fetchErrorTypeTree({ id: record.id }).then(res => {
-        console.log(res.data)
-        this.treeData = res.data
-      })
-    },
-    handleTypeChange (val) {
-      const { form: { setFieldsValue } } = this
-      this.isShowParent = val === this.DictCache.VALUE.SBTYPE_TYPE.SON
-      this.$nextTick(() => {
-        setFieldsValue({
-          'parentId': ''
-        })
-      })
     }
-
   }
 }
 </script>

+ 17 - 59
src/views/repair/repair/modules/BaseForm.vue

@@ -32,14 +32,17 @@
             :labelCol="BaseTool.Constant.labelCol"
             :wrapperCol="BaseTool.Constant.wrapperCol"
           >
-            <a-input
+            <a-tree-select
+              style="width: 100%"
+              :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+              :treeData="treeData"
+              :replaceFields="{value:'no'}"
+              :treeNodeFilterProp="'title'"
+              :showSearch="true"
               v-decorator="['errorTypeId', {rules: [{required: true, message: '故障类别不能为空'}]}]"
-               />
-<!--            <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>-->
+              placeholder="请选择"
+            >
+            </a-tree-select>
           </a-form-item>
         </row-item>
         <row-item>
@@ -83,16 +86,6 @@
             </a-upload>
           </a-form-item>
         </row-item>
-        <!--        <row-item>
-          <a-form-item
-            label='方案图'
-            :labelCol='BaseTool.Constant.labelCol'
-            :wrapperCol='BaseTool.Constant.wrapperCol'
-          >
-            <a-input
-              v-decorator="['imageList', {rules: [{required: true, message: '维修意见图不能为空'}]}]" />
-          </a-form-item>
-        </row-item>-->
         <row-item>
           <a-form-item
             label="维修方案"
@@ -109,44 +102,7 @@
               <a-button> <a-icon type="upload" /> 上传文件 </a-button>
             </a-upload>
           </a-form-item>
-
-          <!--          <a-form-item
-            label='维修方案文件'
-            :labelCol='BaseTool.Constant.labelCol'
-            :wrapperCol='BaseTool.Constant.wrapperCol'
-          >
-            <a-input
-              v-decorator="['opinionFile', {rules: [{required: true, message: '维修方案文件不能为空'}]}]" />
-          </a-form-item>-->
         </row-item>
-        <!--<row-item>
-          <a-form-item
-            label='状态保留字段'
-            :labelCol='BaseTool.Constant.labelCol'
-            :wrapperCol='BaseTool.Constant.wrapperCol'
-          >
-            <a-input-number
-              style='width: 100%'
-              :min='0'
-              :formatter='BaseTool.Amount.formatter'
-              :parser='BaseTool.Amount.parser'
-              v-decorator="['status', {rules: [{required: true, message: '状态保留字段不能为空'}]}]" />
-          </a-form-item>
-        </row-item>
-        <row-item>
-          <a-form-item
-            label='删除标识 0 正常 1 删除'
-            :labelCol='BaseTool.Constant.labelCol'
-            :wrapperCol='BaseTool.Constant.wrapperCol'
-          >
-            <a-input-number
-              style='width: 100%'
-              :min='0'
-              :formatter='BaseTool.Amount.formatter'
-              :parser='BaseTool.Amount.parser'
-              v-decorator="['deleteFlag', {rules: [{required: true, message: '删除标识 0 正常 1 删除不能为空'}]}]" />
-          </a-form-item>
-        </row-item>-->
       </row-list>
     </a-form>
     <template slot="footer">
@@ -157,10 +113,11 @@
 
 <script>
 import pick from 'lodash.pick'
-import { addRepairScheme, updateRepairScheme, getRepairType } from '@/api/repair/repair'
+import { addRepairScheme, updateRepairScheme } from '@/api/repair/repair'
 import { uploadUrl } from '@/api/upms/file'
 import Vue from 'vue'
 import { ACCESS_TOKEN } from '@/store/mutation-types'
+import { fetchErrorTypeTree } from '@/api/repair/errortype'
 
 export default {
   name: 'BaseRepairScheme',
@@ -172,6 +129,7 @@ export default {
       visible: false,
       uploadUrl: uploadUrl,
       errorType: [],
+      treeData: [],
       defaultApplicationFileList: [],
       applicationFileList: [],
       defaultFileList: [],
@@ -187,14 +145,14 @@ export default {
   },
   created () {
     // 下拉框map
-
+    fetchErrorTypeTree().then(res => {
+      // 循环获取样式
+      this.treeData = res.data
+    })
   },
   methods: {
     base (record) {
       this.visible = true
-      getRepairType().then(res => {
-        this.errorType = res.data
-      })
       console.log(record)
       this.defaultFileList = []
       this.applicationFileList = []