whj vor 1 Jahr
Ursprung
Commit
0f652f9b04

+ 197 - 6
src/views/report/instorecount/InStoreCount.vue

@@ -3,7 +3,92 @@
     <div class="table-page-search-wrapper">
       <a-form layout="inline">
         <a-row :gutter="48">
-          <a-col :md="6" :sm="24">
+          <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" :sm="24">
+            <a-form-item label="品牌">
+              <a-input v-model="queryParam.brand" placeholder="模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="类型">
+              <a-tree-select
+                style="width: 100%"
+                :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+                :treeData="spareTypeTreeData"
+                :treeNodeFilterProp="'title'"
+                :showSearch="true"
+                v-model="queryParam.typeId"
+                placeholder="请选择"
+              >
+              </a-tree-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="规格型号">
+              <a-input v-model="queryParam.ggxh" placeholder="模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="原厂编号">
+              <a-input v-model="queryParam.initNo" placeholder="模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="生产商">
+              <a-input v-model="queryParam.producerName" placeholder="名称模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="供应商">
+              <a-input v-model="queryParam.supplierName" placeholder="名称模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="等级">
+              <a-select v-model="queryParam.level" placeholder="请选择">
+                <a-select-option
+                  v-for="(label,value) in levelMap"
+                  :key="value"
+                  :label="label"
+                  :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="用途">
+              <a-select v-model="queryParam.yt" placeholder="请选择">
+                <a-select-option
+                  v-for="(label,value) in ytMap"
+                  :key="value"
+                  :label="label"
+                  :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="是否专用">
+              <a-select v-model="queryParam.isSpecial" placeholder="请选择">
+                <a-select-option
+                  v-for="(label,value) in specialMap"
+                  :key="value"
+                  :label="label"
+                  :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="关联设备">
+              <a-input v-model="queryParam.model" placeholder="新号/旧号/名称/规格"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
             <a-form-item label="仓库">
               <a-tree-select
                 style="width: 100%"
@@ -18,7 +103,7 @@
               </a-tree-select>
             </a-form-item>
           </a-col>
-          <a-col :md="6" :sm="24">
+          <a-col :md="8" :sm="24">
             <a-form-item label="单据起始日期">
               <a-date-picker
                 v-model="queryParam.searchStartTime"
@@ -27,7 +112,7 @@
                 v-decorator="['searchStartTime']"/>
             </a-form-item>
           </a-col>
-          <a-col :md="6" :sm="24">
+          <a-col :md="8" :sm="24">
             <a-form-item label="单据结束日期">
               <a-date-picker
                 v-model="queryParam.searchEndTime"
@@ -57,6 +142,7 @@
       :columns="columns"
       :data="loadData"
       :alert="options.alert"
+      :scroll="{x: 1500, y: BaseTool.Constant.scrollY}"
       :rowSelection="options.rowSelection"
       showPagination="auto"
     >
@@ -71,6 +157,7 @@
 import { STable, Ellipsis } from '@/components'
 import BaseForm from './modules/BaseForm'
 import Detail from './modules/Detail'
+import { fetchSpareTypeTree } from '@/api/sqarepartmanage/sparetype'
 import { fetchStoreTree } from '@/api/store/store'
 import { getInStoreDetailPage, deleteInStoreDetails, fetchInStoreDetail, exportInStoreDetail } from '@/api/report/instoredetail'
 
