Browse Source

Merge commit '61320df15efcd340b53de0a9a53829273920aeb4' into HEAD

gitadmin 9 tháng trước cách đây
mục cha
commit
a7d8871439

+ 1 - 1
public/version.json

@@ -1,5 +1,5 @@
 {
   "message": "发现有新版本发布,确定更新系统?",
   "vendorJsVersion": "",
-  "version": 1724751581602
+  "version": 1726294760337
 }

+ 51 - 0
src/api/shopProduct.js

@@ -0,0 +1,51 @@
+import { axios } from '@/utils/request'
+
+//  仓库列表  有分页
+export const shopProductList = (params) => {
+  const url = `/shopProduct/queryProductPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post',
+    headers: {
+      'module': encodeURIComponent('列表查询')
+    }
+  })
+}
+
+// 获取商城状态
+export const findMallParam = (params) => {
+  return axios({
+    url: '/dealerBizParam/findMallParam',
+    data: params,
+    method: 'post',
+    headers: {
+      'module': encodeURIComponent('获取商城状态')
+    }
+  })
+}
+// 修改商城状态
+export const updateMallParam = (params) => {
+  return axios({
+    url: '/dealerBizParam/updateMallParam',
+    data: params,
+    method: 'post',
+    headers: {
+      'module': encodeURIComponent('修改商城状态')
+    }
+  })
+}
+
+// 商城目录 列表  无分页
+export const queryExtList = (params) => {
+  return axios({
+    url: '/shopCategory/queryExtList',
+    data: params,
+    method: 'post',
+    headers: {
+      'module': encodeURIComponent('商城目录列表')
+    }
+  })
+}

+ 25 - 0
src/config/router.config.js

@@ -779,6 +779,31 @@ export const asyncRouterMap = [
                 }
               }
             ]
+          },
+          {
+            path: '/numsGoodsShelves/easyPassShopping',
+            redirect: '/numsGoodsShelves/easyPassShopping/index',
+            name: 'easyPassShopping',
+            component: BlankLayout,
+            meta: {
+              title: '商城产品',
+              icon: 'monitor',
+              permission: 'M_easyPassShopping'
+            },
+            hideChildrenInMenu: true,
+            children: [
+              {
+                path: 'index',
+                name: 'easyPassShoppingIndex',
+                component: () => import(/* webpackChunkName: "numsGoodsShelves" */ '@/views/numsGoodsShelves/easyPassShopping/index.vue'),
+                meta: {
+                  title: '商城产品列表',
+                  icon: 'monitor',
+                  hidden: true,
+                  permission: 'M_easyPassShoppingList'
+                }
+              }
+            ]
           }
           // {
           //   path: '/numsGoodsShelves/accountManagement',

+ 9 - 10
src/views/numsGoodsShelves/approveStore/authPass.vue

@@ -123,7 +123,7 @@
             </a-col>
             <a-col :span="12">
               <a-form-model-item label="关联客户" prop="customerSn">
-                <custList ref="custList" :dealerFlag="0" :isEnabled="true" @change="custChange"></custList>
+                <custList ref="custList" :isEnabled="true" @change="custChange"></custList>
               </a-form-model-item>
             </a-col>
             <a-col :span="12" v-if="form.settleType == 'CREDIT'">
@@ -142,7 +142,7 @@
                 <template slot="label">
                   <a-tooltip placement="top">
                     <template slot="title">
-                     不勾选则不显示价格,结算价:即易码通进货价。
+                      不勾选则不显示价格,结算价:即易码通进货价。
                     </template>
                     价格权限设置<a-icon type="question-circle" style="color: rgba(0,0,0,.65);font-size: 16px;margin-left: 2px;vertical-align: sub;cursor: pointer;" />
                   </a-tooltip>
@@ -217,7 +217,7 @@ export default {
         applySn: undefined,
         auditStatus: 'PASS' // 通过
       },
-      showPrice:['shelf_price_show','non_shelf_price_show'], // 价格显示
+      showPrice: ['shelf_price_show', 'non_shelf_price_show'], // 价格显示
       rules: {
         storeImage: [{ required: true, message: '请上传门头照片', trigger: 'change' }],
         storeName: [{ required: true, message: '请输入门店名称', trigger: 'change' }],
@@ -306,13 +306,13 @@ export default {
           const shelfSn = res.data.shelfSn
           // 更新价格显示设置
           const priceStr = [
-            {paramCode: 'shelf_price_show',paramValue:0},
-            {paramCode: 'shelf_cost_show',paramValue:0},
-            {paramCode: 'non_shelf_price_show',paramValue:0},
-            {paramCode: 'non_shelf_cost_show',paramValue:0}
-            ]
+            { paramCode: 'shelf_price_show', paramValue: 0 },
+            { paramCode: 'shelf_cost_show', paramValue: 0 },
+            { paramCode: 'non_shelf_price_show', paramValue: 0 },
+            { paramCode: 'non_shelf_cost_show', paramValue: 0 }
+          ]
           priceStr.map(item => {
-             item.paramValue = _this.showPrice.includes(item.paramCode) ? 1 : 0
+            item.paramValue = _this.showPrice.includes(item.paramCode) ? 1 : 0
           })
           // 更新价格显示
           updateShelfPriceShow({
@@ -329,7 +329,6 @@ export default {
               _this.spinning = false
             }
           })
-          
         } else {
           _this.spinning = false
         }

+ 304 - 0
src/views/numsGoodsShelves/easyPassShopping/index.vue

@@ -0,0 +1,304 @@
+<template>
+  <a-card size="small" :bordered="false" class="easyPassShopping-wrap">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <!-- 操作按钮 -->
+      <div class="table-operator">
+        <a-button
+          type="primary"
+          class="button-info"
+          v-if="shoppingMallStatus=='0'&&$hasPermissions('B_openShopProduct')"
+          icon="unlock"
+          id="easyPassShopping-open-btn"
+          :loading="iconLoading"
+          @click="editShoppingStatus('1')">
+          打开商城
+        </a-button>
+        <a-button
+          type="primary"
+          v-if="shoppingMallStatus=='1'&&$hasPermissions('B_closeShopProduct')"
+          icon="poweroff"
+          id="easyPassShopping-close-btn"
+          :loading="iconLoading"
+          @click="editShoppingStatus('0')">
+          关闭商城
+        </a-button>
+        <div style="margin:10px 0;color:gray;">{{ shoppingMallStatus=='0'?'开启':'关闭' }}商城后,易码通{{ shoppingMallStatus=='0'?'会':'不会' }}显示商城</div>
+      </div>
+      <!-- 搜索条件 -->
+      <div ref="tableSearch" class="table-page-search-wrapper">
+        <a-form layout="inline" id="easyPassShopping-form" @keyup.enter.native="$refs.table.refresh(true)">
+          <a-row :gutter="15">
+            <a-col :md="6" :sm="24">
+              <a-form-item label="产品名称"><a-input id="easyPassShopping-name" v-model.trim="queryParam.productName" allowClear placeholder="请输入产品名称" /></a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="产品编码/原厂编码"><a-input id="easyPassShopping-code" v-model.trim="queryParam.productCode" allowClear placeholder="请输入产品编码/原厂编码" /></a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="产品品牌">
+                <productBrand id="easyPassShopping-productBrandSn" placeholder="请选择产品品牌" v-model="queryParam.productBrandSn"></productBrand>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="产品分类">
+                <productType id="easyPassShopping-productType" placeholder="请选择产品分类" :isDealer="true" @change="changeProductType" v-model="productType"></productType>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="商城类目">
+                <a-cascader
+                  id="easyPassShopping-category"
+                  expandTrigger="hover"
+                  :changeOnSelect="true"
+                  :fieldNames="fieldNames"
+                  :options="categoryOptions"
+                  placeholder="请选择商城类目"
+                  @change="changeCategory"
+                  allowClear
+                  v-model="category" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="产品商城状态">
+                <v-select code="SHOP_PRODUCT_STATUS" id="easyPassShopping-status" v-model="queryParam.status" allowClear placeholder="请选择产品商城状态"></v-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="热销产品">
+                <v-select code="FLAG" id="easyPassShopping-hotFlag" v-model="queryParam.hotFlag" allowClear placeholder="请选择热销产品"></v-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24" style="margin-bottom: 10px">
+              <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="easyPassShopping-refresh">查询</a-button>
+              <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="easyPassShopping-reset">重置</a-button>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+      <!-- 列表 -->
+      <s-table
+        class="sTable fixPagination"
+        ref="table"
+        :style="{ height: tableHeight+84.5+'px' }"
+        size="small"
+        :rowKey="(record) => record.id"
+        :columns="columns"
+        :data="loadData"
+        :scroll="{ y: tableHeight }"
+        :defaultLoadData="false"
+        bordered>
+        <!-- 产品编码 -->
+        <template slot="productCode" slot-scope="text, record">
+          <span>{{ record.productCode || '--' }}</span>
+          <a-badge count="热" v-if="record.hotFlag==1" :number-style="{ zoom:'80%',marginLeft:'5px' }"></a-badge>
+        </template>
+        <!-- 产品分类 -->
+        <template slot="productType" slot-scope="text, record">
+          <span v-if="record.productTypeName2 || record.productTypeName3">{{ record.productTypeName2 }} {{ record.productTypeName3 ? '>' : '' }} {{ record.productTypeName3 }}</span>
+          <span v-else>--</span>
+        </template>
+        <!-- 商城类目 -->
+        <template slot="categoryName" slot-scope="text, record">
+          <span v-if="record.categoryName1 || record.categoryName2">{{ record.categoryName1 }} {{ record.categoryName2 ? '>' : '' }} {{ record.categoryName2 }}</span>
+          <span v-else>--</span>
+        </template>
+        <!-- 售价类型 -->
+        <template slot="priceType" slot-scope="text, record">
+          {{ record.priceType&&record.priceType==='OCS_PRICE'?'商城价':'自定义终端价' }}
+        </template>
+      </s-table>
+    </a-spin>
+  </a-card>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+// 组件
+import { STable, VSelect } from '@/components'
+import productType from '@/views/common/productType.js'
+import productBrand from '@/views/common/productBrand.js'
+// 接口
+import { shopProductList, findMallParam, updateMallParam, queryExtList } from '@/api/shopProduct'
+export default {
+  name: 'ShelfProductTemplList',
+  components: { STable, VSelect, productType, productBrand },
+  mixins: [commonMixin],
+  data () {
+    const _this = this
+    return {
+      spinning: false,
+      iconLoading: false, // 打开关闭商城按钮状态
+      tableHeight: 0, // 表格高度
+      disabled: false, //  查询、重置按钮是否可操作
+      //  查询条件
+      queryParam: {
+        productName: '', //  产品名称
+        productCode: '', //  产品编码/原厂编码
+        productBrandSn: undefined, //  产品品牌
+        productTypeSn1: '', //  产品一级分类
+        productTypeSn2: '', //  产品二级分类
+        productTypeSn3: '', //  产品三级分类
+        status: undefined, //  产品商城状态
+        categorySn1: undefined, // 产品一级类目
+        categorySn2: undefined, // 产品二级类目
+        orderBy: 'createDate', // 按照创建时间排序
+        hotFlag: undefined, // 热销产品
+        categoryStatus: '1'// 状态 默认值1
+      },
+      productType: [], // 产品分类
+      categoryOptions: [], // 产品类目列表
+      category: [],
+      fieldNames: { label: 'categoryName', value: 'categorySn', children: 'shopCategoryList' },
+      shoppingMallStatus: '0', // 商城状态1:开启   0 关闭
+      // 表头
+      columns: [
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode', scopedSlots: { customRender: 'productCode' }, width: '12%', align: 'center' },
+        { title: '产品名称', dataIndex: 'productName', width: '13%', align: 'left', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '原厂编码', dataIndex: 'origCode', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品品牌', dataIndex: 'productBrandName', width: '9%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '9%', align: 'center' },
+        { title: '商城类目', scopedSlots: { customRender: 'categoryName' }, width: '9%', align: 'center' },
+        { title: '自定义终端价', dataIndex: 'terminalPrice', width: '10%', align: 'right', customRender: function (text) { return text || text == 0 ? _this.toThousands(text, 2) : '--' } },
+        { title: '商城价', dataIndex: 'ocsPrice', width: '6%', align: 'right', customRender: function (text) { return text || text == 0 ? _this.toThousands(text, 2) : '--' } },
+        { title: '车主价', dataIndex: 'carOwnersPrice', width: '6%', align: 'right', customRender: function (text) { return text || text == 0 ? _this.toThousands(text, 2) : '--' } },
+        { title: '售价', dataIndex: 'price', width: '6%', align: 'right', customRender: function (text) { return text || text == 0 ? _this.toThousands(text, 2) : '--' } },
+        { title: '售价类型', scopedSlots: { customRender: 'priceType' }, width: '7%', align: 'center' },
+        { title: '产品商城状态', dataIndex: 'statusDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        this.spinning = true
+        this.queryParam.dealerSn = this.$store.state.user.authOrgs[0].orgSn || undefined
+        return shopProductList(Object.assign(parameter, this.queryParam)).then(res => {
+          let data
+          if (res.status == 200) {
+            data = res.data
+            // 计算表格序号
+            const no = (data.pageNo - 1) * data.pageSize
+            for (var i = 0; i < data.list.length; i++) {
+              data.list[i].no = no + i + 1
+            }
+            this.disabled = false
+          }
+          this.spinning = false
+          return data
+        })
+      }
+    }
+  },
+  methods: {
+    //  产品分类  change
+    changeProductType (val, opt) {
+      this.queryParam.productTypeSn1 = val[0] ? val[0] : ''
+      this.queryParam.productTypeSn2 = val[1] ? val[1] : ''
+      this.queryParam.productTypeSn3 = val[2] ? val[2] : ''
+    },
+    // 商城类目
+    changeCategory (val, opt) {
+      this.queryParam.categorySn1 = val[0] ? val[0] : ''
+      this.queryParam.categorySn2 = val[1] ? val[1] : ''
+    },
+    // 获取产品类目列表
+    getCategoryList () {
+      const _this = this
+      _this.spinning = true
+      queryExtList({ status: 1 }).then(res => {
+        if (res.status == 200) {
+          this.categoryOptions = res.data || []
+        }
+        _this.spinning = false
+      })
+    },
+    // 重置
+    resetSearchForm () {
+      this.queryParam.productName = ''
+      this.queryParam.productCode = ''
+      this.queryParam.productBrandSn = undefined
+      this.queryParam.productTypeSn1 = undefined
+      this.queryParam.productTypeSn2 = undefined
+      this.queryParam.productTypeSn3 = undefined
+      this.queryParam.status = undefined
+      this.queryParam.categorySn1 = undefined
+      this.queryParam.categorySn2 = undefined
+      this.queryParam.hotFlag = undefined
+      this.queryParam.orderBy = 'createDate'
+      this.queryParam.categoryStatus = '1'
+      this.productType = []
+      this.category = []
+      this.$refs.table.refresh(true)
+    },
+    // 获取初始商城打开、关闭状态
+    getShoppingStatus () {
+      const _this = this
+      _this.spinning = true
+      findMallParam({}).then(res => {
+        if (res.status == 200) {
+          this.shoppingMallStatus = res.data.paramValue || '0'
+        }
+        _this.spinning = false
+      })
+    },
+    // 修改商城状态
+    editShoppingStatus (typeVal) {
+      const _this = this
+      this.$confirm({
+        title: (typeVal == '0' ? '关闭' : '开启') + '商城',
+        content: '确认' + (typeVal == '0' ? '关闭' : '开启') + '吗,' + (typeVal == '0' ? '关闭' : '开启') + '后修理厂' + (typeVal == '0' ? '不可' : '可') + '在易码通查看商城',
+        centered: true,
+        okText: (typeVal == '0' ? '关闭商城' : '开启商城'),
+        onOk () {
+          _this.iconLoading = true
+          updateMallParam({ paramValue: typeVal }).then(res => {
+            if (res.status == 200) {
+              _this.$message.success(res.message)
+              _this.shoppingMallStatus = typeVal
+              _this.iconLoading = false
+            } else {
+              _this.iconLoading = false
+            }
+          })
+        }
+      })
+    },
+    // 表格高度
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 280
+    },
+    // 初始化页面
+    pageInit () {
+      const _this = this
+      this.getShoppingStatus()
+      this.getCategoryList()
+      this.$nextTick(() => { // 页面渲染完成后的回调
+        _this.setTableH()
+      })
+    }
+  },
+  mounted () {
+    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+      this.pageInit()
+      this.resetSearchForm()
+    }
+  },
+  watch: {
+    '$store.state.app.winHeight' (newValue, oldValue) { //  窗口变更时,需同时更改表格高度
+      this.setTableH()
+    }
+  },
+  activated () {
+    // 如果是新页签打开,则重置当前页面
+    if (this.$store.state.app.isNewTab) {
+      this.pageInit()
+      this.resetSearchForm()
+    }
+    // 仅刷新列表,不重置页面
+    if (this.$store.state.app.updateList) {
+      this.pageInit()
+      this.$refs.table.refresh()
+    }
+  }
+}
+</script>

+ 1 - 1
src/views/numsGoodsShelves/settlementManagement/list.vue

@@ -12,7 +12,7 @@
             </a-col>
             <a-col flex="300px">
               <a-form-item label="关联客户">
-                <custList ref="custList" :dealerFlag="0" @change="custChange" v-model="queryParam.customerName"></custList>
+                <custList ref="custList" @change="custChange" v-model="queryParam.customerName"></custList>
               </a-form-item>
             </a-col>
             <a-col flex="300px">

+ 1 - 1
src/views/numsGoodsShelves/shelfSet/basicInfoModal.vue

@@ -29,7 +29,7 @@
               关联客户<a-icon type="question-circle" style="color: rgba(0,0,0,.65);font-size: 16px;margin-left: 2px;vertical-align: sub;cursor: pointer;" />
             </a-tooltip>
           </template>
-          <custList id="shelfSet-basicInfo-modal-custList" ref="custList" :dealerFlag="0" :isEnabled="true" @change="custChange"></custList>
+          <custList id="shelfSet-basicInfo-modal-custList" ref="custList" :isEnabled="true" @change="custChange"></custList>
         </a-form-model-item>
         <a-form-model-item prop="showPrice">
           <template slot="label">

+ 1 - 1
src/views/numsGoodsShelves/shelfSet/list.vue

@@ -12,7 +12,7 @@
             </a-col>
             <a-col :md="6" :sm="24">
               <a-form-item label="关联客户">
-                <custList ref="custList" id="shelfSetList-custList" :dealerFlag="0" @change="custChange" :isEnabled="true"></custList>
+                <custList ref="custList" id="shelfSetList-custList" @change="custChange" :isEnabled="true"></custList>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">

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

@@ -331,7 +331,7 @@ export default {
         arr.splice(6, 0, { title: '仓位', dataIndex: 'warehouseLocationEntity.name', width: '8%', align: 'center', customRender: function (text) { return text || '--' } })
       }
       if (this.detailData && this.detailData.sourceType && this.detailData.sourceType === 'XPRH_PURCHASE') {
-        arr.splice(11, 1, { title: <a-tooltip placement="bottom" title='返券金额以销售单完结时的活动规则为准'>返券金额&nbsp;<a-icon type="question-circle" /></a-tooltip>, dataIndex: 'giveAmount', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        arr.splice(11, 0, { title: <a-tooltip placement="bottom" title='返券金额以销售单完结时的活动规则为准'>返券金额&nbsp;<a-icon type="question-circle" /></a-tooltip>, dataIndex: 'giveAmount', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
       // 实际总成本
       if (this.isCosts) {

+ 15 - 8
src/views/salesManagement/salesQuery/list.vue

@@ -128,10 +128,13 @@
         </div>
         <div>
           <a-dropdown v-model="showCell">
-            <a-button type="link" class="button-default"> <a-icon type="setting" />  显示</a-button>
+            <a-button type="link" class="button-default" id="salesQuery-discount-showCell"> <a-icon type="setting" />  显示</a-button>
             <a-menu slot="overlay">
               <a-menu-item>
-                <a-checkbox v-model="showDiscount" id="salesQuery-edit-discount">折后总售价</a-checkbox>
+                <a-checkbox v-model="showDiscount" id="salesQuery-discount">折后总售价</a-checkbox>
+              </a-menu-item>
+              <a-menu-item>
+                <a-checkbox v-model="showKhgx" id="salesQuery-khgx">客户关系</a-checkbox>
               </a-menu-item>
             </a-menu>
           </a-dropdown>
@@ -214,7 +217,7 @@
             size="small"
             type="link"
             class="button-error"
-            v-if="((record.sourceType == 'SATELLITE' || record.sourceType == 'SALES' || record.sourceType == 'TEMPORARY_DISPATCHING' ||record.sourceType =='XPRH_PURCHASE' ) && record.billStatus != 'FINISH') && $hasPermissions('B_salesDel')"
+            v-if="((record.sourceType == 'SATELLITE' || record.sourceType == 'SALES' || record.sourceType == 'TEMPORARY_DISPATCHING' ) && record.billStatus != 'FINISH') && $hasPermissions('B_salesDel')"
             @click="handleDel(record)"
           >
             删除
@@ -232,7 +235,7 @@
             size="small"
             type="link"
             class="button-error"
-            v-if="((record.sourceType == 'CHILD_PURCHASE'||record.sourceType == 'DEALER_PURCHASE') && (record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'SUPERIOR_CHANGE')) && $hasPermissions('B_salesDel')"
+            v-if="((record.sourceType == 'CHILD_PURCHASE'||record.sourceType == 'DEALER_PURCHASE'||record.sourceType =='XPRH_PURCHASE') && (record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'SUPERIOR_CHANGE')) && $hasPermissions('B_salesDel')"
             @click="handleDel(record, 'cancel')"
           >
             取消
@@ -276,6 +279,7 @@ export default {
       openModal: false, // 选择客户弹框是否显示
       isByCustQuery: false, // 是否按客户查询
       showDiscount: false,
+      showKhgx: false,
       showCell: false,
       time: [
         getDate.getMonthDays(3).starttime,
@@ -346,7 +350,7 @@ export default {
         { title: '来源', dataIndex: 'sourceTypeDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '销售单号', scopedSlots: { customRender: 'salesBillNo' }, width: '9%', align: 'center' },
         { title: '客户名称', dataIndex: 'buyerNameCurrent', align: 'center', width: '15%', customRender: function (text) { return text || '--' } },
-        { title: '客户关系', dataIndex: 'buyerRelationTypeDictValue', align: 'center', width: '9%', customRender: function (text) { return text || '--' } },
+        // { title: '客户关系', dataIndex: 'buyerRelationTypeDictValue', align: 'center', width: '9%', customRender: function (text) { return text || '--' } },
         { title: '总款数', dataIndex: 'totalCategory', align: 'center', width: '5%', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '总数量', dataIndex: 'totalQty', align: 'center', width: '5%', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '总售价', dataIndex: 'totalAmount', align: 'right', width: '5%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
@@ -363,11 +367,14 @@ export default {
         // { title: '财务状态', dataIndex: 'financialStatusDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
       ]
-
+      if (this.showKhgx) {
+        arr.splice(4, 0, { title: '客户关系', dataIndex: 'buyerRelationTypeDictValue', align: 'center', width: '5%', customRender: function (text) { return text || '--' } })
+      }
       // 显示折扣
       if (this.showDiscount) {
-        arr.splice(7, 0, { title: '折扣金额', dataIndex: 'discountAmount', align: 'right', width: '5%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
-        arr.splice(8, 0, { title: '折后总售价', dataIndex: 'discountedAmount', align: 'right', width: '5%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        const dx = this.showKhgx ? 1 : 0
+        arr.splice(7 + dx, 0, { title: '折扣金额', dataIndex: 'discountAmount', align: 'right', width: '5%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        arr.splice(8 + dx, 0, { title: '折后总售价', dataIndex: 'discountedAmount', align: 'right', width: '5%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
       return arr
     }

+ 1 - 1
src/views/salesManagement/salesQueryNew/edit.vue

@@ -438,7 +438,7 @@ export default {
       }
 
       if (this.detailData && this.detailData.sourceType && this.detailData.sourceType === 'XPRH_PURCHASE') {
-        arr.splice(10, 1, { title: <a-tooltip placement="bottom" title='返券金额以销售单完结时的活动规则为准'>返券金额&nbsp;<a-icon type="question-circle" /></a-tooltip>, dataIndex: 'giveAmount', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        arr.splice(10, 0, { title: <a-tooltip placement="bottom" title='返券金额以销售单完结时的活动规则为准'>返券金额&nbsp;<a-icon type="question-circle" /></a-tooltip>, dataIndex: 'giveAmount', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
       // 实际总成本
       if (this.isCosts) {

+ 14 - 7
src/views/salesManagement/salesQueryNew/list.vue

@@ -142,11 +142,14 @@
             <a-button type="primary" class="button-error" v-if="$hasPermissions('B_salesNews')" @click="handleAdd(0)"><a-icon type="plus" /> 新增(零售)</a-button>
             <a-button type="primary" class="button-error" v-if="$hasPermissions('B_salesNews')" @click="handleAdd(1)"><a-icon type="plus" /> 新增(铺货)</a-button>
             <a-dropdown v-model="showCell">
-              <a-button type="link" class="button-default"> <a-icon type="setting" />  显示</a-button>
+              <a-button type="link" class="button-default" id="salesQuery-discount-showCell"> <a-icon type="setting" />  显示</a-button>
               <a-menu slot="overlay">
                 <a-menu-item>
                   <a-checkbox v-model="showDiscount" id="salesQuery-edit-discount">折后总售价</a-checkbox>
                 </a-menu-item>
+                <a-menu-item>
+                  <a-checkbox v-model="showKhgx" id="salesQuery-khgx">客户关系</a-checkbox>
+                </a-menu-item>
               </a-menu>
             </a-dropdown>
           </div>
@@ -216,7 +219,7 @@
               size="small"
               type="link"
               class="button-error"
-              v-if="((record.sourceType == 'SATELLITE' || record.sourceType == 'SALES' || record.sourceType == 'TEMPORARY_DISPATCHING' ||record.sourceType =='XPRH_PURCHASE' ) && record.billStatus != 'FINISH') && $hasPermissions('B_salesDel')"
+              v-if="((record.sourceType == 'SATELLITE' || record.sourceType == 'SALES' || record.sourceType == 'TEMPORARY_DISPATCHING') && record.billStatus != 'FINISH') && $hasPermissions('B_salesDel')"
               @click="handleDel(record)"
             >
               删除
@@ -234,7 +237,7 @@
               size="small"
               type="link"
               class="button-error"
-              v-if="((record.sourceType == 'CHILD_PURCHASE'||record.sourceType == 'DEALER_PURCHASE') && (record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'SUPERIOR_CHANGE')) && $hasPermissions('B_salesDel')"
+              v-if="((record.sourceType == 'CHILD_PURCHASE'||record.sourceType == 'DEALER_PURCHASE'||record.sourceType =='XPRH_PURCHASE' ) && (record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'SUPERIOR_CHANGE')) && $hasPermissions('B_salesDel')"
               @click="handleDel(record, 'cancel')"
             >
               取消
@@ -279,6 +282,7 @@ export default {
       openModal: false, // 选择客户弹框是否显示
       isByCustQuery: false, // 是否按客户查询
       showDiscount: false,
+      showKhgx: false,
       showCell: false,
       time: [
         getDate.getMonthDays(3).starttime,
@@ -349,7 +353,7 @@ export default {
         { title: '来源', dataIndex: 'sourceTypeDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '销售单号', scopedSlots: { customRender: 'salesBillNo' }, width: this.showDiscount ? '6%' : '9%', align: 'center' },
         { title: '客户名称', dataIndex: 'buyerNameCurrent', align: 'center', width: this.showDiscount ? '12%' : '15%', customRender: function (text) { return text || '--' } },
-        { title: '客户关系', dataIndex: 'buyerRelationTypeDictValue', align: 'center', width: '9%', customRender: function (text) { return text || '--' } },
+        // { title: '客户关系', dataIndex: 'buyerRelationTypeDictValue', align: 'center', width: '9%', customRender: function (text) { return text || '--' } },
         { title: '总款数', dataIndex: 'totalCategory', align: 'center', width: '5%', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '总数量', dataIndex: 'totalQty', align: 'center', width: '5%', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '总售价', dataIndex: 'totalAmount', align: 'right', width: '5%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
@@ -366,11 +370,14 @@ export default {
         // { title: '财务状态', dataIndex: 'financialStatusDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
       ]
-
+      if (this.showKhgx) {
+        arr.splice(4, 0, { title: '客户关系', dataIndex: 'buyerRelationTypeDictValue', align: 'center', width: '6%', customRender: function (text) { return text || '--' } })
+      }
       // 显示折扣
       if (this.showDiscount) {
-        arr.splice(7, 0, { title: '折扣金额', dataIndex: 'discountAmount', align: 'right', width: '5%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
-        arr.splice(8, 0, { title: '折后总售价', dataIndex: 'discountedAmount', align: 'right', width: '5%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        const dx = this.showKhgx ? 1 : 0
+        arr.splice(7 + dx, 0, { title: '折扣金额', dataIndex: 'discountAmount', align: 'right', width: '5%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        arr.splice(8 + dx, 0, { title: '折后总售价', dataIndex: 'discountedAmount', align: 'right', width: '5%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
       return arr
     }

+ 29 - 1
src/views/salesManagement/salesReturn/detail.vue

@@ -14,7 +14,12 @@
         </template>
       </a-page-header>
       <!-- 基础信息 -->
-      <a-card size="small" :bordered="false" title="基础信息" v-show="isShowBisiceInfo" class="salesReturnDetail-cont">
+      <a-card
+        size="small"
+        :bordered="false"
+        title="基础信息"
+        v-show="!outBizSn && isShowBisiceInfo"
+        class="salesReturnDetail-cont">
         <a-descriptions size="small" :column="3">
           <a-descriptions-item label="客户名称">{{ detailData&&detailData.buyerNameCurrent?detailData.buyerName?detailData.buyerName==detailData.buyerNameCurrent?detailData.buyerNameCurrent:detailData.buyerNameCurrent+'('+detailData.buyerName+')':detailData.buyerNameCurrent:'--' }}</a-descriptions-item>
           <a-descriptions-item label="客户地址">
@@ -33,6 +38,29 @@
           <a-descriptions-item label="备注">{{ detailData&&detailData.remarks || '--' }}</a-descriptions-item>
         </a-descriptions>
       </a-card>
+      <a-card size="small" :bordered="false" v-if="outBizSn" class="salesReturnDetail-cont">
+        <a-collapse :activeKey="['1']">
+          <a-collapse-panel key="1" header="基础信息">
+            <a-descriptions size="small" :column="3">
+              <a-descriptions-item label="客户名称">{{ detailData&&detailData.buyerNameCurrent?detailData.buyerName?detailData.buyerName==detailData.buyerNameCurrent?detailData.buyerNameCurrent:detailData.buyerNameCurrent+'('+detailData.buyerName+')':detailData.buyerNameCurrent:'--' }}</a-descriptions-item>
+              <a-descriptions-item label="客户地址">
+                <div v-if="detailData&&(detailData.provinceName || detailData.cityName || detailData.countyName || detailData.customerAddr)">
+                  {{ detailData&&detailData.provinceName || '' }}
+                  {{ detailData&&detailData.cityName || '' }}
+                  {{ detailData&&detailData.countyName || '' }}
+                  {{ detailData&&detailData.customerAddr || '' }}
+                </div>
+                <span v-else>--</span>
+              </a-descriptions-item>
+              <a-descriptions-item label="联系电话">{{ detailData&&detailData.contactTel || '--' }}</a-descriptions-item>
+              <a-descriptions-item label="退货单号">{{ detailData&&detailData.salesReturnNo || '--' }}</a-descriptions-item>
+              <a-descriptions-item label="业务状态">{{ detailData&&detailData.stateDictValue || '--' }}</a-descriptions-item>
+              <a-descriptions-item label="是否抓单">{{ detailData&&detailData.grabFlag==1?'抓单':'不抓单' }}</a-descriptions-item>
+              <a-descriptions-item label="备注">{{ detailData&&detailData.remarks || '--' }}</a-descriptions-item>
+            </a-descriptions>
+          </a-collapse-panel>
+        </a-collapse>
+      </a-card>
       <a-card size="small" :bordered="false" class="pages-wrap">
         <!-- alert -->
         <a-alert type="info" style="margin-bottom: 10px;" v-if="detailData">

+ 2 - 2
vue.config.js

@@ -209,8 +209,8 @@ const vueConfig = {
     // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        target: 'http://192.168.2.113:8550/qpls-md',
-        // target: 'https://p.iscm.360arrow.com/qpls-md',
+        // target: 'http://192.168.2.113:8550/qpls-md',
+        target: 'https://p.iscm.360arrow.com/qpls-md',
         // ws: false,
         ws: true,
         changeOrigin: true,