Sfoglia il codice sorgente

存货主单位/存货单位-开发/使用

jingbb 9 mesi fa
parent
commit
6d5227163b

+ 260 - 0
src/views/production/Popup/unitPopup.vue

@@ -0,0 +1,260 @@
+<template>
+    <a-modal
+      title="单位列表"
+       width="60%"
+      :visible="visible"
+      :maskClosable="false"
+      switchFullscreen
+      @cancel="handleCancel"
+      @ok='handleOk'
+      >
+      <a-card :bordered="false" class="top" style="margin-bottom:1%;margin-top:1%">
+        <div class="table-page-search-wrapper">
+            <a-form layout="inline" @keyup.enter.native="searchQuery">
+              <a-row :gutter="24">
+                <a-col :md="8" :sm="24">
+                  <a-form-item label="名称">
+                    <a-input placeholder="请输入" v-model="queryParam.name" ></a-input>
+                  </a-form-item>
+                </a-col>
+                <template v-if="toggleSearchStatus"> 
+                    <a-col :md="8" :sm="24">
+                        <a-form-item label="ID">
+                            <a-input placeholder="请输入" v-model="queryParam.id" ></a-input>
+                        </a-form-item>
+                    </a-col>
+                </template>
+                <a-col  :md="8" :sm="24">
+                  <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+                    <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+                    <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
+                    <a @click="handleToggleSearch" style="margin-left: 8px">
+                      {{ toggleSearchStatus ? '收起' : '展开' }}
+                      <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
+                    </a>
+                  </span>
+                </a-col>
+              </a-row>
+            </a-form>
+        </div>
+      <a-form-model ref="formRef">
+            <a-table
+            ref="table"
+            size="middle"
+            bordered
+            id='sonList1'
+            :loading="loading"
+            :columns="columns"
+            rowKey="rowIndex"
+            :dataSource="dataSource"
+            :pagination="pagination"
+            :scroll="{ x: 800, y: 300 }"
+            :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+            @change="handleTableChange"
+            :customRow ="clickRow"
+            >
+            </a-table>
+        </a-form-model>
+    </a-card >
+    </a-modal>
+  </template>
+  <script>
+  
+      import { FormTypes } from '@/utils/JEditableTableUtil'
+      import { JEditableTableModelMixin } from '@/mixins/JEditableTableModelMixin'
+      import moment from "moment"
+      import { httpAction ,getAction,postAction,putAction} from '@/api/manage'
+      export default {
+        name: 'inventoryPopup',
+        mixins: [JEditableTableModelMixin],
+        components: {
+        },
+        data() {
+          return {
+            visible:false,
+            queryParam:{},
+            selectedRowKeys:[],
+            selectedRows:[],
+            dataSource:[],
+            loading:false,
+            pagination:{
+                current: 1,
+                pageSize: 5,
+                pageSizeOptions: ['5', '10', '20'],
+                showTotal: (total, range) => {
+                    return range[0] + "-" + range[1] + " 共" + total + "条"
+                },
+                showQuickJumper: true,
+                showSizeChanger: true,
+                total: 0
+            },
+            queryParam:{
+                pageNo:1
+            },
+            record:{},
+            toggleSearchStatus:false,
+            columns:[
+                {
+                    title: '行号',
+                    dataIndex: '',
+                    key: 'rowIndex',
+                    width: 60,
+                    align: "center",
+                    customRender:function (t, r, index) {
+                        return parseInt(index)+1;
+                    }
+                },
+                {
+                    title: '名称',
+                    align:"center",
+                    dataIndex: 'Name',
+                    ellipsis: true,
+                },
+                {
+                    title: 'ID',
+                    align:"center",
+                    dataIndex: 'ID',
+                    ellipsis: true,
+                },
+            ],
+            whatUnit:'',
+          }
+        },
+        created() {
+          
+        },
+        methods: {
+            handleCancel(){
+                this.visible=false
+                this.dataSource = [] 
+                this.selectedRowKeys = []
+                this.selectedRows = []
+            },
+            handleOk(){
+                if(this.selectedRowKeys.length!==1){
+                    this.$message.warning('请选择一条数据!')
+                }else{
+                    this.$emit('okData',this.selectedRows[0],this.whatUnit)
+                    this.handleCancel()
+                }
+            },
+            getData(data){
+                this.loading = true 
+                this.queryParam.Org = data
+                this.selectedRowKeys = []
+                this.selectedRows = []
+                getAction('/production/safetyStock/selectUnit',this.queryParam).then(res=>{
+                        if(res.success){
+                          this.dataSource = res.result
+                          this.pagination = {
+                            total: res.result.total,
+                            current: res.result.current,
+                            pageSize: res.result.size
+                          }
+                        }else{
+                          this.$message.error(res.message);
+                          
+                        }
+                }).finally(()=>{
+                    this.loading = false
+                })
+            },
+            searchQuery(){
+                this.getData(this.queryParam.Org)
+            },
+            searchReset(){
+                this.queryParam.name = ''
+                this.queryParam.id = ''
+                this.getData(this.queryParam.Org)
+            },
+            handleTableChange(pagination, filters, sorter) {
+                this.queryParam.pageNo = pagination.current
+                this.queryParam.pageSize = pagination.pageSize
+                this.getData()
+            },
+            onSelectChange(selectedRowKeys, selectionRows) {
+              this.selectedRowKeys = selectedRowKeys;
+              this.selectedRows = selectionRows;
+            },
+            handleToggleSearch(){
+                this.toggleSearchStatus=!this.toggleSearchStatus
+            },
+            clickRow(record, index){
+              return {
+                on: {
+                  click: () => {
+                    this.selectedRowKeys=[]
+                    this.selectedRows=[]
+                    this.selectedRowKeys.push(index)
+                    this.selectedRows.push(record)
+                  },
+                }
+              }       
+           },
+        }
+      }
+  </script>
+  
+  <style scoped lang="less">
+    /* @import '~@assets/less/common.less' */
+    /deep/.ant-input{
+        height:29px;
+    }
+    /deep/.ant-select-selection--single {
+        height: 29px;
+    }
+    /deep/.ant-select{
+        font-size: 12px;
+    }
+    /deep/.ant-form label{
+        font-size: 12px;
+    }
+    /deep/.table-page-search-wrapper .ant-form-inline .ant-form-item{
+        margin-bottom:9px
+    }
+    /deep/.moddle>.ant-card-body{
+        padding-bottom:0px;
+        padding-top: 12px;
+    }
+    /deep/.top>.ant-card-body{
+        padding-bottom: 12px;
+        padding-top: 12px;
+    }
+    /deep/.ant-btn{
+        height:28px
+    }
+    /deep/.ant-modal-body{
+        padding-bottom: 0px;
+        padding-top: 0px;
+    }
+    // /deep/.ant-modal-body{
+    //     background: #f0f2f5;
+    // }
+    /deep/.ant-modal-content{
+        background: #f0f2f5;
+    }
+    /deep/.ant-card-body .table-operator {
+        margin-bottom: 0px;
+    }
+    /deep/.three>.ant-card-body{
+        padding-bottom:12px;
+        padding-top: 12px;
+    }
+    /deep/.bottom>.ant-card-body{
+        padding-bottom:0px;
+        padding-top: 12px;
+    }
+
+    /deep/.ant-calendar-picker{
+        min-width: 0px !important;  
+    }
+    /deep/.sonItem {
+        margin-bottom:0px !important
+    }
+    /deep/#sonList1>.ant-spin-nested-loading>.ant-spin-container>.ant-table>.ant-table-content>.ant-table-scroll>.ant-table-body>.ant-table-fixed>.ant-table-tbody > tr > td {
+        padding: 8px 8px !important;
+    }
+    /deep/.ant-table-fixed-header .ant-table-scroll .ant-table-header{
+        width: calc(100% + 9px);//减去滚动条的宽度
+    }
+  </style>