@@ -96,43 +183,140 @@ export default {
         {
           title: '序号',
           dataIndex: 'index',
+          checked: true,
+          width: '100px',
           customRender: (text, record, index) => {
             return `${(this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1}`
           }
         },
         {
           title: '备件规格',
+          checked: true,
+          width: '150px',
           dataIndex: 'ggxh'
         },
         {
           title: '原厂编号',
-          dataIndex: 'initNo'
+          dataIndex: 'initNo',
+          checked: true,
+          width: '150px'
         },
         {
           title: '备件',
           dataIndex: 'spareId',
+          checked: true,
+          width: '150px',
           customRender: (text, record, index) => {
             return record.spareName
           }
         },
         {
           title: '备件类型',
-          dataIndex: 'typeName'
+          dataIndex: 'typeName',
+          checked: true,
+          width: '150px'
         },
         {
           title: '入库总数',
+          checked: true,
+          width: '150px',
           dataIndex: 'totalNum'
         },
         {
           title: '入库总价',
           dataIndex: 'totalPrice',
+          checked: true,
+          width: '150px',
           customRender: (text, record, index) => {
             return this.BaseTool.Amount.formatter(text)
           }
+        },
+        {
+          title: '品牌',
+          checked: true,
+          width: '150px',
+          dataIndex: 'brand'
+        },
+        {
+          title: '备件价值',
+          dataIndex: 'initialValue',
+          checked: true,
+          width: '150px',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Amount.formatter(text)
+          }
+        },
+        {
+          checked: true,
+          width: '150px',
+          title: '数量',
+          dataIndex: 'inNum'
+        },
+        {
+          checked: true,
+          width: '150px',
+          title: '总价',
+          dataIndex: 'totalPrice'
+        },
+        {
+          title: '计量单位',
+          checked: true,
+          width: '150px',
+          dataIndex: 'unit'
+        },
+        {
+          title: '当前库存',
+          dataIndex: 'currentStock',
+          checked: true,
+          width: '100px',
+          scopedSlots: { customRender: 'status' }
+        },
+        {
+          title: '最高库存',
+          checked: true,
+          width: '100px',
+          dataIndex: 'maxStock'
+        },
+        {
+          title: '最低库存',
+          checked: true,
+          width: '100px',
+          dataIndex: 'minStock'
+        },
+        {
+          title: '等级',
+          checked: true,
+          width: '150px',
+          dataIndex: 'level',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.levelMap, text)
+          }
+        },
+        {
+          title: '生产商',
+          checked: true,
+          width: '150px',
+          dataIndex: 'producerId',
+          customRender: (text, record, index) => {
+            return record.producerName
+          }
+        },
+        {
+          title: '用途',
+          checked: true,
+          width: '150px',
+          dataIndex: 'yt',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.ytMap, text)
+          }
         }
-
       ],
       // 下拉框map
+      levelMap: {},
+      specialMap: {},
+      ytMap: {},
+      unitMap: {},
+      spareTypeTreeData: [],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         parameter = {
@@ -164,6 +348,13 @@ export default {
   created () {
     // 下拉框map
     this.tableOption()
+    this.levelMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_PART_INFO_LEVEL)
+    this.unitMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_UNIT)
+    this.ytMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_USE_TYPE)
+    this.specialMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
+    fetchSpareTypeTree({}).then(res => {
+      this.spareTypeTreeData = res.data
+    })
     // 设置仓库选项
     this.setTree()
   },

+ 219 - 28
src/views/report/outstorecount/OutStoreCount.vue

@@ -3,9 +3,94 @@
     <div class="table-page-search-wrapper">
       <a-form layout="inline">
         <a-row :gutter="48">
-          <a-col :md="6" :sm="24">
+          <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" :sm="24">
+            <a-form-item label="品牌">
+              <a-input v-model="queryParam.brand" placeholder="模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="类型">
+              <a-tree-select
+                style="width: 100%"
+                :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+                :treeData="spareTypeTreeData"
+                :treeNodeFilterProp="'title'"
+                :showSearch="true"
+                v-model="queryParam.typeId"
+                placeholder="请选择"
+              >
+              </a-tree-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="规格型号">
+              <a-input v-model="queryParam.ggxh" placeholder="模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="原厂编号">
+              <a-input v-model="queryParam.initNo" placeholder="模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="生产商">
+              <a-input v-model="queryParam.producerName" placeholder="名称模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="供应商">
+              <a-input v-model="queryParam.supplierName" placeholder="名称模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="等级">
+              <a-select v-model="queryParam.level" placeholder="请选择">
+                <a-select-option
+                  v-for="(label,value) in levelMap"
+                  :key="value"
+                  :label="label"
+                  :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="用途">
+              <a-select v-model="queryParam.yt" placeholder="请选择">
+                <a-select-option
+                  v-for="(label,value) in ytMap"
+                  :key="value"
+                  :label="label"
+                  :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="是否专用">
+              <a-select v-model="queryParam.isSpecial" placeholder="请选择">
+                <a-select-option
+                  v-for="(label,value) in specialMap"
+                  :key="value"
+                  :label="label"
+                  :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="关联设备">
+              <a-input v-model="queryParam.model" placeholder="新号/旧号/名称/规格"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
             <a-form-item label="仓库">
-               <a-tree-select
+              <a-tree-select
                 style="width: 100%"
                 :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
                 :treeData="storeTreeData"
@@ -18,24 +103,24 @@
               </a-tree-select>
             </a-form-item>
           </a-col>
