hfxc226 il y a 3 ans
Parent
commit
a235f1f32d

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

@@ -13,7 +13,7 @@
             <a-button v-if="$auth('repair-application-forms-out') && (DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING >= model.status) && model.type != 2" style="margin-left: 8px" type="primary" @click="handleOut">委外</a-button>
             <a-button v-if="$auth('repair-application-forms-dispatch') && DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.REBACK === model.status" style="margin-left: 8px" type="primary" @click="handleDispatch">转派</a-button>
             <a-button v-if="$auth('repair-application-forms-finish') && DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING === model.status" style="margin-left: 8px" type="primary" @click="handleFinish()">完成</a-button>
-            <a-button v-if="$auth('repair-application-forms-edit')" style="margin-left: 8px" type="primary" @click="handleFinish()">修改</a-button>
+            <a-button v-if="$auth('repair-application-forms-edit')" style="margin-left: 8px" type="default" @click="handleFinish()">修改</a-button>
             <a-popconfirm v-if="DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.WAIT_SUBMIT === model.status" title="是否要提交审核该条数据?" @confirm="handleExamine">
               <a-button style="margin-left: 8px" type="primary">提交审核</a-button>
             </a-popconfirm>

+ 3 - 1
src/views/repair/application-form/modules/EditForm.vue

@@ -37,6 +37,7 @@
             :wrapperCol="BaseTool.Constant.wrapperCol"
           >
             <a-date-picker
+              showTime
               v-decorator="['repairStartTime']"
               style="width: 100%"
               :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN"
@@ -51,6 +52,7 @@
           >
             <a-date-picker
               v-decorator="['repairEndTime']"
+              showTime
               style="width: 100%"
               :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN"
             />
