lilei 3 years ago
parent
commit
0730475a16

+ 34 - 12
src/views/bulkManagement/bulkWarehousingOrder/edit.vue

@@ -41,24 +41,40 @@
               <div class="table-page-search-wrapper">
                 <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
                   <a-row :gutter="15">
-                    <a-col :md="6" :sm="24">
-                      <a-form-item label="关键词">
-                        <a-input id="bulkWarehousingOrderEdit-queryWord" v-model.trim="queryParam.queryWord" allowClear placeholder="产品名称/产品编码/原厂编码"/>
-                      </a-form-item>
+                    <a-col :md="4" :sm="24">
+                      <a-form-model-item label="产品编码">
+                        <a-input id="bulkWarehousingOrderEdit-code" ref="searchProductCode" v-model.trim="queryParam.code" allowClear placeholder="请输入产品编码"/>
+                      </a-form-model-item>
                     </a-col>
-                    <a-col :md="6" :sm="24">
-                      <a-form-item label="产品品牌">
-                        <ProductBrand id="bulkWarehousingOrderEdit-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
-                      </a-form-item>
+                    <a-col :md="4" :sm="24">
+                      <a-form-model-item label="产品名称">
+                        <a-input id="bulkWarehousingOrderEdit-name" v-model.trim="queryParam.name" allowClear placeholder="请输入产品名称"/>
+                      </a-form-model-item>
+                    </a-col>
+                    <a-col :md="4" :sm="24">
+                      <a-form-model-item label="原厂编码">
+                        <a-input id="bulkWarehousingOrderEdit-origCode" v-model.trim="queryParam.origCode" allowClear placeholder="请输入原厂编码"/>
+                      </a-form-model-item>
                     </a-col>
-                    <a-col :md="6" :sm="24">
+                    <a-col :md="4" :sm="24">
                       <a-form-item label="产品分类">
                         <ProductType id="productInfoList-productType" @change="changeProductType" v-model="productType"></ProductType>
                       </a-form-item>
                     </a-col>
-                    <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
+                    <template v-if="advanced">
+                      <a-col :md="4" :sm="24">
+                        <a-form-item label="产品品牌">
+                          <ProductBrand id="bulkWarehousingOrderEdit-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
+                        </a-form-item>
+                      </a-col>
+                    </template>
+                    <a-col :md="4" :sm="24" style="margin-bottom: 10px;">
                       <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="bulkWarehousingOrderEdit-refresh">查询</a-button>
                       <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="bulkWarehousingOrderEdit-reset">重置</a-button>
+                      <a @click="advanced=!advanced" style="margin:0 30px 0 10px">
+                        {{ advanced ? '收起' : '展开' }}
+                        <a-icon :type="advanced ? 'up' : 'down'"/>
+                      </a>
                     </a-col>
                   </a-row>
                 </a-form>
