Quellcode durchsuchen

库存管理-下拉框可搜索

jingbb vor 3 Monaten
Ursprung
Commit
230a23c47a

+ 4 - 2
src/views/inventiry/defectiveProducts/defectiveProductsList.vue

@@ -24,11 +24,12 @@
                     :api="ProjectOption"
                     showSearch
                     v-model:value="queryParam.project"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="name"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>
@@ -39,11 +40,12 @@
                     :api="supplierOption"
                     showSearch
                     v-model:value="queryParam.supplier"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="name"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>

+ 8 - 4
src/views/inventiry/existingQuantity/existingQuantityList.vue

@@ -24,11 +24,12 @@
                     :api="ProjectOption"
                     showSearch
                     v-model:value="queryParam.project"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="name"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>
@@ -39,11 +40,12 @@
                     :api="supplierOption"
                     showSearch
                     v-model:value="queryParam.supplier"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="name"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>
@@ -54,11 +56,12 @@
                     :api="CustomerOption"
                     showSearch
                     v-model:value="queryParam.customer"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="abbreviation"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>
@@ -69,11 +72,12 @@
                       :api="ClassList"
                       showSearch
                       v-model:value="queryParam.productionClass"
-                      :filterOption="false"
+                      :filterOption="true"
                       resultField="records"
                       labelField="name"
                       valueField="id"
                       :params='{pageSize:-1}'
+                      optionFilterProp='label'
                     />
                 </a-form-item>
               </a-col>

+ 33 - 56
src/views/inventiry/otherIn/components/otherInForm.vue

@@ -21,12 +21,33 @@
 						</a-col>
 						<a-col :span="12">
 							<a-form-item label="供应商(supplier)" v-bind="validateInfos.supplierName"  id="SaleOrderForm-supplierName" name="supplierName">
-                <JSelectInput   v-model:value="formData.supplier"  placeholder="请选择" allow-clear  :options="supplierOption" @change="changeSupplier"></JSelectInput>
+                <ApiSelect
+                    :api="supplierOption"
+                    showSearch
+                    v-model:value="formData.supplier"
+                    :filterOption="true"
+                    resultField="records"
+                    labelField="name"
+                    valueField="id"
+                    @change="changeSupplier"
+                    :params='{pageSize:-1}'
+                    optionFilterProp='label'
+                  />
 							</a-form-item>
 						</a-col>
             <a-col :span="12">
 							<a-form-item label="产品分类(production class)" v-bind="validateInfos.productionClass"  id="SaleOrderForm-productionClass" name="productionClass">
-                <JSelectInput   v-model:value="formData.productionClass"  placeholder="请选择" :options="classOption" ></JSelectInput>
+                  <ApiSelect
+                      :api="ClassList"
+                      showSearch
+                      v-model:value="formData.productionClass"
+                      :filterOption="true"
+                      resultField="records"
+                      labelField="name"
+                      valueField="id"
+                      :params='{pageSize:-1}'
+                      optionFilterProp='label'
+                  />
 							</a-form-item>
 						</a-col>
 						<a-col :span="12">
@@ -122,7 +143,7 @@
   import { defineComponent, ref, reactive, computed, toRaw} from 'vue';
   import { defHttp } from '/@/utils/http/axios';
   import { useValidateAntFormAndTable } from '/@/hooks/system/useJvxeMethods';
-  import { queryOtherInFormShipFormShippTable, querystockInByMainId, queryDataById, saveOrUpdate} from '../otherInForm.api';
+  import { queryOtherInFormShipFormShippTable, querystockInByMainId, queryDataById, saveOrUpdate,supplierOption,ClassList} from '../otherInForm.api';
   import { JVxeTable } from '/@/components/jeecg/JVxeTable';
   import {otherInShipColumns, stockInColumns} from '../otherInForm.data';
   import BaseShipArchiveAccessoriesModal from '../../../publicComponents/BaseShipArchiveAccessoriesModal.vue';
@@ -132,7 +153,7 @@
   import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
   import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
   import JSelectInput from '/@/components/Form/src/jeecg/components/JSelectInput.vue';
-  import { JDictSelectTag} from '/@/components/Form';
+  import { JDictSelectTag,ApiSelect} from '/@/components/Form';
   import { Form, message } from 'ant-design-vue';
   import moment from 'moment';
   const useForm = Form.useForm;