+ 23 - 5
src/views/production/safetyStock/modules/AddEncoder.vue

@@ -32,16 +32,18 @@
                 </a-col>
                 <a-col :md="8" :sm="24" >
                   <a-form-model-item label="料品主单位" prop='unit' >
-                      <a-select style="width:100%;"  v-model="form.unit" @change="changeUnit">
+                    <a-input-search placeholder="请输入" readonly v-model="form.unit" @search="searchUnit('unit')"></a-input-search>
+                      <!-- <a-select style="width:100%;"  v-model="form.unit" @change="changeUnit">
                           <a-select-option v-for="(val,index) in unitOptions" :key="index" :value="val.Name">{{ val.Name }}</a-select-option>
-                      </a-select>
+                      </a-select> -->
                   </a-form-model-item>
                 </a-col>
                 <a-col :md="8" :sm="24">
                     <a-form-model-item label="料品单位" prop='auxiliaryUnit' >
-                      <a-select style="width:100%;"  v-model="form.auxiliaryUnit" @change="changeAuxiliaryUnit">
+                    <a-input-search placeholder="请输入" readonly v-model="form.auxiliaryUnit" @search="searchUnit('auxiliaryUnit')"></a-input-search>
+                      <!-- <a-select style="width:100%;"  v-model="form.auxiliaryUnit" @change="changeAuxiliaryUnit">
                             <a-select-option v-for="(val,index) in unitOptions" :key="index" :value="val.Name">{{ val.Name }}</a-select-option>
-                        </a-select>
+                        </a-select> -->
                     </a-form-model-item>
                   </a-col>
                   <a-col :md="8" :sm="24">
@@ -73,7 +75,8 @@
             </a-form-model>
         </div>
      </a-card>
-     <ClassNamePopup ref="ClassNamePopup" @okData="okData"></ClassNamePopup>
+     <ClassNamePopup ref="ClassNamePopup" @okData="okData" ></ClassNamePopup>
+     <unitPopup ref="unitPopup"  @okData="okUnitData"></unitPopup>
     </a-modal>
   </template>
   <script>
@@ -83,11 +86,13 @@
       import moment from "moment"
       import { httpAction ,getAction,postAction,putAction} from '@/api/manage'
       import ClassNamePopup from '../../Popup/ClassNamePopup.vue'
+      import unitPopup from '../../Popup/unitPopup.vue'
       export default {
         name: 'AddEncoder',
         mixins: [JEditableTableModelMixin],
         components: {
             ClassNamePopup,
+            unitPopup
         },
         data() {
           return {
@@ -192,10 +197,23 @@
               this.$set(this.form,'classifyCode',data.code )
               this.$refs.form.clearValidate()
             },
+            okUnitData(data,whatUnit){
+              if(whatUnit=='unit'){
+                this.$set(this.form,'unit',data.Name )
+              }else{
+                this.$set(this.form,'auxiliaryUnit',data.Name )
+              }
+              this.$refs.form.clearValidate()
+            },
             searchClassName(){
                 this.$refs.ClassNamePopup.visible = true
                 this.$refs.ClassNamePopup.getData()
             },
+            searchUnit(data){
+                this.$refs.unitPopup.visible = true
+                this.$refs.unitPopup.getData()
+                this.$refs.unitPopup.whatUnit = data
+            },
             changeUnit(data){
                 this.unitOptions.map(item=>{
                     if(item.Name==data){