Browse Source

供应商关联产品

lilei 4 năm trước cách đây
mục cha
commit
9640a2fd4c
1 tập tin đã thay đổi với 37 bổ sung139 xóa
  1. 37 139
      src/views/supplierManagement/associatedProductDetails/list.vue

+ 37 - 139
src/views/supplierManagement/associatedProductDetails/list.vue

@@ -6,44 +6,28 @@
         <a-row :gutter="15">
           <a-col :md="6" :sm="24">
             <a-form-item label="供应商名称">
-              <a-input id="associatedProductList-productName" v-model.trim="queryParam.productName" allowClear placeholder="请输入供应商名称"/>
+              <a-input id="associatedProductList-productName" v-model.trim="queryParam.supplierName" allowClear placeholder="请输入供应商名称"/>
             </a-form-item>
           </a-col>
           <a-col :md="6" :sm="24">
             <a-form-item label="产品名称">
-              <a-input id="associatedProductList-productName" v-model.trim="queryParam.productName" allowClear placeholder="请输入产品名称"/>
+              <a-input id="associatedProductList-productName" v-model.trim="queryParam.product.name" allowClear placeholder="请输入产品名称"/>
             </a-form-item>
           </a-col>
           <a-col :md="6" :sm="24">
             <a-form-item label="产品编码/原厂编码">
-              <a-input id="associatedProductList-productCode" v-model.trim="queryParam.productCode" allowClear placeholder="请输入产品编码"/>
+              <a-input id="associatedProductList-productCode" v-model.trim="queryParam.product.code" allowClear placeholder="请输入产品编码"/>
             </a-form-item>
           </a-col>
           <template v-if="advanced">
             <a-col :md="6" :sm="24">
               <a-form-item label="产品分类">
-                <a-cascader
-                  @change="changeProductType"
-                  change-on-select
-                  :options="productTypeList"
-                  :fieldNames="{ label: 'productTypeName', value: 'id', children: 'children' }"
-                  id="associatedProductList-productType"
-                  placeholder="请选择产品分类"
-                  allowClear />
+                <ProductType id="associatedProduct-productType" v-model="productType" @change="changeProductType"></ProductType>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
               <a-form-item label="品牌">
-                <a-select
-                  placeholder="请选择"
-                  id="associatedProductList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.productBrandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.productBrandSn" :value="item.productBrandSn">{{ item.productBrandName }}</a-select-option>
-                </a-select>
+                <ProductBrand id="associatedProduct-productBrandSn" v-model="queryParam.product.productBrandSn"></ProductBrand>
               </a-form-item>
             </a-col>
           </template>
@@ -66,11 +50,11 @@
       :rowKey="(record) => record.id"
       :columns="columns"
       :data="loadData"
-      :scroll="{ x: 1410, y: tableHeight }"
+      :scroll="{ y: tableHeight }"
       bordered>
       <!-- 产品分类 -->
       <template slot="productType" slot-scope="text, record">
-        <span v-if="record.productTypeName2 || record.productTypeName3">{{ record.productTypeName2 }} {{ record.productTypeName3 ? '>' : '' }} {{ record.productTypeName3 }}</span>
+        <span v-if="record.product.productTypeName2 || record.product.productTypeName3">{{ record.product.productTypeName1 }} {{ record.product.productTypeName2 ? '>' : '' }} {{ record.product.productTypeName2 }} {{ record.product.productTypeName3 ? '>' : '' }} {{ record.product.productTypeName3 }}</span>
         <span v-else>--</span>
       </template>
     </s-table>
@@ -78,27 +62,30 @@
 </template>
 
 <script>
-import moment from 'moment'
-import { productBrandQuery } from '@/api/productBrand'
-import { productTypeQuery } from '@/api/productType'
 import { STable, VSelect } from '@/components'
