408249787 před 2 roky
rodič
revize
7a591a7bcd

+ 4 - 1
src/utils/dict.js

@@ -311,7 +311,10 @@ DictCache.TYPE = {
   CUSTOM_FIELD_TEMPLATE_TYPE: 'CUSTOM_FIELD_TEMPLATE_TYPE',
   CUSTOM_FIELD_TEMPLATE_FILED_TYPE: 'CUSTOM_FIELD_TEMPLATE_FILED_TYPE',
   PARAMETER_TYPE: 'PARAMETER_TYPE',
-  REPAIR_HOLIDAY: 'REPAIR_HOLIDAY' // 节假日列表
+  REPAIR_HOLIDAY: 'REPAIR_HOLIDAY', // 节假日列表
+  // 隐患管理
+  PROFESSOR_TYPE: 'PROFESSOR_TYPE',
+  CHECK_LEVEL: 'CHECK_LEVEL'
 
 }
 DictCache.CODE = {

+ 79 - 55
src/views/hidden/hidden/HiddenDanger.vue

@@ -1,21 +1,21 @@
 <template>
-  <a-card :bordered='false'>
-    <div v-show='visible'>
-      <div class='table-page-search-wrapper' @keyup.enter='handleEnter'>
-        <a-form layout='inline'>
-          <a-row :gutter='48' v-show='advanced'>
-            <a-col :md='6' :sm='24'>
-              <a-form-item label='关键字'>
-                <a-input v-model='queryParam.keyword' placeholder='请输入名称/类型名称' />
+  <a-card :bordered="false">
+    <div v-show="visible">
+      <div class="table-page-search-wrapper" @keyup.enter="handleEnter">
+        <a-form layout="inline">
+          <a-row :gutter="48" v-show="advanced">
+            <a-col :md="6" :sm="24">
+              <a-form-item label="关键字">
+                <a-input v-model="queryParam.keyword" placeholder="请输入名称/类型名称" />
               </a-form-item>
             </a-col>
           </a-row>
-          <a-row :gutter='48'>
-            <a-col :md='24 || 24' :sm='24' style='text-align: right'>
-              <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>
-                <a @click='()=>{ this.advanced = !this.advanced}' style='margin-left: 8px'>
+          <a-row :gutter="48">
+            <a-col :md="24 || 24" :sm="24" style="text-align: right">
+              <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>
+                <a @click="()=>{ this.advanced = !this.advanced}" style="margin-left: 8px">
                   {{ advanced ? '收起' : '展开' }}
                   <a-icon :type="advanced ? 'up' : 'down'" />
                 </a>
@@ -25,24 +25,28 @@
         </a-form>
       </div>
 
-      <div class='table-operator' style='margin-bottom: 8px;'>
+      <div class="table-operator" style="margin-bottom: 8px;">
         <a-row>
-          <a-col :md='16'>
-            <a-button v-if="$auth('hidden-dangers-add')" type='primary' icon='plus' @click='handleAdd()'>新增</a-button>
-            <a-button style='margin-left: 8px' v-if="$auth('hidden-dangers-export')" type='primary' icon='download'
-                      @click='doExport'>导出
+          <a-col :md="16">
+            <a-button v-if="$auth('hidden-dangers-add')" type="primary" icon="plus" @click="handleAdd()">新增</a-button>
+            <a-button
+              style="margin-left: 8px"
+              v-if="$auth('hidden-dangers-export')"
+              type="primary"
+              icon="download"
+              @click="doExport">导出
             </a-button>
             <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && $auth('hidden-dangers-del')">
-              <a-menu slot='overlay'>
-                <a-popconfirm title='是否要删除所选数据?' @confirm='batchDelete()'>
-                  <a-menu-item key='1'>
-                    <a-icon type='delete' />
+              <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-button style="margin-left: 8px">
                 批量操作
-                <a-icon type='down' />
+                <a-icon type="down" />
               </a-button>
             </a-dropdown>
           </a-col>
@@ -50,32 +54,34 @@
       </div>
 
       <s-table
-        ref='table'
-        size='default'
-        rowKey='id'
-        :columns='columns'
-        :data='loadData'
-        :alert='options.alert'
-        :rowSelection='options.rowSelection'
-        showPagination='auto'
+        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'>
+        <span slot="action" slot-scope="record">
           <template>
-            <a @click='handleView(record)'>查看</a>
+            <a @click="handleView(record)">查看</a>
             <operation-button
-              v-if="$auth('hidden-hiddens-edit')" @click='handleEdit(record)'
+              v-if="$auth('hidden-hiddens-edit')"
+              @click="handleEdit(record)"
             >修改</operation-button>
             <operation-button
               v-if="$auth('hidden-hiddens-del')"
-              :type='2'
-              title='是否要删除该条数据?'
-              @confirm='batchDelete(record.id)'>删除</operation-button>
+              :type="2"
+              title="是否要删除该条数据?"
+              @confirm="batchDelete(record.id)">删除</operation-button>
           </template>
         </span>
       </s-table>
     </div>
-    <base-form ref='baseModal' @ok='handleOk' />
-    <detail ref='detailModal' @ok='handleOk' />
+    <base-form ref="baseModal" @ok="handleOk" />
+    <detail ref="detailModal" @ok="handleOk" />
   </a-card>
 </template>
 
@@ -93,7 +99,7 @@ export default {
     BaseForm,
     Detail
   },
-  data() {
+  data () {
     return {
       advanced: false,
       visible: true,
@@ -104,68 +110,84 @@ export default {
         {
           title: '序号',
           dataIndex: 'index',
+          width: '70px',
           customRender: (text, record, index) => {
             return `${(this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1}`
           }
         },
         {
           title: '设备',
+          width: '150px',
           dataIndex: 'sbId'
         },
         {
           title: '设备位号',
+          width: '150px',
           dataIndex: 'positionNo'
         },
         {
           title: '检查区域',
+          width: '150px',
           dataIndex: 'positionId'
         },
         {
           title: '存在问题',
+          width: '150px',
           dataIndex: 'existsQuestion'
         },
         {
           title: '可能风险',
+          width: '150px',
           dataIndex: 'hiddenRisk'
         },
         {
           title: '整改建议',
+          width: '150px',
           dataIndex: 'opition'
         },
         {
           title: '整改责任人',
+          width: '150px',
           dataIndex: 'dutyUser'
         },
         {
           title: '属地负责人',
+          width: '150px',
           dataIndex: 'areaUser'
         },
         {
           title: '备注',
+          width: '150px',
           dataIndex: 'remark'
         },
         {
           title: '添加人',
+          width: '150px',
           dataIndex: 'createdUserName'
         },
         {
           title: '完成状态 closed,delay,on going',
+          width: '150px',
           dataIndex: 'status'
         },
         {
           title: '专业类型 仪表 电气 机械',
+          width: '150px',
           dataIndex: 'professorType'
         },
         {
           title: '检查级别  公司级-部门组织-专业自查',
+          width: '150px',
           dataIndex: 'checkLevel'
         },
         {
           title: '整改时限',
+          width: '150px',
           dataIndex: 'requireTime'
         },
         {
           title: '添加时间',
+          width: '150px',
           dataIndex: 'createdTime'
         },
         {
@@ -197,7 +219,8 @@ export default {
 
       options: {
         alert: {
-          show: true, clear: () => {
+          show: true,
+          clear: () => {
             this.selectedRowKeys = []
           }
         },
@@ -209,16 +232,17 @@ export default {
       optionAlertShow: false
     }
   },
-  created() {
+  created () {
     // 下拉框map
     this.tableOption()
   },
   methods: {
-    tableOption() {
+    tableOption () {
       if (!this.optionAlertShow) {
         this.options = {
           alert: {
-            show: true, clear: () => {
+            show: true,
+            clear: () => {
               this.selectedRowKeys = []
             }
           },
@@ -242,7 +266,7 @@ export default {
         this.optionAlertShow = false
       }
     },
-    batchDelete(id) {
+    batchDelete (id) {
       let ids = []
       if (this.BaseTool.String.isBlank(id)) {
         const length = this.selectedRows.length
@@ -260,38 +284,38 @@ export default {
         this.$refs.table.clearSelected()
       })
     },
-    handleAdd() {
+    handleAdd () {
       this.visible = false
       const modal = this.$refs.baseModal
       modal.base()
     },
-    handleEdit(record) {
+    handleEdit (record) {
       this.visible = false
       fetchHiddenDanger({ id: record.id }).then(res => {
         const modal = this.$refs.baseModal
         modal.base(res.data)
       })
     },
-    handleView(record) {
+    handleView (record) {
       this.visible = false
       fetchHiddenDanger({ id: record.id }).then(res => {
         const modal = this.$refs.detailModal
         modal.base(res.data)
       })
     },
-    handleOk(values) {
+    handleOk (values) {
       this.visible = true
       this.$refs.table.refresh()
     },
-    onSelectChange(selectedRowKeys, selectedRows) {
+    onSelectChange (selectedRowKeys, selectedRows) {
       this.selectedRowKeys = selectedRowKeys
       this.selectedRows = selectedRows
     },
-    resetSearchForm() {
+    resetSearchForm () {
       this.queryParam = {}
       this.$refs.table.refresh(true)
     },
-    doExport() {
+    doExport () {
       const parameter = {
         ...this.queryParam
       }
@@ -299,7 +323,7 @@ export default {
         this.BaseTool.Util.downLoadExportExcel(file)
       })
     },
-    handleEnter() {
+    handleEnter () {
       this.$refs.table.refresh(true)
     }
   }

+ 244 - 93
src/views/hidden/hidden/modules/BaseForm.vue

@@ -1,37 +1,57 @@
 <template>
-  <a-card :bordered='false' v-show='visible' class='card' :title='modalTitle'>
-    <a-row :gutter='48' slot='extra'>
-      <a-col :md='48' :sm='48'>
-        <span class='table-page-search-submitButtons' style='float: right'>
-          <a-button :loading='confirmLoading' type='primary' @click='save()'>保存</a-button>
-          <a-button style='margin-left: 8px' type='default' @click='handleCancel()'>返回</a-button>
+  <a-card :bordered="false" v-show="visible" class="card" :title="modalTitle">
+    <a-row :gutter="48" slot="extra">
+      <a-col :md="48" :sm="48">
+        <span class="table-page-search-submitButtons" style="float: right">
+          <a-button :loading="confirmLoading" type="primary" @click="save()">保存</a-button>
+          <a-button style="margin-left: 8px" type="default" @click="handleCancel()">返回</a-button>
         </span>
       </a-col>
     </a-row>
-    <a-form :form='form'>
+    <a-form :form="form">
 
-      <a-form-item v-show='false'>
-        <a-input v-decorator="['id']" type='hidden' />
+      <a-form-item v-show="false">
+        <a-input v-decorator="['id']" type="hidden" />
+        <a-input v-decorator="['sbId']" type="hidden"/>
       </a-form-item>
 
-      <row-list :col='2'>
+      <row-list :col="2">
         <row-item>
 
           <a-form-item
-            label='设备'
-            :labelCol='BaseTool.Constant.labelCol'
-            :wrapperCol='BaseTool.Constant.wrapperCol'
+            label="检查区域"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-cascader
+              :options="sbPositionList"
+              :load-data="loadData"
+              placeholder="请选择"
+              change-on-select
+              v-decorator="['positionId', {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
-              v-decorator="['sbId', {rules: [{required: true, message: '设备不能为空'}]}]" />
+              style="width: 70%"
+              disabled
+              v-decorator="['sbName', {rules: [{required: true, message: '设备不能为空'}]}]" />
+            <a-button style="width: 30%" type="primary" @click="handleSbSelect">选择</a-button>
           </a-form-item>
         </row-item>
         <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
               v-decorator="['positionNo', {rules: [{required: true, message: '设备位号不能为空'}]}]" />
@@ -40,159 +60,213 @@
         <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
-              v-decorator="['positionId', {rules: [{required: true, message: '检查区域不能为空'}]}]" />
+              v-decorator="['dutyUser', {rules: [{required: true, message: '整改责任人不能为空'}]}]" />
           </a-form-item>
         </row-item>
         <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
+              v-decorator="['areaUser', {rules: [{required: true, message: '属地负责人不能为空'}]}]" />
           </a-form-item>
         </row-item>
         <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
+              v-decorator="['remark', {rules: [{required: true, message: '备注不能为空'}]}]" />
           </a-form-item>
         </row-item>
+        <!-- <row-item>
+
+          <a-form-item
+            label="完成状态 closed,delay,on going"
+            :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: '完成状态 closed,delay,on going不能为空'}]}]" />
+          </a-form-item>
+        </row-item> -->
         <row-item>
 
           <a-form-item
-            label='整改建议'
-            :labelCol='BaseTool.Constant.labelCol'
-            :wrapperCol='BaseTool.Constant.wrapperCol'
+            label="专业类型 仪表 电气 机械"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
           >
+            <a-select v-decorator="['professorType', {rules: [{required: true, message: '专业类型不能为空'}]}]" placeholder="请选择">
+              <a-select-option
+                v-for="(label,value) in professorTypeMap"
+                :key="value"
+                :label="label"
+                :value="value">{{ label }}
+              </a-select-option>
+            </a-select>
           </a-form-item>
         </row-item>
         <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
-              v-decorator="['dutyUser', {rules: [{required: true, message: '整改责任人不能为空'}]}]" />
+            <a-select v-decorator="['checkLevel', {rules: [{required: true, message: '检查级别不能为空'}]}]" placeholder="请选择">
+              <a-select-option
+                v-for="(label,value) in checkLevelMap"
+                :key="value"
+                :label="label"
+                :value="value">{{ label }}
+              </a-select-option>
+            </a-select>
           </a-form-item>
         </row-item>
         <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
-              v-decorator="['areaUser', {rules: [{required: true, message: '属地负责人不能为空'}]}]" />
+            <a-date-picker
+              showTime
+              style="width: 100%"
+              :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
+              v-decorator="['requireTime', {rules: [{required: true, message: '整改时限不能为空'}]}]" />
           </a-form-item>
         </row-item>
         <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
-              v-decorator="['remark', {rules: [{required: true, message: '备注不能为空'}]}]" />
+            <a-textarea v-decorator="['existsQuestion']" :rows="4" />
           </a-form-item>
         </row-item>
         <row-item>
 
           <a-form-item
-            label='完成状态 closed,delay,on going'
-            :labelCol='BaseTool.Constant.labelCol'
-            :wrapperCol='BaseTool.Constant.wrapperCol'
+            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: '完成状态 closed,delay,on going不能为空'}]}]" />
+            <a-textarea v-decorator="['hiddenRisk']" :rows="4" />
           </a-form-item>
         </row-item>
         <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-number
-              style='width: 100%'
-              :min='0'
-              :formatter='BaseTool.Amount.formatter'
-              :parser='BaseTool.Amount.parser'
-              v-decorator="['professorType', {rules: [{required: true, message: '专业类型 仪表 电气 机械不能为空'}]}]" />
+            <a-textarea v-decorator="['opition']" :rows="4" />
           </a-form-item>
         </row-item>
         <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-number
-              style='width: 100%'
-              :min='0'
-              :formatter='BaseTool.Amount.formatter'
-              :parser='BaseTool.Amount.parser'
-              v-decorator="['checkLevel', {rules: [{required: true, message: '检查级别  公司级-部门组织-专业自查不能为空'}]}]" />
+            <a-upload
+              :action="uploadUrl"
+              :multiple="true"
+              list-type="picture"
+              :file-list="this.defaultApplicationFileList"
+              @change="handleApplicationFileChange"
+              accept="image/*"
+              :headers="headers"
+            >
+              <a-button> <a-icon type="upload" /> 上传图片 </a-button>
+            </a-upload>
           </a-form-item>
         </row-item>
         <row-item>
-
           <a-form-item
-            label='整改时限'
-            :labelCol='BaseTool.Constant.labelCol'
-            :wrapperCol='BaseTool.Constant.wrapperCol'
+            label="上传文件"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
           >
-            <a-date-picker
-              showTime
-              style='width: 100%'
-              :format='BaseTool.Date.PICKER_NORM_DATE_PATTERN'
-              v-decorator="['requireTime', {rules: [{required: true, message: '整改时限不能为空'}]}]" />
+            <a-upload
+              :action="uploadUrl"
+              :multiple="true"
+              :file-list="defaultReportFileList"
+              @change="handleCheckFileChange"
+              :headers="headers"
+            >
+              <a-button> <a-icon type="upload" /> 上传文件 </a-button>
+            </a-upload>
           </a-form-item>
         </row-item>
       </row-list>
     </a-form>
+    <sb-info-select-modal ref="sbInfoSelectModal" @selected="handleSbSelectd"/>
   </a-card>
 </template>
 
 <script>
 import pick from 'lodash.pick'
 import { addHiddenDanger, updateHiddenDanger } from '@/api/hidden/hidden-danger'
-
+import { getSbPositions } from '@/api/repair/application-form'
+import SbInfoSelectModal from '@/views/sb/info/modules/SbInfoSelectModal'
+import { uploadUrl } from '@/api/upms/file'
+import Vue from 'vue'
+import { ACCESS_TOKEN } from '@/store/mutation-types'
 export default {
   name: 'BaseHiddenDanger',
-  data() {
+  components: {
+    SbInfoSelectModal
+  },
+  data () {
     return {
       confirmLoading: false,
       modalTitle: null,
       form: this.$form.createForm(this),
-      visible: false
+      visible: false,
+      sbPositionList: [],
       // 下拉框map
+      professorTypeMap: {},
+      checkLevelMap: {},
+      headers: {
+        Authorization: 'Bearer ' + Vue.ls.get(ACCESS_TOKEN)
+      },
+      uploadUrl: uploadUrl,
+      beforeImageList: [],
+      defaultApplicationFileList: [],
+      defaultReportFileList: [],
+      fileList: [] // 报修图片
     }
   },
   props: {},
-  created() {
+  created () {
     // 下拉框map
+    this.professorTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.PROFESSOR_TYPE)
+    this.checkLevelMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.CHECK_LEVEL)
+    this.getSbPositions()
   },
   methods: {
-    base(record) {
+    base (record) {
       this.visible = true
       // 如果是空标识添加
       if (this.BaseTool.Object.isBlank(record)) {
@@ -200,6 +274,10 @@ export default {
         return
       }
       this.modalTitle = '编辑'
+      this.beforeImageList = record.beforeImageList
+      this.fileList = record.fileList
+      this.defaultApplicationFileList = this.BaseTool.UPLOAD.transImg(this.beforeImageList)
+      this.defaultReportFileList = this.BaseTool.UPLOAD.transImg(this.fileList)
       const { form: { setFieldsValue } } = this
       // 日期处理
       record.requireTime = this.BaseTool.Moment(record.requireTime, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
@@ -222,7 +300,7 @@ export default {
         ])))
       })
     },
-    save() {
+    save () {
       const { form: { validateFieldsAndScroll } } = this
       this.confirmLoading = true
       validateFieldsAndScroll((errors, values) => {
@@ -231,27 +309,100 @@ export default {
           return
         }
         // 日期处理
+        values.fileList = this.fileList
+        values.beforeImageList = this.beforeImageList
         values.requireTime = this.BaseTool.Date.formatter(values.requireTime, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
+        console.log(values)
         if (this.BaseTool.String.isBlank(values.id)) {
           addHiddenDanger(values)
             .then(() => {
               this.handleCancel(values)
             }).catch(() => {
-            this.confirmLoading = false
-          })
+              this.confirmLoading = false
+            })
         } else {
           updateHiddenDanger(values)
             .then(() => {
               this.handleCancel(values)
             }).catch(() => {
-            this.confirmLoading = false
-          })
+              this.confirmLoading = false
+            })
         }
       })
     },
-    handleCancel(values) {
+    getSbPositions (parentId) {
+      getSbPositions({ parentId }).then(res => {
+        console.log(res)
+        this.sbPositionList = res.data.map(item => {
+          item = {
+            label: item.name,
+            value: item.name,
+            id: item.id,
+            isLeaf: false
+          }
+          return item
+        })
+      })
+    },
+    loadData (selectedOptions) {
+      console.log(selectedOptions)
+      const targetOption = selectedOptions[selectedOptions.length - 1]
+      targetOption.loading = true
+      getSbPositions({ parentId: targetOption.id }).then(res => {
+        targetOption.loading = false
+        targetOption.children = res.data.map(item => {
+          item = {
+            label: item.name,
+            value: item.name
+          }
+          return item
+        })
+        this.sbPositionList = [...this.sbPositionList]
+      })
+    },
+    handleSbSelect () {
+      this.$refs.sbInfoSelectModal.base({}, {})
+    },
+    handleSbSelectd (keys, rows) {
+      const [ key ] = keys
+      const [ row ] = rows
+      const { form: { setFieldsValue } } = this
+      this.sbId = key
+      // 日期处理
+      console.log(rows)
+      this.$nextTick(() => {
+        setFieldsValue(Object.assign({
+          'sbId': key,
+          'sbName': row.name,
+          'positionNo': row.positionNo
+        }))
+      })
+    },
+    handleCheckFileChange (info) {
+      this.defaultReportFileList = info.fileList
+      this.fileList = this.setFileList(info, 32)
+    },
+    handleApplicationFileChange (info) {
+      this.defaultApplicationFileList = info.fileList
+      this.beforeImageList = this.setFileList(info, 11)
+    },
+    setFileList (info, type) {
+      const file = info.file
+      const fileList = info.fileList
+      if (file.status === 'done') {
+        return this.BaseTool.UPLOAD.getUploadFileDTO(fileList, type)
+      } else if (file.status === 'removed') {
+        return this.BaseTool.UPLOAD.getUploadFileDTO(fileList, type)
+      } else if (file.status === 'error') {
+        this.$message.error('上传失败')
+        return []
+      }
+    },
+    handleCancel (values) {
       this.visible = false
       this.confirmLoading = false
+      this.beforeImageList = []
+      this.defaultApplicationFileList = []
       this.form.resetFields()
       if (this.BaseTool.Object.isNotBlank(values)) {
         this.$emit('ok', values)

+ 32 - 10
src/views/repair/application-form/modules/BigRepairForm.vue

@@ -12,15 +12,33 @@
         <a-input v-decorator="['id']" type="hidden"/>
         <a-input v-decorator="['category']" type="hidden"/>
       </a-form-item>
-      <row-item>
-        <a-form-item
-          label="申请原因"
-          :labelCol="BaseTool.Constant.labelCol2"
-          :wrapperCol="BaseTool.Constant.wrapperCol2"
-        >
-          <a-textarea v-decorator="['remark']"/>
-        </a-form-item>
-      </row-item>
+      <row-list>
+        <row-item >
+          <a-form-item
+            label="生产审核人"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select
+              v-decorator="['produceVerifyUserId', {rules: [{required: true, message: '生产审核人不能为空'}]}]"
+              placeholder="请选择">
+              <a-select-option
+                v-for="item in userMap"
+                :key="item.userId"
+                :label="item.realName"
+                :value="item.userId">{{ item.realName }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+      </row-list>
+      <a-form-item
+        label="申请原因"
+        :labelCol="BaseTool.Constant.labelCol2"
+        :wrapperCol="BaseTool.Constant.wrapperCol2"
+      >
+        <a-textarea v-decorator="['remark']"/>
+      </a-form-item>
     </a-form>
     <template slot="footer">
       <a-button :loading="confirmLoading" type="primary" @click="save()">保存</a-button>
@@ -30,7 +48,7 @@
 
 <script>
 import pick from 'lodash.pick'
-import { applyBigRepair } from '@/api/repair/application-form'
+import { applyBigRepair, getProducerUser } from '@/api/repair/application-form'
 
 export default {
   name: 'ReportUpForm',
@@ -39,6 +57,7 @@ export default {
       model: null,
       confirmLoading: false,
       modalTitle: null,
+      userMap: [],
       form: this.$form.createForm(this),
       visible: false,
       chooseType: null,
@@ -54,6 +73,9 @@ export default {
   },
   created () {
     // 下拉框map
+    getProducerUser().then(res => {
+      this.userMap = res.data
+    })
   },
   methods: {
     base (record) {