Purpose 9 months ago
parent
commit
e1e77a4b79

+ 1 - 1
config/index.js

@@ -12,7 +12,7 @@ module.exports = {
     assetsPublicPath: '/',
     proxyTable: {
       '/api': {
-        target: 'http://192.168.1.4:7003/',
+        target: 'http://192.168.255.64:7003/',
       }
     },
 

+ 1 - 0
src/api/TagApplyApi.js

@@ -3,6 +3,7 @@ import BaseCurdApi from './BaseCurdApi'
 class TagApplyApi extends BaseCurdApi {
   importData = (data) => {
     const formData = new FormData()
+    formData.append('providerId', data.providerId)
     formData.append('file', data.file)
     return this.api({
       url: `${this.basePath}/data/import`,

+ 72 - 25
src/components/DialogImport.vue

@@ -1,43 +1,66 @@
 <template>
   <el-dialog
     :visible.sync="visible"
+    title="导入数据"
     append-to-body
-    width="600px"
+    width="450px"
   >
-    <el-form ref="form" :model="uploadData" style="height:280px">
-      <div class="flex center">
-        <el-form-item prop="file" :rules="[{
-          required: true,
-          message: '请选择需要上传的文件'
-        }]" style="width:360px;">
+    <el-form
+      ref="form"
+      :model="uploadData"
+      label-width="80px"
+      style="height:200px"
+    >
+      <el-row :gutter="0">
+        <el-col :span="20">
+          <el-form-item prop="providerId" label="供应商" :rules="[{
+            required: true,
+            message: '请选择供应商'
+          }]">
+            <my-select
+              v-model="uploadData.providerId"
+              :options="providers"
+              filterable
+              placeholder="输入供应商全名或缩写"
+            ></my-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
 
-          <el-upload
-            ref="upload"
-            drag
-            action=""
-            :auto-upload="false"
-            :multiple="false"
-            accept=".csv,.xlsx"
-            :on-change="onFileChange"
-          >
-            <i class="el-icon-upload"></i>
-            <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
-            <div class="el-upload__tip" slot="tip">只能上传csv/excel文件</div>
-          </el-upload>
-        </el-form-item>
-      </div>
+      <el-row :gutter="0">
+        <el-col :span="24">
+          <el-form-item prop="file" label="上传文件" :rules="[{
+            required: true,
+            message: '请选择需要上传的文件'
+          }]">
+            <el-input :value="uploadData.file ? uploadData.file.name : ''" read-only>
+              <template #append>
+                <el-upload
+                  ref="upload"
+                  action=""
+                  :auto-upload="false"
+                  :multiple="false"
+                  :show-file-list="false"
+                  accept=".csv"
+                  :on-change="onFileChange"
+                >
+                  <div class="el-button el-button--primary" style="border-radius: 0 4px 4px 0;">浏览</div>
+                </el-upload>
+              </template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
     </el-form>
 
     <template #footer>
       <div class="flex center dialog-footer">
         <el-button
-          size="mini"
           @click="onCloseBtnClick"
         >取消</el-button>
 
         <el-button
           type="primary"
-          size="mini"
           @click="onImportDataBtnClick"
         >确定</el-button>
       </div>