-           <a-col :md="6" :sm="24">
-              <a-form-item label="单据起始日期">
-                 <a-date-picker
-                  v-model="queryParam.searchStartTime"
-                  style="width: 100%"
-                  :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
-                  v-decorator="['searchStartTime']"/>
-              </a-form-item>
-            </a-col>
-            <a-col :md="6" :sm="24">
-              <a-form-item label="单据结束日期">
-                   <a-date-picker
-                    v-model="queryParam.searchEndTime"
-                    style="width: 100%"
-                    :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
-                    v-decorator="['searchEndTime']"/>
-              </a-form-item>
-            </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="单据起始日期">
+              <a-date-picker
+                v-model="queryParam.searchStartTime"
+                style="width: 100%"
+                :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
+                v-decorator="['searchStartTime']"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="单据结束日期">
+              <a-date-picker
+                v-model="queryParam.searchEndTime"
+                style="width: 100%"
+                :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
+                v-decorator="['searchEndTime']"/>
+            </a-form-item>
+          </a-col>
           <a-col :md="4 || 24" :sm="24">
             <span class="table-page-search-submitButtons">
               <a-button type="primary" @click="handleOk">查询</a-button>
@@ -47,7 +132,7 @@
     </div>
 
     <div class="table-operator">
-     <a-button style="margin-left: 8px" v-if="$auth('store-out-store-details-export')" type="primary" icon="download" @click="doExport">导出</a-button>
+      <a-button style="margin-left: 8px" v-if="$auth('store-out-store-details-export')" type="primary" icon="download" @click="doExport">导出</a-button>
 
     </div>
 
@@ -57,6 +142,7 @@
       rowKey="spareId"
       :columns="columns"
       :data="loadData"
+      :scroll="{x: 1500, y: BaseTool.Constant.scrollY}"
       :alert="options.alert"
       :rowSelection="options.rowSelection"
       showPagination="auto"
@@ -71,8 +157,9 @@
 <script>
 import { STable, Ellipsis } from '@/components'
 import BaseForm from './modules/BaseForm'
+import { fetchSpareTypeTree } from '@/api/sqarepartmanage/sparetype'
 import Detail from './modules/Detail'
-import {fetchStoreTree} from '@/api/store/store'
+import { fetchStoreTree } from '@/api/store/store'
 import { getOutStoreDetailPage, deleteOutStoreDetails, fetchOutStoreDetail, exportOutStoreDetail } from '@/api/report/outstoredetail'
 
 export default {
@@ -85,47 +172,144 @@ export default {
   },
   data () {
     return {
-     storeTreeData:[],
+      storeTreeData: [],
       // 查询参数
       queryParam: {
-         storeId:null,
-         searchStartTime:null,
-         searchEndTime:null
+        storeId: null,
+        searchStartTime: null,
+        searchEndTime: null
       },
       // 表头
       columns: [
         {
           title: '序号',
+          width: '100px',
+          checked: true,
           dataIndex: 'index',
           customRender: (text, record, index) => {
             return `${(this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1}`
           }
         },
         {
+          width: '150px',
           title: '备件规格',
+          checked: true,
+
           dataIndex: 'ggxh'
         },
         {
+          width: '150px',
+          checked: true,
           title: '原厂编号',
           dataIndex: 'initNo'
         },
         {
           title: '备件名称',
           dataIndex: 'spareId',
+          checked: true,
+          width: '150px',
           customRender: (text, record, index) => {
             return record.spareName
           }
         },
         {
           title: '备件类型',
+          checked: true,
+          width: '150px',
           dataIndex: 'typeName'
         },
         {
           title: '出库总数',
+          checked: true,
+          width: '150px',
           dataIndex: 'totalNum'
+        },
+        {
+          title: '品牌',
+          checked: true,
+          width: '150px',
+          dataIndex: 'brand'
+        },
+        {
+          title: '备件价值',
+          dataIndex: 'initialValue',
+          checked: true,
+          width: '150px',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Amount.formatter(text)
+          }
+        },
+        {
+          checked: true,
+          width: '150px',
+          title: '数量',
+          dataIndex: 'inNum'
+        },
+        {
+          checked: true,
+          width: '150px',
+          title: '总价',
+          dataIndex: 'totalPrice'
+        },
+        {
+          title: '计量单位',
+          checked: true,
+          width: '150px',
+          dataIndex: 'unit'
+        },
+        {
+          title: '当前库存',
+          dataIndex: 'currentStock',
+          checked: true,
+          width: '100px',
+          scopedSlots: { customRender: 'status' }
+        },
+        {
+          title: '最高库存',
+          checked: true,
+          width: '100px',
+          dataIndex: 'maxStock'
+        },
+        {
+          title: '最低库存',
+          checked: true,
+          width: '100px',
+          dataIndex: 'minStock'
+        },
+        {
+          title: '等级',
+          checked: true,
+          width: '150px',
+          dataIndex: 'level',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.levelMap, text)
+          }
+        },
+        {
+          title: '生产商',
+          checked: true,
+          width: '150px',
+          dataIndex: 'producerId',
+          customRender: (text, record, index) => {
+            return record.producerName
+          }
+        },
+        {
+          title: '用途',
+          checked: true,
+          width: '150px',
+          dataIndex: 'yt',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.ytMap, text)
+          }
         }
       ],
       // 下拉框map
