Browse Source

Merge branch 'pre-release' of http://git.chelingzhu.com/jianguan-web/qpls-md-html into pre-release

# Conflicts:
#	public/version.json
lilei 1 năm trước cách đây
mục cha
commit
f79da4a3db

+ 1 - 1
src/components/Table/index.js

@@ -145,7 +145,7 @@ export default {
      */
     refresh (bool = false) {
       bool && (this.localPagination = Object.assign({}, {
-        current: 1, pageSize: this.pageSize
+        current: 1, pageSize: this.localPagination.pageSize
       }))
       this.loadData()
     },

+ 4 - 4
src/libs/JGPrint.js

@@ -18,9 +18,9 @@ export const JGPrintTag = function (width, height, data) {
       onOk () {
         var agent = navigator.userAgent.toLowerCase();
         if (agent.indexOf("win32") >= 0 || agent.indexOf("wow32") >= 0) {
-            window.open('https://iscm.360arrow.com/electron/CLodop.exe')
+            window.open('https://demo.lodop.net:8443/Lodop6.226_Clodop6.594.zip')
         }else if (agent.indexOf("win64") >= 0 || agent.indexOf("wow64") >= 0) {
-            window.open('https://iscm.360arrow.com/electron/CLodop.exe')
+            window.open('https://www.lodop.net/download/CLodop_Setup_for_Win64NT_6.594EN.zip')
         }
       }
     })
@@ -285,9 +285,9 @@ export const jGPrint = function (data, type, printerType, taskName) {
         onOk () {
           var agent = navigator.userAgent.toLowerCase();
           if (agent.indexOf("win32") >= 0 || agent.indexOf("wow32") >= 0) {
-              window.open('https://iscm.360arrow.com/electron/CLodop.exe')
+              window.open('https://demo.lodop.net:8443/Lodop6.226_Clodop6.594.zip')
           }else if (agent.indexOf("win64") >= 0 || agent.indexOf("wow64") >= 0) {
-              window.open('https://iscm.360arrow.com/electron/CLodop.exe')
+              window.open('https://www.lodop.net/download/CLodop_Setup_for_Win64NT_6.594EN.zip')
           }
         }
       })

+ 2 - 1
src/store/modules/user.js