@@ -147,7 +168,8 @@
       SelectProjectModal,
       SelectPrpductModal,
       SelectShipSModal,
-      JSelectInput
+      JSelectInput,
+      ApiSelect
     },
     props:{
       formDisabled:{
@@ -159,8 +181,6 @@
     },
     emits:['success'],
     setup(props, {emit}) {
-      var classOption = ref([]);
-      var supplierOption = ref([]);
       const loading = ref(false);
       const formRef = ref();
       const SelectProjectModalRef = ref()
@@ -229,8 +249,6 @@
         otherInShipTable.dataSource = [];
         stockInTable.dataSource = [];
         activeKey.value = 'otherInShip'
-        getSupplierOption()
-        getOptiom()
       }
       async function edit(row) {
         //主表数据
@@ -240,8 +258,6 @@
         otherInShipTable.dataSource = [...otherInShipDataList];
         const stockInDataList = await querystockInByMainId(row['id']);
         stockInTable.dataSource = [...stockInDataList];
-        getSupplierOption()
-        getOptiom()
       }
 
       async function queryMainData(id) {
@@ -353,55 +369,16 @@
         otherInShipTable.dataSource=arr        
         
       }
-      function getSupplierOption(){
-        defHttp
-            .get({ url: '/cuspCode/cuspSupplierProfile/list'}, { isTransformResponse: false })
-            .then((res) => {
-                if (res.success) {
-                  supplierOption.value = []
-                  res.result.records.forEach(element => {
-                      var obj = {
-                        label: element.name?element.name:'无名称请维护',
-                        value: element.id?element.id:''
-                      };
-                      supplierOption.value.push( obj)
-                  });    
-                }
-            })
-            .finally(() => {
-                // loading.value = false;
-            });
-      }
-      function changeSupplier(prop){
+      async function changeSupplier(prop){
         if(prop){
-          supplierOption.value.map(item=>{
-            if(item.value==prop){
-              formData.supplierName = item.label
-            }
-          })
+          var params={id:formData.supplier}
+          var obj = await supplierOption(params)
+          formData.suppilerName = obj.records[0].name
         }else{
           formData.supplier = ''
           formData.supplierName = ''
         }
       }
-      //  产品分类
-      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;
-          });
-      }
       /**
        * 值改变事件触发-树控件回调
        * @param key
@@ -441,9 +418,9 @@
         selectShip,
         SelectShipSModalRef,
         addShip,
-        supplierOption,
         changeSupplier,
-        classOption
+        ClassList,
+        supplierOption
       }
     }
   });

+ 6 - 3
src/views/inventiry/otherIn/othernList.vue

@@ -24,11 +24,12 @@
                     :api="ProjectOption"
                     showSearch
                     v-model:value="queryParam.project"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="name"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>
@@ -39,11 +40,12 @@
                     :api="supplierOption"
                     showSearch
                     v-model:value="queryParam.supplier"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="name"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>
@@ -54,11 +56,12 @@
                       :api="ClassList"
                       showSearch
                       v-model:value="queryParam.productionClass"
-                      :filterOption="false"
+                      :filterOption="true"
                       resultField="records"
                       labelField="name"
                       valueField="id"
                       :params='{pageSize:-1}'
+                      optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>

+ 4 - 2
src/views/inventiry/otherOut/otherOutList.vue

@@ -24,11 +24,12 @@
                     :api="ProjectOption"
                     showSearch
                     v-model:value="queryParam.project"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="name"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>
@@ -39,11 +40,12 @@
                     :api="CustomerOption"
                     showSearch
                     v-model:value="queryParam.customer"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="abbreviation"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>

+ 4 - 2
src/views/inventiry/purchaseIn/purchaseInList.vue

@@ -24,11 +24,12 @@
                     :api="ProjectOption"
                     showSearch
                     v-model:value="queryParam.project"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="name"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>
@@ -39,11 +40,12 @@
                     :api="supplierOption"
                     showSearch
                     v-model:value="queryParam.supplier"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="name"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>

+ 6 - 3
src/views/inventiry/salesOutbound/salesOutboundList.vue

@@ -24,11 +24,12 @@
                     :api="ProjectOption"
                     showSearch
                     v-model:value="queryParam.project"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="name"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>
@@ -39,11 +40,12 @@
                     :api="CustomerOption"
                     showSearch
                     v-model:value="queryParam.customer"
-                    :filterOption="false"
+                    :filterOption="true"
                     resultField="records"
                     labelField="abbreviation"
                     valueField="id"
                     :params='{pageSize:-1}'
+                    optionFilterProp='label'
                   />
                 </a-form-item>
               </a-col>
@@ -54,11 +56,12 @@
                       :api="ClassList"
                       showSearch
                       v-model:value="queryParam.productionClass"
-                      :filterOption="false"
+                      :filterOption="true"
                       resultField="records"
                       labelField="name"
                       valueField="id"
                       :params='{pageSize:-1}'
+                      optionFilterProp='label'
                     />
                 </a-form-item>
               </a-col>

+ 4 - 8
src/views/purchase/purchaseInquiryForm/purchaseInquiryFormList.vue

@@ -116,7 +116,7 @@
      <!--插槽:table标题-->
       <template #tableTitle>
           <a-button type="primary"  @click="handleAdd" preIcon="ant-design:plus-outlined" v-auth="'purCode:pur_inquiry_form:add'"> 新增(add)</a-button>
-          <a-button  type="primary"   preIcon="ant-design:export-outlined" @click="onExportXlsNow" v-auth="'purCode:pur_inquiry_form:exportXls'"> 导出(export)</a-button>
+          <a-button  type="primary"   preIcon="ant-design:export-outlined" @click="onExportXls" v-auth="'purCode:pur_inquiry_form:exportXls'"> 导出(export)</a-button>
           <a-button  type="primary"  @click="submit" > 提交(submit)</a-button>
           <a-button  type="primary"  @click="cancelSubmit" > 取消提交(cancelSubmit)</a-button>
           <a-dropdown v-if="selectedRowKeys.length > 0">
@@ -283,7 +283,7 @@
          },
          {
            label: '导出(export)',
-           onClick: handleExportOne.bind(null, record),
+           onClick: onExportXlsNow.bind(null, record),
            ifShow: record.submit=='1',
          },
          {
@@ -392,14 +392,10 @@
     }
     return queryParamClone;
   }
-  async function onExportXlsNow(){
-    if(selectedRowKeys.value.length!==1){
-      message.warning('请选择一条数据')
-    }else{
-      queryParam.id=selectedRowKeys.value[0]
+  async function onExportXlsNow(record){
+      queryParam.id=record.id
       await onExportXls();
       queryParam.id=''
-    }
   }
 </script>
 <style lang="less" scoped>

+ 8 - 7
src/views/saleCode/quotation/quotation.vue

@@ -118,7 +118,7 @@
      <!--插槽:table标题-->
       <template #tableTitle>
           <a-button type="primary" v-auth="'saleCode:sale_quotation:add'"  @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增(add)</a-button>
-          <a-button  type="primary" v-auth="'saleCode:sale_quotation:exportXls'"  preIcon="ant-design:export-outlined" @click="onExportXlsNow"> 导出(export)</a-button>
+          <a-button  type="primary" v-auth="'saleCode:sale_quotation:exportXls'"  preIcon="ant-design:export-outlined" @click="onExportXls"> 导出(export)</a-button>
           <a-button  type="primary"  @click="submit"> 提交(submit)</a-button>
           <a-button  type="primary"  @click="cancelSubmit"> 取消提交(cancelSubmit)</a-button>
           <a-dropdown v-if="selectedRowKeys.length > 0">
@@ -284,6 +284,11 @@
       */
   function getTableAction(record){
        return [
+         {
+           label: '导出(export)',
+           onClick: onExportXlsNow.bind(null, record),
+           auth: 'saleCode:sale_quotation:edit',
+         },
          {
            label: '编辑(edit)',
            onClick: handleEdit.bind(null, record),
@@ -340,14 +345,10 @@
       cancelBatchSubmit({ids: ids},handleSuccess);
     }
   }
-  async function onExportXlsNow(){
-    if(selectedRowKeys.value.length!==1){
-      message.warning('请选择一条数据')
-    }else{
-      queryParam.id=selectedRowKeys.value[0]
+  async function onExportXlsNow(record){
+      queryParam.id=record.id
       await onExportXls();
       queryParam.id=''
-    }
   }