@@ -252,12 +268,15 @@ export default {
   mixins: [commonMixin],
   data () {
     return {
+      advanced: false,
       spinning: false,
       loading: false,
       chooseLoading: false,
       showNewProduct: false,
       queryParam: {
-        queryWord: '',
+        code: '', //  产品编码
+        name: '', //  产品名称
+        origCode: '', //  原厂编码
         productBrandSn: undefined,
         productTypeSn1: undefined,
         productTypeSn2: undefined,
@@ -411,7 +430,9 @@ export default {
     },
     //  重置
     resetSearchForm () {
-      this.queryParam.queryWord = ''
+      this.queryParam.name = ''
+      this.queryParam.code = ''
+      this.queryParam.origCode = ''
       this.queryParam.productBrandSn = undefined
       this.queryParam.productTypeSn1 = ''
       this.queryParam.productTypeSn2 = ''
@@ -653,6 +674,7 @@ export default {
       this.resetSearchForm()
       this.$refs.chooseTable.refresh(true)
       this.openModal = false
+      this.$refs.searchProductCode.focus()
     }
   },
   mounted () {

+ 1 - 1
src/views/common/productBrand.js

@@ -47,7 +47,7 @@ const ProductBrand = {
       console.log(input, option.data.attrs.pinyin)
       return (
         option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 || 
-        option.data.attrs.pinyin.toLowerCase().indexOf(input.toLowerCase()) >= 0
+        option.data.attrs.pinyin && option.data.attrs.pinyin.toLowerCase().indexOf(input.toLowerCase()) >= 0
       )
     },
     handleChange(value) {

+ 23 - 7
src/views/common/productType.js

@@ -1,4 +1,5 @@
 import { productTypeQuery } from '@/api/productType'
+import { dealerProductTypeList } from '@/api/dealerProductType'
 const ProductType = {
   template: `
       <a-cascader
@@ -22,6 +23,10 @@ const ProductType = {
     id: {
       type: String,
       default: ''
+    },
+    isDealer: {
+      type: Boolean,
+      default: false
     }
   },
   data () {
@@ -45,13 +50,24 @@ const ProductType = {
     },
     //  产品分类列表
     getProductType () {
-      productTypeQuery({}).then(res => {
-        if (res.status == 200) {
-          this.productTypeList = res.data
-        } else {
-          this.productTypeList = []
-        }
-      })
+      if(this.isDealer){
+        dealerProductTypeList({}).then(res => {
+          if (res.status == 200) {
+            this.productTypeList = res.data
+          } else {
+            this.productTypeList = []
+          }
+        })
+      }else{
+        productTypeQuery({}).then(res => {
+          if (res.status == 200) {
+            this.productTypeList = res.data
+          } else {
+            this.productTypeList = []
+          }
+        })
+      }
+      
     }
   }
 }

+ 15 - 2
src/views/financialManagement/financialCollection/list.vue

@@ -35,6 +35,11 @@
                   ></v-select>
                 </a-form-item>
               </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-item label="创建时间">
+                  <rangeDate ref="createDate" @change="createDateChange" />
+                </a-form-item>
+              </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="审核时间">
                   <rangeDate ref="rangeDate" @change="dateChange" />
@@ -211,8 +216,9 @@ export default {
         { title: '待收金额', dataIndex: 'unsettleAmount', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? ('¥' + text) : '--') } },
         { title: '收款类型', dataIndex: 'bizName', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '收款方式', dataIndex: 'settleStyleName', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '审核时间', dataIndex: 'auditTime', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '收款时间', dataIndex: 'settleTime', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '创建时间', dataIndex: 'createDate', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核时间', dataIndex: 'auditTime', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '收款时间', dataIndex: 'settleTime', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '5%', align: 'center' }
       ],
       loading: false,
@@ -280,6 +286,10 @@ export default {
       this.queryParam.auditBeginDate = date[0]
       this.queryParam.auditEndDate = date[1]
     },
+    createDateChange (date) {
+      this.queryParam.beginDate = date[0]
+      this.queryParam.endDate = date[1]
+    },
     // 总计
     settleReceiptQuerySum (params) {
       settleReceiptQuerySum(params).then(res => {
@@ -390,6 +400,7 @@ export default {
     resetData () {
       if (this.advanced) {
         this.$refs.rangeDate.resetDate()
+        this.$refs.createDate.resetDate()
       }
       this.queryParam = {
         bizType: this.curBizType,
@@ -397,6 +408,8 @@ export default {
         bizNo: '',
         settleClientName: '',
         billState: '',
+        beginDate: '',
+        endDate: '',
         auditBeginDate: '',
         auditEndDate: ''
       }

+ 15 - 2
src/views/financialManagement/financialPayment/list.vue

@@ -34,6 +34,11 @@
                     allowClear></v-select>
                 </a-form-item>
               </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-item label="创建时间">
+                  <rangeDate ref="createDate" @change="createDateChange" />
+                </a-form-item>
+              </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="审核时间">
                   <rangeDate ref="rangeDate" @change="dateChange" />
@@ -166,8 +171,9 @@ export default {
         { title: '待付金额', dataIndex: 'unsettleAmount', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? ('¥' + text) : '--') } },
         { title: '单据类型', dataIndex: 'bizName', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '付款方式', dataIndex: 'settleStyleName', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '审核时间', dataIndex: 'auditTime', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '付款时间', dataIndex: 'settleTime', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '创建时间', dataIndex: 'createDate', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核时间', dataIndex: 'auditTime', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '付款时间', dataIndex: 'settleTime', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '5%', align: 'center' }
       ],
       loading: false,
@@ -219,6 +225,10 @@ export default {
       this.queryParam.auditBeginDate = date[0]
       this.queryParam.auditEndDate = date[1]
     },
+    createDateChange (date) {
+      this.queryParam.beginDate = date[0]
+      this.queryParam.endDate = date[1]
+    },
     // 总计
     settlePayQuerySum (params) {
       settlePayQuerySum(params).then(res => {
@@ -330,6 +340,7 @@ export default {
     resetData () {
       if (this.advanced) {
         this.$refs.rangeDate.resetDate()
+        this.$refs.createDate.resetDate()
       }
       this.queryParam = {
         bizType: this.curBizType,
@@ -337,6 +348,8 @@ export default {
         bizNo: '',
         settleClientName: '',
         billState: '',
+        beginDate: '',
+        endDate: '',
         auditBeginDate: '',
         auditEndDate: ''
       }

+ 206 - 174
src/views/productManagement/productInfo/list.vue

@@ -6,47 +6,23 @@
         <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
-              <a-form-item label="产品编码">
-                <a-input id="productInfoList-code" v-model.trim="queryParam.code" allowClear placeholder="请输入产品编码"/>
-              </a-form-item>
+              <a-form-item label="产品编码"><a-input id="productInfoList-code" v-model.trim="queryParam.code" allowClear placeholder="请输入产品编码" /></a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
-              <a-form-item label="产品名称">
-                <a-input id="productInfoList-name" v-model.trim="queryParam.name" allowClear placeholder="请输入产品名称"/>
-              </a-form-item>
+              <a-form-item label="产品名称"><a-input id="productInfoList-name" v-model.trim="queryParam.name" allowClear placeholder="请输入产品名称" /></a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
-              <a-form-item label="原厂编码">
-                <a-input id="productInfoList-origCode" v-model.trim="queryParam.origCode" allowClear placeholder="请输入原厂编码"/>
-              </a-form-item>
+              <a-form-item label="原厂编码"><a-input id="productInfoList-origCode" v-model.trim="queryParam.origCode" allowClear placeholder="请输入原厂编码" /></a-form-item>
             </a-col>
             <template v-if="advanced">
               <a-col :md="6" :sm="24">
                 <a-form-item label="产品品牌">
-                  <a-select
-                    placeholder="请选择产品品牌"
-                    id="productInfoList-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.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                  </a-select>
+                  <ProductBrand id="productInfoList-productBrandSn" :sysFlag="0" placeholder="请选择产品品牌" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="产品分类">
-                  <a-cascader
-                    @change="changeProductType"
-                    change-on-select
-                    v-model="productType"
-                    expand-trigger="hover"
-                    :options="productTypeList"
-                    :fieldNames="{ label: 'productTypeName', value: 'productTypeSn', children: 'children' }"
-                    id="productInfoList-productType"
-                    placeholder="请选择产品分类"
-                    allowClear />
+                  <ProductType id="productInfoList-productType" placeholder="请选择产品分类" :isDealer="true" @change="changeProductType" v-model="productType"></ProductType>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -65,9 +41,9 @@
                 :disabled="disabled"
                 :loading="exportLoading"
                 id="inventoryQueryList-export">导出</a-button> -->
-              <a @click="advanced=!advanced" style="margin-left: 5px">
+              <a @click="advanced = !advanced" style="margin-left: 5px">
                 {{ advanced ? '收起' : '展开' }}
-                <a-icon :type="advanced ? 'up' : 'down'"/>
+                <a-icon :type="advanced ? 'up' : 'down'" />
               </a>
             </a-col>
           </a-row>
@@ -82,17 +58,20 @@
       <s-table
         class="sTable fixPagination"
         ref="table"
-        :style="{ height: tableHeight+84.5+'px' }"
+        :style="{ height: tableHeight + 84.5 + 'px' }"
         size="small"
-        :rowKey="(record) => record.id"
+        :rowKey="record => record.id"
         :columns="columns"
         :data="loadData"
         :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
-        bordered>
+        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.productTypeName2 || record.productTypeName3">
+            {{ record.productTypeName2 }} {{ record.productTypeName3 ? '>' : '' }} {{ record.productTypeName3 }}
+          </span>
           <span v-else>--</span>
         </template>
         <!-- 状态 -->
@@ -103,8 +82,9 @@
             unCheckedChildren="禁用"
             v-if="$hasPermissions('B_product_dealerProduct_enable')"
             @change="changeStatus(record)"
-            :checked="record.enabledFlag == 1 ? true : false" />
-          <span v-else :style="{color:(record.enabledFlag==1?'#00aa00':'#999')}"> {{ record.enabledFlag==1? '已启用': '已禁用' }} </span>
+            :checked="record.enabledFlag == 1 ? true : false"
+          />
+          <span v-else :style="{ color: record.enabledFlag == 1 ? '#00aa00' : '#999' }">{{ record.enabledFlag == 1 ? '已启用' : '已禁用' }}</span>
         </template>
         <!-- 操作 -->
         <template slot="action" slot-scope="text, record">
@@ -114,14 +94,20 @@
             type="link"
             class="button-primary"
             @click="handleEdit(record)"
-            id="productInfoList-edit-btn">编辑</a-button>
+            id="productInfoList-edit-btn"
+          >
+            编辑
+          </a-button>
           <a-button
             v-if="$hasPermissions('B_product_dealerProduct_detail')"
             size="small"
             type="link"
             class="button-success"
             @click="handleDetail(record)"
-            id="productInfoList-detail-btn">详情</a-button>
+            id="productInfoList-detail-btn"
+          >
+            详情
+          </a-button>
           <span v-if="!$hasPermissions('B_product_dealerProduct_edit') && !$hasPermissions('B_product_dealerProduct_detail')">--</span>
         </template>
       </s-table>
@@ -132,24 +118,25 @@
 </template>
 
 <script>
-import { commonMixin } from '@/utils/mixin'
-import { dealerProductBrandQuery } from '@/api/dealerProductBrand'
-import { dealerProductTypeList } from '@/api/dealerProductType'
-import { dealerProductList, dealerProductUpdate, dealerProductExport } from '@/api/dealerProduct'
-import { STable, VSelect } from '@/components'
-import productInfoDetailModal from './detailModal.vue'
-import { downloadExcel } from '@/libs/JGPrint.js'
+import { commonMixin } from '@/utils/mixin';
+import ProductType from '../../common/productType.js';
+import ProductBrand from '../../common/productBrand.js';
+import { dealerProductList, dealerProductUpdate, dealerProductExport } from '@/api/dealerProduct';
+import { STable, VSelect } from '@/components';
+import productInfoDetailModal from './detailModal.vue';
+import { downloadExcel } from '@/libs/JGPrint.js';
 export default {
   name: 'ProductList',
-  components: { STable, VSelect, productInfoDetailModal },
+  components: { STable, VSelect, productInfoDetailModal, ProductType, ProductBrand },
   mixins: [commonMixin],
-  data () {
+  data() {
     return {
       spinning: false,
       advanced: true, // 高级搜索 展开/关闭
       tableHeight: 0,
       productType: [],
-      queryParam: { //  查询条件
+      queryParam: {
+        //  查询条件
         code: '', //  产品编码
         name: '', //  产品名称
         origCode: '', //  原厂编码
@@ -164,200 +151,245 @@ export default {
       exportLoading: false, // 导出loading
       columns: [
         { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
-        { title: '产品编码', dataIndex: 'code', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'name', width: '13%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '原厂编码', dataIndex: 'origCode', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品品牌', dataIndex: 'productBrandName', width: '9%', align: 'center', customRender: function (text) { return text || '--' } },
+        {
+          title: '产品编码',
+          dataIndex: 'code',
+          width: '12%',
+          align: 'center',
+          customRender: function(text) {
+            return text || '--';
+          }
+        },
+        {
+          title: '产品名称',
+          dataIndex: 'name',
+          width: '13%',
+          align: 'center',
+          ellipsis: true,
+          customRender: function(text) {
+            return text || '--';
+          }
+        },
+        {
+          title: '原厂编码',
+          dataIndex: 'origCode',
+          width: '11%',
+          align: 'center',
+          customRender: function(text) {
+            return text || '--';
+          }
+        },
+        {
+          title: '产品品牌',
+          dataIndex: 'productBrandName',
+          width: '9%',
+          align: 'center',
+          customRender: function(text) {
+            return text || '--';
+          }
+        },
         { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '9%', align: 'center' },
-        { title: '经销批发价', dataIndex: 'specialPrice', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '终端价', dataIndex: 'terminalPrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '车主价', dataIndex: 'carOwnersPrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '创建时间', dataIndex: 'createDate', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        {
+          title: '经销批发价',
+          dataIndex: 'specialPrice',
+          width: '7%',
+          align: 'center',
+          customRender: function(text) {
+            return text || text == 0 ? text : '--';
+          }
+        },
+        {
+          title: '终端价',
+          dataIndex: 'terminalPrice',
+          width: '6%',
+          align: 'center',
+          customRender: function(text) {
+            return text || text == 0 ? text : '--';
+          }
+        },
+        {
+          title: '车主价',
+          dataIndex: 'carOwnersPrice',
+          width: '6%',
+          align: 'center',
+          customRender: function(text) {
+            return text || text == 0 ? text : '--';
+          }
+        },
+        {
+          title: '创建时间',
+          dataIndex: 'createDate',
+          width: '7%',
+          align: 'center',
+          customRender: function(text) {
+            return text || '--';
+          }
+        },
         { title: '状态', scopedSlots: { customRender: 'enabledFlag' }, width: '7%', align: 'center' },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '9%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        this.disabled = true
-        this.spinning = true
+        this.disabled = true;
+        this.spinning = true;
         return dealerProductList(Object.assign(parameter, this.queryParam)).then(res => {
-          let data
+          let data;
           if (res.status == 200) {
-            data = res.data
-            const no = (data.pageNo - 1) * data.pageSize
+            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
-              const productTypeName1 = data.list[i].productTypeName1 ? data.list[i].productTypeName1 : ''
-              const productTypeName2 = data.list[i].productTypeName2 ? ' > ' + data.list[i].productTypeName2 : ''
-              const productTypeName3 = data.list[i].productTypeName3 ? ' > ' + data.list[i].productTypeName3 : ''
-              data.list[i].productTypeName = productTypeName1 + productTypeName2 + productTypeName3
+              data.list[i].no = no + i + 1;
+              const productTypeName1 = data.list[i].productTypeName1 ? data.list[i].productTypeName1 : '';
+              const productTypeName2 = data.list[i].productTypeName2 ? ' > ' + data.list[i].productTypeName2 : '';
+              const productTypeName3 = data.list[i].productTypeName3 ? ' > ' + data.list[i].productTypeName3 : '';
+              data.list[i].productTypeName = productTypeName1 + productTypeName2 + productTypeName3;
             }
-            this.disabled = false
+            this.disabled = false;
           }
-          this.spinning = false
-          return data
-        })
+          this.spinning = false;
+          return data;
+        });
       },
       openModal: false, //  查看客户详情  弹框
       itemId: '', //  当前产品id
       productBrandList: [], //  品牌下拉数据
       productTypeList: [] //  分类下拉数据
-    }
+    };
   },
   methods: {
     //  重置
-    resetSearchForm () {
-      this.queryParam.code = ''
-      this.queryParam.name = ''
-      this.queryParam.origCode = ''
-      this.queryParam.productBrandSn = undefined
-      this.queryParam.productTypeSn1 = ''
-      this.queryParam.productTypeSn2 = ''
-      this.queryParam.productTypeSn3 = ''
-      this.queryParam.enabledFlag = undefined
-      this.productType = []
-      this.$refs.table.refresh(true)
+    resetSearchForm() {
+      this.queryParam.code = '';
+      this.queryParam.name = '';
+      this.queryParam.origCode = '';
+      this.queryParam.productBrandSn = undefined;
+      this.queryParam.productTypeSn1 = '';
+      this.queryParam.productTypeSn2 = '';
+      this.queryParam.productTypeSn3 = '';
+      this.queryParam.enabledFlag = undefined;
+      this.productType = [];
+      this.$refs.table.refresh(true);
     },
     //  新增/编辑
-    handleEdit (row) {
-      if (row) { //  编辑
-        this.$router.push({ path: `/productManagement/productInfo/edit/${row.id}` })
-      } else { //  新增
-        this.$router.push({ path: '/productManagement/productInfo/add' })
+    handleEdit(row) {
+      if (row) {
+        //  编辑
+        this.$router.push({ path: `/productManagement/productInfo/edit/${row.id}` });
+      } else {
+        //  新增
+        this.$router.push({ path: '/productManagement/productInfo/add' });
       }
     },
     //  批量导入
-    handleImport () {
-
-    },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
+    handleImport() {},
+    filterOption(input, option) {
+      return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0;
     },
     //  详情
-    handleDetail (row) {
-      this.itemId = row.id
-      this.openModal = true
+    handleDetail(row) {
+      this.itemId = row.id;
+      this.openModal = true;
     },
     //  关闭弹框
-    closeModal () {
-      this.itemId = ''
-      this.openModal = false
+    closeModal() {
+      this.itemId = '';
+      this.openModal = 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] : ''
+    changeProductType(val, opt) {
+      this.queryParam.productTypeSn1 = val[0] ? val[0] : '';
+      this.queryParam.productTypeSn2 = val[1] ? val[1] : '';
+      this.queryParam.productTypeSn3 = val[2] ? val[2] : '';
     },
     // 启用 禁用
-    changeStatus (record) {
+    changeStatus(record) {
       if (record.enabledFlag == '1') {
         this.$confirm({
           title: '提示',
           content: '产品被禁用后,不能再销售,确定禁用吗?',
           centered: true,
           onOk: () => {
-            this.setEnable(record)
+            this.setEnable(record);
           }
-        })
+        });
       } else {
-        this.setEnable(record)
+        this.setEnable(record);
       }
     },
     // 启用 禁用
-    setEnable (record) {
+    setEnable(record) {
       const params = {
         id: record.id,
         enabledFlag: record.enabledFlag == 1 ? '0' : '1'
-      }
-      this.spinning = true
+      };
+      this.spinning = true;
       dealerProductUpdate(params).then(res => {
         if (res.status == 200) {
-          this.$message.success(res.message)
-          this.$refs.table.refresh()
-          this.spinning = false
+          this.$message.success(res.message);
+          this.$refs.table.refresh();
+          this.spinning = false;
         } else {
-          this.$refs.table.refresh()
-          this.spinning = false
+          this.$refs.table.refresh();
+          this.spinning = false;
         }
-      })
+      });
     },
     //  导出
-    handleExport () {
-      this.exportLoading = true
-      this.spinning = true
+    handleExport() {
+      this.exportLoading = true;
+      this.spinning = true;
       dealerProductExport(this.queryParam).then(res => {
-        this.exportLoading = false
-        this.spinning = false
-        downloadExcel(res, '自建产品列表')
-      })
-    },
-    //  产品品牌  列表
-    getProductBrand () {
-      dealerProductBrandQuery({}).then(res => {
-        if (res.status == 200) {
-          this.productBrandList = res.data
-        } else {
-          this.productBrandList = []
-        }
-      })
-    },
-    //  产品分类  列表
-    getProductType () {
-      dealerProductTypeList({}).then(res => {
-        if (res.status == 200) {
-          this.productTypeList = res.data
-        } else {
-          this.productTypeList = []
-        }
-      })
+        this.exportLoading = false;
+        this.spinning = false;
+        downloadExcel(res, '自建产品列表');
+      });
     },
-    pageInit () {
-      const _this = this
-      this.$nextTick(() => { // 页面渲染完成后的回调
-        _this.setTableH()
-      })
-      this.getProductBrand()
-      this.getProductType()
+    pageInit() {
+      const _this = this;
+      this.$nextTick(() => {
+        // 页面渲染完成后的回调
+        _this.setTableH();
+      });
     },
-    setTableH () {
-      const tableSearchH = this.$refs.tableSearch.offsetHeight
-      this.tableHeight = window.innerHeight - tableSearchH - 235
+    setTableH() {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight;
+      this.tableHeight = window.innerHeight - tableSearchH - 235;
     }
   },
   watch: {
-    advanced (newValue, oldValue) {
-      const _this = this
-      this.$nextTick(() => { // 页面渲染完成后的回调
-        _this.setTableH()
-      })
+    advanced(newValue, oldValue) {
+      const _this = this;
+      this.$nextTick(() => {
+        // 页面渲染完成后的回调
+        _this.setTableH();
+      });
     },
-    '$store.state.app.winHeight' (newValue, oldValue) { //  窗口变更时,需同时更改表格高度
-      this.setTableH()
+    '$store.state.app.winHeight'(newValue, oldValue) {
+      //  窗口变更时,需同时更改表格高度
+      this.setTableH();
     }
   },
-  mounted () {
-    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
-      this.pageInit()
-      this.resetSearchForm()
+  mounted() {
+    if (!this.$store.state.app.isNewTab) {
+      // 页签刷新时调用
+      this.pageInit();
+      this.resetSearchForm();
     }
   },
-  activated () {
+  activated() {
     // 如果是新页签打开,则重置当前页面
     if (this.$store.state.app.isNewTab) {
-      this.pageInit()
-      this.resetSearchForm()
+      this.pageInit();
+      this.resetSearchForm();
     }
     // 仅刷新列表,不重置页面
     if (this.$store.state.app.updateList) {
-      this.pageInit()
-      this.$refs.table.refresh()
+      this.pageInit();
+      this.$refs.table.refresh();
     }
   },
-  beforeRouteEnter (to, from, next) {
-    next(vm => {})
+  beforeRouteEnter(to, from, next) {
+    next(vm => {});
   }
-}
+};
 </script>

+ 5 - 46
src/views/productManagement/productInfoJg/list.vue

@@ -22,31 +22,13 @@
           <template v-if="advanced">
             <a-col :md="6" :sm="24">
               <a-form-item label="产品品牌">
-                <a-select
-                  placeholder="请选择产品品牌"
-                  id="productInfoList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.productBrandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :dropdownMatchSelectWidth="false"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
+                <ProductBrand id="productInfoList-productBrandSn" placeholder="请选择产品品牌" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-select>
               </a-form-item>
             </a-col>
             <!-- <a-col :md="6" :sm="24">
               <a-form-item label="产品分类">
-                <a-cascader
-                  @change="changeProductType"
-                  change-on-select
-                  v-model="productType"
-                  expand-trigger="hover"
-                  :options="productTypeList"
-                  :fieldNames="{ label: 'productTypeName', value: 'productTypeSn', children: 'children' }"
-                  id="productInfoList-productType"
-                  placeholder="请选择产品分类"
-                  allowClear />
+              <ProductType id="productInfoList-productType" placeholder="请选择产品分类" :isDealer="true" @change="changeProductType" v-model="productType"></ProductType>
               </a-form-item>
             </a-col> -->
             <!-- <a-col :md="6" :sm="24">
@@ -111,14 +93,14 @@
 
 <script>
 import { commonMixin } from '@/utils/mixin'
-import { dealerProductBrandQuery } from '@/api/dealerProductBrand'
-import { productTypeQuery } from '@/api/productType'
 import { productList, getCurrentDealer } from '@/api/product'
+import ProductType from '../../common/productType.js'
+import ProductBrand from '../../common/productBrand.js'
 import { STable, VSelect } from '@/components'
 // import { downloadExcel } from '@/libs/JGPrint.js'
 export default {
   name: 'ProductJgList',
-  components: { STable, VSelect },
+  components: { STable, VSelect, ProductType, ProductBrand },
   mixins: [commonMixin],
   data () {
     return {
@@ -160,7 +142,6 @@ export default {
       },
       openModal: false, //  查看客户详情  弹框
       itemId: '', //  当前产品id
-      productBrandList: [], //  品牌下拉数据
       productTypeList: [] //  分类下拉数据
     }
   },
@@ -249,34 +230,12 @@ export default {
 	  // downloadExcel(res, '箭冠产品列表')
       // })
     },
-    //  产品品牌  列表
-    getProductBrand () {
-      dealerProductBrandQuery({ 'sysFlag': '1' }).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 = []
-        }
-      })
-    },
     pageInit () {
       const _this = this
       this.$nextTick(() => { // 页面渲染完成后的回调
         _this.setTableH()
       })
       this.getColumns()
-      this.getProductBrand()
-      this.getProductType()
     },
     setTableH () {
       const tableSearchH = this.$refs.tableSearch.offsetHeight

+ 34 - 14
src/views/purchasingManagement/purchaseOrder/edit.vue

@@ -53,24 +53,40 @@
               <div class="table-page-search-wrapper">
                 <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
                   <a-row :gutter="15">
-                    <a-col :md="6" :sm="24">
-                      <a-form-item label="关键词">
-                        <a-input id="purchaseOrderEdit-bundleName" v-model.trim="queryParam.queryWord" allowClear placeholder="产品名称/产品编码/原厂编码/适用车型"/>
-                      </a-form-item>
+                    <a-col :md="4" :sm="24">
+                      <a-form-model-item label="产品编码">
+                        <a-input id="purchaseOrderEdit-code" ref="searchProductCode" v-model.trim="queryParam.code" allowClear placeholder="请输入产品编码"/>
+                      </a-form-model-item>
                     </a-col>
-                    <a-col :md="6" :sm="24">
-                      <a-form-item label="产品品牌">
-                        <ProductBrand id="purchaseOrderEdit-productBrand" v-model="queryParam.productBrandSn"></ProductBrand>
-                      </a-form-item>
+                    <a-col :md="4" :sm="24">
+                      <a-form-model-item label="产品名称">
+                        <a-input id="purchaseOrderEdit-name" v-model.trim="queryParam.name" allowClear placeholder="请输入产品名称"/>
+                      </a-form-model-item>
+                    </a-col>
+                    <a-col :md="4" :sm="24">
+                      <a-form-model-item label="原厂编码">
+                        <a-input id="purchaseOrderEdit-origCode" v-model.trim="queryParam.origCode" allowClear placeholder="请输入原厂编码"/>
+                      </a-form-model-item>
                     </a-col>
-                    <a-col :md="6" :sm="24">
+                    <a-col :md="4" :sm="24">
                       <a-form-item label="产品分类">
                         <ProductType id="purchaseOrderEdit-productType" @change="changeProductType" v-model="productType"></ProductType>
                       </a-form-item>
                     </a-col>
-                    <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
+                    <template v-if="advanced">
+                      <a-col :md="4" :sm="24">
+                        <a-form-item label="产品品牌">
+                          <ProductBrand id="purchaseOrderEdit-productBrand" v-model="queryParam.productBrandSn"></ProductBrand>
+                        </a-form-item>
+                      </a-col>
+                    </template>
+                    <a-col :md="4" :sm="24" style="margin-bottom: 10px;">
                       <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="purchaseOrderEdit-refresh">查询</a-button>
                       <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="purchaseOrderEdit-reset">重置</a-button>
+                      <a @click="advanced=!advanced" style="margin:0 30px 0 10px">
+                        {{ advanced ? '收起' : '展开' }}
+                        <a-icon :type="advanced ? 'up' : 'down'"/>
+                      </a>
                     </a-col>
                   </a-row>
                 </a-form>
@@ -273,7 +289,9 @@ export default {
       productType: [],
       queryParam: {
         productBrandSn: undefined,
-        queryWord: '',
+        code: '', //  产品编码
+        name: '', //  产品名称
+        origCode: '', //  原厂编码
         productTypeSn1: '', //  产品一级分类
         productTypeSn2: '', //  产品二级分类
         productTypeSn3: '' //  产品三级分类
@@ -423,10 +441,12 @@ export default {
     resetSearchForm () {
       this.queryParam = {
         productBrandSn: undefined,
+        code: '', //  产品编码
+        name: '', //  产品名称
+        origCode: '', //  原厂编码
         productTypeSn1: '', //  产品一级分类
         productTypeSn2: '', //  产品二级分类
-        productTypeSn3: '', //  产品三级分类
-        queryWord: ''
+        productTypeSn3: '' //  产品三级分类
       }
       this.productType = []
       this.$refs.table.refresh(true)
@@ -559,6 +579,7 @@ export default {
         this.getOrderDetail()
         this.resetPurchaseForm()
         this.resetSearchForm()
+        this.$refs.searchProductCode.focus()
       })
     }
   },
@@ -570,7 +591,6 @@ export default {
   },
   activated () {
     this.showPage = true
-    console.log(this.$store.state.app.isNewTab)
     // 如果是新页签打开或者进入新的子页(例:存在列表第2条数据编辑页页签时再打开第4条数据的编辑页),则重置当前页面
     if (this.$store.state.app.isNewTab || !this.$store.state.app.isNewSubTab) {
       this.pageInit()

+ 5 - 61
src/views/salesManagement/salesQuery/queryPart.vue

@@ -27,31 +27,13 @@
           </a-col>
           <a-col :md="4" :sm="24">
             <a-form-model-item label="产品分类">
-              <a-cascader
-                @change="changeProductType"
-                change-on-select
-                v-model="productType"
-                expand-trigger="hover"
-                :options="productTypeList"
-                :fieldNames="{ label: 'productTypeName', value: 'productTypeSn', children: 'children' }"
-                id="productInfoList-productType"
-                placeholder="请选择产品分类"
-                allowClear />
+              <ProductType id="productInfoList-productType" :isDealer="true" @change="changeProductType" v-model="productType"></ProductType>
             </a-form-model-item>
           </a-col>
           <template v-if="advanced">
             <a-col :md="4" :sm="24">
               <a-form-model-item label="产品品牌">
-                <a-select
-                  placeholder="请选择产品品牌"
-                  id="productInfoList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.brandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                </a-select>
+                <ProductBrand id="productInfoList-productBrandSn" v-model="queryParam.brandSn"></ProductBrand>
               </a-form-model-item>
             </a-col>
             <a-col :md="4" :sm="24">
@@ -172,27 +154,19 @@
 </template>
 
 <script>
-import { dealerProductBrandQuery } from '@/api/dealerProductBrand'
-import { dealerProductTypeList } from '@/api/dealerProductType'
 import { querySumByProductLocation } from '@/api/stock'
 import { warehouseAllList } from '@/api/warehouse'
 import productSalesRecordModal from './productSalesRecordModal.vue'
 import carInfoModal from './carInfoModal.vue'
+import ProductType from '../../common/productType.js'
+import ProductBrand from '../../common/productBrand.js'
 import { STable, VSelect, Upload } from '@/components'
 import { supperCodeByVin, vinCodeParse } from '@/api/sales'
 import defImg from '@/assets/def_img@2x.png'
 export default {
   name: 'QueryPart',
-  components: { STable, VSelect, Upload, productSalesRecordModal, carInfoModal },
+  components: { STable, VSelect, Upload, productSalesRecordModal, carInfoModal, ProductType, ProductBrand },
   props: {
-    // buyerSn: {
-    //   type: [Number, String],
-    //   default: ''
-    // },
-    // priceType: {
-    //   type: [Number, String],
-    //   default: ''
-    // },
     newLoading: Boolean
   },
   data () {
@@ -221,8 +195,6 @@ export default {
         vinCode: [ { len: 17, message: '请输入正确的车架号(VIN)', trigger: 'change' } ]
       },
       disabled: false, //  查询、重置按钮是否可操作
-      productBrandList: [], //  下拉数据
-      productTypeList: [], //  产品分类  下拉数据
       warehouseList: [], // 仓库列表
       vinInfoData: null,
       // 加载数据方法 必须为 Promise 对象
@@ -304,14 +276,6 @@ export default {
     }
   },
   created () {
-    // 产品品牌
-    if (this.productBrandList.length == 0) {
-      this.getProductBrand()
-    }
-    // 产品分类
-    if (this.productTypeList.length == 0) {
-      this.getProductType()
-    }
     // 仓库
     if (this.warehouseList.length == 0) {
       this.getWarehouse()
@@ -486,26 +450,6 @@ export default {
         }
       })
     },
-    //  产品品牌  列表
-    getProductBrand () {
-      dealerProductBrandQuery({}).then(res => {
-        if (res.status == 200) {
-          this.productBrandList = res.data
-        } else {
-          this.productBrandList = []
-        }
-      })
-    },
-    //  产品分类  列表
-    getProductType () {
-      dealerProductTypeList({}).then(res => {
-        if (res.status == 200) {
-          this.productTypeList = res.data
-        } else {
-          this.productTypeList = []
-        }
-      })
-    },
     //  产品分类  change
     changeProductType (val, opt) {
       this.queryParam.productTypeSn1 = val[0] ? val[0] : ''