@@ -17,7 +17,8 @@ const user = {
     changeOrg: '',
     settleAccountFlag: 0, // 结算账户管理是否开启
     isShowSpecialPrice: 0, // 是否显示特约价
-    dealerSupplierFlag: 0 // 是否是省仓用户
+    dealerSupplierFlag: 0 ,// 是否是省仓用户
+    dealerLevel: ''  // 经销商级别
   },
 
   mutations: {

+ 8 - 5
src/views/Home.vue

@@ -351,7 +351,8 @@ import { mapGetters, mapActions } from 'vuex'
 import ResetPwd from '@/views/user/ResetPwd.vue'
 import newProduct from '@/views/productManagement/newProduct/modal.vue'
 import { queryNewProductPage } from '@/api/product'
-import { bizStateCount, bizData, dealerData, findAllLookup } from '@/api/data'
+import { bizStateCount, bizData, dealerData } from '@/api/data'
+
 export default {
   name: 'Home',
   components: { ResetPwd, newProduct },
@@ -787,7 +788,7 @@ export default {
     }
   },
   methods: {
-    ...mapActions(['getAllLookUp','getLookUpDataByCode']),
+    ...mapActions(['getAllLookUp', 'getLookUpDataByCode']),
     hasNewProduct () {
       queryNewProductPage({ pageNo: 1, pageSize: 20, onlineFalg: this.onlineFalg }).then(res => {
         if (res.status == 200) {
@@ -877,22 +878,24 @@ export default {
       dealerData({}).then(res => {
         if (res.status == 200) {
           this.dealerData = res.data
+          this.$store.state.user.dealerLevel = res.data.dealerLevel
         } else {
           this.dealerData = null
+          this.$store.state.user.dealerLevel = ''
         }
       })
     }
   },
   activated () {
     const vm = this
-    
+
     // 请求导航指引合计
     this.getNavCount()
     this.getMerchantData()
-    
+
     // 获取所有数据字典
     const allLookup = sessionStorage.getItem('allLookup')
-    if(!allLookup){
+    if (!allLookup) {
       this.getAllLookUp()
     }
   },

+ 65 - 65
src/views/common/rangeDate.vue

@@ -2,64 +2,64 @@
   <div style="display: flex;align-items: center;justify-content: space-between;">
     <div style="flex:1">
       <a-date-picker
-      :size="size"
-      :locale="locale"
-      v-model="startValue"
-      :allowClear="allowClear"
-      :disabled-date="disabledStartDate"
-      :show-time="showTime"
-      :format="showTime?'YYYY-MM-DD hh:mm:ss':'YYYY-MM-DD'"
-      placeholder="开始时间"
-      :open="startOpen"
-      inputReadOnly
-      @openChange="handleStartOpenChange"
-      @panelChange="handleStartPanelChange"
-      :showToday="false"
-      style="width:100%"
-    >
-      <div slot="renderExtraFooter" v-if="showShortcut">
-        <a-button @click="setVal('date1')" type="link" size="small">今天</a-button>
-        <a-button @click="setVal('date2')" type="link" size="small">近一个月</a-button>
-        <a-button @click="setVal('date3')" type="link" size="small">本月</a-button>
-        <a-button @click="setVal('date4')" type="link" size="small">上月</a-button>
-        <a-button @click="setVal('date5')" v-if="showShortcut" type="link" size="small">近一年</a-button>
-        <a-button @click="setVal('date6')" v-else type="link" size="small">近三个月</a-button>
-      </div>
-    </a-date-picker>
+        :size="size"
+        :locale="locale"
+        v-model="startValue"
+        :allowClear="allowClear"
+        :disabled-date="disabledStartDate"
+        :show-time="showTime"
+        :format="showTime?'YYYY-MM-DD hh:mm:ss':'YYYY-MM-DD'"
+        placeholder="开始时间"
+        :open="startOpen"
+        inputReadOnly
+        @openChange="handleStartOpenChange"
+        @panelChange="handleStartPanelChange"
+        :showToday="false"
+        style="width:100%"
+      >
+        <div slot="renderExtraFooter">
+          <a-button @click="setVal('date1')" type="link" size="small">今天</a-button>
+          <a-button @click="setVal('date2')" type="link" size="small">近一个月</a-button>
+          <a-button @click="setVal('date3')" type="link" size="small">本月</a-button>
+          <a-button @click="setVal('date4')" type="link" size="small">上月</a-button>
+          <a-button @click="setVal('date5')" v-if="showShortcut" type="link" size="small">近一年</a-button>
+          <a-button @click="setVal('date6')" v-else type="link" size="small">近三个月</a-button>
+        </div>
+      </a-date-picker>
     </div>
     <span style="width: 20px;text-align: center;">至</span>
     <div style="flex:1">
       <a-date-picker
-      :size="size"
-      :locale="locale"
-      v-model="endValue"
-      :allowClear="allowClear"
-      :disabled-date="disabledEndDate"
-      :show-time="showTime"
-      :format="showTime?'YYYY-MM-DD hh:mm:ss':'YYYY-MM-DD'"
-      placeholder="结束时间"
-      inputReadOnly
-      :open="endOpen"
-      @openChange="handleEndOpenChange"
-      @panelChange="handleEndPanelChange"
-      :showToday="false"
-      style="width:100%"
-    >
-      <div slot="renderExtraFooter">
-        <a-button @click="setVal('date1')" type="link" size="small">今天</a-button>
-        <a-button @click="setVal('date2')" type="link" size="small">近一个月</a-button>
-        <a-button @click="setVal('date3')" type="link" size="small">本月</a-button>
-        <a-button @click="setVal('date4')" type="link" size="small">上月</a-button>
-        <a-button @click="setVal('date5')" v-if="showShortcut" type="link" size="small">近一年</a-button>
-        <a-button @click="setVal('date6')" v-else type="link" size="small">近三个月</a-button>
-      </div>
-    </a-date-picker>
+        :size="size"
+        :locale="locale"
+        v-model="endValue"
+        :allowClear="allowClear"
+        :disabled-date="disabledEndDate"
+        :show-time="showTime"
+        :format="showTime?'YYYY-MM-DD hh:mm:ss':'YYYY-MM-DD'"
+        placeholder="结束时间"
+        inputReadOnly
+        :open="endOpen"
+        @openChange="handleEndOpenChange"
+        @panelChange="handleEndPanelChange"
+        :showToday="false"
+        style="width:100%"
+      >
+        <div slot="renderExtraFooter">
+          <a-button @click="setVal('date1')" type="link" size="small">今天</a-button>
+          <a-button @click="setVal('date2')" type="link" size="small">近一个月</a-button>
+          <a-button @click="setVal('date3')" type="link" size="small">本月</a-button>
+          <a-button @click="setVal('date4')" type="link" size="small">上月</a-button>
+          <a-button @click="setVal('date5')" v-if="showShortcut" type="link" size="small">近一年</a-button>
+          <a-button @click="setVal('date6')" v-else type="link" size="small">近三个月</a-button>
+        </div>
+      </a-date-picker>
     </div>
   </div>
 </template>
 <script>
-import locale from 'ant-design-vue/es/date-picker/locale/zh_CN';
-import moment from 'moment';//引入moment 
+import locale from 'ant-design-vue/es/date-picker/locale/zh_CN'
+import moment from 'moment'// 引入moment
 export default {
   props: {
     value: {
@@ -83,7 +83,7 @@ export default {
     showShortcut: {
       type: Boolean,
       default: true
-    },
+    }
   },
   data () {
     return {
@@ -98,25 +98,25 @@ export default {
         'date3': [moment().startOf('month'), moment()],
         'date4': [moment().subtract(1, 'months').startOf('month'), moment().subtract(1, 'months').endOf('month')],
         'date5': [moment().subtract(1, 'years'), moment()],
-        'date6': [moment().subtract(3, 'months').startOf('month'), moment().subtract(3, 'months').endOf('month')]
+        'date6': [moment().month(moment().month() - 2).startOf('month'), moment()]
       },
-      startMode:'',
+      startMode: '',
       endMode: ''
     }
   },
   watch: {
-    startValue (val,old) {
-      if(old&&!val){
+    startValue (val, old) {
+      if (old && !val) {
         this.endValue = null
       }
-      if(val && !this.endValue){
+      if (val && !this.endValue) {
         this.endOpen = true
       }
       this.startValue = val || null
       this.changeInput()
     },
-    endValue (val,old) {
-      if(old&&!val){
+    endValue (val, old) {
+      if (old && !val) {
         this.startValue = null
       }
       this.endValue = val || null
@@ -137,10 +137,10 @@ export default {
         if (!this.startValue) {
           return startValue.valueOf() > moment(endValue, 'YYYY-MM-DD').add(1, 'days').valueOf() || startValue.valueOf() > maxYearVs.valueOf()
         }
-        if(this.startMode == 'year'){
+        if (this.startMode == 'year') {
           return startValue.valueOf() > moment().endOf('year').valueOf()
         }
-        if(this.startMode == 'month'){
+        if (this.startMode == 'month') {
           return startValue.valueOf() > moment().endOf('month').valueOf()
         }
         return startValue.valueOf() > moment(endValue).valueOf() || startValue.valueOf() > maxYearVs.valueOf()
@@ -151,11 +151,11 @@ export default {
       const startValue = this.startValue
       const maxYearVs = moment().endOf('day') //  今天,包含今天
       if (startValue) {
-        if(this.endMode == 'year'){
+        if (this.endMode == 'year') {
           const sv = moment(startValue).startOf('year')
           return endValue.valueOf() < sv.valueOf() || endValue.valueOf() > moment().endOf('year').valueOf()
         }
-        if(this.endMode == 'month'){
+        if (this.endMode == 'month') {
           const sv = moment(startValue).startOf('month')
           return endValue.valueOf() < sv.valueOf() || endValue.valueOf() > moment().endOf('month').valueOf()
         }
@@ -164,16 +164,16 @@ export default {
       return endValue.valueOf() > maxYearVs.valueOf()
     },
     handleStartOpenChange (open) {
-      if(!open && !this.endValue){
+      if (!open && !this.endValue) {
         this.endOpen = !!this.startValue
       }
-      if(!open){
+      if (!open) {
         this.startMode = ''
       }
       this.startOpen = open
     },
     handleEndOpenChange (open) {
-      if(!open){
+      if (!open) {
         this.endMode = ''
       }
       this.endOpen = open

+ 18 - 13
src/views/common/shopingCatModal.vue

@@ -8,11 +8,12 @@
     :wrap-style="{ position: 'absolute' }"
     @close="onClose"
     wrapClassName="shopingCat-drawer jg-drawer-wrap">
-     <div slot="title">
-       <strong>{{title}}</strong>
-       <span style="color: #ed1c24;;margin-left:10px;font-size: 12px;">注意:仅可添加本供应商有经销权且总部已上线的产品</span>
-     </div>
-     <shopingCat ref="shopingCat" modes="modals" @ok="handleok"></shopingCat>
+    <div slot="title">
+      <strong>{{ title }}</strong>
+      <span style="color: #ed1c24;;margin-left:10px;font-size: 12px;" v-if="purchaseTargetType&&(purchaseTargetType=='DEALER_UP'||purchaseTargetType=='DEALER_SUPPLIER')">注意:仅可添加本供应商有权限的产品</span>
+      <span style="color: #ed1c24;;margin-left:10px;font-size: 12px;" v-else-if="purchaseTargetType&&purchaseTargetType=='SUPPLIER_SYS'">注意:仅可添加本供应商有经销权且总部已上线的产品</span>
+    </div>
+    <shopingCat ref="shopingCat" :purchaseType="purchaseTargetType" modes="modals" @ok="handleok"></shopingCat>
   </a-drawer>
 </template>
 
@@ -20,7 +21,7 @@
 import { commonMixin } from '@/utils/mixin'
 import shopingCat from '@/views/shoppingCarManagement/shoppingCar/list.vue'
 export default {
-  name:"shopingCatModal",
+  name: 'ShopingCatModal',
   mixins: [commonMixin],
   components: {
     shopingCat
@@ -40,22 +41,26 @@ export default {
     },
     paramsData: {
       type: Object
+    },
+    purchaseTargetType: {
+      type: String,
+      default: null
     }
   },
   watch: {
     showModal (newValue, oldValue) {
       this.visible = newValue
       if (newValue) {
-         setTimeout(()=>{
-           this.$refs.shopingCat.pageInit(this.paramsData)
-         },500)
+        setTimeout(() => {
+          this.$refs.shopingCat.pageInit(this.paramsData)
+        }, 500)
       }
-    },
+    }
   },
   data () {
     return {
       visible: this.showModal,
-      title: '购物车',
+      title: '购物车'
     }
   },
   methods: {
@@ -64,7 +69,7 @@ export default {
     },
     handleok () {
       this.$emit('ok')
-    },
+    }
   }
 }
 </script>
@@ -84,6 +89,6 @@ export default {
       height: 100%;
     }
   }
-  
+
 }
 </style>

+ 3 - 3
src/views/customerManagement/customerInfo/list.vue

@@ -134,7 +134,7 @@ export default {
   data () {
     return {
       spinning: false,
-      advanced: false, // 高级搜索 展开/关闭
+      advanced: true, // 高级搜索 展开/关闭
       tableHeight: 0,
       queryParam: { //  查询条件
         saleBeginDate: '',
@@ -146,7 +146,7 @@ export default {
         countySn: undefined, //  区
         dealerFlag: undefined, //  是否卫星仓客户
         customerTypeSn: undefined, //  客户类型
-        enabledFlag: undefined, //  启用状态
+        enabledFlag: '1', //  启用状态
         relationType: undefined
       },
       disabled: false, //  查询、重置按钮是否可操作
@@ -216,7 +216,7 @@ export default {
       this.queryParam.dealerFlag = undefined
       this.queryParam.customerTypeSn = undefined
       this.queryParam.relationType = undefined
-      this.queryParam.enabledFlag = undefined
+      this.queryParam.enabledFlag = '1'
       this.addrCityList = []
       this.addrDistrictList = []
       if (this.advanced) {

+ 61 - 37
src/views/power/role/menuModal.vue

@@ -1,35 +1,35 @@
 <template>
   <a-modal
-        centered
-        class="modalBox"
-        :title="roleName"
-        v-model="isshow"
-        @cancel="cancel"
-        :maskClosable="false">
-        <div style="min-height: 100px;">
-          <a-spin :spinning="spinning" tip="Loading...">
-            <a-form class="form-box" style="max-height: 600px;" :form="form" @submit="handleSubmit">
-            <a-tree
-              checkable
-              @check="onCheck"
-              @expand="onExpand"
-              :expandedKeys="expandedKeys"
-              :autoExpandParent="autoExpandParent"
-              v-model="checkedKeys"
-              :treeData="treeData"
-            />
-          </a-form>
-          <a-form-item :wrapper-col="{ offset: 15 }">
-            <a-button type="primary" @click="handleSubmit()" id="menuModal-handleSubmit">
-              保存
-            </a-button>
-            <a-button :style="{ marginLeft: '8px' }" @click="cancel" id="menuModal-handleCancel">
-              取消
-            </a-button>
-          </a-form-item>
-          </a-spin>
-        </div>
-      </a-modal>
+    centered
+    class="modalBox"
+    :title="roleName"
+    v-model="isshow"
+    @cancel="cancel"
+    :maskClosable="false">
+    <div style="min-height: 100px;">
+      <a-spin :spinning="spinning" tip="Loading...">
+        <a-form class="form-box" style="max-height: 600px;" :form="form" @submit="handleSubmit">
+          <a-tree
+            checkable
+            @check="onCheck"
+            @expand="onExpand"
+            :expandedKeys="expandedKeys"
+            :autoExpandParent="autoExpandParent"
+            v-model="checkedKeys"
+            :treeData="treeData"
+          />
+        </a-form>
+        <a-form-item :wrapper-col="{ offset: 15 }">
+          <a-button type="primary" @click="handleSubmit()" id="menuModal-handleSubmit">
+            保存
+          </a-button>
+          <a-button :style="{ marginLeft: '8px' }" @click="cancel" id="menuModal-handleCancel">
+            取消
+          </a-button>
+        </a-form-item>
+      </a-spin>
+    </div>
+  </a-modal>
 </template>
 
 <script>
@@ -44,7 +44,7 @@ export default {
     visible: {
       type: Boolean,
       default: false
-    },
+    }
   },
   data () {
     return {
@@ -126,27 +126,31 @@ export default {
         }
       }
     },
-    getmenuData(id){
+    getmenuData (id) {
       this.spinning = true
       getMenuList({
         id: id
       }).then(res => {
         if (res.status == 200) {
-          if(res.data.role){
+          if (res.data.role) {
             this.setmenuData(res.data)
-          }else{
-            this.$message.error("获取数据失败,请重试!")
+          } else {
+            this.$message.error('获取数据失败,请重试!')
             this.isshow = false
           }
         }
         this.spinning = false
       })
     },
-    setmenuData(newValue){
+    setmenuData (newValue) {
       this.menuData = newValue
       console.log(this.menuData)
       if (newValue) { // 编辑
-        this.treeData = this.menuData.allMenuList
+        if (this.$store.state.user.dealerLevel == 'SPECIAL') { // 特约经销商
+          this.treeData = this.filterTree(newValue.allMenuList)
+        } else {
+          this.treeData = this.menuData.allMenuList
+        }
         this.id = this.menuData.role.id
         this.roleName = '分配权限' + '(' + this.menuData.role.name + ')'
         if (this.menuData.role.menuIds) {
@@ -157,6 +161,26 @@ export default {
         }
       }
     },
+    // 筛选子级中的不含市级价的树
+    filterTree (tree) {
+      return tree.map(node => {
+        // 创建当前节点的副本,避免直接修改原节点
+        const newNode = { ...node }
+        // 递归删除子节点中 name 等于 '市级价' 的节点
+        if (newNode.children) {
+          newNode.children = newNode.children.filter(child => {
+            // 如果子节点有子级,则递归处理
+            if (child.children && child.children.length > 0) {
+              child.children = this.filterTree(child.children)
+            }
+            // 返回不符合删除条件的子节点
+            return child.name != '市级价'
+          })
+        }
+        // 返回处理后的节点
+        return newNode
+      })
+    }
   },
   beforeCreate () {
     this.form = this.$form.createForm(this, { name: 'menuModal' })

+ 23 - 19
src/views/productManagement/priceChangeRecord/list.vue

@@ -194,7 +194,7 @@ export default {
       ]
       getCurrentDealer().then(res => {
         if (res.status == 200) {
-          if (res.data.dealerLevel && res.data.dealerLevel == 'PROVINCE') { //  省级
+          if (res.data.dealerLevel && (res.data.dealerLevel == 'PROVINCE' || res.data.dealerLevel == 'CITY')) { //  省级
             this.columns.push({
               title: '省级价',
               dataIndex: 'sdtermindfaldsdPrice',
@@ -203,26 +203,30 @@ export default {
                 { title: '变更前', dataIndex: 'beforeProvincePrice', width: '4%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
                 { title: '变更后', scopedSlots: { customRender: 'afterProvincePrice' }, width: '4%', align: 'right' }
               ]
-            },
-            {
-              title: '市级价',
-              dataIndex: 'sdterminaldsdPrice',
-              align: 'center',
-              children: [
-                { title: '变更前', dataIndex: 'beforeCityPrice', width: '4%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
-                { title: '变更后', scopedSlots: { customRender: 'afterCityPrice' }, width: '4%', align: 'right' }
-              ]
             })
+            if (this.$hasPermissions('M_ShowAllCityPrice')) {
+              this.columns.push({
+                title: '市级价',
+                dataIndex: 'sdterminaldsdPrice',
+                align: 'center',
+                children: [
+                  { title: '变更前', dataIndex: 'beforeCityPrice', width: '4%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+                  { title: '变更后', scopedSlots: { customRender: 'afterCityPrice' }, width: '4%', align: 'right' }
+                ]
+              })
+            }
           } else if (res.data.dealerLevel && res.data.dealerLevel == 'CITY') { //  市级
-            this.columns.push({
-              title: '市级价',
-              dataIndex: 'sdterminaldsdPrice',
-              align: 'center',
-              children: [
-                { title: '变更前', dataIndex: 'beforeCityPrice', width: '4%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
-                { title: '变更后', scopedSlots: { customRender: 'afterCityPrice' }, width: '4%', align: 'right' }
-              ]
-            })
+            if (this.$hasPermissions('M_ShowAllCityPrice')) {
+              this.columns.push({
+                title: '市级价',
+                dataIndex: 'sdterminaldsdPrice',
+                align: 'center',
+                children: [
+                  { title: '变更前', dataIndex: 'beforeCityPrice', width: '4%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+                  { title: '变更后', scopedSlots: { customRender: 'afterCityPrice' }, width: '4%', align: 'right' }
+                ]
+              })
+            }
           }
           if (res.data.isShowSpecialPrice && res.data.isShowSpecialPrice == '1') { //  是否展示特约价
             this.columns.push({

+ 23 - 20
src/views/productManagement/productInfoJg/list.vue

@@ -81,22 +81,12 @@
           <a-dropdown v-model="showCell">
             <a-button type="link" class="button-default"> <a-icon type="setting" />  显示</a-button>
             <a-menu slot="overlay">
-              <a-menu-item>
-                <a-checkbox v-model="isTerminalPrice">
-                  自定义终端价
-                </a-checkbox>
-              </a-menu-item>
-              <a-menu-item>
-                <a-checkbox v-model="isCarOwnersPrice">
-                  自定义车主价
-                </a-checkbox>
-              </a-menu-item>
-              <a-menu-item v-if="currentDealerInfo.dealerLevel && currentDealerInfo.dealerLevel == 'PROVINCE'">
+              <a-menu-item v-if="currentDealerInfo.dealerLevel && (currentDealerInfo.dealerLevel == 'CITY'||currentDealerInfo.dealerLevel == 'PROVINCE')">
                 <a-checkbox v-model="isProPrice">
                   省级价
                 </a-checkbox>
               </a-menu-item>
-              <a-menu-item v-if="currentDealerInfo.dealerLevel && (currentDealerInfo.dealerLevel == 'CITY'||currentDealerInfo.dealerLevel == 'PROVINCE')">
+              <a-menu-item v-if="currentDealerInfo.dealerLevel && (currentDealerInfo.dealerLevel == 'CITY'||currentDealerInfo.dealerLevel == 'PROVINCE')&&$hasPermissions('M_ShowAllCityPrice')">
                 <a-checkbox v-model="isCityPrice">
                   市级价
                 </a-checkbox>
@@ -111,12 +101,22 @@
                   终端价
                 </a-checkbox>
               </a-menu-item>
+              <a-menu-item>
+                <a-checkbox v-model="isTerminalPrice">
+                  自定义终端价
+                </a-checkbox>
+              </a-menu-item>
               <a-menu-item>
                 <a-checkbox v-model="isCzPrice">
                   车主价
                 </a-checkbox>
               </a-menu-item>
-            </a-menu>
+              <a-menu-item>
+                <a-checkbox v-model="isCarOwnersPrice">
+                  自定义车主价
+                </a-checkbox>
+              </a-menu-item>
+              </a-menu-item></a-menu>
           </a-dropdown>
           <a-divider type="vertical" style="margin:5px 0;"/>
           <a-dropdown>
@@ -286,23 +286,26 @@ export default {
         { title: '产品图片', scopedSlots: { customRender: 'imageUrl' }, width: '6%', align: 'center' },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '12%', align: 'center' }
       ]
-      if (_this.currentDealerInfo.dealerLevel && _this.currentDealerInfo.dealerLevel == 'PROVINCE') { //  省级
-        if(this.isProPrice){
+
+      if (_this.currentDealerInfo.dealerLevel && (_this.currentDealerInfo.dealerLevel == 'PROVINCE' || _this.currentDealerInfo.dealerLevel == 'CITY')) { //  省级
+        if (this.isProPrice) {
           arr.push(
             { title: '省级价', dataIndex: 'provincePrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
           )
         }
-        if (_this.isCityPrice) {
+        if (_this.isCityPrice && _this.$hasPermissions('M_ShowAllCityPrice')) {
           arr.push(
             { title: '市级价', dataIndex: 'cityPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
           )
         }
       } else if (_this.currentDealerInfo.dealerLevel && _this.currentDealerInfo.dealerLevel == 'CITY' && _this.isCityPrice) { //  市级
-        arr.push(
-          { title: '市级价', dataIndex: 'cityPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
-        )
+        if (_this.$hasPermissions('M_ShowAllCityPrice')) {
+          arr.push(
+            { title: '市级价', dataIndex: 'cityPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
+          )
+        }
       }
-      if (_this.currentDealerInfo.isShowSpecialPrice && _this.currentDealerInfo.isShowSpecialPrice == '1'&&_this.isSpecialPrice) { //  是否展示特约价
+      if (_this.currentDealerInfo.isShowSpecialPrice && _this.currentDealerInfo.isShowSpecialPrice == '1' && _this.isSpecialPrice) { //  是否展示特约价
         arr.push({ title: '特约价', dataIndex: 'specialPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
 

+ 12 - 9
src/views/purchasingManagement/purchaseOrder/edit.vue

@@ -156,7 +156,7 @@
                     class="button-primary"
                     :loading="addLoading"
                     @click="handleAdd(record,0)"
-                    >添加</a-button>
+                  >添加</a-button>
                 </template>
               </s-table>
             </div>
@@ -265,6 +265,7 @@
     <!-- 上次缺货 -->
     <outStockModal
       ref="outStock"
+      :purchaseTargetType="detail?detail.purchaseTargetType:null"
       :paramsSn="$route.params.sn"
       :openModal="openOutStockModal"
       :chooseData="chooseData"
@@ -287,7 +288,7 @@ import chooseAddressModal from '@/views/common/receivingAddress/chooseAddressMod
 import ProductType from '../../common/productType.js'
 import ProductBrand from '../../common/productBrand.js'
 import { purchaseDetailBySn, purchaseWriteSubmit, purchaseDetailPrint, purchaseDetailExport, purchaseDetailAddress } from '@/api/purchase'
-import { purchaseDetailList, purchaseDetailSave, purchaseDetailDel, purchaseDetailCancelList } from '@/api/purchaseDetail'
+import { purchaseDetailList, purchaseDetailSave, purchaseDetailDel } from '@/api/purchaseDetail'
 import { productListPurchase } from '@/api/product'
 import defImg from '@/assets/def_img@2x.png'
 import Print from '@/views/common/print.vue'
@@ -386,7 +387,7 @@ export default {
         { title: '产品图片', scopedSlots: { customRender: 'imageUrl' }, width: '6%', align: 'center' },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
       ]
-      // 产品来源 
+      // 产品来源
       if (this.isDealerUp) {
         arr.splice(1, 0, { title: '产品编码', scopedSlots: { customRender: 'code' }, width: '15%', align: 'center', sorter: true })
         arr.splice(6, 0, { title: '产品来源', dataIndex: 'sysFlagDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } })
@@ -503,25 +504,27 @@ export default {
       }
       // 添加
       if (type == 0) {
-        if(this.isDealerUp){
-          if(row.purchasePrice){
+        if (this.isDealerUp) {
+          if (row.purchasePrice) {
             params.productSn = row.productSn
             params.purchaseBillSn = this.detail.purchaseBillSn
             params.purchaseBillNo = this.detail.purchaseBillNo
             params.price = row.purchasePrice
             params.qty = row.qty
-          }else{
+            params.priceLevel = row.priceLevel
+          } else {
             this.$message.warning('成本价不能为空!')
             return
           }
-        }else{
-          if(row.purchasePrice&&row.terminalPrice&&row.carOwnersPrice){
+        } else {
+          if (row.purchasePrice && row.terminalPrice && row.carOwnersPrice) {
             params.productSn = row.productSn
             params.purchaseBillSn = this.detail.purchaseBillSn
             params.purchaseBillNo = this.detail.purchaseBillNo
             params.price = row.purchasePrice
             params.qty = row.qty
-          }else{
+            params.priceLevel = row.priceLevel
+          } else {
             this.$message.warning('成本价、终端会员价、车主零售价不能为空!')
             return
           }

+ 19 - 4
src/views/purchasingManagement/purchaseOrder/outStockModal.vue

@@ -4,10 +4,14 @@
     class="outStock-modal"
     :footer="null"
     :maskClosable="false"
-    title="采购缺货产品明细"
     v-model="isShow"
     @cancel="isShow=false"
     :width="900">
+    <div slot="title">
+      <strong>采购缺货产品明细</strong>
+      <span style="color: #ed1c24;;margin-left:10px;font-size: 12px;" v-if="purchaseTargetType&&(purchaseTargetType=='DEALER_UP'||purchaseTargetType=='DEALER_SUPPLIER')">注意:仅可添加本供应商有权限的产品</span>
+      <span style="color: #ed1c24;;margin-left:10px;font-size: 12px;" v-else-if="purchaseTargetType&&purchaseTargetType=='SUPPLIER_SYS'">注意:仅可添加本供应商有经销权且总部已上线的产品</span>
+    </div>
     <a-spin :spinning="spinning" tip="Loading...">
       <div class="outStock-con">
         <div>
@@ -54,13 +58,19 @@
             ref="table"
             size="small"
             :rowKey="(record) => record.id"
-            :row-selection="{ columnWidth: 40 }"
+            :row-selection="{ columnWidth: 40 ,getCheckboxProps:record=>({props:{disabled:(purchaseTargetType&&purchaseTargetType=='SUPPLIER_SYS'&&record.onlineFalg == 0)||record.productPowerFlag==0}})}"
             @rowSelection="rowSelectionFun"
             :data="loadData"
             :columns="columns"
             :scroll="{ y: 450 }"
             :defaultLoadData="false"
             bordered>
+            <!-- 产品编码 -->
+            <template slot="productCode" slot-scope="text, record">
+              {{ record.productCode }}
+              <a-tag v-if="record.onlineFalg == 0">下架</a-tag>
+              <a-tag color="red" v-if="record.productPowerFlag== 0">无权限</a-tag>
+            </template>
           </s-table>
         </div>
         <!-- 按钮 -->
@@ -109,6 +119,10 @@ export default {
       default: () => {
         return []
       }
+    },
+    purchaseTargetType: {
+      type: String,
+      default: null
     }
   },
   data () {
@@ -123,7 +137,7 @@ export default {
       columns: [
         { title: '序号', dataIndex: 'no', width: '8%', align: 'center' },
         { title: '采购单号', dataIndex: 'purchaseBillNo', width: '18%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品编码', dataIndex: 'productCode', width: '18%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'productCode', width: '18%', align: 'center', scopedSlots: { customRender: 'productCode' } },
         { title: '产品名称', dataIndex: 'productName', width: '30%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '缺货数量', dataIndex: 'qty', width: '15%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '缺货金额', dataIndex: 'totalAmount', width: '15%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
@@ -161,7 +175,8 @@ export default {
           productTypeSn1: '', //  产品一级分类
           productTypeSn2: '', //  产品二级分类
           productTypeSn3: '' //  产品三级分类
-        }
+        },
+        newPurchaseBillSn: _this.paramsSn
       }
     }
   },

+ 4 - 4
src/views/purchasingManagement/purchaseOrderNew/chooseProductModal.vue

@@ -104,7 +104,7 @@
               class="button-primary"
               :loading="addLoading"
               @click="handleAdd(record)"
-              >添加</a-button>
+            >添加</a-button>
           </template>
         </s-table>
         <div v-else>
@@ -241,10 +241,10 @@ export default {
       ]
       // 产品来源
       if (this.isDealerUp) {
-        arr.splice(0,0,{ title: '产品编码', scopedSlots: { customRender: 'code' }, width: '150px', align: 'center', fixed: 'left' })
+        arr.splice(0, 0, { title: '产品编码', scopedSlots: { customRender: 'code' }, width: '150px', align: 'center', fixed: 'left' })
         arr.splice(2, 0, { title: '产品来源', dataIndex: 'sysFlagDictValue', width: '100px', align: 'center', customRender: function (text) { return text || '--' } })
-      }else{
-        arr.splice(0,0,{ title: '产品编码', dataIndex: 'code', width: '150px', align: 'center', customRender: function (text) { return text || '--' }, fixed: 'left', sorter: true })
+      } else {
+        arr.splice(0, 0, { title: '产品编码', dataIndex: 'code', width: '150px', align: 'center', customRender: function (text) { return text || '--' }, fixed: 'left', sorter: true })
       }
       if (this.$hasPermissions('M_ShowAllCost')) {
         arr.splice(this.isDealerUp ? 4 : 3, 0, { title: '成本价', dataIndex: 'purchasePrice', width: '100px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } })

+ 10 - 8
src/views/purchasingManagement/purchaseOrderNew/edit.vue

@@ -171,11 +171,11 @@
       :paramsSn="$route.params.sn"
       :chooseData="chooseData"
       :openModal="openOutStockModal"
+      :purchaseTargetType="detail?detail.purchaseTargetType:null"
       @close="openOutStockModal=false"
       @ok="hanldeOkOutStock" />
     <!-- 购物车 -->
-    <shopingCatModal :showModal="openShopCatModal" :paramsData="paramsData" @close="openShopCatModal=false" @ok="getOrderDetail(false, true)"></shopingCatModal>
-
+    <shopingCatModal :showModal="openShopCatModal" :paramsData="paramsData" :purchaseTargetType="detail?detail.purchaseTargetType:null" @close="openShopCatModal=false" @ok="getOrderDetail(false, true)"></shopingCatModal>
   </div>
 </template>
 
@@ -414,26 +414,28 @@ export default {
       }
       // 添加
       if (type == 0) {
-        if(this.isDealerUp){
-          if(row.purchasePrice){
+        if (this.isDealerUp) {
+          if (row.purchasePrice) {
             params.productSn = row.productSn
             params.purchaseBillSn = this.detail.purchaseBillSn
             params.purchaseBillNo = this.detail.purchaseBillNo
             params.price = row.purchasePrice
             params.qty = row.qty
-          }else{
+            params.priceLevel = row.priceLevel
+          } else {
             this.$message.warning('成本价不能为空!')
             this.$refs.chooseProduct.spinning = false
             return
           }
-        }else{
-          if(row.purchasePrice&&row.terminalPrice&&row.carOwnersPrice){
+        } else {
+          if (row.purchasePrice && row.terminalPrice && row.carOwnersPrice) {
             params.productSn = row.productSn
             params.purchaseBillSn = this.detail.purchaseBillSn
             params.purchaseBillNo = this.detail.purchaseBillNo
             params.price = row.purchasePrice
             params.qty = row.qty
-          }else{
+            params.priceLevel = row.priceLevel
+          } else {
             this.$message.warning('成本价、终端会员价、车主零售价不能为空!')
             this.$refs.chooseProduct.spinning = false
             return

+ 22 - 5
src/views/purchasingManagement/purchaseOrderNew/outStockModal.vue

@@ -1,7 +1,6 @@
 <template>
   <a-drawer
     :zIndex="zIndex"
-    title="采购缺货产品明细"
     placement="right"
     :visible="isShow"
     :width="width"
@@ -10,6 +9,11 @@
     @close="onCancel"
     wrapClassName="outStock-modal"
   >
+    <div slot="title">
+      <strong>采购缺货产品明细</strong>
+      <span style="color: #ed1c24;;margin-left:10px;font-size: 12px;" v-if="purchaseTargetType&&(purchaseTargetType=='DEALER_UP'||purchaseTargetType=='DEALER_SUPPLIER')">注意:仅可添加本供应商有权限的产品</span>
+      <span style="color: #ed1c24;;margin-left:10px;font-size: 12px;" v-else-if="purchaseTargetType&&purchaseTargetType=='SUPPLIER_SYS'">注意:仅可添加本供应商有经销权且总部已上线的产品</span>
+    </div>
     <a-spin :spinning="spinning" tip="Loading...">
       <div class="outStock-con jg-drawer-wrap">
         <div>
@@ -63,7 +67,7 @@
             ref="table"
             size="small"
             :rowKey="(record) => record.id"
-            :row-selection="{ columnWidth: 40 }"
+            :row-selection="{ columnWidth: 40 ,getCheckboxProps:record=>({props:{disabled:(purchaseTargetType&&purchaseTargetType=='SUPPLIER_SYS'&&record.onlineFalg == 0)||record.productPowerFlag==0}})}"
             :scroll="{ y:tableHeight, x: 1000 }"
             @rowSelection="rowSelectionFun"
             :data="loadData"
@@ -71,6 +75,12 @@
             :columns="columns"
             :pageSize="30"
             bordered>
+            <!-- 产品编码 -->
+            <template slot="productCode" slot-scope="text, record">
+              {{ record.productCode }}
+              <a-tag v-if="record.onlineFalg == 0">下架</a-tag>
+              <a-tag color="red" v-if="record.productPowerFlag== 0">无权限</a-tag>
+            </template>
           </s-table>
         </div>
       </div>
@@ -111,6 +121,12 @@ export default {
     zIndex: {
       type: Number,
       default: 100
+    },
+    // 1向总部采购的提示语:注意:仅可添加本供应商有经销权且总部已上线的产品
+    // 2向上级与省仓采购的提示语:注意:仅可添加本供应商有权限的产品
+    purchaseTargetType: {
+      type: String,
+      default: null
     }
   },
   data () {
@@ -126,7 +142,7 @@ export default {
       columns: [
         { title: '序号', dataIndex: 'no', width: '8%', align: 'center' },
         { title: '采购单号', dataIndex: 'purchaseBillNo', width: '18%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品编码', dataIndex: 'productCode', width: '18%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'productCode', width: '18%', align: 'center', scopedSlots: { customRender: 'productCode' } },
         { title: '产品名称', dataIndex: 'productName', width: '30%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '缺货数量', dataIndex: 'qty', width: '15%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '缺货金额', dataIndex: 'totalAmount', width: '15%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
@@ -136,7 +152,7 @@ export default {
       loadData: parameter => {
         this.disabled = true
         this.spinning = true
-        return outOfStockDetailList(Object.assign(parameter, { purchaseBillSnList: this.chooseData, purchaseBillNo: this.purchaseBillNo, dealerProduct: this.queryParam })).then(res => {
+        return outOfStockDetailList(Object.assign(parameter, { purchaseBillSnList: this.chooseData, newPurchaseBillSn: _this.paramsSn, purchaseBillNo: this.purchaseBillNo, dealerProduct: this.queryParam })).then(res => {
           let data
           if (res.status == 200) {
             data = res.data
@@ -160,7 +176,8 @@ export default {
         productTypeSn1: '', //  产品一级分类
         productTypeSn2: '', //  产品二级分类
         productTypeSn3: '' //  产品三级分类
-      }
+      },
+      purchaseBillNo: ''
     }
   },
   methods: {

+ 6 - 16
src/views/salesManagement/productPricing/list.vue

@@ -56,11 +56,11 @@
     </div>
     <!-- 价格 -->
     <div style="padding: 10px 0;text-align: right;">
-      <a-checkbox v-model="isCostPrice" v-if="$hasPermissions('M_ShowAllCost')"><span style="display: inline-block;">成本价</span></a-checkbox>
+      <a-checkbox v-model="isCostPrice" v-if="$hasPermissions('M_ShowAllCost')"><span style="display: inline-block;">参考成本价</span></a-checkbox>
       <!-- 特约加盟商不可见市级价 -->
-      <a-checkbox v-model="isCityPrice" v-if="dealerData && dealerData.dealerLevel != 'SPECIAL'"><span style="display: inline-block;">市级价</span></a-checkbox>
+      <a-checkbox v-model="isCityPrice" v-if="$store.state.user.dealerLevel != 'SPECIAL'&&$hasPermissions('M_ShowAllCityPrice')"><span style="display: inline-block;">市级价</span></a-checkbox>
       <!-- 是否展示特约价 -->
-      <a-checkbox v-model="isSpecialPrice" v-if="dealerData && dealerData.isShowSpecialPrice == '1'"><span style="display: inline-block;">特约价</span></a-checkbox>
+      <a-checkbox v-model="isSpecialPrice" v-if="$store.state.user.isShowSpecialPrice==1"><span style="display: inline-block;">特约价</span></a-checkbox>
       <a-checkbox v-model="isTerminalPrice"><span style="display: inline-block;">终端价/自定义终端价</span></a-checkbox>
     </div>
     <!-- 列表 -->
@@ -103,7 +103,6 @@ import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
 import ProductType from '../../common/productType.js'
 import ProductBrand from '../../common/productBrand.js'
-import { getCurrentDealer } from '@/api/product'
 import { dealerProductPriceList } from '@/api/dealerProduct'
 import productSalesRecordModal from './productSalesRecordModal.vue'
 export default {
@@ -151,8 +150,7 @@ export default {
       isCostPrice: false,
       isCityPrice: false,
       isSpecialPrice: false,
-      isTerminalPrice: false,
-      dealerData: null
+      isTerminalPrice: false
     }
   },
   computed: {
@@ -170,9 +168,9 @@ export default {
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '6%', align: 'center' }
       ]
       if (this.isCostPrice) {
-        arr.splice(6, 0, { title: '成本价', dataIndex: 'offerCost', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        arr.splice(6, 0, { title: '参考成本价', dataIndex: 'offerCost', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
-      if (this.isCityPrice) {
+      if (this.isCityPrice && this.$hasPermissions('M_ShowAllCityPrice')) {
         const ind = this.isCostPrice ? 7 : 6
         arr.splice(ind, 0, { title: '市级价', dataIndex: 'cityPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
@@ -224,14 +222,6 @@ export default {
       this.$nextTick(() => { // 页面渲染完成后的回调
         _this.setTableH()
       })
-      // 获取当前登录用户经销商等级
-      getCurrentDealer().then(res => {
-        if (res.status == 200) {
-          this.dealerData = res.data
-        } else {
-          this.dealerData = null
-        }
-      })
     },
     setTableH () {
       const tableSearchH = this.$refs.tableSearch.offsetHeight

+ 1 - 1
src/views/salesManagement/salesQuery/detail.vue

@@ -6,7 +6,7 @@
           <a href="javascript:;" @click="handleBack"><a-icon type="left"></a-icon> 返回列表</a>
           <a style="margin: 0 10px 0 20px;color: #666;font-size: 14px;font-weight: 600;">单号:{{ detailData&&detailData.salesBillNo || '--' }}</a>
           <a-button
-            v-if="(detailData&&detailData.billStatus !== 'CANCEL' && detailData.billStatus !== 'FINISH' && detailData.billStatus != 'WAIT_OUT_WAREHOUSE')&&$hasPermissions('B_salesEdit')"
+            v-if="(detailData&&detailData.sourceType!='CHILD_PURCHASE'&&detailData.billStatus!='AUDIT_REJECT'&&detailData.billStatus !== 'CANCEL' && detailData.billStatus !== 'FINISH' && detailData.billStatus != 'WAIT_OUT_WAREHOUSE')&&$hasPermissions('B_salesEdit')"
             type="primary"
             size="small"
             style="background-color: #1890ff;margin-left: 20px;border: #1890ff;"

+ 2 - 0
src/views/salesManagement/salesQuery/edit.vue

@@ -602,6 +602,7 @@ export default {
         // productCode: row.productCode,
         // productOrigCode: row.productOrigCode,
         price: row.price,
+        priceLevel: row.priceLevel,
         qty: row.salesNums,
         salesBillSn: this.detailData.salesBillSn,
         salesBillNo: this.detailData.salesBillNo,
@@ -639,6 +640,7 @@ export default {
           buyerSn: this.detailData.buyerSn,
           productSn: item.productSn,
           cost: item.putCost,
+          priceLevel: item.priceLevel,
           price: item.price,
           qty: item.salesNums,
           salesBillSn: this.detailData.salesBillSn,

+ 3 - 3
src/views/salesManagement/salesQuery/queryPart.vue

@@ -81,7 +81,7 @@
           </a-col>
           <a-col flex="auto" style="margin-bottom: 15px;display:flex;align-items:center;">
             <a-checkbox v-model="cost" v-if="$hasPermissions('M_ShowAllCost')" id="salesQuery-cost">成本价</a-checkbox>
-            <a-checkbox v-model="cityPrice" id="salesQuery-cityPrice">市级价</a-checkbox>
+            <a-checkbox v-model="cityPrice" v-if="$hasPermissions('M_ShowAllCityPrice')&&$store.state.user.dealerLevel != 'SPECIAL'" id="salesQuery-cityPrice">市级价</a-checkbox>
             <a-checkbox v-model="tyuePrice" v-if="$store.state.user.isShowSpecialPrice==1" id="salesQuery-tyuePrice">特约价</a-checkbox>
             <a-checkbox v-model="zdPrice" id="salesQuery-zdPrice">终端价</a-checkbox>
           </a-col>
@@ -298,7 +298,7 @@ export default {
       if (this.cost) {
         arr.push({ slots: { title: 'costTitle' }, dataIndex: 'putCost', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
-      if (this.cityPrice) {
+      if (this.cityPrice && this.$hasPermissions('M_ShowAllCityPrice')) {
         arr.push({ title: '市级价', dataIndex: 'dealerProduct.cityPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
       if (this.tyuePrice) {
@@ -480,7 +480,7 @@ export default {
     },
     // 仓库
     getWarehouse () {
-      warehouseAllList({wasteFlag: 0}).then(res => {
+      warehouseAllList({ wasteFlag: 0 }).then(res => {
         if (res.status == 200) {
           this.warehouseList = res.data
         } else {

+ 172 - 172
src/views/salesManagement/salesQueryNew/chooseProductModal.vue

@@ -10,44 +10,44 @@
     @close="onClose"
     wrapClassName="chooseProduct-drawer jg-drawer-wrap">
     <a-spin :spinning="spinning||newLoading" tip="Loading...">
-    <!-- 搜索条件 -->
-    <div ref="searchBox" class="table-page-search-wrapper">
-      <a-form-model
-        ref="ruleForm"
-        class="form-model-con"
-        layout="inline"
-        :rules="rules"
-        :model="queryParam"
-        @keyup.enter.native="$refs.table.refresh(true)" >
-        <a-row type="flex" :gutter="5">
-          <a-col flex="1">
-            <a-form-model-item label="产品编码">
-              <a-input id="productInfoList-code" ref="searchProductCode" v-model.trim="queryParam.productCode" allowClear placeholder="请输入产品编码"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col flex="1">
-            <a-form-model-item label="产品名称">
-              <a-input id="productInfoList-name" v-model.trim="queryParam.productName" allowClear placeholder="请输入产品名称"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col flex="1">
-            <a-form-model-item label="原厂编码">
-              <a-input id="productInfoList-origCode" v-model.trim="queryParam.productOrigCode" allowClear placeholder="请输入原厂编码"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col flex="1">
-            <a-form-model-item label="产品品牌">
-              <ProductBrand id="productInfoList-productBrandSn" v-model="queryParam.brandSn"></ProductBrand>
-            </a-form-model-item>
-          </a-col>
-        </a-row>
-        <a-row type="flex" :gutter="5">
-          <a-col flex="1.5">
-            <a-form-model-item label="产品分类">
-              <ProductType id="productInfoList-productType" :isDealer="true" @change="changeProductType" v-model="productType"></ProductType>
-            </a-form-model-item>
-          </a-col>
-          <a-col flex="1.5">
+      <!-- 搜索条件 -->
+      <div ref="searchBox" class="table-page-search-wrapper">
+        <a-form-model
+          ref="ruleForm"
+          class="form-model-con"
+          layout="inline"
+          :rules="rules"
+          :model="queryParam"
+          @keyup.enter.native="$refs.table.refresh(true)" >
+          <a-row type="flex" :gutter="5">
+            <a-col flex="1">
+              <a-form-model-item label="产品编码">
+                <a-input id="productInfoList-code" ref="searchProductCode" v-model.trim="queryParam.productCode" allowClear placeholder="请输入产品编码"/>
+              </a-form-model-item>
+            </a-col>
+            <a-col flex="1">
+              <a-form-model-item label="产品名称">
+                <a-input id="productInfoList-name" v-model.trim="queryParam.productName" allowClear placeholder="请输入产品名称"/>
+              </a-form-model-item>
+            </a-col>
+            <a-col flex="1">
+              <a-form-model-item label="原厂编码">
+                <a-input id="productInfoList-origCode" v-model.trim="queryParam.productOrigCode" allowClear placeholder="请输入原厂编码"/>
+              </a-form-model-item>
+            </a-col>
+            <a-col flex="1">
+              <a-form-model-item label="产品品牌">
+                <ProductBrand id="productInfoList-productBrandSn" v-model="queryParam.brandSn"></ProductBrand>
+              </a-form-model-item>
+            </a-col>
+          </a-row>
+          <a-row type="flex" :gutter="5">
+            <a-col flex="1.5">
+              <a-form-model-item label="产品分类">
+                <ProductType id="productInfoList-productType" :isDealer="true" @change="changeProductType" v-model="productType"></ProductType>
+              </a-form-model-item>
+            </a-col>
+            <a-col flex="1.5">
               <a-form-model-item label="仓库">
                 <a-select
                   placeholder="请选择仓库"
@@ -81,136 +81,136 @@
                 </a-select>
               </a-form-item>
             </a-col>
-          <a-col flex="auto">
-            <a-button type="primary" @click="searchForm()" :disabled="disabled" id="productInfoList-refresh">查询</a-button>
-            <a-button style="margin-left: 5px" @click="resetSearchForm" id="productInfoList-reset">重置</a-button>
-          </a-col>
-        </a-row>
-      </a-form-model>
+            <a-col flex="auto">
+              <a-button type="primary" @click="searchForm()" :disabled="disabled" id="productInfoList-refresh">查询</a-button>
+              <a-button style="margin-left: 5px" @click="resetSearchForm" id="productInfoList-reset">重置</a-button>
+            </a-col>
+          </a-row>
+        </a-form-model>
 
-      <div v-if="hasVaild&&showTable" class="vinInfo-box">
-        <div>
-          <div class="vinInfo-error" v-if="vinInfoData&&!vinInfoData.vinInfo">
-            <a-icon type="exclamation-circle" :style="{ color: '#E70012', fontSize: '15px', verticalAlign: 'sub', marginRight: '3px' }" />抱歉!暂未找到匹配VIN码的车型!
-          </div>
-          <div v-if="vinInfoData&&vinInfoData.vinInfo" @click="openCarInfoModal=true">
-            <div style="display: flex;justify-content: space-between;align-items: center;" @click="openCarInfoModal=true">
-              <div>
-                <img :src="vinInfoData.vinInfo && vinInfoData.vinInfo.icon?(vinInfoData.vinInfo.icon+'?x-oss-process=image/resize,h_30,m_lfit'):defImg" width="30" height="30" class="imageUrl" style="border-radius: 50%;vertical-align: middle;margin-right: 3px;" />
-                <span style="vertical-align: middle;">{{ vinInfoData.vinInfo.text }}</span>
-              </div>
-              <div style="color: #f90;cursor: pointer;">
-                <span>查看更多</span> >
+        <div v-if="hasVaild&&showTable" class="vinInfo-box">
+          <div>
+            <div class="vinInfo-error" v-if="vinInfoData&&!vinInfoData.vinInfo">
+              <a-icon type="exclamation-circle" :style="{ color: '#E70012', fontSize: '15px', verticalAlign: 'sub', marginRight: '3px' }" />抱歉!暂未找到匹配VIN码的车型!
+            </div>
+            <div v-if="vinInfoData&&vinInfoData.vinInfo" @click="openCarInfoModal=true">
+              <div style="display: flex;justify-content: space-between;align-items: center;" @click="openCarInfoModal=true">
+                <div>
+                  <img :src="vinInfoData.vinInfo && vinInfoData.vinInfo.icon?(vinInfoData.vinInfo.icon+'?x-oss-process=image/resize,h_30,m_lfit'):defImg" width="30" height="30" class="imageUrl" style="border-radius: 50%;vertical-align: middle;margin-right: 3px;" />
+                  <span style="vertical-align: middle;">{{ vinInfoData.vinInfo.text }}</span>
+                </div>
+                <div style="color: #f90;cursor: pointer;">
+                  <span>查看更多</span> >
+                </div>
               </div>
             </div>
           </div>
-        </div>
-        <div>
-          <a-dropdown v-model="showCell">
-            <a class="ant-dropdown-link" @click="e => e.preventDefault()">
-              <a-icon type="setting" /> 显示
-            </a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a-checkbox v-model="cost" v-if="$hasPermissions('M_ShowAllCost')" id="salesQuery-cost">成本价</a-checkbox>
-              </a-menu-item>
-              <a-menu-item>
-                <a-checkbox v-model="cityPrice" id="salesQuery-cityPrice">市级价</a-checkbox>
-              </a-menu-item>
-              <a-menu-item>
-                <a-checkbox v-model="tyuePrice" v-if="$store.state.user.isShowSpecialPrice==1" id="salesQuery-tyuePrice">特约价</a-checkbox>
-              </a-menu-item>
-              <a-menu-item>
-                <a-checkbox v-model="zdPrice" id="salesQuery-zdPrice">终端价</a-checkbox>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
+          <div>
+            <a-dropdown v-model="showCell">
+              <a class="ant-dropdown-link" @click="e => e.preventDefault()">
+                <a-icon type="setting" /> 显示
+              </a>
+              <a-menu slot="overlay">
+                <a-menu-item v-if="$hasPermissions('M_ShowAllCost')" >
+                  <a-checkbox v-model="cost" id="salesQuery-cost">成本价</a-checkbox>
+                </a-menu-item>
+                <a-menu-item v-if="$hasPermissions('M_ShowAllCityPrice')&&$store.state.user.dealerLevel != 'SPECIAL'">
+                  <a-checkbox v-model="cityPrice" id="salesQuery-cityPrice">市级价</a-checkbox>
+                </a-menu-item>
+                <a-menu-item v-if="$store.state.user.isShowSpecialPrice==1" >
+                  <a-checkbox v-model="tyuePrice"id="salesQuery-tyuePrice">特约价</a-checkbox>
+                </a-menu-item>
+                <a-menu-item>
+                  <a-checkbox v-model="zdPrice" id="salesQuery-zdPrice">终端价</a-checkbox>
+                </a-menu-item>
+              </a-menu>
+            </a-dropdown>
+          </div>
         </div>
       </div>
-    </div>
-     
-    <!-- 列表 -->
-    <s-table
-      v-if="hasVaild&&showTable"
-      class="sTable"
-      ref="table"
-      size="small"
-      :rowKey="(record) => record.no"
-      rowKeyName="no"
-      :columns="columns"
-      :data="loadData"
-      @dblclick="handleClickRow"
-      :pageSize="30"
-      :scroll="{ y: tableHeight, x: tableWidth }"
-      bordered>
-      <div slot="costTitle">
-        <a-tooltip placement="top">
-          <template slot="title">
-            产品所在仓库仓位的最近一次入库成本,不包含盘盈入库和仓库调拨入库。
-          </template>
-          <span style="margin-right: 5px;">参考成本价</span> <a-icon type="question-circle" />
-        </a-tooltip>
-      </div>
-      <!-- 售价 -->
-      <template slot="salePrice" slot-scope="text, record">
-        <div style="display: flex;align-items: center;" @dblclick.stop>
-          <a-input-number
-            size="small"
-            v-model="record.price"
-            :precision="2"
-            :min="0"
-            :max="999999"
-            style="width: 100%;"
-            placeholder="请输入" />
-          <span style="color: red;margin: 0 2px;font-size: 14px;" v-if="record.origSalePriceFlag == 1">原</span>
-          <span v-else>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
-        </div>
-      </template>
-      <!-- 销售数量 -->
-      <template slot="nums" slot-scope="text, record">
-        <div @dblclick.stop>
-          <a-input-number
-            size="small"
-            v-model="record.salesNums"
-            :precision="0"
-            :min="0"
-            :max="999999"
-            style="width: 100%;"
-            placeholder="请输入" />
+
+      <!-- 列表 -->
+      <s-table
+        v-if="hasVaild&&showTable"
+        class="sTable"
+        ref="table"
+        size="small"
+        :rowKey="(record) => record.no"
+        rowKeyName="no"
+        :columns="columns"
+        :data="loadData"
+        @dblclick="handleClickRow"
+        :pageSize="30"
+        :scroll="{ y: tableHeight, x: tableWidth }"
+        bordered>
+        <div slot="costTitle">
+          <a-tooltip placement="top">
+            <template slot="title">
+              产品所在仓库仓位的最近一次入库成本,不包含盘盈入库和仓库调拨入库。
+            </template>
+            <span style="margin-right: 5px;">参考成本价</span> <a-icon type="question-circle" />
+          </a-tooltip>
         </div>
-      </template>
-      <!-- 操作 -->
-      <template slot="action" slot-scope="text, record">
+        <!-- 售价 -->
+        <template slot="salePrice" slot-scope="text, record">
+          <div style="display: flex;align-items: center;" @dblclick.stop>
+            <a-input-number
+              size="small"
+              v-model="record.price"
+              :precision="2"
+              :min="0"
+              :max="999999"
+              style="width: 100%;"
+              placeholder="请输入" />
+            <span style="color: red;margin: 0 2px;font-size: 14px;" v-if="record.origSalePriceFlag == 1">原</span>
+            <span v-else>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
+          </div>
+        </template>
+        <!-- 销售数量 -->
+        <template slot="nums" slot-scope="text, record">
+          <div @dblclick.stop>
+            <a-input-number
+              size="small"
+              v-model="record.salesNums"
+              :precision="0"
+              :min="0"
+              :max="999999"
+              style="width: 100%;"
+              placeholder="请输入" />
+          </div>
+        </template>
+        <!-- 操作 -->
+        <template slot="action" slot-scope="text, record">
           <span style="color:#999;" v-if="hasChecked(record)">已添加</span>
           <a-button
-          size="small"
-          type="link"
-          class="button-primary"
-          @click="handleAdd(record)"
-          v-else
-          id="productInfoList-edit-btn">添加</a-button>
-        <a-button
-          size="small"
-          type="link"
-          class="button-primary"
-          @click="handleDetail(record)"
-          id="productInfoList-detail-btn"
-          style="margin-left: 5px;">销售记录</a-button>
-      </template>
-    </s-table>
-    <div style="padding-top: 30px;" v-else>
-      <a-empty
-        :image="simpleImage"
-        :image-style="{
-          height: '60px',
-        }"
-      >
-        <span style="color:red" slot="description">请输入查询条件</span>
-      </a-empty>
-    </div>
-    
-    <!-- 查看车辆信息 -->
-    <car-info-modal ref="carInfoModal" :openModal="openCarInfoModal" :infoData="vinInfoData&&vinInfoData.vinInfo" @close="openCarInfoModal=false" />
+            size="small"
+            type="link"
+            class="button-primary"
+            @click="handleAdd(record)"
+            v-else
+            id="productInfoList-edit-btn">添加</a-button>
+          <a-button
+            size="small"
+            type="link"
+            class="button-primary"
+            @click="handleDetail(record)"
+            id="productInfoList-detail-btn"
+            style="margin-left: 5px;">销售记录</a-button>
+        </template>
+      </s-table>
+      <div style="padding-top: 30px;" v-else>
+        <a-empty
+          :image="simpleImage"
+          :image-style="{
+            height: '60px',
+          }"
+        >
+          <span style="color:red" slot="description">请输入查询条件</span>
+        </a-empty>
+      </div>
+
+      <!-- 查看车辆信息 -->
+      <car-info-modal ref="carInfoModal" :openModal="openCarInfoModal" :infoData="vinInfoData&&vinInfoData.vinInfo" @close="openCarInfoModal=false" />
     </a-spin>
   </a-drawer>
 </template>
@@ -247,7 +247,7 @@ export default {
     },
     checkedList: {
       type: Array,
-      default:() => []
+      default: () => []
     }
   },
   watch: {
@@ -264,7 +264,7 @@ export default {
   },
   data () {
     return {
-      showCell:false,
+      showCell: false,
       spinning: false,
       showTable: false,
       visible: this.showModal,
@@ -367,30 +367,30 @@ export default {
         { title: '产品编码', dataIndex: 'productCode', width: '150px', align: 'center', sorter: true, customRender: function (text) { return text || '--' }, fixed: 'left' },
         { title: '产品名称', dataIndex: 'productName', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '原厂编码', dataIndex: 'productOrigCode', width: '150px', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '品牌', dataIndex: 'brandName', width: '120px', align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
+        { title: '品牌', dataIndex: 'brandName', width: '120px', align: 'center', sorter: true, customRender: function (text) { return text || '--' } }
       ]
       if (this.cost) {
         this.tableWidth += 100
         arr.push({ slots: { title: 'costTitle' }, dataIndex: 'putCost', width: '100px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
-      }else{
+      } else {
         this.tableWidth -= 100
       }
-      if (this.cityPrice) {
+      if (this.cityPrice && this.$hasPermissions('M_ShowAllCityPrice')) {
         this.tableWidth += 80
         arr.push({ title: '市级价', dataIndex: 'dealerProduct.cityPrice', width: '80px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
-      }else{
+      } else {
         this.tableWidth -= 80
       }
       if (this.tyuePrice) {
         this.tableWidth += 80
         arr.push({ title: '特约价', dataIndex: 'dealerProduct.specialPrice', width: '80px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
-      }else{
+      } else {
         this.tableWidth -= 80
       }
       if (this.zdPrice) {
         this.tableWidth += 80
         arr.push({ title: '终端价', dataIndex: 'dealerProduct.terminalPrice', width: '80px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
-      }else{
+      } else {
         this.tableWidth -= 80
       }
 
@@ -412,7 +412,7 @@ export default {
     }
   },
   methods: {
-    hasChecked(item){
+    hasChecked (item) {
       return this.checkedList.includes(item.productSn)
     },
     // 查询
@@ -474,7 +474,7 @@ export default {
     },
     // 双击列表
     handleClickRow (record) {
-      if(!this.hasChecked(record)){
+      if (!this.hasChecked(record)) {
         this.$emit('add', record)
       }
     },
@@ -496,7 +496,7 @@ export default {
       this.vinInfoData = null
       this.showTable = false
 
-      if(!flag){
+      if (!flag) {
         this.$refs.table.refresh(true)
       }
     },
@@ -540,7 +540,7 @@ export default {
     },
     // 销售记录
     handleDetail (row) {
-      this.$emit('viewRecord',row)
+      this.$emit('viewRecord', row)
     },
     uploadFun () {
       document.getElementById('filed').click()
@@ -578,7 +578,7 @@ export default {
     },
     // 仓库
     getWarehouse () {
-      warehouseAllList({wasteFlag:0}).then(res => {
+      warehouseAllList({ wasteFlag: 0 }).then(res => {
         if (res.status == 200) {
           this.warehouseList = res.data
         } else {

+ 2 - 0
src/views/salesManagement/salesQueryNew/edit.vue

@@ -743,6 +743,7 @@ export default {
         // productCode: row.productCode,
         // productOrigCode: row.productOrigCode,
         price: row.price,
+        priceLevel: row.priceLevel,
         qty: row.salesNums,
         salesBillSn: this.detailData.salesBillSn,
         salesBillNo: this.detailData.salesBillNo,
@@ -779,6 +780,7 @@ export default {
           productSn: item.productSn,
           cost: item.putCost,
           price: item.price,
+          priceLevel: item.priceLevel,
           qty: item.salesNums,
           salesBillSn: this.detailData.salesBillSn,
           salesBillNo: this.detailData.salesBillNo,

+ 16 - 10
src/views/salesManagement/salesReturn/chooseCustomModal.vue

@@ -109,7 +109,13 @@
         <a-row :gutter="15">
           <a-col :span="8">
             <a-form-model-item label="是否抓单" prop="grabFlag">
-              <v-select code="FLAG" :disabled="isEdit" id="chooseCustom-grabFlag" v-model="form.grabFlag" allowClear placeholder="请选择"></v-select>
+              <v-select
+                code="FLAG"
+                :disabled="isEdit"
+                id="chooseCustom-grabFlag"
+                v-model="form.grabFlag"
+                allowClear
+                placeholder="请选择"></v-select>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
@@ -119,12 +125,12 @@
         <a-row :gutter="15">
           <a-col :span="24">
             <a-form-model-item label="备注" :labelCol="{ span: 2 }" :wrapper-col="{ span: 14 }">
-               <a-textarea
-                    v-model="form.remarks"
-                    :maxLength="100"
-                    placeholder="请输入备注(最多100个字符)"
-                    :auto-size="{ minRows: 2, maxRows: 6 }"
-                  />
+              <a-textarea
+                v-model="form.remarks"
+                :maxLength="100"
+                placeholder="请输入备注(最多100个字符)"
+                :auto-size="{ minRows: 2, maxRows: 6 }"
+              />
             </a-form-model-item>
           </a-col>
         </a-row>
@@ -204,7 +210,7 @@ export default {
           { required: true, message: '请选择区/县', trigger: 'change' }
         ],
         grabFlag: [
-          { required: true, message: '请选择是否铺货出库', trigger: 'change' }
+          { required: true, message: '请选择是否抓单', trigger: 'change' }
         ]
       },
       addrProvinceList: [], //  省下拉
@@ -264,7 +270,7 @@ export default {
         }
       } else {
         this.$refs.ruleForm.resetFields()
-        if(!this.isEdit){
+        if (!this.isEdit) {
           this.$refs.custList.resetForm()
         }
       }
@@ -277,7 +283,7 @@ export default {
       this.form = Object.assign(this.form, data)
       this.form.buyerName = data.buyerNameCurrent || data.buyerName
       this.buyerSnBak = this.form.buyerSn
-      if(data.buyerInfo){
+      if (data.buyerInfo) {
         this.form.contactTel = data.buyerInfo.contactTel
         this.form.contactMobile = data.buyerInfo.contactMobile
         this.form.consigneeName = data.buyerInfo.contactName

+ 1 - 0
src/views/salesManagement/salesReturn/salesReturnEdit.vue

@@ -494,6 +494,7 @@ export default {
         'price': type == 'edit' ? row.price : row.salePrice,
         'cost': row.putCost,
         'productSn': row.productSn,
+        'priceLevel': row.priceLevel,
         'celQty': row.celQty,
         'hasReturnQty': row.returnQty,
         'qty': row.returnQty,

+ 8 - 4
src/views/shoppingCarManagement/shoppingCar/list.vue

@@ -63,7 +63,7 @@
       ref="table"
       :style="modes=='pages'?{ height: tableHeight+84.5+'px' }:{}"
       size="small"
-      :row-selection="modes=='pages'?{ columnWidth: 40 }:{ columnWidth: 40, getCheckboxProps: record => ({ props: { disabled: !record.productEntity.purchasePrice || !(record.productEntity.onlineFalg == 1&& record.dealerScopeFlag == 1) } }) }"
+      :row-selection="modes=='pages'?{ columnWidth: 40 }:{ columnWidth: 40, getCheckboxProps: record => ({ props:{disabled: (purchaseType&&purchaseType=='SUPPLIER_SYS'&&record.productEntity.onlineFalg == 0) || record.dealerScopeFlag == 0 }}) }"
       @rowSelection="rowSelectionFun"
       rowKeyName="productSn"
       :rowKey="(record) => record.productSn"
@@ -98,7 +98,7 @@
         <div v-else>
           <span style="padding-right: 15px;">{{ text }}</span>
           <a-tag v-if="record.productEntity.onlineFalg == 0">下架</a-tag>
-          <a-tag color="red" v-else-if="record.productEntity.onlineFalg == 1&& record.dealerScopeFlag == 0">无权限</a-tag>
+          <a-tag color="red" v-if="record.dealerScopeFlag == 0">无权限</a-tag>
         </div>
       </template>
     </s-table>
@@ -121,6 +121,10 @@ export default {
     modes: {
       type: String,
       default: 'pages'
+    },
+    purchaseType: {
+      type: String,
+      default: null
     }
   },
   data () {
@@ -198,7 +202,7 @@ export default {
           { title: '产品编码', dataIndex: 'productEntity.code', scopedSlots: { customRender: 'productCode' }, width: '20%', align: 'center' },
           { title: '产品名称', dataIndex: 'productEntity.name', width: '30%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
           { title: '可用库存数量', dataIndex: 'currentStockQty', width: '14%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-          { title: '成本价', dataIndex: 'productEntity.purchasePrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+          { title: '成本价', dataIndex: 'productEntity.productPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
           { title: '单位', dataIndex: 'productEntity.unit', width: '8%', align: 'center', customRender: function (text) { return (!text || text == ' ') ? '--' : text } },
           { title: '包装数', scopedSlots: { customRender: 'baozh' }, dataIndex: 'productEntity.packQty', width: '8%', align: 'center' },
           { title: '采购数量', scopedSlots: { customRender: 'purchaseQty' }, width: '12%', align: 'center' }
@@ -208,7 +212,7 @@ export default {
           { title: '产品编码', dataIndex: 'productEntity.code', scopedSlots: { customRender: 'productCode' }, width: '200px', align: 'center', fixed: 'left' },
           { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
           { title: '可用库存数量', dataIndex: 'currentStockQty', width: '140px', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-          { title: '成本价', dataIndex: 'productEntity.purchasePrice', width: '80px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+          { title: '成本价', dataIndex: 'productEntity.productPrice', width: '80px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
           { title: '单位', dataIndex: 'productEntity.unit', width: '80px', align: 'center', customRender: function (text) { return (!text || text == ' ') ? '--' : text } },
           { title: '包装数', scopedSlots: { customRender: 'baozh' }, dataIndex: 'productEntity.packQty', width: '80px', align: 'center' },
           { title: '采购数量', scopedSlots: { customRender: 'purchaseQty' }, width: '120px', align: 'center', fixed: 'right' }