Browse Source

销售出库-筛选条件修改

jingbb 4 months ago
parent
commit
06e452edec

+ 27 - 35
src/views/inventiry/salesOutbound/components/SelectDeliveryModal.vue

@@ -26,20 +26,30 @@
                         <a-col :md="6" :sm="8">
                             <a-form-item label="项目(project)">
                                 <ApiSelect
-                                    :api="projectListList"
+                                    :api="ProjectOption"
                                     showSearch
                                     v-model:value="queryParams.project"
-                                    optionFilterProp="label"
+                                    :filterOption="false"
                                     resultField="records"
                                     labelField="name"
                                     valueField="id"
+                                    :params='{pageSize:-1}'
                                     :disabled="fatherProject!==''"
-                                    />
+                                />
                             </a-form-item>
                         </a-col>
                         <a-col :md="6" :sm="8">
                             <a-form-item label="客户(customer)" :label-col="labelCol1" :wrapper-col="wrapperCol1">
-                                <a-input placeholder="请输入" v-model:value="queryParams.customerName"></a-input>
+                                <ApiSelect
+                                    :api="CustomerOption"
+                                    showSearch
+                                    v-model:value="queryParams.customer"
+                                    :filterOption="false"
+                                    resultField="records"
+                                    labelField="abbreviation"
+                                    valueField="id"
+                                    :params='{pageSize:-1}'
+                                />
                             </a-form-item>
                         </a-col>
                         
@@ -50,13 +60,21 @@
                         </a-col>
                         <a-col :md="6" :sm="8">
                             <a-form-item label="产品分类(production class)" :label-col="labelCol1" :wrapper-col="wrapperCol1">
-                                <!-- <a-input placeholder="请输入" v-model:value="queryParams.classId"></a-input> -->
-                                <JSelectInput   v-model:value="queryParams.productionClass"  placeholder="请选择" :options="classOption" ></JSelectInput>
+                                <ApiSelect
+                                    :api="ClassList"
+                                    showSearch
+                                    v-model:value="queryParams.productionClass"
+                                    :filterOption="false"
+                                    resultField="records"
+                                    labelField="name"
+                                    valueField="id"
+                                    :params='{pageSize:-1}'
+                                />
                             </a-form-item>
                         </a-col>
                         <a-col :md="6" :sm="8">
                             <a-form-item label="机型(model)">
-                                <a-input placeholder="请输入" v-model:value="queryParams.headModel"></a-input>
+                                <JDictSelectTag v-model:value="queryParams.headModel" placeholder="请选择" dictCode="model_typer"/>
                             </a-form-item>
                         </a-col>
                         
@@ -126,11 +144,9 @@
     import { defHttp} from '/@/utils/http/axios';
     import { message } from 'ant-design-vue';
     import { filterObj, getFileAccessHttpUrl } from '/@/utils/common/compUtils';
-    import { JDictSelectTag} from '/@/components/Form';
-     import {  ApiSelect, } from '/@/components/Form/index';
-    import JSelectInput from '/@/components/Form/src/jeecg/components/JSelectInput.vue';
+    import { JDictSelectTag,ApiSelect} from '/@/components/Form';
+    import {ProjectOption,CustomerOption,ClassList} from '../salesOutboundForm.api';
     const emit = defineEmits([ 'SelectDelivery']); //定义emit
-    let classOption = ref([])
     var visible = ref(false)
     var fatherProject = ref('')
     var fatherSourceCode = ref('')
@@ -337,29 +353,6 @@
         pagination.value.pageSize = paginations.pageSize;
         loadData()
     };
-    function projectListList(){
-        let params = {pageSize:-1}
-        return defHttp.get({url:'/baseCode/baseProjectArchive/list',params});
-    }
-    function getOptiom(){
-    defHttp
-        .get({ url: 'baseCode/baseProductClass/list'}, { isTransformResponse: false })
-        .then((res) => {
-            if (res.success) {
-              classOption.value = []
-              res.result.records.forEach(element => {
-                  var obj = {
-                    label: element.name?element.name:'无名称请维护',
-                    value: element.name?element.name:''
-                  };
-                  classOption.value.push( obj)
-              });    
-            }
-        })
-        .finally(() => {
-            // loading.value = false;
-        });
-  }
     function searchQuery(){
         loadData();
     }
@@ -440,7 +433,6 @@
             fatherSourceCode.value = ''
         }
         loadData()