@@ -55,17 +78,27 @@ export default {
     api: {
       required: true,
       type: Function
+    },
+    providers: {
+      required: true,
+      type: Array
     }
   },
   data: () => ({
     visible: false,
     uploadData: {
+      providerId: null,
       file: null
     }
   }),
   methods: {
     open () {
-      this.uploadData.file = null
+      const { providers } = this
+      this.uploadData = {
+        providerId: providers.length > 0 ? providers[0].id : null,
+        file: null
+      }
+
       this.visible = true
       this.$nextTick(() => {
         this.$refs.upload.clearFiles()
@@ -107,6 +140,20 @@ export default {
     onCloseBtnClick () {
       this.close()
     }
+  },
+  watch: {
+    providers (providers) {
+      if (providers.length === 0 || !this.visible) {
+        return
+      }
+
+      const { uploadData } = this
+      if (uploadData.providerId !== null) {
+        return
+      }
+
+      uploadData.providerId = providers[0].id
+    }
   }
 }
 </script>

+ 0 - 2
src/components/DialogOrderExport.vue

@@ -81,13 +81,11 @@
     <template #footer>
       <div class="flex center dialog-footer">
         <el-button
-          size="mini"
           @click="onCloseBtnClick"
         >取消</el-button>
 
         <el-button
           type="primary"
-          size="mini"
           @click="onExportPdfBtnClick"
         >导出</el-button>
       </div>

+ 5 - 7
src/components/DialogTagPurchase.vue

@@ -15,7 +15,7 @@
       <el-collapse v-model="activeCollapseName" class="form-collapse">
         <el-collapse-item title="采购信息" name="1" class="form-collapse-item">
           <el-row :gutter="$$Constant.LAYOUT_GAP">
-            <el-col :span="12">
+            <el-col :span="11">
               <el-form-item label="标签供应商" prop="provider">
                 <my-select
                   v-model="data.providerId"
@@ -26,7 +26,7 @@
           </el-row>
 
           <el-row :gutter="$$Constant.LAYOUT_GAP">
-            <el-col :span="12">
+            <el-col :span="11">
               <el-form-item label="标签类型" prop="tagTypeId">
                 <my-select
                   v-model="data.tagTypeId"
@@ -35,16 +35,14 @@
               </el-form-item>
             </el-col>
 
-            <el-col :span="12">
+            <el-col :span="2">1</el-col>
+
+            <el-col :span="11">
               <el-form-item label="标签数量" prop="number">
                 <el-input v-model="data.number" type="number" />
               </el-form-item>
             </el-col>
           </el-row>
-
-          <el-row :gutter="$$Constant.LAYOUT_GAP">
-            <el-col :span="12"></el-col>
-          </el-row>
         </el-collapse-item>
       </el-collapse>
     </el-form>

+ 11 - 1
src/components/MySelect.vue

@@ -1,6 +1,9 @@
 <template>
   <el-select
     v-model="selectValue"
+    :filterable="filterable"
+    :clearable="clearable"
+    :placeholder="placeholder"
     style="width:100%"
     @change="change"
   >
@@ -24,7 +27,14 @@ export default {
     options: {
       required: true,
       type: Array
-    }
+    },
+    filterable: {
+      type: Boolean
+    },
+    clearable: {
+      type: Boolean
+    },
+    placeholder: {}
   },
   computed: {
     selectValue: {

+ 20 - 5
src/entries/TagApply.js

@@ -1,8 +1,10 @@
-import BaseCurdEntry from './BaseCurdEntry'
+import tagApplyApi from '@/api/tagApplyApi'
+
 import DataTimeRange from '@/utils/DataTimeRange'
-import TagApplyState from './TagApplyState'
 
-import tagApplyApi from '@/api/tagApplyApi'
+import BaseCurdEntry from './BaseCurdEntry'
+import TagApplyState from './TagApplyState'
+import Provider from './Provider'
 
 export default class TagApply extends BaseCurdEntry {
   id
@@ -19,7 +21,18 @@ export default class TagApply extends BaseCurdEntry {
     return new Date(this.expectedReceiptDate).format('YYYY-MM-DD')
   }
 
-  providerName
+  providerId
+  get providerName () {
+    const config = TagApply.$$optionData.Provider
+    if (config) {
+      const option = config.map[this.providerId]
+      if (option) {
+        return option[TagApplyState.$$nameProp]
+      }
+    }
+
+    return ''
+  }
 
   tagTypeName
 
@@ -65,7 +78,7 @@ export default class TagApply extends BaseCurdEntry {
       diff: 7,
       offset: 0
     })),
-    providerName: '',
+    providerId: '',
     tagApplyStateId: '',
     order: [['dataTime', 'DESC']]
   })
@@ -74,6 +87,8 @@ export default class TagApply extends BaseCurdEntry {
     [{
       Target: TagApplyState,
       getQuery: () => ({})
+    }, {
+      Target: Provider
     }]
   ]
 

+ 12 - 5
src/views/TagApply.vue

@@ -15,12 +15,14 @@
 
         <el-col :span="8">
           <el-form-item label="供应商">
-            <el-input
-              v-model="query.providerName"
-              placeholder="输入供应商全名或缩写"
+            <my-select
+              v-model="query.providerId"
+              :options="optionGroup.Provider ? optionGroup.Provider.list : []"
+              filterable
               clearable
+              placeholder="输入供应商全名或缩写"
               @change="onSearchBtnClick"
-            />
+            ></my-select>
           </el-form-item>
         </el-col>
 
@@ -193,7 +195,12 @@
     </div>
   </el-card>
 
-  <dialog-import ref="dialogImport" :api="$$api.importData" @imported="onSaved"></dialog-import>
+  <dialog-import
+    ref="dialogImport"
+    :providers="optionGroup.Provider ? optionGroup.Provider.list : []"
+    :api="$$api.importData"
+    @imported="onSaved"
+  ></dialog-import>
   <dialog-order-export ref="orderExportDialog"></dialog-order-export>
 </div>
 </template>