+      levelMap: {},
+      specialMap: {},
+      ytMap: {},
+      unitMap: {},
+      spareTypeTreeData: [],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         parameter = {
@@ -158,8 +342,15 @@ export default {
   created () {
     // 下拉框map
     this.tableOption()
-      // 设置仓库选项
-        this.setTree()
+    this.levelMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_PART_INFO_LEVEL)
+    this.unitMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_UNIT)
+    this.ytMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_USE_TYPE)
+    this.specialMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
+    fetchSpareTypeTree({}).then(res => {
+      this.spareTypeTreeData = res.data
+    })
+    // 设置仓库选项
+    this.setTree()
   },
   methods: {
     setTree () {

+ 129 - 12
src/views/report/sparepartinfo/SparePartInfo.vue

@@ -8,7 +8,87 @@
               <a-input v-model="queryParam.keyword" placeholder="请输入名称/编码"/>
             </a-form-item>
           </a-col>
-          <a-col :md="8 || 24" :sm="24">
+          <a-col :md="8" :sm="24">
+            <a-form-item label="品牌">
+              <a-input v-model="queryParam.brand" placeholder="模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="类型">
+              <a-tree-select
+                style="width: 100%"
+                :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+                :treeData="spareTypeTreeData"
+                :treeNodeFilterProp="'title'"
+                :showSearch="true"
+                v-model="queryParam.typeId"
+                placeholder="请选择"
+              >
+              </a-tree-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="规格型号">
+              <a-input v-model="queryParam.ggxh" placeholder="模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="原厂编号">
+              <a-input v-model="queryParam.initNo" placeholder="模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="生产商">
+              <a-input v-model="queryParam.producerName" placeholder="名称模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="供应商">
+              <a-input v-model="queryParam.supplierName" placeholder="名称模糊查询"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="等级">
+              <a-select v-model="queryParam.level" placeholder="请选择">
+                <a-select-option
+                  v-for="(label,value) in levelMap"
+                  :key="value"
+                  :label="label"
+                  :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="用途">
+              <a-select v-model="queryParam.yt" placeholder="请选择">
+                <a-select-option
+                  v-for="(label,value) in ytMap"
+                  :key="value"
+                  :label="label"
+                  :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="是否专用">
+              <a-select v-model="queryParam.isSpecial" placeholder="请选择">
+                <a-select-option
+                  v-for="(label,value) in specialMap"
+                  :key="value"
+                  :label="label"
+                  :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="关联设备">
+              <a-input v-model="queryParam.model" placeholder="新号/旧号/名称/规格"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6 || 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>
@@ -28,12 +108,13 @@
       rowKey="id"
       :columns="columns"
       :data="loadData"
+      :scroll="{x: 1500, y: BaseTool.Constant.scrollY}"
       :alert="options.alert"
       :rowSelection="options.rowSelection"
       showPagination="auto"
     >
       <span slot="status" slot-scope="text, record">
-        <a @click="handleStore(record)">{{text||"无"}}</a>
+        <a @click="handleStore(record)">{{ text||"无" }}</a>
       </span>
 
       <span slot="action" slot-scope="record">
@@ -87,15 +168,21 @@ export default {
 
         {
           title: '备件编码',
+          width: '150px',
+          checked: true,
           dataIndex: 'no'
         },
         {
           title: '备件名称',
+          width: '150px',
+          checked: true,
           dataIndex: 'name'
         },
         {
           title: '备件类别',
           dataIndex: 'typeId',
+          width: '150px',
+          checked: true,
           customRender: (text, record, index) => {
             return record.typeName
           }
@@ -103,6 +190,8 @@ export default {
         {
           title: '等级',
           dataIndex: 'level',
+          width: '150px',
+          checked: true,
           customRender: (text, record, index) => {
             return this.BaseTool.Object.getField(this.levelMap, text)
           }
@@ -110,27 +199,37 @@ export default {
 
         {
           title: '当前库存',
+          width: '150px',
+          checked: true,
           dataIndex: 'currentStock',
           scopedSlots: { customRender: 'status' }
         },
         {
           title: '最高库存',
+          width: '150px',
+          checked: true,
           dataIndex: 'maxStock'
         },
         {
           title: '最低库存',
+          width: '150px',
+          checked: true,
           dataIndex: 'minStock'
         },
-         {
-            title: '是否预警',
-            dataIndex: 'minStock',
-            customRender: (text, record, index) => {
-                return record.currentStock<record.mixStock?"是":"否"
-              }
-          },
-         {
+        {
+          title: '是否预警',
+          dataIndex: 'minStock',
+          width: '150px',
+          checked: true,
+          customRender: (text, record, index) => {
+            return record.currentStock < record.mixStock ? '是' : '否'
+          }
+        },
+        {
           title: '生产商',
           dataIndex: 'producerId',
+          width: '150px',
+          checked: true,
           customRender: (text, record, index) => {
             return record.producerName
           }
@@ -138,26 +237,39 @@ export default {
         {
           title: '计量单位',
           dataIndex: 'unit',
+          width: '150px',
+          checked: true,
           customRender: (text, record, index) => {
             return this.BaseTool.Object.getField(this.unitMap, text)
           }
         },
         {
           title: '备注',
+          width: '150px',
+          checked: true,
           dataIndex: 'remark'
         },
         {
           title: '创建日期',
+          width: '150px',
+          checked: true,
           dataIndex: 'createdTime'
         },
         {
           title: '操作',
           key: 'action',
+          checked: true,
+          fixed: 'right',
           width: '400px',
           align: 'center',
           scopedSlots: { customRender: 'action' }
         }
       ],
+      levelMap: {},
+      specialMap: {},
+      ytMap: {},
+      unitMap: {},
+      spareTypeTreeData: [],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         parameter = {
@@ -190,7 +302,12 @@ export default {
     // 下拉框map
     this.levelMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_PART_INFO_LEVEL)
     this.unitMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_UNIT)
+    this.ytMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_USE_TYPE)
+    this.specialMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
     this.tableOption()
+    fetchSpareTypeTree({}).then(res => {
+      this.spareTypeTreeData = res.data
+    })
   },
   methods: {
     tableOption () {
@@ -254,7 +371,7 @@ export default {
       })
     },
     handleSparePartUsed (record) {
-      this.$refs.sparePartUsedSelectModal.base({},{spareId:record.id})
+      this.$refs.sparePartUsedSelectModal.base({}, { spareId: record.id })
     },
     handleOutStore (record) {
       fetchOutStoreList({ id: record.id }).then(res => {
@@ -294,7 +411,7 @@ export default {
         res.data.id = null
         modal.base(res.data)
       })
-    },
+    }
   }
 }
 </script>

+ 7 - 7
src/views/sqarepartmanage/sparepartused/SparePartUsed.vue

@@ -120,13 +120,13 @@ export default {
           title: '总价',
           dataIndex: 'totalPrice'
         },
-        //{
-         // title: '部件名称',
-         // dataIndex: 'partId',
-         // customRender: (text, record, index) => {
-         //  return record.partName
-         //}
-        //},
+        // {
+        // title: '部件名称',
+        // dataIndex: 'partId',
+        // customRender: (text, record, index) => {
+        //  return record.partName
+        // }
+        // },
         {
           title: '备件名称',
           dataIndex: 'spareId',

+ 203 - 7
src/views/store/outstoreform/OutStoreForm.vue

@@ -6,14 +6,53 @@
           <a-row :gutter="48">
             <a-col :md="8" :sm="24">
               <a-form-item label="关键字">
-                <a-input v-model="queryParam.keyword" placeholder="请输入出库单号"/>
+                <a-input v-model="queryParam.keyword" placeholder="请输入名称/编码"/>
               </a-form-item>
             </a-col>
             <a-col :md="8" :sm="24">
-              <a-form-item label="出库类型">
-                <a-select v-model="queryParam.type" placeholder="请选择">
+              <a-form-item label="品牌">
+                <a-input v-model="queryParam.brand" placeholder="模糊查询"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="8" :sm="24">
+              <a-form-item label="类型">
+                <a-tree-select
+                  style="width: 100%"
+                  :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+                  :treeData="spareTypeTreeData"
+                  :treeNodeFilterProp="'title'"
+                  :showSearch="true"
+                  v-model="queryParam.typeId"
+                  placeholder="请选择"
+                >
+                </a-tree-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="8" :sm="24">
+              <a-form-item label="规格型号">
+                <a-input v-model="queryParam.ggxh" placeholder="模糊查询"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="8" :sm="24">
+              <a-form-item label="原厂编号">
+                <a-input v-model="queryParam.initNo" placeholder="模糊查询"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="8" :sm="24">
+              <a-form-item label="生产商">
+                <a-input v-model="queryParam.producerName" placeholder="名称模糊查询"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="8" :sm="24">
+              <a-form-item label="供应商">
+                <a-input v-model="queryParam.supplierName" placeholder="名称模糊查询"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="8" :sm="24">
+              <a-form-item label="等级">
+                <a-select v-model="queryParam.level" placeholder="请选择">
                   <a-select-option
-                    v-for="(label,value) in typeMap"
+                    v-for="(label,value) in levelMap"
                     :key="value"
                     :label="label"
                     :value="parseInt(value)">{{ label }}
@@ -21,7 +60,36 @@
                 </a-select>
               </a-form-item>
             </a-col>
-            <a-col :md="8 || 24" :sm="24">
+            <a-col :md="6" :sm="24">
+              <a-form-item label="用途">
+                <a-select v-model="queryParam.yt" placeholder="请选择">
+                  <a-select-option
+                    v-for="(label,value) in ytMap"
+                    :key="value"
+                    :label="label"
+                    :value="parseInt(value)">{{ label }}
+                  </a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="是否专用">
+                <a-select v-model="queryParam.isSpecial" placeholder="请选择">
+                  <a-select-option
+                    v-for="(label,value) in specialMap"
+                    :key="value"
+                    :label="label"
+                    :value="parseInt(value)">{{ label }}
+                  </a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="关联设备">
+                <a-input v-model="queryParam.model" placeholder="新号/旧号/名称/规格"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6 || 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>
@@ -53,6 +121,7 @@
         :columns="columns"
         :data="loadData"
         :alert="options.alert"
+        :scroll="{x: 1500, y: BaseTool.Constant.scrollY}"
         :rowSelection="options.rowSelection"
         showPagination="auto"
       >
@@ -70,7 +139,7 @@
             <a-popconfirm v-if="$auth('store-out-store-forms-del')&&record.status==1" title="是否要删除该条数据?" @confirm="batchDelete(record.id)">
               <a>删除</a>
             </a-popconfirm>
-             <a-divider v-if="record.status==2" type="vertical" />
+            <a-divider v-if="record.status==2" type="vertical" />
             <a-popconfirm v-if="record.status==2" title="是否要撤销?" @confirm="updateStoreBack(record.id)">
               <a>撤销</a>
             </a-popconfirm>
@@ -92,6 +161,7 @@
 import { STable, Ellipsis } from '@/components'
 import BaseForm from './modules/BaseForm'
 import Detail from './modules/Detail'
+import { fetchSpareTypeTree } from '@/api/sqarepartmanage/sparetype'
 import { updateStore, updateStoreBack, getOutStoreFormPage, deleteOutStoreForms, fetchOutStoreForm, exportOutStoreForm } from '@/api/store/outstoreform'
 import { fetchInStoreForm } from '@/api/store/instoreform'
 
@@ -120,44 +190,158 @@ export default {
         {
           title: '序号',
           dataIndex: 'index',
+          checked: true,
+          width: '100px',
           customRender: (text, record, index) => {
             return `${(this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1}`
           }
         },
         {
           title: '出库单号',
+          checked: true,
+          width: '150px',
           dataIndex: 'outNo'
         },
         {
           title: '出库类型',
           dataIndex: 'type',
+          checked: true,
+          width: '150px',
           customRender: (text, record, index) => {
             return this.BaseTool.Object.getField(this.typeMap, text)
           }
         },
+        {
+          title: '备件编码',
+          dataIndex: 'no',
+          checked: true,
+          width: '150px'
+        },
+        {
+          title: '备件名称',
+          dataIndex: 'name',
+          checked: true,
+          width: '150px'
+        },
+        {
+          title: '规格型号',
+          checked: true,
+          width: '150px',
+          dataIndex: 'ggxh'
+        },
+        {
+          title: '品牌',
+          checked: true,
+          width: '150px',
+          dataIndex: 'brand'
+        },
+        {
+          title: '备件价值',
+          dataIndex: 'initialValue',
+          checked: true,
+          width: '150px',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Amount.formatter(text)
+          }
+        },
+        {
+          checked: true,
+          width: '150px',
+          title: '数量',
+          dataIndex: 'inNum'
+        },
+
+        {
+          title: '计量单位',
+          checked: true,
+          width: '150px',
+          dataIndex: 'unit'
+        },
+        {
+          title: '当前库存',
+          dataIndex: 'currentStock',
+          checked: true,
+          width: '100px',
+          scopedSlots: { customRender: 'status' }
+        },
+        {
+          title: '最高库存',
+          checked: true,
+          width: '100px',
+          dataIndex: 'maxStock'
+        },
+        {
+          title: '最低库存',
+          checked: true,
+          width: '100px',
+          dataIndex: 'minStock'
+        },
+        {
+          title: '等级',
+          checked: true,
+          width: '150px',
+          dataIndex: 'level',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.levelMap, text)
+          }
+        },
+        {
+          title: '生产商',
+          checked: true,
+          width: '150px',
+          dataIndex: 'producerId',
+          customRender: (text, record, index) => {
+            return record.producerName
+          }
+        },
+        {
+          title: '用途',
+          checked: true,
+          width: '150px',
+          dataIndex: 'yt',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.ytMap, text)
+          }
+        },
+        {
+          title: '备注',
+          checked: true,
+          width: '150px',
+          dataIndex: 'remark'
+        },
         {
           title: '总价',
+          checked: true,
+          width: '150px',
           dataIndex: 'totalPrice'
         },
         {
           title: '状态',
           dataIndex: 'status',
+          checked: true,
+          width: '150px',
           scopedSlots: { customRender: 'status' }
         },
         {
           title: '创建日期',
-          dataIndex: 'createdTime'
+          dataIndex: 'createdTime',
+          checked: true,
+          width: '150px'
         },
         {
           title: '仓库',
           dataIndex: 'storeId',
+          checked: true,
+          width: '150px',
           customRender: (text, record, index) => {
             return record.storeName
           }
         },
         {
           title: '操作',
+          checked: true,
           key: 'action',
+          fixed: 'right',
           width: '200px',
           align: 'center',
           scopedSlots: { customRender: 'action' }
@@ -165,6 +349,11 @@ export default {
       ],
       // 下拉框map
       typeMap: {},
+      levelMap: {},
+      specialMap: {},
+      ytMap: {},
+      unitMap: {},
+      spareTypeTreeData: [],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         parameter = {
@@ -197,6 +386,13 @@ export default {
     // 下拉框map
     this.typeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.OUT_STORE_FORM_TYPE)
     this.statusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.OUT_STORE_FORM_STATUS)
+    this.levelMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_PART_INFO_LEVEL)
+    this.unitMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_UNIT)
+    this.ytMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_USE_TYPE)
+    this.specialMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
+    fetchSpareTypeTree({}).then(res => {
+      this.spareTypeTreeData = res.data
+    })
     this.tableOption()
   },
   methods: {

+ 113 - 0
src/views/store/sparestore/SpareStore.vue

@@ -20,6 +20,11 @@
                   <a-input v-model="queryParam.keyword" placeholder="请输入备件名称"/>
                 </a-form-item>
               </a-col>
+              <a-col :md="8" :sm="24">
+                <a-form-item label="品牌">
+                  <a-input v-model="queryParam.brand" placeholder="模糊查询"/>
+                </a-form-item>
+              </a-col>
               <a-col :md="8" :sm="24">
                 <a-form-item label="规格型号">
                   <a-input v-model="queryParam.ggxh" placeholder="请输入规格型号"/>
@@ -35,6 +40,52 @@
                   <a-input v-model="queryParam.model" placeholder="新号/旧号/名称/规格"/>
                 </a-form-item>
               </a-col>
+              <a-col :md="8" :sm="24">
+                <a-form-item label="生产商">
+                  <a-input v-model="queryParam.producerName" placeholder="名称模糊查询"/>
+                </a-form-item>
+              </a-col>
+              <a-col :md="8" :sm="24">
+                <a-form-item label="供应商">
+                  <a-input v-model="queryParam.supplierName" placeholder="名称模糊查询"/>
+                </a-form-item>
+              </a-col>
+              <a-col :md="8" :sm="24">
+                <a-form-item label="等级">
+                  <a-select v-model="queryParam.level" placeholder="请选择">
+                    <a-select-option
+                      v-for="(label,value) in levelMap"
+                      :key="value"
+                      :label="label"
+                      :value="parseInt(value)">{{ label }}
+                    </a-select-option>
+                  </a-select>
+                </a-form-item>
+              </a-col>
+              <a-col :md="8" :sm="24">
+                <a-form-item label="用途">
+                  <a-select v-model="queryParam.yt" placeholder="请选择">
+                    <a-select-option
+                      v-for="(label,value) in ytMap"
+                      :key="value"
+                      :label="label"
+                      :value="parseInt(value)">{{ label }}
+                    </a-select-option>
+                  </a-select>
+                </a-form-item>
+              </a-col>
+              <a-col :md="8" :sm="24">
+                <a-form-item label="是否专用">
+                  <a-select v-model="queryParam.isSpecial" placeholder="请选择">
+                    <a-select-option
+                      v-for="(label,value) in specialMap"
+                      :key="value"
+                      :label="label"
+                      :value="parseInt(value)">{{ label }}
+                    </a-select-option>
+                  </a-select>
+                </a-form-item>
+              </a-col>
               <a-col :md="8" :sm="24">
                 <a-form-item label="最低数量">
                   <a-input v-model="queryParam.num" placeholder="请输入数量"/>
@@ -79,6 +130,7 @@
           rowKey="id"
           :columns="columns"
           :data="loadData"
+          :scroll="{x: 1500, y: BaseTool.Constant.scrollY}"
           :alert="options.alert"
           :rowSelection="options.rowSelection"
           showPagination="auto"
@@ -147,30 +199,80 @@ export default {
         },
         {
           title: '备件名称',
+          checked: true,
+          width: '150px',
           dataIndex: 'spareName'
         },
         {
           title: '规格型号',
+          checked: true,
+          width: '150px',
           dataIndex: 'ggxh'
         },
         {
           title: '原厂编号',
+          checked: true,
+          width: '150px',
           dataIndex: 'initNo'
         },
         {
           title: '仓库名称',
+          checked: true,
+          width: '150px',
           dataIndex: 'storeName'
         },
+        {
+          title: '最高库存',
+          checked: true,
+          width: '100px',
+          dataIndex: 'maxStock'
+        },
+        {
+          title: '最低库存',
+          checked: true,
+          width: '100px',
+          dataIndex: 'minStock'
+        },
+        {
+          title: '等级',
+          checked: true,
+          width: '150px',
+          dataIndex: 'level',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Object.getField(this.levelMap, text)
+          }
+        },
+        {
+          title: '生产商',
+          checked: true,
+          width: '150px',
+          dataIndex: 'producerId',
+          customRender: (text, record, index) => {
+            return record.producerName
+          }
+        },
+        {
+          title: '计量单位',
+          checked: true,
+          width: '150px',
+          dataIndex: 'unit'
+        },
         {
           title: '数量',
+          checked: true,
+          width: '150px',
           dataIndex: 'num'
         },
         {
           title: '库存价格',
+          checked: true,
+          width: '150px',
           dataIndex: 'price'
         },
         {
           title: '库存总价',
+          checked: true,
+          width: '150px',
           dataIndex: 'totalPrice'
         },
         // {
@@ -180,12 +282,19 @@ export default {
         {
           title: '操作',
           key: 'action',
+          checked: true,
+          fixed: 'right',
+          width: '150px',
           align: 'center',
           scopedSlots: { customRender: 'action' }
         }
       ],
       // 下拉框map
       delFlagMap: {},
+      levelMap: {},
+      specialMap: {},
+      ytMap: {},
+      unitMap: {},
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         parameter = {
@@ -216,6 +325,10 @@ export default {
   created () {
     // 下拉框map
     this.delFlagMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.DELFLAG)
+    this.levelMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_PART_INFO_LEVEL)
+    this.unitMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_UNIT)
+    this.ytMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_USE_TYPE)
+    this.specialMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
     this.tableOption()
     fetchStoreTree({ filter: this.filter }).then(res => {
       this.storeTreeDate = res.data