-        getOptiom()
     }
     function chengDeliveryDate(prop){
        if(prop){

+ 38 - 62
src/views/inventiry/salesOutbound/components/SelectStaningStockModal.vue

@@ -25,32 +25,49 @@
                     <template v-if="toggleSearchStatus">
                         <a-col :md="6" :sm="8">
                             <a-form-item label="项目(project)">
+                                <a-input placeholder="请输入" v-model:value="queryParams.projectName" :disabled="father.project!==''"></a-input>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :md="6" :sm="8">
+                            <a-form-item label="供应商(supplier)">
                                 <ApiSelect
-                                    :api="projectListList"
+                                    :api="supplierOption"
                                     showSearch
-                                    v-model:value="queryParams.project"
-                                    optionFilterProp="label"
+                                    v-model:value="queryParams.supplier"
+                                    :filterOption="false"
                                     resultField="records"
                                     labelField="name"
                                     valueField="id"
-                                    :disabled="father.project!==''"
-                                    />
-                            </a-form-item>
-                        </a-col>
-                        <a-col :md="6" :sm="8">
-                            <a-form-item label="供应商(supplier)">
-                                <a-input placeholder="请输入" v-model:value="queryParams.supplierName"></a-input>
+                                    :params='{pageSize:-1}'
+                                />
                             </a-form-item>
                         </a-col>
                         <a-col :md="6" :sm="8">
                             <a-form-item label="客户(customer)">
-                                <a-input placeholder="请输入" v-model:value="queryParams.customerName"></a-input>
+                                <ApiSelect
+                                    :api="CustomerOption"
+                                    showSearch
+                                    v-model:value="queryParams.customer"
+                                    :filterOption="false"
+                                    resultField="records"
+                                    labelField="abbreviation"
+                                    valueField="id"
+                                    :params='{pageSize:-1}'
+                                />
                             </a-form-item>
                         </a-col>
                         <a-col :md="6" :sm="8">
                             <a-form-item label="产品分类(production class)" :label-col="labelCol1" :wrapper-col="wrapperCol1">
-                                <!-- <a-input placeholder="请输入" v-model:value="queryParams.classId"></a-input> -->
-                                <JSelectInput   v-model:value="queryParams.productionClass"  placeholder="请选择" :options="classOption" ></JSelectInput>
+                                <ApiSelect
+                                    :api="ClassList"
+                                    showSearch
+                                    v-model:value="queryParams.productionClass"
+                                    :filterOption="false"
+                                    resultField="records"
+                                    labelField="name"
+                                    valueField="id"
+                                    :params='{pageSize:-1}'
+                                />
                             </a-form-item>
                         </a-col>
                         <a-col :md="6" :sm="8">
@@ -65,7 +82,7 @@
                         </a-col>  
                         <a-col :md="6" :sm="8">
                             <a-form-item label="机型(model)">
-                                <a-input placeholder="请输入" v-model:value="queryParams.headModel"></a-input>
+                                <JDictSelectTag v-model:value="queryParams.headModel" placeholder="请选择" dictCode="model_typer" style="width: 100%;"/>
                             </a-form-item>
                         </a-col>
                         <a-col :md="6" :sm="8">
@@ -123,11 +140,9 @@
     import { defHttp} from '/@/utils/http/axios';
     import { message } from 'ant-design-vue';
     import { filterObj, getFileAccessHttpUrl } from '/@/utils/common/compUtils';
-    import { JDictSelectTag} from '/@/components/Form';
-     import {  ApiSelect, } from '/@/components/Form/index';
-    import JSelectInput from '/@/components/Form/src/jeecg/components/JSelectInput.vue';
+    import { JDictSelectTag,ApiSelect} from '/@/components/Form';
+    import {CustomerOption,ClassList,supplierOption} from '../salesOutboundForm.api';
     const emit = defineEmits([ 'SelectStaningStock']); //定义emit
-    let classOption = ref([])
     var visible = ref(false)
     var father = ref({})
     const columns = [
@@ -304,26 +319,11 @@
         let params = Object.assign(queryParams.value);
         params.pageNo = pagination.value.current;
         params.pageSize = pagination.value.pageSize;
-        if(father.value.project&&father.value.Project!==''){
-            queryParams.value.project = father.value.project
-        }else {
-            queryParams.value.project = params.project
-        }
-        if(father.value.goodsAllocation&&father.value.goodsAllocation!==''){
-            queryParams.value.goodsAllocation = father.value.goodsAllocation
-        }else {
-            queryParams.value.goodsAllocation = params.goodsAllocation
-        }
-        if(father.value.productCode&&father.value.productCode!==''){
-            queryParams.value.productCode = father.value.productCode
-        }else {
-            queryParams.value.productCode = params.productCode
-        }
-        if(father.value.warehouse&&father.value.warehouse!==''){
-            queryParams.value.warehouse = father.value.warehouse
-        }else {
-            queryParams.value.warehouse = params.warehouse
-        }
+        queryParams.value.project = father.value.project
+        queryParams.value.projectName = father.value.projectName
+        queryParams.value.goodsAllocation = father.value.goodsAllocation
+        queryParams.value.productCode = father.value.productCode
+        queryParams.value.warehouse = father.value.warehouse
         return filterObj(params);
     }
     function handleTableChange(paginations, filters, sorter){
@@ -332,29 +332,6 @@
         pagination.value.pageSize = paginations.pageSize;
         loadData()
     };
-    function projectListList(){
-        let params = {pageSize:-1}
-        return defHttp.get({url:'/baseCode/baseProjectArchive/list',params});
-    }
-    function getOptiom(){
-    defHttp
-        .get({ url: 'baseCode/baseProductClass/list'}, { isTransformResponse: false })
-        .then((res) => {
-            if (res.success) {
-              classOption.value = []
-              res.result.records.forEach(element => {
-                  var obj = {
-                    label: element.name?element.name:'无名称请维护',
-                    value: element.name?element.name:''
-                  };
-                  classOption.value.push( obj)
-              });    
-            }
-        })
-        .finally(() => {
-            // loading.value = false;
-        });
-  }
     function searchQuery(){
         loadData();
     }
@@ -417,7 +394,6 @@
         visible.value = true
         father.value = Object.assign({},formData)
         loadData()
-        getOptiom()
     }
     defineExpose({
       getTable

+ 12 - 2
src/views/inventiry/salesOutbound/salesOutboundForm.api.ts

@@ -18,7 +18,10 @@ enum Api {
   cancelSubmitBatch='/storeCode/storeSaleOut/returnSubmitBatch',
   editSign='/storeCode/storeSaleOut/updateSigning',
   classList='baseCode/baseProductClass/list',
-  invoice='/storeCode/storeSaleOut/applyInvoice'
+  invoice='/storeCode/storeSaleOut/applyInvoice',
+  customerList='/cuspCode/cuspCustomerProfile/list',
+  projectList='/baseCode/baseProjectArchive/list',
+  supplierList='/cuspCode/cuspSupplierProfile/list',
 }
 /**
  * 导出api
@@ -148,4 +151,11 @@ export const cancelBatchSubmit = (params, handleSuccess) => {
       });
     }
   });
-}
+}
+//获取客户下拉框列表
+export const CustomerOption = (params) => defHttp.get({ url: Api.customerList, params });
+
+//获取项目下拉框列表
+export const ProjectOption = (params) => defHttp.get({ url: Api.projectList, params });
+//获取供应商列表
+export const supplierOption = (params) => defHttp.get({url: Api.supplierList, params});

+ 37 - 37
src/views/inventiry/salesOutbound/salesOutboundList.vue

@@ -20,19 +20,46 @@
               <a-col :lg="8">
                 <a-form-item name="project">
                   <template #label><span title="项目(project)">项目(project)</span></template>
-                  <a-input v-model:value="queryParam.project" placeholder="请选择"/>
+                  <ApiSelect
+                    :api="ProjectOption"
+                    showSearch
+                    v-model:value="queryParam.project"
+                    :filterOption="false"
+                    resultField="records"
+                    labelField="name"
+                    valueField="id"
+                    :params='{pageSize:-1}'
+                  />
                 </a-form-item>
               </a-col>
               <a-col :lg="8">
-                <a-form-item name="customerName">
+                <a-form-item name="customer">
                   <template #label><span title="客户(customer)">客户(customer)</span></template>
-                  <a-input placeholder="请输入客户(customer)" v-model:value="queryParam.customerName" allow-clear ></a-input>
+                  <ApiSelect
+                    :api="CustomerOption"
+                    showSearch
+                    v-model:value="queryParam.customer"
+                    :filterOption="false"
+                    resultField="records"
+                    labelField="abbreviation"
+                    valueField="id"
+                    :params='{pageSize:-1}'
+                  />
                 </a-form-item>
               </a-col>
               <a-col :lg="8">
                 <a-form-item name="productionClass" >
                   <template #label><span title="产品分类(production class)">产品分类(production class)</span></template>
-                  <JSelectInput   v-model:value="queryParam.productionClass"  placeholder="请选择" :options="classOption" style="width: 100%;"></JSelectInput>
+                      <ApiSelect
+                      :api="ClassList"
+                      showSearch
+                      v-model:value="queryParam.productionClass"
+                      :filterOption="false"
+                      resultField="records"
+                      labelField="name"
+                      valueField="id"
+                      :params='{pageSize:-1}'
+                    />
                 </a-form-item>
               </a-col>
               <a-col :lg="8">
@@ -44,25 +71,25 @@
               <a-col :lg="8">
                 <a-form-item name="maker">
                   <template #label><span title="厂家(maker)">厂家(maker)</span></template>
-                  <a-input placeholder="请输入厂家(maker)" v-model:value="queryParam.maker" allow-clear AutoComplete="off"></a-input>
+                  <JDictSelectTag v-model:value="queryParam.maker" placeholder="请选择" dictCode="factory"/>
                 </a-form-item>
               </a-col>   
               <a-col :lg="8">
                 <a-form-item name="productCode">
                   <template #label><span title="产品编码(product code)">产品编码(product code)</span></template>
-                  <a-input placeholder="请输入产品编码(product code)" v-model:value="queryParam.productCode" allow-clear ></a-input>
+                  <a-input placeholder="请输入产品编码(product code)" v-model:value="queryParam.productCode" allow-clear AutoComplete="off"></a-input>
                 </a-form-item>
               </a-col>          
               <a-col :lg="8">
                 <a-form-item name="warehouse">
                   <template #label><span title="仓库(warehouse)">仓库(warehouse)</span></template>
-                  <a-input placeholder="请输" v-model:value="queryParam.warehouse" allow-clear ></a-input>
+                  <JDictSelectTag v-model:value="queryParam.warehouse" placeholder="请选择" dictCode="warehouse"/>
                 </a-form-item>
               </a-col>
               <a-col :lg="8">
                 <a-form-item name="goodsAllocation">
                   <template #label><span title="货位(goods allocation)">货位(goods allocation)</span></template>
-                  <a-input placeholder="请输" v-model:value="queryParam.goodsAllocation" allow-clear ></a-input>
+                  <JDictSelectTag v-model:value="queryParam.goodsAllocation" placeholder="请选择" dictCode="goods_allocation"/>
                 </a-form-item>
               </a-col>
               <a-col :lg="8">
@@ -147,11 +174,9 @@
     import salesOutFormModal from './components/salesOutFormModal.vue'
     import SetIsExport from './components/SetIsExport.vue'
     import {columns} from './salesOutboundForm.data';
-    import {list, deleteOne, batchDelete, getImportUrl,getExportUrl,batchSubmit,cancelBatchSubmit,editSignSing,applyInvoice} from './salesOutboundForm.api';
+    import {list, deleteOne, batchDelete, getImportUrl,getExportUrl,batchSubmit,cancelBatchSubmit,editSignSing,applyInvoice,ProjectOption,CustomerOption,ClassList} from './salesOutboundForm.api';
     import { cloneDeep } from "lodash-es";
-    import { defHttp } from '/@/utils/http/axios';
-    import { JDictSelectTag} from '/@/components/Form';
-    import JSelectInput from '/@/components/Form/src/jeecg/components/JSelectInput.vue';
+    import { JDictSelectTag,ApiSelect} from '/@/components/Form';
     import { message } from 'ant-design-vue';
     import { useGlobSetting } from '/@/hooks/setting';
     import { getHeaders } from '/@/utils/common/compUtils';
@@ -164,7 +189,6 @@
     });
     //注册model
     const [registerModal, {openModal}] = useModal();
-    var classOption = ref([]);
     const setIsExportRef=ref();
      //注册table数据
     const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
@@ -199,10 +223,6 @@
   
     const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
   
-     // 自动请求并暴露内部方法
-     onMounted(() => {
-      getOptiom()
-    });
   
      /**
       * 新增事件
@@ -223,26 +243,6 @@
          showFooter: true,
        });
      }
-    //  产品分类
-    function getOptiom(){
-          defHttp
-              .get({ url: 'baseCode/baseProductClass/list'}, { isTransformResponse: false })
-              .then((res) => {
-                  if (res.success) {
-                    classOption.value = []
-                    res.result.records.forEach(element => {
-                        var obj = {
-                          label: element.name?element.name:'无名称请维护',
-                          value: element.id?element.id:''
-                        };
-                        classOption.value.push( obj)
-                    });    
-                  }
-              })
-              .finally(() => {
-                  // loading.value = false;
-              });
-    }
      /**
       * 详情
      */