+import ProductType from '@/views/common/productType.js'
+import ProductBrand from '@/views/common/productBrand.js'
+import { supplierProductList } from '@/api/supplier'
 export default {
-  components: { STable, VSelect },
+  components: { STable, VSelect, ProductBrand, ProductType },
   data () {
     return {
       advanced: false, // 高级搜索 展开/关闭
       tableHeight: 0,
       queryParam: { //  查询条件
-        productName: '', //  产品名称
-        productCode: '', //  产品编码/原厂编码
-        productBrandSn: undefined, //  品牌
-        productTypeSn1: '', //  产品一级分类
-        productTypeSn2: '', //  产品二级分类
-        productTypeSn3: '', //  产品三级分类
-        enabledFlag: undefined //  定价状态
+        supplierName: '',
+        product: {
+          name: '', //  产品名称
+          queryWord: '', // 产品编码/原厂编码
+          productBrandSn: undefined, //  产品品牌
+          productTypeSn1: '', //  产品一级分类
+          productTypeSn2: '', //  产品二级分类
+          productTypeSn3: '' //  产品三级分类
+        }
       },
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false, // 导出loading
+      productType: [],
       columns: [
         { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
         { title: '供应商名称', dataIndex: 'productNsame', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
@@ -115,129 +102,40 @@ export default {
         if (this.tableHeight == 0) {
           this.tableHeight = window.innerHeight - 380
         }
-        // return dealerProductList(Object.assign(parameter, this.queryParam)).then(res => {
-        //   const data = res.data
-        //   const no = (data.pageNo - 1) * data.pageSize
-        //   for (var i = 0; i < data.list.length; i++) {
-        //     data.list[i].no = no + i + 1
-        //   }
-        //   this.disabled = false
-        //   return data
-        // })
-        const _this = this
-        return new Promise(function (resolve, reject) {
-          const data = {
-            pageNo: 1,
-            pageSize: 10,
-            list: [
-              { id: '1', productNum: 'jgqp11111111111', productName: '产品1', productPic: ['https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg', 'https://qn.antdv.com/vue.png'], productOldNum: 'jgqp111123545', productBrand: '箭冠品牌', productType: '产品分类1', inventoryNum: '5', inventoryMoney: '122' }
-            ]
-          }
+        return supplierProductList(Object.assign(parameter, this.queryParam)).then(res => {
+          const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
           for (var i = 0; i < data.list.length; i++) {
             data.list[i].no = no + i + 1
           }
-          _this.disabled = false
-          resolve(data)
+          this.disabled = false
+          return data
         })
-      },
-      openModal: false, //  编辑  弹框
-      itemId: '', //  当前产品id
-      productBrandList: [], //  品牌下拉数据
-      productTypeList: [] //  分类下拉数据
+      }
     }
   },
   methods: {
     //  重置
     resetSearchForm () {
-      this.queryParam.productCode = ''
-      this.queryParam.productName = ''
-      this.queryParam.productBrandSn = undefined
-      this.queryParam.productTypeSn1 = ''
-      this.queryParam.productTypeSn2 = ''
-      this.queryParam.productTypeSn3 = ''
-      this.queryParam.enabledFlag = undefined
+      this.queryParam.supplierName = ''
+      this.queryParam.product.name = ''
+      this.queryParam.product.queryWord = ''
+      this.queryParam.product.productBrandSn = undefined
+      this.queryParam.product.productTypeSn1 = ''
+      this.queryParam.product.productTypeSn2 = ''
+      this.queryParam.product.productTypeSn3 = ''
+      this.productType = []
       this.$refs.table.refresh(true)
     },
-    // 审核
-    handleAudit (row) {
-      this.itemId = row.id
-      this.openAuditModal = true
-    },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
-    //  编辑
-    handleEdit (row) {
-      this.itemId = row.id
-      this.openModal = true
-    },
-    //  关闭弹框
-    closeModal () {
-      this.itemId = ''
-      this.openModal = false
-    },
-    //  关闭审核弹框
-    closeAuditModal () {
-      this.itemId = ''
-      this.openAuditModal = false
-    },
     //  产品分类  change
     changeProductType (val, opt) {
-      this.queryParam.productTypeSn1 = val[0] ? val[0] : ''
-      this.queryParam.productTypeSn2 = val[1] ? val[1] : ''
-      this.queryParam.productTypeSn3 = val[2] ? val[2] : ''
-    },
-    // 导入
-    handleImport () {},
-    //  导出
-    handleExport () {
-      const params = this.queryParam
-      this.exportLoading = true
-      // customerBundleExportDelay(params).then(res => {
-      //   this.exportLoading = false
-      //   this.download(res)
-      // })
-    },
-    download (data) {
-      if (!data) { return }
-      const url = window.URL.createObjectURL(new Blob([data]))
-      const link = document.createElement('a')
-      link.style.display = 'none'
-      link.href = url
-      const a = moment().format('YYYYMMDDHHmmss')
-      const fname = '产品级别' + a
-      link.setAttribute('download', fname + '.xlsx')
-      document.body.appendChild(link)
-      link.click()
-    },
-    //  产品品牌  列表
-    getProductBrand () {
-      productBrandQuery({}).then(res => {
-        if (res.status == 200) {
-          this.productBrandList = res.data
-        } else {
-          this.productBrandList = []
-        }
-      })
-    },
-    //  产品分类  列表
-    getProductType () {
-      productTypeQuery({}).then(res => {
-        if (res.status == 200) {
-          this.productTypeList = res.data
-        } else {
-          this.productTypeList = []
-        }
-      })
+      this.queryParam.product.productTypeSn1 = val[0] ? val[0] : ''
+      this.queryParam.product.productTypeSn2 = val[1] ? val[1] : ''
+      this.queryParam.product.productTypeSn3 = val[2] ? val[2] : ''
     }
   },
   beforeRouteEnter (to, from, next) {
     next(vm => {
-      vm.getProductBrand()
-      vm.getProductType()
     })
   }
 }