Browse Source

Merge branch 'develop_yh5' of jianguan-web/jg-ocs-html into pre-release

李磊 2 years ago
parent
commit
38ac402349
35 changed files with 722 additions and 179 deletions
  1. 1 1
      public/version.json
  2. 53 0
      src/api/product.js
  3. 22 22
      src/libs/getDate.js
  4. 4 1
      src/views/allocationManagement/transferOut/detail.vue
  5. 4 1
      src/views/allocationManagement/transferOut/edit.vue
  6. 2 2
      src/views/allocationManagement/transferOut/printModal.vue
  7. 14 4
      src/views/common/rangeDate.vue
  8. 2 2
      src/views/dowloadFile/list.vue
  9. 1 1
      src/views/expenseManagement/expenseReimbursement/list.vue
  10. 17 19
      src/views/expenseManagement/expenseReimbursementDetail/list.vue
  11. 9 11
      src/views/financialManagement/collectionDetailStatic/list.vue
  12. 4 4
      src/views/financialManagement/financialCollection/list.vue
  13. 0 2
      src/views/power/OperateJournal/OperateJournal.vue
  14. 2 0
      src/views/productManagement/newProduct/list.vue
  15. 22 31
      src/views/productManagement/productInfo/list.vue
  16. 197 0
      src/views/productManagement/productPricing/chooseImportModal.vue
  17. 4 4
      src/views/productManagement/productPricing/editModal.vue
  18. 195 0
      src/views/productManagement/productPricing/importGuideModal.vue
  19. 106 7
      src/views/productManagement/productPricing/list.vue
  20. 2 2
      src/views/promotionRulesManagement/promotionRules/list.vue
  21. 3 3
      src/views/reportData/allocationPresentation/list.vue
  22. 1 5
      src/views/reportData/hPriceDifferenceDetailReport/list.vue
  23. 11 11
      src/views/reportData/salesDetails/list.vue
  24. 16 16
      src/views/reportData/salesOrderTotal/list.vue
  25. 3 3
      src/views/reportData/salesPresentation/list.vue
  26. 3 3
      src/views/reportData/salesReturnDetailReport/list.vue
  27. 3 3
      src/views/reportData/warehousingOrder/list.vue
  28. 3 3
      src/views/reportData/warehousingOrderDetail/list.vue
  29. 4 4
      src/views/salesManagement/receiptPrint/list.vue
  30. 4 4
      src/views/salesManagement/salesCollection/list.vue
  31. 4 4
      src/views/salesReturnManagement/billOfLading/list.vue
  32. 2 2
      src/views/salesReturnManagement/pickUp/list.vue
  33. 2 2
      src/views/setting/notice/list.vue
  34. 1 1
      src/views/supplierManagement/associatedProductDetails/list.vue
  35. 1 1
      vue.config.js

+ 1 - 1
public/version.json

@@ -1,4 +1,4 @@
 {
-    "version": "2.1.30",
+    "version": "2.1.33",
     "message": "发现有新版本发布,确定更新系统?"
 }

+ 53 - 0
src/api/product.js

@@ -22,6 +22,59 @@ export const productPricedList = (params) => {
     method: 'post'
   })
 }
+// 定价批量审核 
+export const batchAuditPrice = (params) => {
+  const url = `/product/pricing/batchAudit`
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+// 导出产品定价
+export const productExportPricing = (params) => {
+  return axios({
+    url: '/product/pricing/exportExcel',
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+// 产品定价 下载模板
+export const productPriceTplDownload = params => {
+  return axios.request({
+    url: `/product/productPrice/importTemplate`,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+// 产品定价 入库导入数据
+export const productPriceInsertImport = params => {
+  return axios({
+    url: '/product/productPrice/insertImport',
+    data: params,
+    method: 'post'
+  })
+}
+// 产品定价  批量插入
+export const productPriceImport = params => {
+  return axios({
+    url: '/product/productPrice/import',
+    data: params,
+    method: 'post'
+  })
+}
+//  产品定价 导入产品 导出错误项
+export const productPriceFailExcel = (params) => {
+  const url = `/product/productPrice/exportImportError`
+  return axios.request({
+    url: url,
+    method: 'post',
+    data: params,
+    responseType: 'blob'
+  })
+}
+
 //  产品 保存
 export const productSave = (params) => {
   return axios({

+ 22 - 22
src/libs/getDate.js

@@ -12,8 +12,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment(moment().startOf('day').valueOf()).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment(moment().startOf('day').valueOf()).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   },
   // 获取今日的开始结束时间  年月日时分秒
@@ -32,8 +32,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment().subtract('days', 6).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment().subtract('days', 6).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   },
   //  近7天  年月日时分秒
@@ -52,8 +52,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment().subtract('days', 2).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment().subtract('days', 2).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   },
   // 获取昨日的开始结束时间
@@ -62,8 +62,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment(moment().add(-1, 'days').startOf('day').valueOf()).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().add(-1, 'days').endOf('day').valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment(moment().add(-1, 'days').startOf('day').valueOf()).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().add(-1, 'days').endOf('day').valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   },
   // 获取当前周的开始到当天结束时间
@@ -72,8 +72,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment(moment().week(moment().week()).startOf('week').add('days').valueOf()).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment(moment().week(moment().week()).startOf('week').add('days').valueOf()).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   },
   // 获取上一周的开始结束时间
@@ -82,8 +82,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment(moment().week(moment().week() - 1).startOf('week').add('days').valueOf()).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().week(moment().week() - 1).endOf('week').add('days').valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment(moment().week(moment().week() - 1).startOf('week').add('days').valueOf()).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().week(moment().week() - 1).endOf('week').add('days').valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   },
   // 获取上一月的今天到当月的今天
@@ -92,8 +92,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment(moment().month(moment().month() - 1).valueOf()).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment(moment().month(moment().month() - 1).valueOf()).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   },
   // 获取当前月的开始到当天结束时间
@@ -102,8 +102,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment(moment().month(moment().month()).startOf('month').valueOf()).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment(moment().month(moment().month()).startOf('month').valueOf()).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   },
   // 获取上一个月的开始结束时间
@@ -112,8 +112,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment(moment().month(moment().month() - 1).startOf('month').valueOf()).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().month(moment().month() - 1).endOf('month').valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment(moment().month(moment().month() - 1).startOf('month').valueOf()).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().month(moment().month() - 1).endOf('month').valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   },
   // 获取三月前的今天到当月的今天
@@ -122,8 +122,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment(moment().month(moment().month() - 3).valueOf()).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().month(moment().month() - 3).endOf('month').valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment(moment().month(moment().month() - 3).valueOf()).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().month(moment().month() - 3).endOf('month').valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   },
   // 获取近三个月的开始结束时间
@@ -132,8 +132,8 @@ export default {
       starttime: '',
       endtime: ''
     }