@@ -168,7 +170,7 @@ export default {
         values.repairStartTime = this.BaseTool.Date.formatter(values.repairStartTime, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
         values.repairEndTime = this.BaseTool.Date.formatter(values.repairEndTime, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
         changeApplicationForm(values).then(() => {
-          this.$message.info('维修完成,请完成后续维修报告,完成后提交审核;')
+          this.$message.info('工单已修改。')
           this.handleCancel(values)
         }).catch(() => {
           this.confirmLoading = false

+ 1 - 0
src/views/repair/application-form/modules/FinishForm.vue

@@ -36,6 +36,7 @@
             :wrapperCol="BaseTool.Constant.wrapperCol"
           >
             <a-date-picker
+              showTime
               v-decorator="['repairEndTime']"
               style="width: 100%"
               :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN"

+ 9 - 1
src/views/sb/measure/MeasureSbInfo.vue

@@ -121,6 +121,7 @@
     <import-form-update ref="importModalUpdate" @ok="handleOk"/>
     <preview-modal ref="previewModal"/>
     <import-form-add ref="importModal" @ok="handleOk"/>
+    <detail-sb-measure ref="detailSbMeasureModal" @ok="handleOk"/>
   </a-card>
 
 </template>
@@ -141,6 +142,7 @@ import {
 import { fetchSbTypeTree } from '@/api/sb/type'
 import ImportFormAdd from './modules/ImportFormAdd'
 import ImportFormUpdate from './modules/ImportFormUpdate'
+import DetailSbMeasure from '@/views/sb/measurelog/modules/DetailSbCheck'
 
 export default {
   name: 'MeasureSbInfoList',
@@ -152,7 +154,8 @@ export default {
     DownloadModal,
     PreviewModal,
     ImportFormAdd,
-    ImportFormUpdate
+    ImportFormUpdate,
+    DetailSbMeasure
   },
   props: {
     seatNumber: {
@@ -469,6 +472,11 @@ export default {
       this.visible = false
       this.$refs.baseModal.base()
     },
+    handleMeasure (record) {
+      this.visible = false
+      const modal = this.$refs.detailSbMeasureModal
+      modal.base(record)
+    },
     handleView (record) {
       fetchSbInfo({ id: record.id }).then(res => {
         this.visible = false

+ 430 - 0
src/views/sb/measure/modules/MeasureSbInfoSelectModal.vue

@@ -0,0 +1,430 @@
+<template>
+  <a-modal
+    :title="modalTitle"
+    :width="1300"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    class="ant-modal2"
+    @cancel="handleCancel"
+  >
+    <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="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">
+      </div>
+
+      <s-table
+        ref="table"
+        size="default"
+        rowKey="id"
+        :columns="columns"
+        :data="loadData"
+        :alert="options.alert"
+        :customRow="options.customRow"
+        :rowSelection="options.rowSelection"
+        :scroll="{ x: 1300, y: BaseTool.Constant.scrollY }"
+        showPagination="auto"
+      >
+        <span slot="action" slot-scope="record">
+          <template>
+          </template>
+        </span>
+        <span slot="status" slot-scope="text">
+          <badge :status="DictCache.COLOR.SB_INFO_STATUS[text]" :text="statusMap[text]" />
+        </span>
+      </s-table>
+    </a-card>
+    <template slot="footer">
+      <a-button :loading="confirmLoading" type="primary" @click="handleCancel()">取消</a-button>
+      <a-button :loading="confirmLoading" type="primary" @click="handleSelect()">选择</a-button>
+    </template>
+  </a-modal>
+</template>
+
+<script>
+import { STable, Ellipsis } from '@/components'
+import { getSbInfoPage, getSbInfoTree } from '@/api/sb/measure'
+
+export default {
+  name: 'MeasureSbInfoSelectModal',
+  components: {
+    STable,
+    Ellipsis
+  },
+  props: {
+    type: {
+      type: String,
+      default: 'radio'
+    },
+    selectedRowKey: {
+      type: Array,
+      default: () => {
+        return []
+      }
+    },
+    selectedRow: {
+      type: Array,
+      default: () => {
+        return []
+      }
+    }
+  },
+  data () {
+    return {
+      confirmLoading: false,
+      mdl: {},
+      modalTitle: null,
+      visible: false,
+      // 查询参数
+      queryParam: {
+      },
+      extraQueryParam: {
+      },
+      depreciationTypeMap: {},
+      levelMap: {},
+      statusMap: {},
+      unitMap: {},
+      useTypeMap: {},
+      sourceTypeMap: {},
+      // 表头
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'index',
+          width: 120,
+          checked: true,
+          customRender: (text, record, index) => {
+            return `${(this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1}`
+          }
+        },
+        {
+          title: '测量设备编号',
+          dataIndex: 'cardNo',
+          width: 150,
+          checked: true
+        },
+        {
+          title: '设备名称',
+          checked: true,
+          width: 200,
+          dataIndex: 'name'
+        },
+        {
+          title: '出厂编号',
+          checked: true,
+          width: 200,
+          dataIndex: 'zzh'
+        },
+        {
+          title: '规格型号',
+          checked: true,
+          width: 200,
+          dataIndex: 'model'
+        },
+        {
+          title: '要求准确度等级',
+          dataIndex: 'zz',
+          width: 150,
+          checked: true
+        },
+
+        {
+          title: '使用部门',
+          checked: true,
+          width: 200,
+          dataIndex: 'useDept'
+        },
+        {
+          title: '使用地点',
+          checked: true,
+          width: 200,
+          dataIndex: 'cph'
+        },
+        {
+          title: '准确度等级',
+          checked: true,
+          width: 200,
+          dataIndex: 'fdjxh'
+        },
+        {
+          title: '检定日期',
+          checked: true,
+          width: 200,
+          dataIndex: 'checkDate'
+        },
+        {
+          title: '检定周期',
+          checked: true,
+          width: 200,
+          dataIndex: 'checkPeriod',
+          customRender: (text, record, index) => {
+            if (record.checkPeriod == null) {
+              return '未知'
+            } else {
+              return text + '月'
+            }
+          }
+        },
+        {
+          title: '有效日期',
+          dataIndex: 'nextCheckDate',
+          width: 150,
+          checked: true
+        },
+        {
+          title: '生产厂商',
+          dataIndex: 'producerId',
+          width: 150,
+          checked: true
+        },
+        {
+          title: '检定单位',
+          dataIndex: 'dph',
+          width: 150,
+          checked: true
+        },
+        {
+          title: '检定人',
+          dataIndex: 'zaiz',
+          width: 150,
+          checked: true
+        },
+        {
+          title: '检定结论',
+          dataIndex: 'rlType',
+          width: 150,
+          checked: true,
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.measureMap, text)
+          }
+        },
+        {
+          title: '是否周检',
+          dataIndex: 'color',
+          width: 150,
+          checked: true,
+          customRender: (text, record, index) => {
+            if (text === 0) {
+              return '否'
+            } else {
+              return '是'
+            }
+          }
+        },
+        {
+          title: '检定证书编号',
+          dataIndex: 'sbdh',
+          width: 150,
+          checked: true
+        },
+        {
+          title: '检定校准记录',
+          dataIndex: 'zbh',
+          width: 150,
+          checked: true
+        },
+        {
+          title: '预警天数',
+          dataIndex: 'seatNumber',
+          width: 150,
+          checked: true
+        },
+        {
+          title: '是否固定资产',
+          dataIndex: 'isFinancing',
+          width: 150,
+          checked: true,
+          customRender: (text, record, index) => {
+            if (text === 0) {
+              return '否'
+            } else {
+              return '是'
+            }
+          }
+        },
+        {
+          title: '固定资产编号',
+          dataIndex: 'financingNo',
+          width: 150,
+          checked: true
+        },
+        {
+          title: '设备新号',
+          dataIndex: 'no',
+          width: 150,
+          checked: true
+        },
+        {
+          title: '检定截止',
+          dataIndex: 'restDay',
+          width: 100,
+          fixed: 'right',
+          checked: true,
+          customRender: (text, record, index) => {
+            if (record.nextCheckDate == null) {
+              return '未知'
+            } else {
+              return this.BaseTool.Date.getCountBetween(new Date(), record.nextCheckDate, 1) + '天'
+            }
+          }
+        },
+        {
+          title: '管理状态',
+          checked: true,
+          dataIndex: 'status',
+          width: 100,
+          fixed: 'right',
+          scopedSlots: { customRender: 'status' }
+        },
+        {
+          title: '操作',
+          key: 'action',
+          checked: true,
+          fixed: 'right',
+          align: 'center',
+          width: '100',
+          scopedSlots: { customRender: 'action' }
+        }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        parameter = {
+          ...parameter,
+          ...this.queryParam,
+          ...this.extraQueryParam,
+          dataScope: {
+            sortBy: 'asc',
+            sortName: 'no'
+          }
+        }
+        return getSbInfoPage(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: true,
+      isCreated: false
+    }
+  },
+  created () {
+    this.tableOption()
+    this.depreciationTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_DEPRECIATIONTYPE)
+    this.levelMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_LEVEL)
+    this.statusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SB_INFO_STATUS)
+    this.unitMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_UNIT)
+    this.sourceTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBTYPE_SOURCETYPE)
+    this.useTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SB_UES_TYPE)
+  },
+  methods: {
+    tableOption () {
+      if (!this.optionAlertShow) {
+        this.options = {
+          alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
+          rowSelection: {
+            selectedRowKeys: this.selectedRowKeys,
+            onChange: this.onSelectChange,
+            type: this.type,
+            getCheckboxProps: record => ({
+              props: {
+                disabled: false,
+                name: record.id
+              }
+            })
+          },
+          customRow: (record) => {
+            return {
+              on: { // 事件
+                click: (event) => { // 点击行
+                  // 选择对象
+                  this.mySelect([record.id], [record])
+                },
+                dblclick: (event) => {
+                  this.mySelect([record.id], [record])
+                  this.handleSelect()
+                }
+              }
+            }
+          }
+        }
+        this.optionAlertShow = true
+      } else {
+        this.options = {
+          alert: false,
+          rowSelection: null
+        }
+        this.optionAlertShow = false
+      }
+    },
+    handleOk () {
+      this.$refs.table.refresh()
+    },
+    onSelectChange (selectedRowKeys, selectedRows) {
+      this.selectedRowKeys = selectedRowKeys
+      this.selectedRows = selectedRows
+    },
+    resetSearchForm () {
+      this.queryParam = {
+      }
+      this.$refs.table.refresh(true)
+    },
+    base (record, queryParam = {}) {
+      this.visible = true
+      this.modalTitle = '选择设备'
+      this.extraQueryParam = queryParam
+      if (this.isCreated) {
+        this.$refs.table.clearSelected()
+        this.options.rowSelection.type = this.type
+        this.handleOk()
+      } else {
+        this.tableOption()
+        this.isCreated = true
+      }
+      // this.mySelect(this.selectedRowKeys, this.selectedRows)
+    },
+    handleCancel () {
+      this.visible = false
+      this.confirmLoading = false
+    },
+    handleSelect () {
+      if (this.selectedRowKeys.length === 0) {
+        this.$message.warn('请至少选择一项信息')
+      } else {
+        this.confirmLoading = true
+        this.$emit('selected', this.selectedRowKeys, this.selectedRows)
+        this.confirmLoading = false
+        this.visible = false
+      }
+    },
+    mySelect (selectedRowKeys, selectedRows) {
+      this.$refs.table.updateSelect(selectedRowKeys, selectedRows)
+      this.$refs.table.rowSelection.onChange(selectedRowKeys, selectedRows)
+    }
+  }
+}
+</script>

+ 22 - 16
src/views/sb/measurelog/MeasureLog.vue

@@ -92,8 +92,6 @@
             @confirm="batchDelete(record.id)">
             <a>删除</a>
           </a-popconfirm>
-          <a-divider type="vertical" />
-          <a @click="handleCopy(record)">复制</a>
         </template>
       </span>
     </s-table>
@@ -109,8 +107,7 @@ import Detail from './modules/Detail'
 import {
   getCheckStandardPage,
   deleteCheckStandards,
-  fetchCheckStandard,
-  exportCheckStandard
+  exportCheckStandard, fetchCheckStandard
 } from '@/api/sb/measurelog'
 
 export default {
@@ -140,8 +137,8 @@ export default {
           }
         },
         {
-          title: '设备编号',
-          dataIndex: 'sbNo'
+          title: '测量设备编号',
+          dataIndex: 'cardNo'
         },
         {
           title: '设备名称',
@@ -152,8 +149,12 @@ export default {
           dataIndex: 'sbModel'
         },
         {
-          title: '测量编号',
-          dataIndex: 'cardNo'
+          title: '出厂编号',
+          dataIndex: 'sbZzh'
+        },
+        {
+          title: '设备新号',
+          dataIndex: 'sbNo'
         },
         {
           title: '检定日期',
@@ -163,6 +164,14 @@ export default {
           title: '检定人',
           dataIndex: 'name'
         },
+        {
+          title: '检定单位',
+          dataIndex: 'dph'
+        },
+        {
+          title: '检定编号',
+          dataIndex: 'no'
+        },
         {
           title: '备注',
           dataIndex: 'requirement'
@@ -215,7 +224,6 @@ export default {
     this.enableMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
     this.periodTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.CHECK_PLAN_PERIOD_TYPE)
     this.actionTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.CHECK_PLAN_ACTION_TYPE)
-
     this.tableOption()
   },
   methods: {
@@ -278,13 +286,11 @@ export default {
         modal.base(res.data)
       })
     },
-    handleCopy (record) {
-      fetchCheckStandard({ id: record.id }).then(res => {
-        const modal = this.$refs.baseModal
-        res.data.id = null
-        modal.base(res.data)
-      })
-    },
+   /* handleCopy (record) {
+      const modal = this.$refs.baseModal
+      res.data.id = null
+      modal.base(res.record)
+    },*/
     handleOk () {
       this.queryParam.searchStartTime = this.queryParam.searchStartTime ? this.BaseTool.Date.formatter(this.queryParam.searchStartTime, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN) : null
       this.queryParam.searchEndTime = this.queryParam.searchEndTime ? this.BaseTool.Date.formatter(this.queryParam.searchEndTime, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN) : null

+ 7 - 8
src/views/sb/measurelog/modules/BaseForm.vue

@@ -22,7 +22,9 @@
           >
             <a-input
               disabled
+              style="width: 80%"
               v-decorator="['cardNo']"/>
+            <a-button type="primary" style="width: 20%" @click="handleSbSelect">选择</a-button>
           </a-form-item>
         </row-item>
         <row-item>
@@ -160,7 +162,7 @@
     <template slot="footer">
       <a-button :loading="confirmLoading" type="primary" @click="save()">保存</a-button>
     </template>
-    <sb-info-select-modal ref="sbInfoSelectModal" @selected="handleSbSelectd"/>
+    <measure-sb-info-select-modal ref="sbInfoSelectModal" @selected="handleSbSelectd"/>
   </a-modal>
 </template>
 
@@ -171,7 +173,7 @@ import { addCheckStandard, updateCheckStandard } from '@/api/sb/measurelog'
 import BaseTool from '../../../../utils/tool'
 import { queryUser } from '@/api/upms/user'
 import { uploadUrl } from '@/api/upms/file'
-import SbInfoSelectModal from '@/views/sb/info/modules/SbInfoSelectModal'
+import MeasureSbInfoSelectModal from '@/views/sb/measure/modules/MeasureSbInfoSelectModal'
 import Vue from 'vue'
 import { ACCESS_TOKEN } from '@/store/mutation-types'
 
@@ -180,7 +182,7 @@ export default {
   components: {
     STable,
     Ellipsis,
-    SbInfoSelectModal
+    MeasureSbInfoSelectModal
   },
   data () {
     return {
@@ -362,7 +364,7 @@ export default {
       }
     },
     handleSbSelect () {
-      this.$refs.sbInfoSelectModal.base({}, { useType: this.DictCache.VALUE.SB_USE_TYPE.BGCL })
+      this.$refs.sbInfoSelectModal.base()
     },
     handleSbSelectd (keys, rows) {
       const [ key ] = keys
@@ -373,12 +375,9 @@ export default {
         setFieldsValue(Object.assign({
           'sbId': key,
           'sbName': row.name,
-          'sbNo': row.no,
           'sbModel': row.model,
-          'checkDate': row.checkDate,
           'checkPeriod': row.checkPeriod,
-          'cardNo': row.cardNo,
-          'nextCheckDate': row.nextCheckDate
+          'cardNo': row.cardNo
         }))
       })
     }

+ 28 - 4
src/views/sb/measurelog/modules/Detail.vue

@@ -17,7 +17,7 @@
       <detail-list-item term="备注">{{ model.requirement }}</detail-list-item>
     </detail-list>
     <title-divider title="检定图片" width="90px"></title-divider>
-    <detail-list title="" :col="1">
+    <detail-list title="" :col="2">
       <detail-list-item term="" v-if="model.checkImgList != null && model.checkImgList.length > 0">
         <viewer :images="model.checkImgList" @inited="inited" ref="viewer" :index="1" >
           <img v-for="item in model.checkImgList" :src="item.url" :key="item.id" class="image">
@@ -27,8 +27,9 @@
         暂无
       </detail-list-item>
     </detail-list>
-    <detail-list title="" :col="8">
-      <detail-list-item term="检定文件">
+    <title-divider title="检定文件" width="90px"></title-divider>
+    <detail-list title="" :col="2">
+      <detail-list-item term="">
         <a-upload
           :multiple="true"
           :fileList="BaseTool.UPLOAD.transImg(model.checkFileList)"
@@ -151,7 +152,6 @@ export default {
     this.enableMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
     this.periodTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.CHECK_PLAN_PERIOD_TYPE)
     this.actionTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.CHECK_PLAN_ACTION_TYPE)
-
   },
   methods: {
     base (record) {
@@ -171,3 +171,27 @@ export default {
   }
 }
 </script>
+<style scoped>
+/* For demo */
+.ant-carousel {
+  width: 300px;
+  height: 300px;
+}
+.ant-carousel >>> .slick-slide {
+  text-align: center;
+  height: 300px;
+  line-height: 300px;
+  overflow: hidden;
+}
+
+.ant-carousel >>> .slick-slide h3 {
+  color: #fff;
+}
+
+.image {
+  width: calc(20% - 10px);
+  cursor: pointer;
+  margin: 5px;
+  display: inline-block;
+}
+</style>