chenrui hace 2 años
padre
commit
63df1a7d5b

+ 6 - 2
src/views/productManagement/productInfo/offlineImportModal.vue

@@ -34,7 +34,7 @@
             :pagination="false"
             bordered>
             <template slot="currency" slot-scope="text, record">
-              <productCodeList ref="productCodeList" @change="e => productCodeChange(e, record)" />
+              <productCodeList :ref="'productCodeList'+record.no" :dealerVal="record.commonName" @change="e => productCodeChange(e, record)" />
             </template>
           </a-table>
         </a-form-model-item>
@@ -159,12 +159,16 @@ export default {
         path: this.paramsData.path
       }
       offlineImport(params).then(res => {
-        this.loading = false
+        _this.loading = false
         if (res.status == 200) {
           if (res.data.rightList && res.data.rightList.length > 0) {
             res.data.rightList.map((item, index) => {
               item.no = index + 1
               item.commonSn = ''
+              _this.$nextTick(() => {
+                const val = 'productCodeList' + item.no
+                _this.$refs[val].setData({ key: item.commonCode })
+              })
             })
           }
           if (res.data.errorList && res.data.errorList.length > 0) {

+ 34 - 130
src/views/productManagement/productNotOnline/list.vue

@@ -36,6 +36,11 @@
                   <v-select code="PRICING_STATUS" id="productPricingList-pricingState" v-model="queryParam.pricingState" allowClear placeholder="请选择定价状态"></v-select>
                 </a-form-item>
               </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-item label="产品状态">
+                  <v-select code="PRODUCT_STATUS" id="productInfoList-state" v-model="queryParam.state" allowClear placeholder="请选择产品状态"></v-select>
+                </a-form-item>
+              </a-col>
             </template>
             <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
               <a-button type="primary" @click="searchForm" :disabled="disabled" id="productPricingList-refresh">查询</a-button>
@@ -56,14 +61,16 @@
           </a-row>
         </a-form>
       </div>
+      <!-- 操作按钮 -->
+      <div class="table-operator" style="text-align:right;">
+        <a-checkbox v-model="queryParam.zeroQtyFlag" id="inventoryQueryList-zeroQtyFlag" @change="handleChangeQty">仅显示有库存</a-checkbox>
+      </div>
       <!-- 列表 -->
       <s-table
         class="sTable fixPagination"
         ref="table"
         :style="{ height: tableHeight+84.5+'px' }"
         size="small"
-        :row-selection="$hasPermissions('B_productPricing_audit') ? { columnWidth: '4%', getCheckboxProps: record => ({ props: { disabled: record.pricingState!='WAIT_PRICING_AUDIT' } })}: null"
-        @rowSelection="rowSelectionFun"
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
@@ -75,42 +82,8 @@
           <span v-if="record.productTypeName2 || record.productTypeName3">{{ record.productTypeName2 }} {{ record.productTypeName3 ? '>' : '' }} {{ record.productTypeName3 }}</span>
           <span v-else>--</span>
         </template>
-        <!-- 成本价 -->
-        <template slot="sterminaldsdPrice" slot-scope="text, record">
-          <div v-if="record.supplierProductList">
-            <p v-for="(item, index) in record.supplierProductList" :key="index" style="margin: 0;">
-              <span>{{ (item.cost || item.cost==0) ? item.cost.toFixed(2):'--' }}</span>元 -
-              <span>{{ (item.supplierName||'') }}</span>;
-            </p>
-          </div>
-          <span v-else>--</span>
-        </template>
-        <!-- 操作 -->
-        <template slot="action" slot-scope="text, record">
-          <a-button
-            size="small"
-            type="link"
-            v-if="record.pricingState=='WAIT_PRICING_AUDIT' && $hasPermissions('B_productPricing_audit')"
-            class="button-warning"
-            @click="handleAudit(record)"
-            id="productPricingList-audit-btn">审核</a-button>
-          <a-button
-            size="small"
-            type="link"
-            v-if="$hasPermissions('B_productPricing_edit')"
-            class="button-info"
-            @click="handleEdit(record)"
-            id="productPricingList-edit-btn">编辑</a-button>
-          <span v-if="!(record.pricingState=='WAIT_PRICING_AUDIT' && $hasPermissions('B_productPricing_audit')) && !$hasPermissions('B_productPricing_edit')">--</span>
-        </template>
       </s-table>
     </a-spin>
-    <!-- 编辑价格 -->
-    <product-pricing-edit-modal v-drag :openModal="openModal" :itemSn="itemSn" @close="closeModal" @ok="$refs.table.refresh()" />
-    <!-- 审核价格 -->
-    <product-pricing-audit-modal v-drag :openModal="openAuditModal" :itemSn="itemSn" @close="closeAuditModal" @ok="auditSuccess" />
-    <!-- 导入产品 -->
-    <importGuideModal :openModal="openGuideModal" @close="openGuideModal=false" @ok="hanldeOk" />
   </a-card>
 </template>
 
@@ -119,12 +92,9 @@ import { commonMixin } from '@/utils/mixin'
 import rangeDate from '@/views/common/rangeDate.vue'
 import { STable, VSelect } from '@/components'
 import { exportExcel } from '@/libs/JGPrint.js'
-// import productPricingEditModal from './editModal.vue'
-// import productPricingAuditModal from './auditModal.vue'
-import { productPricingList, productExportPricing, batchAuditPrice, productPriceInsertImport } from '@/api/product'
+import { queryOnlinePage, excelOnlineList } from '@/api/product'
 import ProductType from '@/views/common/productType.js'
 import ProductBrand from '@/views/common/productBrand.js'
-// import ImportGuideModal from './importGuideModal.vue'
 export default {
   name: 'ProductPricingList',
   mixins: [commonMixin],
@@ -133,7 +103,6 @@ export default {
     return {
       spinning: false,
       advanced: true, // 高级搜索 展开/关闭
-      openGuideModal: false,
       tableHeight: 0,
       time: [],
       queryParam: { //  查询条件
@@ -144,16 +113,19 @@ export default {
         productTypeSn2: '', //  产品二级分类
         productTypeSn3: '', //  产品三级分类
         pricingState: undefined, //  定价状态
-        beginDate: undefined,
-        endDate: undefined
+        pricingTimeBegin: undefined, // 定价时间
+        pricingTimeEnd: undefined,
+        state: undefined, // 产品状态
+        stockFlag: undefined
       },
+      zeroQtyFlag: false,
       productType: [],
       disabled: false, //  查询、重置按钮是否可操作
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
         this.spinning = true
-        return productPricingList(Object.assign(parameter, this.queryParam)).then(res => {
+        return queryOnlinePage(Object.assign(parameter, this.queryParam)).then(res => {
           let data
           if (res.status == 200) {
             data = res.data
@@ -161,44 +133,37 @@ export default {
             for (var i = 0; i < data.list.length; i++) {
               data.list[i].no = no + i + 1
             }
-            this.total = data.count || 0
             this.disabled = false
           }
           this.spinning = false
           return data
         })
-      },
-      total: 0, // 合计
-      openModal: false, //  编辑  弹框
-      openAuditModal: false, //  审核  弹框
-      itemSn: '', //  当前产品sn
-      rowSelectionInfo: null
+      }
     }
   },
   computed: {
-    selTotal () {
-      return this.rowSelectionInfo && this.rowSelectionInfo.selectedRowKeys ? this.rowSelectionInfo.selectedRowKeys.length : 0
-    },
     columns () {
       const _this = this
       const arr = [
-        { title: '序号', dataIndex: 'no', width: '3%', align: 'center' },
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
         { title: '创建时间', dataIndex: 'createDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'name', align: 'left', width: '13%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品名称', dataIndex: 'name', align: 'left', width: '10%', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '产品编码', dataIndex: 'code', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '原厂编码', dataIndex: 'origCode', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌', dataIndex: 'productBrandName', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '7%', align: 'center' },
+        { title: '仓库', dataIndex: 'warehouseName', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '可用库存', dataIndex: 'currentStockQty', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '第一次入库时间', dataIndex: 'skCreateDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品状态', dataIndex: 'stateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '定价状态', dataIndex: 'pricingStateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '定价时间', dataIndex: 'pricingTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '成本价', scopedSlots: { customRender: 'sterminaldsdPrice' }, width: '7%', align: 'center' },
+        { title: '最新成本', dataIndex: 'lastStockCost', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '省级价', dataIndex: 'provincePrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '市级价', dataIndex: 'cityPrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '特约价', dataIndex: 'specialPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '终端价', dataIndex: 'terminalPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
-        { title: '车主价', dataIndex: 'carOwnersPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
+        { title: '车主价', dataIndex: 'carOwnersPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
       ]
       return arr
     }
@@ -206,12 +171,13 @@ export default {
   methods: {
     //  定价时间  change
     dateChange (date) {
-      this.queryParam.beginDate = date[0]
-      this.queryParam.endDate = date[1]
+      this.queryParam.pricingTimeBegin = date[0]
+      this.queryParam.pricingTimeEnd = date[1]
     },
-    // 表格选中项
-    rowSelectionFun (obj) {
-      this.rowSelectionInfo = obj || null
+    handleChangeQty (e) {
+      this.zeroQtyFlag = e.target.checked
+      this.queryParam.stockFlag = e.target.checked ? '1' : '0'
+      this.$refs.table.refresh(true)
     },
     //  重置
     resetSearchForm () {
@@ -223,8 +189,9 @@ export default {
       this.queryParam.productTypeSn3 = ''
       this.queryParam.pricingState = undefined
 
-      this.queryParam.beginDate = undefined
-      this.queryParam.endDate = undefined
+      this.queryParam.pricingTimeBegin = undefined
+      this.queryParam.pricingTimeEnd = undefined
+      this.queryParam.state = undefined
       this.time = []
       this.$refs.rangeDate.resetDate(this.time)
       this.productType = []
@@ -235,78 +202,15 @@ export default {
       this.$refs.table.clearSelected() // 清空表格选中项
       this.$refs.table.refresh(true)
     },
-    // 审核
-    handleAudit (row) {
-      this.itemSn = row.productSn
-      this.openAuditModal = true
-    },
-    auditSuccess () {
-      this.$refs.table.clearSelected() // 清空表格选中项
-      this.$refs.table.refresh()
-    },
-    // 批量审核
-    handleBatchAudit () {
-      const _this = this
-      if (!_this.rowSelectionInfo || (_this.rowSelectionInfo && _this.rowSelectionInfo.selectedRowKeys.length < 1)) {
-        _this.$message.warning('请先选择产品!')
-        return
-      }
-      const obj = []
-      _this.rowSelectionInfo && _this.rowSelectionInfo.selectedRows.map(item => {
-        obj.push(item.productSn)
-      })
-
-      this.$confirm({
-        title: '提示',
-        content: '确认要审核通过吗?',
-        centered: true,
-        onOk () {
-          _this.spinning = true
-          batchAuditPrice(obj).then(res => {
-            if (res.status == 200) {
-              _this.$refs.table.clearSelected() // 清空表格选中项
-              _this.$message.success(res.message)
-              _this.$refs.table.refresh()
-              _this.spinning = false
-            } else {
-              _this.spinning = false
-            }
-          })
-        }
-      })
-    },
-    // 导入产品
-    hanldeOk (obj) {
-      productPriceInsertImport(obj).then(res => {
-        if (res.status == 200) {
-          this.resetSearchForm()
-        }
-      })
-    },
     //  导出
     handleExport () {
       const _this = this
       const params = this.queryParam
       this.spinning = true
-      exportExcel(productExportPricing, params, '产品价格导出', function () {
+      exportExcel(excelOnlineList, params, '产品状态信息导出', function () {
         _this.spinning = false
       })
     },
-    //  编辑
-    handleEdit (row) {
-      this.itemSn = row.productSn
-      this.openModal = true
-    },
-    //  关闭弹框
-    closeModal () {
-      this.itemSn = ''
-      this.openModal = false
-    },
-    //  关闭审核弹框
-    closeAuditModal () {
-      this.itemSn = ''
-      this.openAuditModal = false
-    },
     //  产品分类  change
     changeProductType (val, opt) {
       this.queryParam.productTypeSn1 = val[0] ? val[0] : ''