-    obj.starttime = moment(moment().month(moment().month() - 2).startOf('month').valueOf()).format('YYYY-MM-DD')
-    obj.endtime = moment(moment().month(moment().month() - 2).endOf('month').valueOf()).format('YYYY-MM-DD')
+    obj.starttime = moment(moment().month(moment().month() - 2).startOf('month').valueOf()).format('YYYY-MM-DD 00:00:00')
+    obj.endtime = moment(moment().month(moment().month() - 2).endOf('month').valueOf()).format('YYYY-MM-DD 23:59:59')
     return obj
   }
 }

+ 4 - 1
src/views/allocationManagement/transferOut/detail.vue

@@ -194,7 +194,10 @@ export default {
     handleExcel () {
       const _this = this
       this.spinning = true
-      exportExcel(allocateBillDetailExcel, { allocateSn: this.outBizSn || this.$route.params.sn }, '调拨明细', function () {
+      const params = { allocateSn: this.outBizSn || this.$route.params.sn }
+      params.showCostFlag = this.$hasPermissions('B_isShowCost')
+      params.showAmountFlag = this.$hasPermissions('B_isShowPrice')
+      exportExcel(allocateBillDetailExcel, params, '调拨明细', function () {
         _this.spinning = false
       })
     },

+ 4 - 1
src/views/allocationManagement/transferOut/edit.vue

@@ -592,7 +592,10 @@ export default {
     handleExcel () {
       const _this = this
       this.spinning = true
-      exportExcel(allocateBillDetailExcel, { allocateSn: this.outBizSn || this.$route.params.sn }, '调拨明细', function () {
+      const params = { allocateSn: this.$route.params.sn }
+      params.showCostFlag = this.$hasPermissions('B_isShowCost')
+      params.showAmountFlag = this.$hasPermissions('B_isShowPrice')
+      exportExcel(allocateBillDetailExcel, params, '调拨明细', function () {
         _this.spinning = false
       })
     },

+ 2 - 2
src/views/allocationManagement/transferOut/printModal.vue

@@ -31,8 +31,8 @@
         </a-form-model-item>
         <a-form-model-item label="产品价格" prop="priceType" v-if="nowType=='dbPrint'">
           <a-radio-group v-model="form.priceType">
-            <a-radio value="ALLOCATE_BILL_PRICE">销售价</a-radio>
-            <a-radio value="ALLOCATE_BILL_COST">成本价</a-radio>
+            <a-radio value="ALLOCATE_BILL_PRICE" v-if="$hasPermissions('B_isShowPrice')">销售价</a-radio>
+            <a-radio value="ALLOCATE_BILL_COST" v-if="$hasPermissions('B_isShowCost')">成本价</a-radio>
             <a-radio value="ALLOCATE_BILL">不打印</a-radio>
           </a-radio-group>
         </a-form-model-item>

+ 14 - 4
src/views/common/rangeDate.vue

@@ -1,10 +1,10 @@
 <template>
   <a-range-picker
     style="width:100%"
-    :size="size"
+    :ranges="ranges"
     :value="date"
+    :size="size"
     :disabledDate="disabledDate"
-    :allowClear="allowClear"
     :format="dateFormat"
     @change="dateChange"
     @calendarChange="dateCalendarChange"
@@ -24,7 +24,7 @@ export default {
       type: String,
       default: 'default'
     },
-    allowClear: {
+    showTime: {
       type: Boolean,
       default: true
     }
@@ -33,7 +33,12 @@ export default {
     return {
       date: this.value,
       dateFormat: 'YYYY-MM-DD',
-      selectPriceDate: ''
+      selectPriceDate: '',
+      ranges: {
+        '今天': [moment(), moment()],
+        '近一个月': [moment().subtract(1, 'months'), moment()],
+        '本月': [moment().startOf('month'), moment()],
+        '上月': [moment().subtract(1, 'months').startOf('month'), moment().subtract(1, 'months').endOf('month')] }
     }
   },
   methods: {
@@ -60,6 +65,11 @@ export default {
       this.date = date
       if (dateStrings[0] == '' && dateStrings[1] == '') {
         dateStrings = []
+      } else {
+        if (this.showTime) {
+          dateStrings[0] = dateStrings[0] + ' 00:00:00'
+          dateStrings[1] = dateStrings[1] + ' 23:59:59'
+        }
       }
       this.$emit('change', dateStrings)
     },

+ 2 - 2
src/views/dowloadFile/list.vue

@@ -118,8 +118,8 @@ export default {
     },
     //  时间  change
     dateChange (date) {
-      this.queryParam.beginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.endDate = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.beginDate = date[0] ? date[0] : ''
+      this.queryParam.endDate = date[1] ? date[1] : ''
     },
     //  重置
     resetSearchForm () {

+ 1 - 1
src/views/expenseManagement/expenseReimbursement/list.vue

@@ -168,7 +168,7 @@ export default {
       tableHeight: 0,
       // 查询参数
       queryParam: {
-        expenseDate: undefined, // 月份
+        expenseDate: moment().format('YYYY-MM'), // 月份
         expenseAccountNo: '', // 费用单号
         title: '', //  主题
         expenseType: undefined, // 费用类型

+ 17 - 19
src/views/expenseManagement/expenseReimbursementDetail/list.vue

@@ -338,25 +338,23 @@ export default {
       this.queryParam.beginDate = getDate.getCurrMonthDays().starttime
       this.queryParam.endDate = getDate.getCurrMonthDays().endtime
       this.queryParam = {
-        queryParam: {
-          expenseDate: '', // 月份
-          beginDate: getDate.getCurrMonthDays().starttime,
-          endDate: getDate.getCurrMonthDays().endtime,
-          expenseAccountNo: '', // 费用单号
-          applyPersonSn: undefined, // 申请人
-          applyDepartmentSn: undefined, // 申请部门
-          expenseType: undefined, //  费用类型
-          accountType: undefined, // 记账类型
-          accountNameSn: undefined, // 记账名称
-          splitObjType: undefined, // 费用承担方类型
-          splitObjSn: undefined, //  费用承担方
-          childSplitObjSn: undefined, // 费用承担人
-          subareaSn: undefined,
-          provinceName: '',
-          cityName: '',
-          provinceSn: undefined,
-          citySn: undefined
-        }
+        expenseDate: '', // 月份
+        beginDate: getDate.getCurrMonthDays().starttime,
+        endDate: getDate.getCurrMonthDays().endtime,
+        expenseAccountNo: '', // 费用单号
+        applyPersonSn: undefined, // 申请人
+        applyDepartmentSn: undefined, // 申请部门
+        expenseType: undefined, //  费用类型
+        accountType: undefined, // 记账类型
+        accountNameSn: undefined, // 记账名称
+        splitObjType: undefined, // 费用承担方类型
+        splitObjSn: undefined, //  费用承担方
+        childSplitObjSn: undefined, // 费用承担人
+        subareaSn: undefined,
+        provinceName: '',
+        cityName: '',
+        provinceSn: undefined,
+        citySn: undefined
       }
       this.$refs.table.refresh(true)
     },

+ 9 - 11
src/views/financialManagement/collectionDetailStatic/list.vue

@@ -131,8 +131,8 @@ export default {
       tableHeight: 0,
       queryParam: { //  查询条件
         bookNo: '',
-        auditBeginDate: getDate.getCurrMonthDays().starttime + ' 00:00:00',
-        auditEndDate: getDate.getCurrMonthDays().endtime + ' 23:59:59',
+        auditBeginDate: getDate.getCurrMonthDays().starttime,
+        auditEndDate: getDate.getCurrMonthDays().endtime,
         receiptBeginDate: '',
         receiptEndDate: '',
         applyPersonSn: undefined,
@@ -207,29 +207,27 @@ export default {
     },
     //  创建时间  change
     receiptDateChange (date) {
-      this.queryParam.receiptBeginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.receiptEndDate = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.receiptBeginDate = date[0] ? date[0] : ''
+      this.queryParam.receiptEndDate = date[1] ? date[1] : ''
     },
     //  审核时间  change
     dateAuditChange (date) {
-      this.queryParam.auditBeginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.auditEndDate = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.auditBeginDate = date[0] ? date[0] : ''
+      this.queryParam.auditEndDate = date[1] ? date[1] : ''
     },
     //  重置
     resetSearchForm () {
       this.receiptDate = []
       this.queryParam.receiptBeginDate = ''
       this.queryParam.receiptEndDate = ''
-      if (this.advanced) {
-        this.$refs.receiptDate.resetDate(this.receiptDate)
-      }
+      this.$refs.receiptDate.resetDate(this.receiptDate)
       this.auditDate = [
         getDate.getCurrMonthDays().starttime,
         getDate.getCurrMonthDays().endtime
       ]
       this.$refs.rangeAuditDate.resetDate(this.auditDate)
-      this.queryParam.auditBeginDate = getDate.getCurrMonthDays().starttime + ' 00:00:00'
-      this.queryParam.auditEndDate = getDate.getCurrMonthDays().endtime + ' 23:59:59'
+      this.queryParam.auditBeginDate = getDate.getCurrMonthDays().starttime
+      this.queryParam.auditEndDate = getDate.getCurrMonthDays().endtime
 
       this.queryParam.bookNo = ''
       this.queryParam.dispatchBillNo = ''

+ 4 - 4
src/views/financialManagement/financialCollection/list.vue

@@ -218,13 +218,13 @@ export default {
   methods: {
     //  创建时间  change
     dateChange (date) {
-      this.queryParam.beginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.endDate = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.beginDate = date[0] ? date[0] : ''
+      this.queryParam.endDate = date[1] ? date[1] : ''
     },
     //  审核时间  change
     dateAuditChange (date) {
-      this.queryParam.auditBeginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.auditEndDate = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.auditBeginDate = date[0] ? date[0] : ''
+      this.queryParam.auditEndDate = date[1] ? date[1] : ''
     },
     //  重置
     resetSearchForm () {

+ 0 - 2
src/views/power/OperateJournal/OperateJournal.vue

@@ -82,8 +82,6 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        this.queryParam.beginDate = this.queryParam.beginDate + ' 00:00:00'
-        this.queryParam.endDate = this.queryParam.endDate + ' 23:59:59'
         return journalList(Object.assign(parameter, this.queryParam)).then(res => {
           let data
           if (res.status == 200) {

+ 2 - 0
src/views/productManagement/newProduct/list.vue

@@ -173,6 +173,8 @@ export default {
     //  重置
     resetSearchForm () {
       this.$refs.rangeDate.resetDate()
+      this.queryParam.beginDate = ''
+      this.queryParam.endDate = ''
       this.queryParam.code = ''
       this.queryParam.name = ''
       this.queryParam.origCode = ''

+ 22 - 31
src/views/productManagement/productInfo/list.vue

@@ -57,6 +57,11 @@
                   </a-select>
                 </a-form-item>
               </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="最近修改时间">
+                  <rangeDate ref="rangeDate" @change="dateChange" />
+                </a-form-model-item>
+              </a-col>
             </template>
             <a-col :md="7" :sm="24" style="margin-bottom: 10px;">
               <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="productInfoList-refresh">查询</a-button>
@@ -204,24 +209,27 @@
 
 <script>
 import { commonMixin } from '@/utils/mixin'
-import moment from 'moment'
 import { STable, VSelect } from '@/components'
 import productInfoDetailModal from './detailModal.vue'
 import productInfoOfflineModal from './offlineModal.vue'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQueryAll } from '@/api/productType'
 import ProductBrand from '@/views/common/productBrand.js'
+import { exportExcel } from '@/libs/JGPrint.js'
+import rangeDate from '@/views/common/rangeDate.vue'
 import { productList, productAudit, productBatchAudit, productDel, productOnline, productBatchOnline, productExport } from '@/api/product'
 export default {
   name: 'ProductInfoList',
   mixins: [commonMixin],
-  components: { STable, VSelect, productInfoDetailModal, productInfoOfflineModal, ProductBrand },
+  components: { STable, VSelect, productInfoDetailModal, productInfoOfflineModal, ProductBrand, rangeDate },
   data () {
     return {
       spinning: false,
       advanced: true, // 高级搜索 展开/关闭
       tableHeight: 0,
       queryParam: { //  查询条件
+        updateBeginDate: '',
+        updateEndDate: '',
         name: '', //  产品名称
         queryWord: '', // 产品编码/原厂编码
         productBrandSn: undefined, //  产品品牌
@@ -288,6 +296,11 @@ export default {
     }
   },
   methods: {
+    //  创建时间  change
+    dateChange (date) {
+      this.queryParam.updateBeginDate = date[0] || ''
+      this.queryParam.updateEndDate = date[1] || ''
+    },
     // 表格选中项
     rowSelectionFun (obj) {
       this.rowSelectionInfo = obj || null
@@ -438,6 +451,11 @@ export default {
       this.queryParam.pricingState = undefined
       this.queryParam.picFlag = undefined
       this.productType = []
+      if (this.advanced) {
+        this.$refs.rangeDate.resetDate()
+        this.queryParam.updateBeginDate = ''
+        this.queryParam.updateEndDate = ''
+      }
       this.$refs.table.refresh(true)
     },
     //  新增/编辑
@@ -515,38 +533,11 @@ export default {
     handleExport () {
       const _this = this
       const params = this.queryParam
-      this.exportLoading = true
-      _this.spinning = true
-      productExport(params).then(res => {
-        this.exportLoading = false
+      this.spinning = true
+      exportExcel(productExport, params, '产品列表', function () {
         _this.spinning = false
-        if (res.type == 'application/json') {
-          var reader = new FileReader()
-          reader.addEventListener('loadend', function () {
-            const obj = JSON.parse(reader.result)
-            _this.$notification.error({
-              message: '提示',
-              description: obj.message
-            })
-          })
-          reader.readAsText(res)
-        } else {
-          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()
-    },
     //  产品分类  change
     changeProductType (val, opt) {
       this.queryParam.productTypeSn1 = val[0] ? val[0] : ''

+ 197 - 0
src/views/productManagement/productPricing/chooseImportModal.vue

@@ -0,0 +1,197 @@
+<template>
+  <a-modal
+    centered
+    class="chooseImport-modal"
+    :footer="null"
+    :maskClosable="false"
+    title="导入"
+    v-model="isShow"
+    @cancel="isShow=false"
+    :width="900">
+    <div class="chooseImport-con">
+      <!-- 可导入数据 -->
+      <p class="">可导入数据{{ loadData.length }}条</p>
+      <a-table
+        class="sTable"
+        ref="table"
+        size="small"
+        :rowKey="(record) => record.allocateSn"
+        :columns="nowColumns"
+        :dataSource="loadData"
+        :loading="loading"
+        :scroll="{ y: 200 }"
+        :pagination="false"
+        bordered>
+      </a-table>
+      <a-divider />
+      <!-- 不可导入数据 -->
+      <p class="red">不可导入数据{{ unLoadData.length }}条</p>
+      <a-table
+        class="unTable"
+        ref="unTable"
+        size="small"
+        :rowKey="(record) => record.errorDesc"
+        :columns="nowUnColumns"
+        :dataSource="unLoadData"
+        :loading="loading"
+        :scroll="{ y: 200 }"
+        :pagination="false"
+        bordered>
+      </a-table>
+      <!-- 按钮 -->
+      <div class="btn-con">
+        <a-button
+          type="primary"
+          id="chooseImport-submit"
+          size="large"
+          :class="loadData.length==0?'button-grey':'button-primary'"
+          @click="handleSubmit"
+          style="padding: 0 40px;">确认导入</a-button>
+        <a-button
+          id="chooseImport-cancel"
+          size="large"
+          class="button-cancel"
+          @click="isShow=false"
+          style="padding: 0 40px;margin-left: 15px;">取消</a-button>
+        <a-button
+          type="primary"
+          id="chooseImport-error"
+          size="large"
+          class="button-error"
+          @click="handleError"
+          style="padding: 0 40px;margin-left: 15px;">导出错误项</a-button>
+      </div>
+    </div>
+  </a-modal>
+</template>
+
+<script>
+import { hdExportExcel } from '@/libs/exportExcel'
+import { productPriceImport, productPriceFailExcel } from '@/api/product'
+export default {
+  name: 'ChooseImportModal',
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    paramsData: {
+      type: Object,
+      default: () => {
+        return {}
+      }
+    }
+  },
+  data () {
+    return {
+      isShow: this.openModal, //  是否打开弹框
+      nowColumns: [
+        { title: '序号', dataIndex: 'no', width: '10%', align: 'center' },
+        { title: '产品名称', dataIndex: 'name', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'code', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省级价', dataIndex: 'provincePrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '市级价', dataIndex: 'cityPrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '特约价', dataIndex: 'specialPrice', width: '6%', 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: 'changeReason', width: '10%', align: 'center', customRender: function (text) { return text || '--' } }
+      ],
+      loadData: [],
+      nowUnColumns: [
+        { title: '序号', dataIndex: 'no', width: '9%', align: 'center' },
+        { title: '产品名称', dataIndex: 'name', width: '21%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'code', width: '18%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省级价', dataIndex: 'provincePrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '市级价', dataIndex: 'cityPrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '特约价', dataIndex: 'specialPrice', width: '6%', 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: 'changeReason', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '备注', dataIndex: 'errorMsg', width: '14%', align: 'center', customRender: function (text) { return text || '--' } }
+      ],
+      unLoadData: [],
+      loading: false
+    }
+  },
+  methods: {
+    getData () {
+      const _this = this
+      this.loading = true
+      const params = {
+        path: this.paramsData.path
+      }
+      productPriceImport(params).then(res => {
+        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
+            })
+          }
+          if (res.data.errorList && res.data.errorList.length > 0) {
+            res.data.errorList.map((item, index) => {
+              item.no = index + 1
+            })
+          }
+          _this.loadData = res.data.rightList || []
+          _this.unLoadData = res.data.errorList || []
+        }
+      })
+    },
+    // 确认导入
+    handleSubmit () {
+      if (this.loadData.length == 0) {
+        this.$message.warning('无可导入产品!')
+      } else {
+        this.$emit('ok', this.loadData)
+        this.isShow = false
+      }
+    },
+    // 导出
+    handleError () {
+      const _this = this
+      if (_this.unLoadData.length < 1) {
+        _this.$message.info('暂无可导出的错误项~')
+        return
+      }
+      _this.spinning = true
+      hdExportExcel(productPriceFailExcel, _this.unLoadData, '产品定价错误项', function () {
+        _this.spinning = false
+      })
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+        this.loadData = []
+        this.unLoadData = []
+      } else {
+        this.getData()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+  .chooseImport-modal{
+    .chooseImport-con{
+      .red{
+        color: #f30;
+      }
+      .btn-con{
+        text-align: center;
+        margin: 30px 0 20px;
+        .button-cancel,.button-error{
+          font-size: 12px;
+        }
+      }
+    }
+  }
+</style>

+ 4 - 4
src/views/productManagement/productPricing/editModal.vue

@@ -160,7 +160,7 @@ export default {
           this.form.afterSpecialPrice = res.data.afterSpecialPrice || ''
           this.form.afterTerminalPrice = res.data.afterTerminalPrice || ''
           this.form.afterCarOwnersPrice = res.data.afterCarOwnersPrice || ''
-          this.form.changeReason = res.data.changeReason || undefined
+          this.form.changeReason = res.data.id && res.data.changeReason ? '价格修改' : '首次定价'
         } else {
           this.detailData = null
           this.$refs.ruleForm.resetFields()
@@ -226,11 +226,11 @@ export default {
         this.$emit('close')
         this.costPrice = ''
         this.$refs.ruleForm.resetFields()
-      }else{
+      } else {
         // 默认首项获取焦点
         const _this = this
-        setTimeout(()=>{
-          if(_this.$refs['afterProvincePrice']){
+        setTimeout(() => {
+          if (_this.$refs['afterProvincePrice']) {
             _this.$refs['afterProvincePrice'].focus()
           }
         }, 300)

+ 195 - 0
src/views/productManagement/productPricing/importGuideModal.vue

@@ -0,0 +1,195 @@
+<template>
+  <a-modal
+    centered
+    class="importGuide-modal"
+    :footer="null"
+    :maskClosable="false"
+    title="导入"
+    v-model="isShow"
+    @cancel="isShow=false"
+    :width="750">
+    <div class="importGuide-con">
+      <div class="explain-con">
+        <div class="explain-item">
+          <div class="explain-tit">
+            <span>1</span>准备导入
+          </div>
+          <ul>
+            <li>1) 导入的Excel文件中必须包含名为“产品编码”的列,且名称必须相同</li>
+            <li>2) “产品编码”必须是列表中已存在的产品</li>
+            <li>3) 省级价、市级价、特约价、终端价、车主价均可为空,为空表示不对原有价格做改变</li>
+          </ul>
+          <a-button type="link" icon="download" style="padding: 0 0 0 23px;" @click="handleExport">下载导入模板</a-button>
+        </div>
+        <div class="explain-item">
+          <div class="explain-tit">
+            <span>2</span>上传数据文件
+          </div>
+          <p>目前支持的文件类型*.xls,*.xlsx.</p>
+          <div style="overflow: hidden;padding-left: 23px;">
+            <Upload
+              id="importGuide-attachList"
+              ref="importUpload"
+              :maxNums="1"
+              fileType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
+              uploadType="import"
+              :action="attachAction"
+              :uploadParams="uploadParams"
+              upText="添加文件"
+              @change="changeImport"></Upload>
+          </div>
+        </div>
+      </div>
+      <!-- 按钮 -->
+      <div class="btn-con">
+        <a-button
+          type="primary"
+          id="importGuide-nextStep"
+          size="large"
+          class="button-primary"
+          @click="handlerNextStep"
+          style="padding: 0 60px;">下一步</a-button>
+        <a-button
+          id="importGuide-cancel"
+          size="large"
+          class="button-cancel"
+          @click="isShow=false"
+          style="padding: 0 60px;margin-left: 15px;">取消</a-button>
+      </div>
+    </div>
+    <!-- 导入 -->
+    <chooseImportModal :openModal="openImportModal" :paramsData="paramsData" @close="handleClose" @ok="hanldeOk" />
+  </a-modal>
+</template>
+
+<script>
+import ChooseImportModal from './chooseImportModal.vue'
+import { Upload } from '@/components'
+import { hdExportExcel } from '@/libs/exportExcel'
+import { productPriceTplDownload } from '@/api/product'
+export default {
+  name: 'ImportGuideModal',
+  components: { ChooseImportModal, Upload },
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    params: {
+      type: Object,
+      default: null
+    }
+  },
+  data () {
+    return {
+      isShow: this.openModal, //  是否打开弹框
+      openImportModal: false, //  导入
+      attachAction: process.env.VUE_APP_API_BASE_URL + '/upload',
+      paramsData: null,
+      uploadParams: {
+        savePathType: 'local'
+      }
+    }
+  },
+  methods: {
+    // 下一步
+    handlerNextStep () {
+      if (this.paramsData) {
+        this.openImportModal = true
+      } else {
+        this.$message.warning('添加文件后再进行下一步操作!')
+      }
+    },
+    // 上传文件  change
+    changeImport (file) {
+      if (file) {
+        this.paramsData = {
+          path: file
+        }
+      }
+    },
+    // 导入
+    hanldeOk (obj) {
+      if (obj && obj.length > 0) {
+        this.$emit('ok', obj)
+        this.isShow = false
+      }
+    },
+    // 关闭
+    handleClose () {
+      this.openImportModal = false
+      this.isShow = false
+    },
+    //  导出
+    handleExport () {
+      const _this = this
+      this.spinning = true
+      hdExportExcel(productPriceTplDownload, {}, '产品定价导入模板', function () {
+        _this.spinning = false
+      })
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+        this.paramsData = null
+        this.$refs.importUpload.setFileList('')
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+  .importGuide-modal{
+    .importGuide-con{
+      .explain-con{
+        .explain-item{
+          margin-bottom: 10px;
+          .explain-tit{
+            font-weight: bold;
+            span{
+              display: inline-block;
+              width: 18px;
+              height: 18px;
+              line-height: 16px;
+              text-align: center;
+              margin-right: 5px;
+              border-radius: 50%;
+              border: 1px solid rgba(0, 0, 0, 0.3);
+            }
+          }
+          p{
+            margin: 8px 0;
+            padding-left: 23px;
+          }
+          ul{
+            list-style: none;
+            padding: 0;
+            padding-left: 23px;
+            margin: 0;
+            li{
+              line-height: 26px;
+            }
+          }
+        }
+        #importGuide-attachList{
+          width: 100%;
+        }
+      }
+      .btn-con{
+        margin: 10px 0 20px;
+        text-align: center;
+        .button-cancel{
+          font-size: 12px;
+        }
+      }
+    }
+  }
+</style>

+ 106 - 7
src/views/productManagement/productPricing/list.vue

@@ -3,7 +3,7 @@
     <a-spin :spinning="spinning" tip="Loading...">
       <!-- 搜索条件 -->
       <div ref="tableSearch" class="table-page-search-wrapper">
-        <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
+        <a-form layout="inline" @keyup.enter.native="searchForm">
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
               <a-form-item label="产品名称">
@@ -43,8 +43,16 @@
               </a-col>
             </template>
             <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
-              <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="productPricingList-refresh">查询</a-button>
+              <a-button type="primary" @click="searchForm" :disabled="disabled" id="productPricingList-refresh">查询</a-button>
               <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="productPricingList-reset">重置</a-button>
+              <a-button
+                style="margin-left: 5px"
+                type="primary"
+                class="button-warning"
+                @click="handleExport"
+                :disabled="disabled"
+                v-if="$hasPermissions('B_ProductPriceExoprt')"
+                id="productInfoList-export">导出</a-button>
               <a @click="advanced=!advanced" style="margin-left: 5px">
                 {{ advanced ? '收起' : '展开' }}
                 <a-icon :type="advanced ? 'up' : 'down'"/>
@@ -53,12 +61,33 @@
           </a-row>
         </a-form>
       </div>
+      <!-- 操作按钮 -->
+      <div class="table-operator">
+        <a-button
+          style="margin: 0 15px 0 0;"
+          v-if="$hasPermissions('B_productPriceImport')"
+          id="productPricingList-add"
+          @click="openGuideModal=true"
+          type="primary"
+          class="button-error">定价导入</a-button>
+        <a-button
+          id="productPricingList-batchAudit"
+          type="primary"
+          class="button-warning"
+          :loading="spinning"
+          @click="handleBatchAudit"
+          v-if="$hasPermissions('B_productPricing_audit')"
+          style="margin: 0 15px 0 0;">批量审核</a-button>
+        <span v-if="$hasPermissions('B_productPricing_audit')&&selTotal">已选{{ selTotal }}项</span>
+      </div>
       <!-- 列表 -->
       <s-table
         class="sTable fixPagination"
         ref="table"
         :style="{ height: tableHeight+84.5+'px' }"
         size="small"
+        :row-selection="$hasPermissions('B_productPricing_audit') ? { columnWidth: 40, getCheckboxProps: record => ({ props: { disabled: record.pricingState!='WAIT_PRICING_AUDIT' } })}: null"
+        @rowSelection="rowSelectionFun"
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
@@ -103,27 +132,32 @@
     <!-- 编辑价格 -->
     <product-pricing-edit-modal :openModal="openModal" :itemSn="itemSn" @close="closeModal" @ok="$refs.table.refresh()" />
     <!-- 审核价格 -->
-    <product-pricing-audit-modal :openModal="openAuditModal" :itemSn="itemSn" @close="closeAuditModal" @ok="$refs.table.refresh()" />
+    <product-pricing-audit-modal :openModal="openAuditModal" :itemSn="itemSn" @close="closeAuditModal" @ok="auditSuccess" />
+    <!-- 导入产品 -->
+    <importGuideModal :openModal="openGuideModal" @close="openGuideModal=false" @ok="hanldeOk" />
   </a-card>
 </template>
 
 <script>
 import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
+import { exportExcel } from '@/libs/JGPrint.js'
 import productPricingEditModal from './editModal.vue'
 import productPricingAuditModal from './auditModal.vue'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
-import { productPricingList } from '@/api/product'
+import { productPricingList, productExportPricing, batchAuditPrice, productPriceInsertImport } from '@/api/product'
 import ProductBrand from '@/views/common/productBrand.js'
+import ImportGuideModal from './importGuideModal.vue'
 export default {
   name: 'ProductPricingList',
   mixins: [commonMixin],
-  components: { STable, VSelect, productPricingEditModal, productPricingAuditModal, ProductBrand },
+  components: { STable, VSelect, productPricingEditModal, productPricingAuditModal, ProductBrand, ImportGuideModal },
   data () {
     return {
       spinning: false,
       advanced: true, // 高级搜索 展开/关闭
+      openGuideModal: false,
       tableHeight: 0,
       queryParam: { //  查询条件
         name: '', //  产品名称
@@ -160,10 +194,14 @@ export default {
       openAuditModal: false, //  审核  弹框
       itemSn: '', //  当前产品sn
       productBrandList: [], //  品牌下拉数据
-      productTypeList: [] //  分类下拉数据
+      productTypeList: [], //  分类下拉数据
+      rowSelectionInfo: null
     }
   },
   computed: {
+    selTotal () {
+      return this.rowSelectionInfo && this.rowSelectionInfo.selectedRowKeys ? this.rowSelectionInfo.selectedRowKeys.length : 0
+    },
     columns () {
       const arr = [
         { title: '序号', dataIndex: 'no', width: '3%', align: 'center' },
@@ -212,6 +250,10 @@ export default {
     }
   },
   methods: {
+    // 表格选中项
+    rowSelectionFun (obj) {
+      this.rowSelectionInfo = obj || null
+    },
     //  重置
     resetSearchForm () {
       this.queryParam.name = ''
@@ -222,6 +264,11 @@ export default {
       this.queryParam.productTypeSn3 = ''
       this.queryParam.pricingState = undefined
       this.productType = []
+      this.$refs.table.clearSelected() // 清空表格选中项
+      this.$refs.table.refresh(true)
+    },
+    searchForm () {
+      this.$refs.table.clearSelected() // 清空表格选中项
       this.$refs.table.refresh(true)
     },
     // 审核
@@ -229,6 +276,58 @@ export default {
       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 () {
+        _this.spinning = false
+      })
+    },
     //  编辑
     handleEdit (row) {
       this.itemSn = row.productSn
@@ -280,7 +379,7 @@ export default {
     },
     setTableH () {
       const tableSearchH = this.$refs.tableSearch.offsetHeight
-      this.tableHeight = window.innerHeight - tableSearchH - 195
+      this.tableHeight = window.innerHeight - tableSearchH - 235
     }
   },
   watch: {

+ 2 - 2
src/views/promotionRulesManagement/promotionRules/list.vue

@@ -159,8 +159,8 @@ export default {
   methods: {
     //  时间  change
     dateChange (date) {
-      this.queryParam.beginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.endDate = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.beginDate = date[0] ? date[0] : ''
+      this.queryParam.endDate = date[1] ? date[1] : ''
     },
     //  重置
     resetSearchForm () {

+ 3 - 3
src/views/reportData/allocationPresentation/list.vue

@@ -14,7 +14,7 @@
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
               <a-form-model-item label="调拨日期" prop="time">
-                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
+                <rangeDate ref="rangeDate" :value="queryParam.time" @change="dateChange" />
               </a-form-model-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -137,7 +137,7 @@
 <script>
 import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
-import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import rangeDate from '@/views/common/rangeDate.vue'
 import reportModal from '@/views/common/reportModal.vue'
 import subarea from '@/views/common/subarea.js'
 import { getArea } from '@/api/data'
@@ -146,7 +146,7 @@ import { reportAllocateDbjdReportList, reportAllocateDbjdReportCount, reportAllo
 export default {
   name: 'AllocationPresentationList',
   mixins: [commonMixin],
-  components: { STable, VSelect, rangeDateTime, subarea, reportModal },
+  components: { STable, VSelect, rangeDate, subarea, reportModal },
   data () {
     return {
       spinning: false,

+ 1 - 5
src/views/reportData/hPriceDifferenceDetailReport/list.vue

@@ -89,7 +89,6 @@
                 class="button-warning"
                 @click="handleExport"
                 :disabled="disabled"
-                :loading="exportLoading"
                 id="shortageStatisticsCList-export">导出</a-button>
               <a @click="advanced=!advanced" style="margin-left: 5px">
                 {{ advanced ? '收起' : '展开' }}
@@ -155,7 +154,6 @@ export default {
         ],
         beginDate: getDate.getCurrMonthDays().starttime,
         endDate: getDate.getCurrMonthDays().endtime,
-        exportLoading: false,
         bizNo: '',
         dealer: {
           dealerSn: undefined,
@@ -222,7 +220,7 @@ export default {
         { title: '省份', dataIndex: 'dealer.provinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户名称', dataIndex: 'dealer.dealerName', width: 120,align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户名称', dataIndex: 'dealer.dealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌', dataIndex: 'productBrandName', width: 130, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '二级分类', dataIndex: 'productTypeName2', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
@@ -252,10 +250,8 @@ export default {
         if (valid) {
           const params = _this.queryParam
           _this.showExport = true
-          _this.exportLoading = true
           _this.spinning = true
           hdExportExcel(headRebateDetailReportExport, params, '总部差价明细报表', function () {
-            _this.exportLoading = false
             _this.spinning = false
           })
         } else {

+ 11 - 11
src/views/reportData/salesDetails/list.vue

@@ -14,7 +14,7 @@
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
               <a-form-model-item label="销售日期" prop="time">
-                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
+                <rangeDate ref="rangeDate" :value="queryParam.time" @change="dateChange" />
               </a-form-model-item>
             </a-col>
             <a-col :md="5" :sm="24">
@@ -164,7 +164,7 @@
 import { commonMixin } from '@/utils/mixin'
 import getDate from '@/libs/getDate.js'
 import { STable, VSelect } from '@/components'
-import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import rangeDate from '@/views/common/rangeDate.vue'
 import subarea from '@/views/common/subarea.js'
 import custList from '@/views/common/custList.vue'
 import reportModal from '@/views/common/reportModal.vue'
@@ -176,7 +176,7 @@ import { reportSalesBillDetailList, reportSalesBillDetailCount, reportSalesBillD
 export default {
   name: 'SalesDetailsList',
   mixins: [commonMixin],
-  components: { STable, VSelect, rangeDateTime, custList, subarea, ProductBrand, reportModal },
+  components: { STable, VSelect, rangeDate, custList, subarea, ProductBrand, reportModal },
   data () {
     return {
       spinning: false,
@@ -185,11 +185,11 @@ export default {
       showExport: false,
       queryParam: { //  查询条件
         time: [
-          getDate.getCurrMonthDays().starttime + ' 00:00:00',
-          getDate.getCurrMonthDays().endtime + ' 23:59:59'
+          getDate.getCurrMonthDays().starttime,
+          getDate.getCurrMonthDays().endtime
         ],
-        beginDate: getDate.getCurrMonthDays().starttime + ' 00:00:00',
-        endDate: getDate.getCurrMonthDays().endtime + ' 23:59:59',
+        beginDate: getDate.getCurrMonthDays().starttime,
+        endDate: getDate.getCurrMonthDays().endtime,
         salesBillNo: '',
         productCode: '',
         productName: '',
@@ -323,12 +323,12 @@ export default {
     //  重置
     resetSearchForm () {
       this.queryParam.time = [
-        getDate.getCurrMonthDays().starttime + ' 00:00:00',
-        getDate.getCurrMonthDays().endtime + ' 23:59:59'
+        getDate.getCurrMonthDays().starttime,
+        getDate.getCurrMonthDays().endtime
       ]
       this.$refs.rangeDate.resetDate(this.queryParam.time)
-      this.queryParam.beginDate = getDate.getCurrMonthDays().starttime + ' 00:00:00'
-      this.queryParam.endDate = getDate.getCurrMonthDays().endtime + ' 23:59:59'
+      this.queryParam.beginDate = getDate.getCurrMonthDays().starttime
+      this.queryParam.endDate = getDate.getCurrMonthDays().endtime
       this.queryParam.salesBillNo = ''
       this.queryParam.productCode = ''
       this.queryParam.productName = ''

+ 16 - 16
src/views/reportData/salesOrderTotal/list.vue

@@ -14,7 +14,7 @@
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
               <a-form-model-item label="销售日期" prop="time">
-                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
+                <rangeDate ref="rangeDate" :value="queryParam.time" @change="dateChange" />
               </a-form-model-item>
             </a-col>
             <a-col :md="5" :sm="24">
@@ -42,9 +42,9 @@
               <a-col :md="6" :sm="24">
                 <a-form-model-item label="操作员">
                   <a-select
-                    id="salesOrderTotalList-creatorId"
+                    id="salesOrderTotalList-operatorSn"
                     allowClear
-                    v-model="queryParam.creatorId"
+                    v-model="queryParam.operatorSn"
                     placeholder="请选择操作员"
                     :showSearch="true"
                     option-filter-prop="children"
@@ -128,7 +128,7 @@
 import { commonMixin } from '@/utils/mixin'
 import getDate from '@/libs/getDate.js'
 import { STable, VSelect } from '@/components'
-import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import rangeDate from '@/views/common/rangeDate.vue'
 import subarea from '@/views/common/subarea.js'
 import custList from '@/views/common/custList.vue'
 import reportModal from '@/views/common/reportModal.vue'
@@ -139,7 +139,7 @@ import { reportSalesBillList, reportSalesBillCount, reportSalesBillExport } from
 export default {
   name: 'SalesOrderTotalList',
   mixins: [commonMixin],
-  components: { STable, VSelect, rangeDateTime, custList, subarea, reportModal },
+  components: { STable, VSelect, rangeDate, custList, subarea, reportModal },
   data () {
     return {
       spinning: false,
@@ -148,15 +148,15 @@ export default {
       showExport: false,
       queryParam: { //  查询条件
         time: [
-          getDate.getCurrMonthDays().starttime + ' 00:00:00',
-          getDate.getCurrMonthDays().endtime + ' 23:59:59'
+          getDate.getCurrMonthDays().starttime,
+          getDate.getCurrMonthDays().endtime
         ],
-        beginDate: getDate.getCurrMonthDays().starttime + ' 00:00:00',
-        endDate: getDate.getCurrMonthDays().endtime + ' 23:59:59',
+        beginDate: getDate.getCurrMonthDays().starttime,
+        endDate: getDate.getCurrMonthDays().endtime,
         salesBillNo: '',
         dealerName: '',
         dealerLevel: undefined,
-        creatorId: undefined,
+        operatorSn: undefined,
         subareaSn: undefined,
         dealerProvinceSn: undefined
       },
@@ -196,7 +196,7 @@ export default {
         { title: '销售单号', dataIndex: 'salesBillNo', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '开单日期', dataIndex: 'createDate', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '销售日期', dataIndex: 'auditDate', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'dealerName', width: 120,align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户名称', dataIndex: 'dealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '客户级别', dataIndex: 'dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
@@ -277,16 +277,16 @@ export default {
     //  重置
     resetSearchForm () {
       this.queryParam.time = [
-        getDate.getCurrMonthDays().starttime + ' 00:00:00',
-        getDate.getCurrMonthDays().endtime + ' 23:59:59'
+        getDate.getCurrMonthDays().starttime,
+        getDate.getCurrMonthDays().endtime
       ]
       this.$refs.rangeDate.resetDate(this.queryParam.time)
-      this.queryParam.beginDate = getDate.getCurrMonthDays().starttime + ' 00:00:00'
-      this.queryParam.endDate = getDate.getCurrMonthDays().endtime + ' 23:59:59'
+      this.queryParam.beginDate = getDate.getCurrMonthDays().starttime
+      this.queryParam.endDate = getDate.getCurrMonthDays().endtime
       this.queryParam.salesBillNo = ''
       this.queryParam.dealerName = ''
       this.queryParam.dealerLevel = undefined
-      this.queryParam.creatorId = undefined
+      this.queryParam.operatorSn = undefined
       this.queryParam.subareaSn = undefined
       this.queryParam.dealerProvinceSn = undefined
       this.totalData = null

+ 3 - 3
src/views/reportData/salesPresentation/list.vue

@@ -14,7 +14,7 @@
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
               <a-form-model-item label="备货销售日期" prop="time">
-                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
+                <rangeDate ref="rangeDate" :value="queryParam.time" @change="dateChange" />
               </a-form-model-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -147,7 +147,7 @@
 <script>
 import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
-import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import rangeDate from '@/views/common/rangeDate.vue'
 import custList from '@/views/common/custList.vue'
 import subarea from '@/views/common/subarea.js'
 import reportModal from '@/views/common/reportModal.vue'
@@ -157,7 +157,7 @@ import { reportDispatchReportList, reportDispatchReportCount, reportDispatchRepo
 export default {
   name: 'SalesPresentationList',
   mixins: [commonMixin],
-  components: { STable, VSelect, rangeDateTime, subarea, custList, reportModal },
+  components: { STable, VSelect, rangeDate, subarea, custList, reportModal },
   data () {
     return {
       spinning: false,

+ 3 - 3
src/views/reportData/salesReturnDetailReport/list.vue

@@ -14,7 +14,7 @@
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
               <a-form-model-item label="退货完成日期" prop="time">
-                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
+                <rangeDate ref="rangeDate" :value="queryParam.time" @change="dateChange" />
               </a-form-model-item>
             </a-col>
             <a-col :md="5" :sm="24">
@@ -168,7 +168,7 @@
 import { commonMixin } from '@/utils/mixin'
 import getDate from '@/libs/getDate.js'
 import { STable, VSelect } from '@/components'
-import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import rangeDate from '@/views/common/rangeDate.vue'
 import subarea from '@/views/common/subarea.js'
 import custList from '@/views/common/custList.vue'
 import reportModal from '@/views/common/reportModal.vue'
@@ -181,7 +181,7 @@ import { reportSalesReturnDetailList, reportSalesReturnDetailCount, reportSalesR
 export default {
   name: 'SalesReturnDetailReportList',
   mixins: [commonMixin],
-  components: { STable, VSelect, rangeDateTime, custList, subarea, ProductBrand, reportModal },
+  components: { STable, VSelect, rangeDate, custList, subarea, ProductBrand, reportModal },
   data () {
     return {
       spinning: false,

+ 3 - 3
src/views/reportData/warehousingOrder/list.vue

@@ -14,7 +14,7 @@
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
               <a-form-model-item label="完成日期" prop="time">
-                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
+                <rangeDate ref="rangeDate" :value="queryParam.time" @change="dateChange" />
               </a-form-model-item>
             </a-col>
             <a-col :md="5" :sm="24">
@@ -102,14 +102,14 @@
 <script>
 import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
-import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import rangeDate from '@/views/common/rangeDate.vue'
 import { hdExportExcel } from '@/libs/exportExcel'
 import reportModal from '@/views/common/reportModal.vue'
 import { reportStockPutList, reportStockPutCount, reportStockPutExport } from '@/api/reportData'
 export default {
   name: 'WarehousingOrderList',
   mixins: [commonMixin],
-  components: { STable, VSelect, rangeDateTime, reportModal },
+  components: { STable, VSelect, rangeDate, reportModal },
   data () {
     return {
       spinning: false,

+ 3 - 3
src/views/reportData/warehousingOrderDetail/list.vue

@@ -14,7 +14,7 @@
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
               <a-form-model-item label="完成日期" prop="time">
-                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
+                <rangeDate ref="rangeDate" :value="queryParam.time" @change="dateChange" />
               </a-form-model-item>
             </a-col>
             <a-col :md="5" :sm="24">
@@ -117,14 +117,14 @@
 <script>
 import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
-import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import rangeDate from '@/views/common/rangeDate.vue'
 import { hdExportExcel } from '@/libs/exportExcel'
 import reportModal from '@/views/common/reportModal.vue'
 import { reportStockPutDetailList, reportStockPutDetailCount, reportStockPutDetailExport } from '@/api/reportData'
 export default {
   name: 'WarehousingOrderDetailList',
   mixins: [commonMixin],
-  components: { STable, VSelect, rangeDateTime, reportModal },
+  components: { STable, VSelect, rangeDate, reportModal },
   data () {
     return {
       spinning: false,

+ 4 - 4
src/views/salesManagement/receiptPrint/list.vue

@@ -286,13 +286,13 @@ export default {
     },
     //  时间  change
     dateChange (date) {
-      this.queryParam.beginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.endDate = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.beginDate = date[0] ? date[0] : ''
+      this.queryParam.endDate = date[1] ? date[1] : ''
     },
     //  收款时间  change
     dateSettleChange (date) {
-      this.queryParam.beginDateSettle = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.endDateSettle = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.beginDateSettle = date[0] ? date[0] : ''
+      this.queryParam.endDateSettle = date[1] ? date[1] : ''
     },
     custChange (val) {
       this.queryParam.settleClientName = val.name

+ 4 - 4
src/views/salesManagement/salesCollection/list.vue

@@ -342,13 +342,13 @@ export default {
     },
     //  审核时间  change
     dateAuditChange (date) {
-      this.queryParam.beginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.endDate = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.beginDate = date[0] ? date[0] : ''
+      this.queryParam.endDate = date[1] ? date[1] : ''
     },
     //  收款时间  change
     dateSettleChange (date) {
-      this.queryParam.beginDateSettle = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.endDateSettle = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.beginDateSettle = date[0] ? date[0] : ''
+      this.queryParam.endDateSettle = date[1] ? date[1] : ''
     },
     searchTable () {
       this.$refs.table.refresh(true)

+ 4 - 4
src/views/salesReturnManagement/billOfLading/list.vue

@@ -222,13 +222,13 @@ export default {
   methods: {
     //  创建时间  change
     dateCreateChange (date) {
-      this.queryParam.beginDate = date[0] ? (date[0] + ' 00:00:00') : ''
-      this.queryParam.endDate = date[1] ? (date[1] + ' 23:59:59') : ''
+      this.queryParam.beginDate = date[0] ? (date[0]) : ''
+      this.queryParam.endDate = date[1] ? (date[1]) : ''
     },
     //  审核时间  change
     dateExamineChange (date) {
-      this.queryParam.auditBeginDate = date[0] ? (date[0] + ' 00:00:00') : ''
-      this.queryParam.auditEndDate = date[1] ? (date[1] + ' 23:59:59') : ''
+      this.queryParam.auditBeginDate = date[0] ? (date[0]) : ''
+      this.queryParam.auditEndDate = date[1] ? (date[1]) : ''
     },
     custChange (val) {
       this.queryParam.senderSn = val.key

+ 2 - 2
src/views/salesReturnManagement/pickUp/list.vue

@@ -171,8 +171,8 @@ export default {
   methods: {
     //  审核时间  change
     dateExamineChange (date) {
-      this.queryParam.auditBeginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.auditEndDate = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.auditBeginDate = date[0] ? date[0] : ''
+      this.queryParam.auditEndDate = date[1] ? date[1] : ''
     },
     custChange (val) {
       this.queryParam.senderSn = val.key

+ 2 - 2
src/views/setting/notice/list.vue

@@ -105,8 +105,8 @@ export default {
     ]),
     //  时间  change
     dateChange (date) {
-      this.queryParam.beginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.endDate = date[1] ? date[1] + ' 23:59:59' : ''
+      this.queryParam.beginDate = date[0] ? date[0] : ''
+      this.queryParam.endDate = date[1] ? date[1] : ''
     },
     // 查询列表
     handelSearch (pageNo) {

+ 1 - 1
src/views/supplierManagement/associatedProductDetails/list.vue

@@ -57,7 +57,7 @@
         bordered>
         <!-- 产品分类 -->
         <template slot="productType" slot-scope="text, record">
-          <span v-if="record.product.productTypeName2 || record.product.productTypeName3">{{ record.product.productTypeName2 }} {{ record.product.productTypeName3 ? '>' : '' }} {{ record.product.productTypeName3 }}</span>
+          <span v-if="record.product&&(record.product.productTypeName2 || record.product.productTypeName3)">{{ record.product.productTypeName2 }} {{ record.product.productTypeName3 ? '>' : '' }} {{ record.product.productTypeName3 }}</span>
           <span v-else>--</span>
         </template>
       </s-table>

+ 1 - 1
vue.config.js

@@ -107,7 +107,7 @@ const vueConfig = {
     // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        // target: 'http://192.168.0.102:8602/ocs-admin',
+        // target: 'http://192.168.0.115:8003/ocs-admin',
         // target: 'https://t.ocs.360arrow.com/ocs-admin', //  Á·Ï°
         target: 'http://p.ocs.360arrow.com/ocs-admin', //  Ô¤·¢²¼
         ws: false,