Prechádzať zdrojové kódy

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-mini-web

zhoux 1 rok pred
rodič
commit
0f0e3f7c2c

+ 10 - 9
.env.pro

@@ -1,15 +1,16 @@
 NODE_ENV='production'
 VUE_APP_BUILD_TYPE='pro'
-VUE_APP_SERVER_URL='https://scrm.hegii.com/api'
-VUE_APP_EXPORT_URL='http://s.dev01.dkiboss.com:5000/'
-VUE_APP_UPLOAD_URL='https://scrm.hegii.com/api/basic-server/file/upload'
-VUE_APP_LOGS_URL='https://scrm.hegii.com/logs'
-VUE_APP_IMG_URL='https://scrmoss.hegii.com/'
-VUE_APP_HG_IMG_URL='https://hegii-hap.oss-cn-shenzhen.aliyuncs.com/'
-VUE_APP_WEBSOCKET_URL='wss://scrm.hegii.com/websocket/'
+VUE_APP_SERVER_URL='https://zy.dkiboss.com/api'
+VUE_APP_EXPORT_URL='https://zy.dkiboss.com/excel/'
+VUE_APP_EXPORT_SQL_URL='https://zy.dkiboss.com/custom-report-sql.sql'
+VUE_APP_UPLOAD_URL='https://zy.dkiboss.com/api/mdm-server/file/upload'
+VUE_APP_LOGS_URL='https://ibossmp.dongkesoft.com:7050/logs'
+VUE_APP_IMG_URL='https://zy.dkiboss.com/file'
+VUE_APP_WEBSOCKET_URL='wss://zy.dkiboss.com/websocket/'
 VUE_APP_LOGIN_PAGE_NAME=["login"]
 VUE_APP_LOGIN_TYPE=0
 VUE_APP_QV_SCAN_CLIENT_ID='f3ed0d90-3fc8-4eba-b83c-a0cfe54c174d'
-VUE_APP_QV_SCAN_APPID='ww2bc8a1bda0628c66'
-VUE_APP_QV_SCAN_AGENTID='1000005'
+VUE_APP_QV_SCAN_APPID='ww796c5d1684937b2f'
+VUE_APP_QV_SCAN_AGENTID='1000048'
+
 

+ 2 - 0
src/api/pages/common/common.js

@@ -121,6 +121,8 @@ export default {
     getGoodsForIntoByPage: 'get_goods_for_into_by_page',
     // 获取首页实时数据
     getRealTimeData: 'get_real_time_data',
+    // 获取商品品牌补分页
+    getGoodsBrandNoPage:'get_goods_brand_no_page',
   },
   fileService:{
     prefix: 'mdm-server/file/',

+ 1 - 0
src/api/pages/core/suppliers.js

@@ -19,5 +19,6 @@ export default {
 export const routeUrl = {
   suppliers:{
     add: {key: 'add', method: 'add',initFlag:true},
+    check:{key:'check',routeName:'supplier-detail',chooseFlag:true},
   }
 }

+ 23 - 0
src/api/pages/fin/cost-refill.js

@@ -0,0 +1,23 @@
+/**
+ * @desc   : 成本补录
+ * @author : 姜宁
+ * @date   : 2024/7/22 16:08
+ */
+export default {
+  costRefillService:{
+    prefix: '/mdm-server/ivt/inboundItem/',
+    selectCostCheckList:'select_cost_check_list',
+  }
+}
+
+/**
+ * @desc   : 采购入库路由
+ * @author : 付斌
+ * @date   : 2024-02-01 16:03
+ */
+export const routeUrl = {
+  costRefill: {
+    costRefill:{key: 'costRefill', method: 'costRefill'},
+    save:{key: 'save', method: 'save'}
+  }
+}

+ 1 - 0
src/api/pages/fin/receipt.js

@@ -8,6 +8,7 @@ export default {
     prefix: '/mdm-server/mac/receipt/',
     selectRpInfoById: 'select_rp_info_by_id',
     insertReceivableReceipt: 'insert_receivable_receipt',
+    getRrpSupList:'get_rp_sup_list '
   }
 }
 

+ 1 - 0
src/api/pages/pur/pur-enter.js

@@ -20,6 +20,7 @@ export default {
     purchaseInboundCancel: 'inbound_cancel',
     //作废
     purchaseInboundRepeal:'repeal',
+    selectTotalDetail:'select_total_detail',
 
   }
 }

+ 2 - 1
src/api/pages/pur/pur-order.js

@@ -6,7 +6,8 @@
 export default {
   purOrderService: {
     prefix: '/mdm-server/pur/purchase/',
-    selectTrackReport:'select_track_report'
+    selectTrackReport:'select_track_report',
+    selectTotalDetail:'select_total_detail',
   }
 }
 

+ 6 - 0
src/api/pages/report/detail-report.js

@@ -59,6 +59,12 @@ export default {
     getSaleProfitGroupBySku:'get_sale_profit_group_by_sku',
     // 经营概况
     getBusinessOverview:'get_business_overview',
+    // 销售汇总表
+    getOrderSummary:'get_order_summary',
+    // 销售汇总明细
+    getOrderSummaryItem:'get_order_summary_item',
+    //资金日记账
+    getFundReportWeb:'get_fund_report_web',
   }
 }
 

+ 22 - 0
src/api/pages/sale/order-sum-report.js

@@ -0,0 +1,22 @@
+/**
+ * @desc   : 销售汇总报表服务
+ * @author : 姜宁
+ * @date   : 2024-07-17 11:34
+ */
+export default {
+  reportService: {
+    prefix: '/mdm-server/mst/report/',
+    getOrderSummary: 'get_order_summary',
+  }
+}
+
+/**
+ * @desc   : 销售汇总报表服务
+ * @author : 姜宁
+ * @date   : 2024-07-17 11:34
+ */
+export const routeUrl = {
+  orderSumReport: {
+
+  }
+}

+ 2 - 0
src/components/table/edit-table/edit-table.vue

@@ -909,6 +909,8 @@ export default {
       // 编辑
       if (n && n.length > 0) {
         this.tableData = n
+        // 把改变中的数据清空
+        this.tableDataChange = []
         this.handleSelectData();
       } else {
         this.tableData = []

+ 19 - 0
src/locale/lang/zh-CN.js

@@ -708,6 +708,22 @@ export const columns = {
   project: '项目',
   summary: '描述',
   operate: '操作',
+  ordGoodsSumDetail:'销售汇总数据',
+  ordGoodsDetail:'销售明细',
+  collectType: '汇总类型',
+  collectTypeName: '汇总类型',
+  salesQty: '销售数量',
+  salesAmt: '销售金额',
+  flgGift:'赠品标识',
+  initAmt:'期初',
+  amtInflow:'期间',
+  amtBalance:'期末',
+  amtRes:'发生额',
+  macCusDetail:'资金日记账',
+  macRpDetail:'账款详情',
+  objectName:'账务对象名称',
+  objectCode:'账务对象编码',
+  objectPhone:'联系电话',
 }
 
 /**
@@ -942,6 +958,8 @@ export const others = {
   receptionOld: '客户接待',
   receptionOldDesc: '留资客户',
   customerInfo: '客户信息',
+  supInfo: '供应商信息',
+  returnAddress:'供应商地址',
   followInfo: '跟进信息',
   appendix: '附件',
   loginLoading: '登录中。。。',
@@ -1023,6 +1041,7 @@ export const others = {
   transactionOrder: '成交订单',
   salesReturn: '销售退货',
   receiveRecord: '收款记录',
+  paymentRecord: '付款记录',
   saleRefund:'退款记录',
   followCount: '跟进次数',
   followStaffName: '跟进人',

+ 17 - 1
src/mixins/index.js

@@ -313,16 +313,28 @@ export const indexMixin = {
       // 查询数据
       this._getData(params).then(res => {
         if (res && res.code === this.$config.SUCCESS_CODE) {
+          let isDataDetail = false;
           this.searchInfo = res.data;   // 记录返回的实体,返回较多的数据,可能会用到
           this.tableData = res.data.list;
           // 如果list没有值,可能就是data返回
           if (!this.tableData && res.data && Array.isArray(res.data)) {
             this.tableData = res.data;
           }
+          if (!this.tableData && res.data && Array.isArray(res.data.detail)) {
+            this.tableData = res.data.detail;
+            isDataDetail = true;
+          }
           if (params.currentPage == 1) {
             this.pageInfo.total = res.data.total
+            if (isDataDetail){
+              this.pageInfo.total = res.data.detail.length;
+            }
             this.pageInfo.currentPage = 1;
           }
+          // 处理查询后的数据
+          if(this.handleSearchData){
+            this.handleSearchData();
+          }
           this.loading = false
         }
       })
@@ -387,7 +399,7 @@ export const indexMixin = {
         // 2、给参数赋值
         this._setParams(arg);
         // this.params.ftyId = this.$store.state.user.ftyId;// 给工厂赋默认值
-        this.params.cpId = this.$store.state.user.cpId;
+        // this.params.cpId = this.$store.state.user.cpId;
 
         // 如果主键id有值需要在新建时清空主键Id
         if (this.primaryKey && button === 'add' && this.params[this.primaryKey]) {
@@ -408,6 +420,10 @@ export const indexMixin = {
               this.$refs[modalRef].showModal = false;
               this.searchData(); // 重新触发查询
             }
+            // 保存后提供给也没做处理
+            if(this.handleData){
+              this.handleData();
+            }
           }
           // else {
           //   // 如果不成功就提示错误信息

+ 269 - 0
src/view/fin/cost-refill/index.vue

@@ -0,0 +1,269 @@
+<!-- @desc:陈本补录  @auth:姜宁  @time:2024-7-22 09:56 -->
+<template>
+  <div class="main-div" ref="mainDiv">
+    <loading :loading="loading" v-if="!modalVisible"></loading>
+    <BaseIndexButtonGroup ref="BaseIndexButtonGroup" id="BaseIndexButtonGroup">
+      <template #left>
+        <!--    查询    -->
+        <BaseIndexButton ref="search" name="search"></BaseIndexButton>
+        <!--    清空条件    -->
+        <BaseIndexButton ref="clear" name="clear"></BaseIndexButton>
+        <!--    保存    -->
+        <BaseIndexButton  ref="save" name="save"></BaseIndexButton>
+      </template>
+    </BaseIndexButtonGroup>
+
+    <!--  卡片区  -->
+    <div class="index-card">
+      <!--  查询条件区域  -->
+      <div id="search-cond-div" ref="search-cond-div" class="search-cond-class">
+        <SearchCond ref="searchCond" v-model="searchCond"
+                    @collapse-change="collapseChange" :setFlag="false"
+                    :searchContent="searchContent"
+        ></SearchCond>
+      </div>
+      <!--  表格部分  -->
+      <div :style="'height: ' + tableHeight + 'px'" class="split-div-class">
+        <DkSplit v-model="split">
+          <!-- 左边部分   -->
+          <DkTable slot="left" ref="leftTable" :data="leftData" :height="tableHeight" :page-flag="false"
+                   :page-total-flag="false"  :choose-flag="false" :show-setting-flag="false"
+                   @current-change="currentChangeEvent($event)" primaryKey="brandId">
+            <DkTableColumn field="brandName" :title="this.$t('brandIds')" />
+          </DkTable>
+
+          <!-- 右边部分   -->
+          <EditTable slot="right" ref="goodsTable" :data="tableData" showFooter major-field="skuId"
+                     :height="this.tableHeight -35"
+                     :operateFlag = "false"
+                     :new-row-flag="false"
+                     :columns="costRefillColumns"
+                     @on-choose="getTotals"
+                     @changeValue="getTotals"/>
+        </DkSplit>
+      </div>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import {indexMixin} from "@/mixins";
+import {forEach} from "@/libs/tools/tools";
+
+export default {
+  name: 'cost-refill',
+  mixins: [indexMixin],
+  data(){
+    let self = this
+    return{
+      leftData: [],
+      tableData: [],
+      brandList: [],
+      saveParams: [],// 保存时赋值的参数
+      brandId:null,
+      split: 0.15,
+      minSplit: 0.15,
+      searchContent:
+        [
+          {
+            itemCode: 'skuName',
+          },
+          {
+            itemCode: 'skuModel',
+          },
+        ],
+      costRefillColumns: [
+        {
+          field: 'skuModel',
+          type: 'disabled',
+        },
+        {
+          field: 'skuName',
+          type: 'disabled',
+        },
+        {
+          field: 'skuCode',
+          type: 'disabled',
+        },
+        {
+          field: 'skuSpec',
+          type: 'disabled',
+        },
+        {
+          field: 'brandName',
+          type: 'disabled',
+        },
+        {
+          field: 'costPrice',
+          title: self.$t('costPriceSaleOrder'),
+          type: 'number',
+          digits: 2,
+          number: true,
+          sum: true,
+        },
+      ],
+    }
+  },
+  methods:{
+
+    /**
+     * @desc   : 加载数据
+     * @author : 姜宁
+     * @date   : 2024/7/22 16:16
+     */
+    initData(){
+      // 查询品牌信息
+      this.getGoodsBrand();
+    },
+
+   /**
+    * @desc   : 品牌数据源
+    * @author : 姜宁
+    * @date   : 2024/7/22 16:16
+    */
+    getGoodsBrand(){
+      this.excute(this.$service.commonService, this.$service.commonService.getGoodsBrandNoPage, {}).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          let brands  = [{
+            brandId : null,
+            brandName : '全部',
+          }]
+          this.leftData = brands.concat(res.data)
+        }
+      })
+    },
+    /**
+     * @desc   : 商品表格中成本改变计算金额
+     * @author : 姜宁
+     * @date   : 2024/7/23 13:57
+     */
+    getTotals(field, row, rowIndex) {
+      let table = this.$refs['goodsTable'].tableData.filter(it=>it.skuId)
+      if (table && table.length > 0) {
+        table.forEach(row => {
+          if(!row['costPrice']){
+            this.$set(row, 'costPrice', 0);
+          }
+          row.itemList.forEach(it=>{
+            it["costPrice"] = row['costPrice']
+            it['costAmt'] = row['costPrice']*it['intoQty']
+          })
+        })
+      }
+    },
+    /**
+     * @desc   : 查询数据
+     * @author : 姜宁
+     * @date   : 2024/7/22 16:17
+     */
+    getData(params){
+      return this.excute(this.$service.costRefillService,this.$service.costRefillService.selectCostCheckList,params)
+    },
+    /**
+     * @desc   : 处理查询结果
+     * @author : 姜宁
+     * @date   : 2024/7/23 13:45
+     */
+    handleSearchData(){
+      if(this.tableData && this.tableData.length > 0){
+        this.tableData.forEach(it=>{
+          if(it.itemList && it.itemList.value){
+            it.itemList = JSON.parse(it.itemList.value)
+          }
+        })
+      }
+    },
+    /**
+     * @desc   : 查询参数重新赋值
+     * @author : 姜宁
+     * @date   : 2024/7/22 16:17
+     */
+    setSearchParams(params){
+      params.brandId = this.brandId;
+      return params;
+    },
+    /**
+     * @desc   : 右侧列表行变化事件
+     * @author : 姜宁
+     * @date   : 2024/7/22 16:17
+     */
+    currentChangeEvent({row}){
+      if (row != null){
+        this.brandId =  row.brandId;
+      }
+      let changeTable= this.$refs['goodsTable'].getTableChangeData()?.filter(it=>it.costPrice !== 0);
+      if (changeTable && changeTable.length > 0){
+        //提示是否保存
+        this.$IBMessage({
+            content: this.$t('Q_005'),
+            title: this.$t('systemQuestion')
+          },
+          {
+            ok: () => {
+              this.save()
+            },
+            cancel: () => {
+              //调用查询事件
+              this.searchData();
+            }
+          })
+      }
+      else{
+        //调用查询事件
+        this.searchData();
+      }
+    },
+    /**
+     * @desc   : 保存校验
+     * @author : 姜宁
+     * @date   : 2024/7/23 14:43
+     */
+    validData(){
+     let changeGoodsTable = this.$refs['goodsTable'].getTableChangeData()?.filter(it=>it.costPrice !== 0);
+     if(!changeGoodsTable || changeGoodsTable.length == 0){
+       this.$message.error(this.$t('W_015'))
+       return false;
+     }
+      return true;
+    },
+    /**
+     * @desc   : 参数赋值
+     * @author : 姜宁
+     * @date   : 2024/7/23 14:43
+     */
+    setParams(){
+      let changeGoodsTable = this.$refs['goodsTable'].getTableChangeData();
+      let itemList = []
+      changeGoodsTable.forEach(it=>{
+        itemList = itemList.concat(it.itemList)
+      })
+      this.saveParams = itemList;
+    },
+    /**
+     * @desc   : 保存方法
+     * @author : 姜宁
+     * @date   : 2024/7/23 14:43
+     */
+    saveData(){
+      return this.excute(this.$service.costCheckService, this.$service.costCheckService.costCheckOk, this.saveParams, false)
+    },
+    /**
+     * @desc   : 查询后做处理
+     * @author : 姜宁
+     * @date   : 2024/7/23 14:43
+     */
+    handleData(){
+      let row = [this.$refs['leftTable'].getCurrentRow()]
+      this.brandId = row[0].brandId;
+      //调用查询事件
+      this.searchData();
+    },
+  },
+  created() {
+    // this.primaryKey = 'skuId'  // 设置主键Id
+    this.routeObjName = 'costRefill'  // 设置路由名称
+  },
+}
+</script>
+

+ 136 - 8
src/view/fin/fund-report/index.vue

@@ -18,10 +18,12 @@
       </div>
       <!--  表格部分  -->
       <div slot="top">
+        <DkTabs v-model="detailModel" :options="detailOptions" @on-click="detailTabsClick"></DkTabs>
         <!--  表格部分  -->
+        <div v-show="isMacFlag">
         <DkTable :data="tableData"
-                 :page-flag="false"
-                 :page-total-flag="false"
+                 :page-flag="true"
+                 :page-total-flag="true"
                  :height="tableHeight-30"
                  primaryKey="itemId"
                  :pageFlag="true"
@@ -32,12 +34,38 @@
                  :sortable="false"
                  :showCheckboxHeader="false"
                  :choose-flag="false">
-          <DkTableColumn field="macname"></DkTableColumn>
-          <DkTableColumn field="accdate" :title="$t('accDate')"/>
-          <DkTableColumn field="amtinflow" data-type="number"/>
-          <DkTableColumn field="balance" data-type="number"></DkTableColumn>
+          <DkTableColumn field="macName" :title="$t('macname')"></DkTableColumn>
+          <DkTableColumn field="initAmt" :digits="2" dataType="number"></DkTableColumn>
+          <DkTableColumn field="amtInflow" :digits="2" dataType="number"></DkTableColumn>
+          <DkTableColumn field="balance" :title="$t('amtBalance')" :digits="2" dataType="number"></DkTableColumn>
+          <DkTableColumn field="objectName"></DkTableColumn>
+          <DkTableColumn field="objectCode"></DkTableColumn>
+          <DkTableColumn field="objectPhone"></DkTableColumn>
+          <DkTableColumn field="accDate" :title="$t('accDate')"/>
+          <DkTableColumn field="amtRes" dataType="number" :digits="2" type="link" @on-link="currentIntoRights()"
+                         sum/>
         </DkTable>
       </div>
+        <div v-show="isMacDetailFlag">
+          <DkTable :id="'table-'+$options.name" ref="detail-select" :data="macDetailData" showFooter
+                   :height="this.tableHeight -35"
+                   primaryKey="invId"
+                   @pageChange="pageSizeChange"
+                   :page-total="pageInfo.total"
+                   :current-page="pageInfo.currentPage"
+                   :choose-flag="false"
+                   :page-size-opts="pageSizeOpts"
+                   :page-size="pageInfo.pageSize"
+                   name="table">
+            <DkTableColumn field="macName" :title="$t('macname')"></DkTableColumn>
+            <DkTableColumn field="accDate" :title="$t('accDate')"/>
+<!--            <DkTableColumn field="amtPay" dataType="number" :digits="2"/>-->
+            <DkTableColumn :field="supFlag?'amtPay':'amtRec'" dataType="number" :digits="2"/>
+            <DkTableColumn field="makeTime" data-type="dateTime"/>
+            <DkTableColumn field="remarks"/>
+          </DkTable>
+        </div>
+      </div>
     </div>
   </div>
 </template>
@@ -51,8 +79,30 @@ export default {
   data() {
     let self = this
     return {
+      supFlag:false,
+      detailModel: 'macCusDetail',
+      detailOptions: [
+        {label: self.$t('macCusDetail'), name: 'macCusDetail'}, //资金日记账
+        {label: self.$t('macRpDetail'), name: 'macRpDetail'}, //账款详情
+      ],
+      tableData: [],         // 资金账户
+      macDetailData: [],    // 账款明细
+      isMacFlag: true,
+      isMacDetailFlag: false,
       searchContent: [
         {
+          itemCode: '资金账户-下拉',
+          itemName: 'macname',
+          valueFormat: {
+            code: 'macIds',
+            data: [],
+            valueKey: 'macId',
+            labelKey: 'macName',
+          },
+          required: true,
+          valueKind: 'M-CHOICE'
+        },
+        {
           itemCode: '账务日期-时间',
           itemName: 'accDate',
           valueFormat: {
@@ -66,17 +116,95 @@ export default {
   },
   methods: {
     /**
+     * @desc   : 加载数据
+     * @author : 姜宁
+     * @date   : 2024/7/19 16:10
+     */
+    initData() {
+      this.getMacData();
+    },
+    /**
      * @desc   : 查询数据
      * @author : 常皓宁
      * @date   : 2024/4/25 13:09
      */
     getData(params) {
+      // 清空数据
+      this.tableData = [];
+      this.macDetailData = [];
+      // 自动显示收发存数据
+      this.detailModel = 'macCusDetail'
+      this.isMacFlag = true
+      this.isMacDetailFlag = false
       params.cpId = this.$store.state.user.cpId
-      return this.excute(this.$service.detailReportService, this.$service.detailReportService.getFundReport, params)
+      return this.excute(this.$service.detailReportService, this.$service.detailReportService.getFundReportWeb, params)
+    },
+
+    /**
+     * @desc   : 点击Tab进行切换
+     * @author : 姜宁
+     * @date   : 2024/7/19 16:40
+     */
+    detailTabsClick(val) {
+      if (val === 'macCusDetail') {
+        this.detailModel = val
+        this.isMacFlag = true
+        this.isMacDetailFlag = false
+      } else if (val === 'macRpDetail' && this.macDetailData.length > 0) {
+        this.detailModel = val
+        this.isMacFlag = false
+        this.isMacDetailFlag = true
+      }
+    },
+
+    /**
+     * @desc   : 获取资金账户
+     * @author : 姜宁
+     * @date   : 2024/7/19 16:08
+     */
+    getMacData() {
+      let params = {
+        'dictCode': this.$config.kindCode.basicIncome,
+      }
+      this.excute(this.$service.commonService, this.$service.commonService.getMac, params, false).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          let list = this.searchContent.filter(it =>  it.valueFormat && it.valueFormat.code == 'macIds')
+          if (list.length > 0) {
+            list[0].valueFormat.data = res.data
+          }
+        }
+      })
+    },
+    /**
+     * @desc   : 获取发生明细
+     * @author : 姜宁
+     * @date   : 2024/7/19 16:16
+     */
+    currentIntoRights(row) {
+      this.macDetailData = [];
+      if (!row) {
+        row = [this.$refs['table-select'].getCurrentRow()]
+      }
+      this.excuteNoParam(this.$service.paymentService, this.$service.paymentService.selectRpInfoById, [row[0].rpId], false).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          // 显示入库明细信息页面
+          this.detailModel = 'macRpDetail'
+          this.macDetailData = res.data.recPayItem;
+          if (res.data.recPayItem[0].amtRec === 0){
+            this.supFlag = true;
+          }
+          else{
+            this.supFlag = false;
+          }
+          this.isMacFlag = false
+          this.isMacDetailFlag = true
+        }
+        this.loading = false
+      })
     },
   },
   created() {
-    this.primaryKey = 'itemId'  // 设置主键Id
+    this.primaryKey = 'rpId'  // 设置主键Id
     this.routeObjName = 'detailReport'  // 设置路由名称
   }
 }

+ 1 - 1
src/view/login/login.vue

@@ -248,7 +248,7 @@ export default {
     //生成uuid并获取二维码
     this.loginUuid = uuidv4()
     this.getQrCode(this.loginUuid).then(r => {
-      let res = r.data
+      let res = r
       if (res.code === this.$config.SUCCESS_CODE) {
         this.qrcodeUrl = res.data
       } else {

+ 1 - 1
src/view/mst/customer/index.vue

@@ -8,7 +8,7 @@
         <BaseIndexButton ref="search" name="search"></BaseIndexButton>
         <BaseIndexButton ref="clear" name="clear"></BaseIndexButton>
         <BaseIndexButton ref="edit" name="edit"></BaseIndexButton>
-        <BaseIndexButton ref="check" name="check" :isMustChooseFlag="false"></BaseIndexButton>
+        <BaseIndexButton ref="check" name="check"></BaseIndexButton>
       </template>
       <template #right>
         <BaseIndexButton ref="add" name="add"></BaseIndexButton>

+ 24 - 23
src/view/mst/goods/index.vue

@@ -36,8 +36,8 @@
           <!-- 左边部分   -->
           <DkTable slot="left" ref="leftTable" :data="leftData" :height="tableHeight" :page-flag="false"
                    :page-total-flag="false"  :choose-flag="false" :show-setting-flag="false"
-                   @current-change="currentChangeEvent($event)" primaryKey="seriesId">
-            <DkTableColumn field="seriesName" />
+                   @current-change="currentChangeEvent($event)" primaryKey="brandId">
+            <DkTableColumn field="brandName" :title="this.$t('brandIds')" />
           </DkTable>
 
           <!-- 右边部分   -->
@@ -78,7 +78,7 @@ export default {
       leftData: [],
       tableData: [],
       brandList: [],
-      seriesId:null,
+      brandId:null,
       split: 0.15,
       minSplit: 0.15,
       searchContent:
@@ -89,16 +89,16 @@ export default {
           {
             itemCode: 'skuModel',
           },
-          {
-            itemCode: 'brandIds',
-            valueFormat: {
-              code: 'goodsBrandList',
-              data: [],
-              valueKey: 'brandId',
-              labelKey: 'brandName'
-            },
-            valueKind: 'M-CHOICE'
-          },
+          // {
+          //   itemCode: 'brandIds',
+          //   valueFormat: {
+          //     code: 'goodsBrandList',
+          //     data: [],
+          //     valueKey: 'brandId',
+          //     labelKey: 'brandName'
+          //   },
+          //   valueKind: 'M-CHOICE'
+          // },
           self.$config.flgValidSearch
         ],
     }
@@ -112,7 +112,7 @@ export default {
      */
     initData(){
       // 查询商品系列数据
-      this.getSeriesData();
+      // this.getSeriesData();
       // 查询品牌信息
       this.getGoodsBrand();
     },
@@ -125,6 +125,7 @@ export default {
     getGoodsBrand(){
       this.excute(this.$service.goodsBrandService, this.$service.goodsBrandService.selectByCond, {}).then(res => {
         if (res.code === this.$config.SUCCESS_CODE) {
+          this.leftData = res.data.list;
           let list = this.searchContent.filter(it => it.valueFormat.code == 'goodsBrandList')
           if (list.length > 0) {
             list[0].valueFormat.data = res.data.list
@@ -148,7 +149,7 @@ export default {
      * @date   : 2024/4/9 9:10
      */
     setSearchParams(params){
-      params.seriesId = this.seriesId;
+      params.brandId = this.brandId;
       return params;
     },
 
@@ -157,13 +158,13 @@ export default {
      * @author : 宋扬
      * @date   : 2024/4/7 15:10
      */
-    getSeriesData(){
-      return this.excute(this.$service.goodsSeriesService, this.$service.goodsSeriesService.getGoodsSeriesList, {}).then(res => {
-        if (res.code === this.$config.SUCCESS_CODE) {
-          this.leftData = res.data;
-        }
-      })
-    },
+    // getSeriesData(){
+    //   return this.excute(this.$service.goodsSeriesService, this.$service.goodsSeriesService.getGoodsSeriesList, {}).then(res => {
+    //     if (res.code === this.$config.SUCCESS_CODE) {
+    //       this.leftData = res.data;
+    //     }
+    //   })
+    // },
 
     /**
      * @desc   : 右侧列表行变化事件
@@ -172,7 +173,7 @@ export default {
      */
     currentChangeEvent({row}){
       if (row != null){
-        this.seriesId =  row.seriesId;
+        this.brandId =  row.brandId;
         //调用查询事件
         this.searchData();
       }

+ 476 - 0
src/view/mst/supplier/detail.vue

@@ -0,0 +1,476 @@
+<!-- @desc:供应商详情  @auth:常皓宁  @time:2024/7/15 13:15 -->
+<template>
+  <div class="main-div">
+    <Card class="card">
+      <p slot="title">
+        {{ $t('supInfo') }}
+      </p>
+      <DkRow>
+        <Col span="8">
+          <Icon type="md-person" size="20"/>
+          {{ $t('supName') + ':' }}
+          <b>{{ formData.supName }}</b>
+        </Col>
+        <Col span="16">
+          <Tag color="blue" size="medium" v-if="formData.supTypeName">{{ formData.supTypeName }}</Tag>
+        </Col>
+      </DkRow>
+      <DkRow>
+        <Col span="8" v-if="formData.contactPhone">
+          <Icon type="md-call" size="20"/>
+          {{ $t('contactPhone') + ':' + formData.contactPhone }}
+        </Col>
+        <Col span="16" v-if="formData.returnAddress">
+          <Icon type="md-pin" size="20"/>
+          {{ $t('addressFull') + ':' + formData.returnAddress }}
+        </Col>
+      </DkRow>
+    </Card>
+    <Card class="card">
+      <!--  新结构重写一下    -->
+      <div class="order-info">
+
+        <div>
+          <span
+            class="yuan-fh">¥</span><b>{{
+            formData.purchaseAmount ? XEUtils.commafy(Number(formData.purchaseAmount), {digits: 2}) : '0.00'
+          }}元</b>
+          <span style="display: block;">订单({{ formData.purchaseQuantity }}单)</span>
+        </div>
+
+        <div>
+          <span
+            class="yuan-fh">¥</span><b>{{
+            formData.inboundReturnAmount ? XEUtils.commafy(Number(formData.inboundReturnAmount), {digits: 2}) : '0.00'
+          }}元</b>
+          <span style="display: block;">退货({{ formData.inboundReturnQuantity }}单)</span>
+        </div>
+
+        <div>
+          <span
+            class="yuan-fh">¥</span><b>{{
+            formData.payment ? XEUtils.commafy(Number(formData.payment), {digits: 2}) : '0.00'
+          }}元</b>
+          <span style="display: block;">收款总额</span>
+        </div>
+
+        <div>
+          <span class="yuan-fh">¥</span><b>{{
+            ((formData.purchaseAmount ? formData.purchaseAmount : 0) +
+              (formData.inboundReturnAmount ? formData.inboundReturnAmount : 0) -
+              (formData.payment ? formData.payment : 0)) > 0 ? XEUtils.commafy(Number(((formData.purchaseAmount ? formData.purchaseAmount : 0) +
+              (formData.inboundReturnAmount ? formData.inboundReturnAmount : 0) -
+              (formData.payment ? formData.payment : 0))), {digits: 2}  ) : '0.00'
+          }}元</b>
+          <span style="display: block;">欠款</span>
+        </div>
+
+
+      </div>
+    </Card>
+    <Card>
+      <DkTabs ref="tab" v-model="tabsModel" :options="tabsOptions">
+        <!--采购订单-->
+        <div slot="22">
+          <div style="margin-top: 5px">
+            <Card>
+              <DkTable :pageFlag="true" primaryKey="orderId" :id="'table-'+$options.name" name="table"
+                       @pageChange="orderPageSizeChange" :refreshSelect="false" :show-footer="true"
+                       ref="orderTable2" :data="purOrderList" :height="tableHeight - 140" :choose-flag="false">
+                <DkTableColumn field="purNo" width="200px"></DkTableColumn>
+                <DkTableColumn field="purStatusName" :title="$t('orderStatus')" width="120px"></DkTableColumn>
+                <DkTableColumn field="intoStatusName" width="120px"></DkTableColumn>
+                <DkTableColumn field="sumQuantity" width="120px" :title="$t('sumQuantity')" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="sumAmount" width="120px" :title="$t('sumAmount')" :digits="2"
+                               sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoingAmt" width="150px" :digits="2" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoingQty" width="150px" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoAmt" width="150px" :digits="2" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoQty" width="150px"  sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="contactName" width="120px"></DkTableColumn>
+                <DkTableColumn field="contactPhone" width="120px"></DkTableColumn>
+                <DkTableColumn field="whName" :title="$t('whId')" width="180px"></DkTableColumn>
+                <DkTableColumn field="orgName" :title="$t('orgId')" width="180px"></DkTableColumn>
+                <DkTableColumn field="staffName" :title="$t('staffId')" width="120px"></DkTableColumn>
+                <DkTableColumn field="makeTime" width="120px" data-type="dateTime"></DkTableColumn>
+                <DkTableColumn field="remarks" width="250px"></DkTableColumn>
+              </DkTable>
+            </Card>
+          </div>
+        </div>
+
+        <!--采购入库单-->
+        <div slot="21">
+          <div style="margin-top: 5px">
+            <Card>
+              <DkTable :pageFlag="true" primaryKey="outId" :id="'table-'+$options.name" name="table"
+                       @pageChange="outPageSizeChange" :refreshSelect="false" :show-footer="true"
+                       ref="orderTable1" :data="purEnterList" :height="tableHeight - 140" :choose-flag="false">
+                <DkTableColumn field="intoNo"/>
+                <DkTableColumn field="intoStatusName"></DkTableColumn>
+                <DkTableColumn field="intoingQty" dataType="number" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoingAmt" :digits="2" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoQty" dataType="number" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoAmt" :digits="2" dataType="number" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoDate" data-type="date" :dataType="$config.columnType.date"></DkTableColumn>
+                <DkTableColumn field="orgName"></DkTableColumn>
+                <DkTableColumn field="staffName" :title="$t('staffIds')"></DkTableColumn>
+                <DkTableColumn field="makeTime" data-type="dateTime"></DkTableColumn>
+                <DkTableColumn field="remarks"></DkTableColumn>
+              </DkTable>
+            </Card>
+          </div>
+        </div>
+
+        <!--采购退货单-->
+        <div slot="23">
+          <div style="margin-top: 5px">
+            <Card>
+              <DkTable :pageFlag="true" primaryKey="outId" :id="'table-'+$options.name" name="table"
+                       @pageChange="outReturnPageSizeChange2" :refreshSelect="false" :show-footer="true"
+                       ref="orderTable3" :data="purReturnList" :height="tableHeight - 140" :choose-flag="false">
+                <DkTableColumn field="intoNo"/>
+                <DkTableColumn field="intoStatusName"></DkTableColumn>
+                <DkTableColumn field="intoingQty" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoingAmt" :digits="2" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoQty" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoAmt" :digits="2" sum :dataType="$config.columnType.number"></DkTableColumn>
+                <DkTableColumn field="intoDate" :dataType="$config.columnType.date"></DkTableColumn>
+                <DkTableColumn field="orgName"></DkTableColumn>
+                <DkTableColumn field="staffName" :title="$t('staffIds')"></DkTableColumn>
+                <DkTableColumn field="makeTime" data-type="dateTime"></DkTableColumn>
+                <DkTableColumn field="remarks"></DkTableColumn>
+              </DkTable>
+            </Card>
+          </div>
+        </div>
+
+        <!--付款记录-->
+        <div slot="3">
+          <Card>
+            <DkTable :id="'table-'+$options.name" ref="table-select" :data="receiptList"
+                     :pageFlag=true @pageChange="receiptPageSizeChange"
+                     :height="tableHeight - 140" primaryKey="receiptId"
+                     :choose-flag="false"
+                     name="table">
+              <DkTableColumn field="rpNo" :title="$t('paymentNo')"/>
+              <DkTableColumn field="rpTypeName" :title="$t('paymentType')"/>
+              <DkTableColumn field="macNames" :title="$t('macName')"/>
+              <DkTableColumn field="amtPay" :digits="2" sum :dataType="$config.columnType.number"/>
+              <DkTableColumn field="accDate" :title="$t('paymentDate')"/>
+              <DkTableColumn field="orgName"/>
+              <DkTableColumn field="staffName" :title="$t('staffIds')"/>
+              <DkTableColumn field="makeStaffName"/>
+              <DkTableColumn field="makeTime" data-type="dateTime"/>
+              <DkTableColumn field="remarks"/>
+            </DkTable>
+          </Card>
+        </div>
+
+        <!--退款记录-->
+        <div slot="5">
+          <Card>
+            <DkTable :id="'table-'+$options.name" ref="table-select" :data="refundList"
+                     :pageFlag=true @pageChange="refundPageSizeChange"
+                     :height="tableHeight - 140" primaryKey="receiptId"
+                     name="table" :choose-flag="false">
+              <DkTableColumn field="rpNo" :title="$t('paymentNo')"/>
+              <DkTableColumn field="rpTypeName" :title="$t('paymentType')"/>
+              <DkTableColumn field="macNames" :title="$t('macName')"/>
+              <DkTableColumn field="amtPay" :digits="2" sum :dataType="$config.columnType.number"/>
+              <DkTableColumn field="accDate" :title="$t('paymentDate')"/>
+              <DkTableColumn field="orgName"/>
+              <DkTableColumn field="staffName" :title="$t('staffIds')"/>
+              <DkTableColumn field="makeStaffName"/>
+              <DkTableColumn field="makeTime" data-type="dateTime"/>
+              <DkTableColumn field="remarks"/>
+            </DkTable>
+          </Card>
+        </div>
+
+        <!--供应商信息-->
+        <div slot="4">
+          <div style="margin-top: 5px;">
+            <DkRow>
+              <Col span="12">
+                <DkRow style="padding-top: 20px">
+                  <Col class="col" span="12">
+                    {{ $t('supName') + ':' + (formData.supName || '') }}
+                  </Col>
+                  <Col class="col" span="12">
+                    {{ $t('supTypeName') + ':' + (formData.supTypeName || '') }}
+                  </Col>
+                  <Col class="col" span="12">
+                    {{ $t('brandName') + ':' + (formData.brandNames || '') }}
+                  </Col>
+                  <Col class="col" span="12">
+                    {{ $t('contactName') + ':' + (formData.contactName || '') }}
+                  </Col>
+                  <Col class="col" span="12">
+                    {{ $t('contactPhone') + ':' + (formData.contactPhone || '') }}
+                  </Col>
+                  <Col class="col" span="12">
+                    {{ $t('returnAddress') + ':' + (formData.returnAddress || '') }}
+                  </Col>
+                  <Col class="col" span="12">
+                    {{ $t('staffName') + ':' + (formData.staffName || '') }}
+                  </Col>
+                  <Col class="col" span="12">
+                    {{ $t('orgName') + ':' + (formData.orgName || '') }}
+                  </Col>
+                </DkRow>
+              </Col>
+            </DkRow>
+          </div>
+        </div>
+      </DkTabs>
+    </Card>
+  </div>
+</template>
+
+<script>
+
+import {indexMixin} from '@/mixins'
+import XEUtils from "xe-utils";
+
+export default {
+  name: 'supplier-detail',
+  mixins: [indexMixin],
+  data() {
+    let self = this
+    return {
+      XEUtils: XEUtils,
+      formData: {},
+      followList: [],
+      followListOrigin: [],
+      loading: false,
+      orderPageInfo: {
+        pageSize: this.$config.pageSize,
+        currentPage: 1
+      },
+      purEnterList: [],
+      orderPageInfo2: {
+        pageSize: this.$config.pageSize,
+        currentPage: 1
+      },
+      purOrderList: [],
+      outRejectPageInfo: {
+        pageSize: this.$config.pageSize,
+        currentPage: 1
+      },
+      purReturnList: [],
+      receiptPageInfo: {
+        pageSize: this.$config.pageSize,
+        currentPage: 1
+      },
+      refundPageInfo: {
+        pageSize: this.$config.pageSize,
+        currentPage: 1
+      },
+      receiptList: [],
+      refundList: [],
+      tabsModel: '22',
+      tabsOptions: [
+        {label: self.$t('purchase'), name: '22'},
+        {label: self.$t('purEnter'), name: '21'},
+        {label: self.$t('purReturn'), name: '23'},
+        {label: self.$t('paymentRecord'), name: '3'},
+        {label: self.$t('saleRefund'), name: '5'},
+        {label: self.$t('supInfo'), name: '4'},
+      ],
+    }
+  },
+  methods: {
+    /**
+     * @desc   : 通过id查询
+     * @author : 付斌
+     * @date   : 2024-02-01 14:28
+     */
+    detail() {
+      //编辑将只读属性改为true
+      this.loading = true
+      //供应商信息
+      this.excuteNoParam(this.$service.suppliersService, this.$service.suppliersService.selectById, [this.$route.params.id]).then(res => {
+        if (res.code === 200) {
+          // 过滤地址中的undefined
+          if (res.data.addressFull) {
+            res.data.addressFull = res.data.addressFull.replace(/undefined/g, '')
+          }
+          this.formData = res.data
+          this.loading = false
+
+          //查询采购订单
+          this.getPurchase()
+          //查询采购入库单
+          this.getPurEnter()
+          //查询销售退货
+          this.getPurReturn()
+          //查询付款记录
+          this.getReceipt()
+          //查询退款记录
+          this.getRefund()
+        } else {
+          this.$Message.error(res.message)
+          this.loading = false
+        }
+      })
+    },
+    /**
+    * @desc   : 查询采购入库单
+    * @author : 常皓宁
+    * @date   : 2024/7/15 14:40
+    */
+    getPurEnter() {
+      let param = {
+        supId: this.$route.params.id,
+        flgValid: true,
+        intoType: this.$config.intoTypeBySql.purchase,
+        cpId: this.$store.state.user.cpId,
+      }
+      this.excute(this.$service.purEnterService, this.$service.purEnterService.selectTotalDetail, param).then(res=>{
+        if (res.code == 200) {
+          this.purEnterList = res.data.list
+          this.$refs['orderTable1'].pageInfo.total = res.data.total
+        } else {
+          this.$Message.error(res.message)
+        }
+      })
+    },
+    /**
+    * @desc   : 查询采购订单
+    * @author : 常皓宁
+    * @date   : 2024/7/15 14:05
+    */
+    getPurchase() {
+      let param = {
+        supId: this.$route.params.id,
+        flgValid: true,
+        cpId: this.$store.state.user.cpId,
+      }
+      this.excute(this.$service.purOrderService, this.$service.purOrderService.selectTotalDetail, param).then(res=>{
+        if (res.code == 200) {
+          this.purOrderList = res.data.list
+          this.$refs['orderTable2'].pageInfo.total = res.data.total
+        } else {
+          this.$Message.error(res.message)
+        }
+      })
+    },
+    /**
+    * @desc   : 查询采购退货单
+    * @author : 常皓宁
+    * @date   : 2024/7/15 14:49
+    */
+    getPurReturn() {
+      let param = {
+        supId: this.$route.params.id,
+        flgValid: true,
+        intoType: this.$config.intoTypeBySql.purchaseReturn,
+        cpId: this.$store.state.user.cpId,
+      }
+      this.excute(this.$service.purEnterService, this.$service.purEnterService.selectTotalDetail, param).then(res=>{
+        if (res.code == 200) {
+          this.purReturnList = res.data.list
+          this.$refs['orderTable3'].pageInfo.total = res.data.total
+        } else {
+          this.$Message.error(res.message)
+        }
+      })
+    },
+    /**
+     * @desc   : 查询付款记录
+     * @author : 付斌
+     * @date   : 2024-02-01 14:29
+     */
+    getReceipt() {
+      let param = {
+        objectId: this.$route.params.id,
+        rpTypeList:[this.$config.rpType.fuKuan],
+        flgValidList: [true],
+        cpId: this.$store.state.user.cpId,
+      }
+      this.excute(this.$service.receiptService, this.$service.receiptService.getRrpSupList, param).then(res=>{
+        if (res.code == 200) {
+          this.receiptList = res.data.list
+          this.$refs['orderTable2'].pageInfo.total = res.data.total
+        } else {
+          this.$Message.error(res.message)
+        }
+      })
+    },
+    /**
+     * @desc   : 查询退款记录
+     * @author : 常皓宁
+     * @date   : 2024/5/20 16:10
+     */
+    getRefund(){
+      let param = {
+        objectId: this.$route.params.id,
+        rpTypeList: [this.$config.rpType.tuifuKuan],
+        cpId: this.$store.state.user.cpId,
+        flgValidList: [true],
+      }
+      this.excute(this.$service.receiptService, this.$service.receiptService.getRrpSupList, param).then(res=>{
+        if (res.code == 200) {
+          this.refundList = res.data.list
+          this.$refs['orderTable2'].pageInfo.total = res.data.total
+        } else {
+          this.$Message.error(res.message)
+        }
+      })
+    },
+    /**
+     * @desc   : 分页
+     * @author : 付斌
+     * @date   : 2024-02-01 14:29
+     */
+    orderPageSizeChange(pageInfo) {
+      this.orderPageInfo = pageInfo
+      this.getPurchase() // 查询数据
+    },
+    outPageSizeChange(pageInfo) {
+      this.orderPageInfo2 = pageInfo
+      this.getPurEnter() // 查询数据
+    },
+    outReturnPageSizeChange2(pageInfo) {
+      this.outRejectPageInfo = pageInfo
+      this.getPurReturn() // 查询数据
+    },
+    receiptPageSizeChange(pageInfo) {
+      this.receiptPageInfo = pageInfo
+      this.getReceipt() // 查询数据
+    },
+    refundPageSizeChange(pageInfo) {
+      this.receiptPageInfo = pageInfo
+      this.getRefund() // 查询数据
+    },
+  },
+  activated() {
+    //通过id查询
+    this.detail()
+  }
+}
+</script>
+
+
+<style scoped>
+.card{
+  width: 99%;
+  margin-bottom: 10px;
+}
+.col{
+  padding-bottom: 10px;
+}
+.order-info{
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.order-info>div:nth-child(n){
+  text-align: center;
+}
+.yuan-fh{
+  font-size: 8px
+}
+</style>

+ 2 - 0
src/view/mst/supplier/index.vue

@@ -15,6 +15,8 @@
         <BaseIndexButton  ref="enable" name="enable"></BaseIndexButton>
         <!--    停用    -->
         <BaseIndexButton  ref="disable" name="disable"></BaseIndexButton>
+        <!--    查看    -->
+        <BaseIndexButton ref="check" name="check"></BaseIndexButton>
       </template>
       <template #right>
         <!--   新建     -->

+ 2 - 7
src/view/report/detail-report/setting.js

@@ -213,7 +213,6 @@ const data = {
       {itemCode: 'nonStdCode'},
       {itemCode: 'whName'},
       {itemCode: 'skuName'},
-      {itemCode: 'flgViewItem',valueKind:'SWITCH',itemName:'查看明细'},
     ],
     // 列表列
     columns: [
@@ -221,7 +220,7 @@ const data = {
       {field: 'skuName'},
       {field: 'skuModel'},
       {field: 'brandName'},
-      {field: 'categoryName'},
+      {field: 'categoryName',title:$t('catName')},
       {field: 'unitName'},
       {field: 'conversionFactor'},
       {field: 'seriesName'},
@@ -230,7 +229,7 @@ const data = {
       {field: 'priceStandard'},
       {field: 'priceWholesale'},
       {field: 'priceLimited'},
-      {field: 'skuImages'},
+      {field: 'path', title:$t('skuImages'),type:'image'},
       {field: 'nonStdCode'},
       {field: 'invQty',dataType: 'number',align:'right', digits: 2, sum: true},
       {field: 'outingQty',dataType: 'number',align:'right', digits: 2, sum: true},
@@ -240,10 +239,6 @@ const data = {
       {field: 'priceInto'},
       {field: 'remarks', width: 'auto'}
     ],
-    detailColumns:[
-      {field: 'orgCode1'},
-      {field: 'orgName2'},
-    ]
   },
   // 采购明细表
   'pur-detail-report': {

+ 342 - 0
src/view/sale/order-sum-report/index.vue

@@ -0,0 +1,342 @@
+<!-- @desc:销售汇总表查询  @auth:姜宁  @time:2024-07-16 16:28 -->
+<template>
+  <div class="main-div" ref="mainDiv">
+    <!--加载中-->
+    <loading :loading="loading" v-if="!modalVisible"></loading>
+    <BaseIndexButtonGroup id="BaseIndexButtonGroup">
+      <template #left>
+        <!--    查询    -->
+        <BaseIndexButton right-button="user-select" ref="search" name="search"></BaseIndexButton>
+        <!--    清空条件    -->
+        <BaseIndexButton ref="clear" name="clear"></BaseIndexButton>
+      </template>
+
+    </BaseIndexButtonGroup>
+
+    <!--  卡片区  -->
+    <div class="index-card">
+      <!--  查询条件区域  -->
+      <div id="search-cond-div" ref="search-cond-div" class="search-cond-class">
+        <SearchCond ref="searchCond" v-model="searchCond"
+                    @collapse-change="collapseChange" :setFlag="false"
+                    :searchContent="searchContent"
+                    @on-choice-select="handleChoiceSelect"
+        ></SearchCond>
+      </div>
+      <!--  表格部分  -->
+      <div slot="bottom">
+        <DkTabs v-model="detailModel" :options="detailOptions" @on-click="detailTabsClick"></DkTabs>
+        <div v-show="visGoodsDetailFlag">
+          <!--商品汇总-->
+          <DkTable v-show="collectType === 1" :id="'table-'+$options.name"
+                   ref="table-select"
+                   :data="tableData"
+                   showFooter
+                   :height="this.tableHeight-59"
+                   primaryKey="skuId"
+                   @pageChange="pageSizeChange"
+                   :page-total="pageInfo.total"
+                   :current-page="pageInfo.currentPage"
+                   :choose-flag="false"
+                   :page-size-opts="pageSizeOpts"
+                   :page-size="pageInfo.pageSize"
+                   name="table">
+            <DkTableColumn field="skuCode"></DkTableColumn>
+            <DkTableColumn field="skuName"></DkTableColumn>
+            <DkTableColumn field="skuModel"></DkTableColumn>
+            <DkTableColumn field="skuSpec"></DkTableColumn>
+            <DkTableColumn field="seriesName"></DkTableColumn>
+            <DkTableColumn field="brandName"></DkTableColumn>
+            <DkTableColumn field="itemQty" :title="$t('salesQty')" dataType="number" type="link" @on-link="currentIntoRights()"
+                           sum/>
+            <DkTableColumn field="factAmt" :title="$t('salesAmt')" :digits="2" dataType="number" type="link" @on-link="currentIntoRights()"
+                           sum/>
+          </DkTable>
+          <!--客户汇总-->
+          <DkTable v-show="collectType === 2" :id="'table-'+$options.name"
+                   ref="table-select-cus"
+                   :data="tableData"
+                   showFooter
+                   :height="this.tableHeight-59"
+                   primaryKey="cusId"
+                   @pageChange="pageSizeChange"
+                   :page-total="pageInfo.total"
+                   :current-page="pageInfo.currentPage"
+                   :choose-flag="false"
+                   :page-size-opts="pageSizeOpts"
+                   :page-size="pageInfo.pageSize"
+                   name="table">
+            <DkTableColumn field="cusCode"></DkTableColumn>
+            <DkTableColumn field="cusName"></DkTableColumn>
+            <DkTableColumn field="cusPhone"></DkTableColumn>
+            <DkTableColumn field="channelName"></DkTableColumn>
+            <DkTableColumn field="addressFull"></DkTableColumn>
+            <DkTableColumn field="contactName"></DkTableColumn>
+            <DkTableColumn field="contactPhone"></DkTableColumn>
+            <DkTableColumn field="orgName"></DkTableColumn>
+            <DkTableColumn field="itemQty" :title="$t('salesQty')" dataType="number" type="link" @on-link="currentIntoRightsCus()"
+                           sum/>
+            <DkTableColumn field="factAmt" :title="$t('salesAmt')" :digits="2" dataType="number" type="link" @on-link="currentIntoRightsCus()"
+                           sum/>
+          </DkTable>
+        </div>
+        <div v-show="visIntoDetailFlag">
+          <DkTable :id="'table-'+$options.name" ref="detail-select" :data="intoDetailData" showFooter
+                   :height="this.tableHeight -35"
+                   primaryKey="invId"
+                   @pageChange="pageSizeChange"
+                   :page-total="pageInfo.total"
+                   :current-page="pageInfo.currentPage"
+                   :choose-flag="false"
+                   :page-size-opts="pageSizeOpts"
+                   :page-size="pageInfo.pageSize"
+                   name="table">
+            <DkTableColumn field="orderNo"/>
+            <DkTableColumn field="cusName"/>
+            <DkTableColumn field="cusPhone"/>
+            <DkTableColumn field="contactName"/>
+            <DkTableColumn field="statusName" :title="$t('outStatusName')" :color-cards="['待出库','出库中','已出库','已退货']"/>
+            <DkTableColumn field="skuCode"></DkTableColumn>
+            <DkTableColumn field="skuName"></DkTableColumn>
+            <DkTableColumn field="skuModel"></DkTableColumn>
+            <DkTableColumn field="skuSpec"></DkTableColumn>
+            <DkTableColumn field="seriesName"></DkTableColumn>
+            <DkTableColumn field="brandName"></DkTableColumn>
+            <DkTableColumn field="itemQty" :title="$t('salesQty')" dataType="number" sum/>
+            <DkTableColumn field="factAmt" :title="$t('salesAmt')" :digits="2" dataType="number" sum/>
+            <DkTableColumn field="discount" :digits="2" dataType="number"/>
+            <DkTableColumn field="outingQty" dataType="number" sum/>
+            <DkTableColumn field="outQty" dataType="number" sum/>
+            <DkTableColumn field="returnQty" dataType="number" sum/>
+            <DkTableColumn field="nonStdCode"/>
+            <DkTableColumn field="flgGift" type="switch"/>
+<!--            <DkTableColumn field="makeStaffName"/>-->
+            <DkTableColumn field="makeTime" data-type="dateTime"/>
+            <DkTableColumn field="remarks"/>
+          </DkTable>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {indexMixin} from '@/mixins'
+import Config from "@/config";
+
+export default {
+  name: "order-sum-report",
+  mixins: [indexMixin],
+  data() {
+    let self = this
+    return {
+      tableDataCus: [],
+      tableDataGoods: [],
+      detailModel: 'ordGoodsSumDetail',
+      detailOptions: [
+        {label: self.$t('ordGoodsSumDetail'), name: 'ordGoodsSumDetail'}, //销售汇总数据
+        {label: self.$t('ordGoodsDetail'), name: 'ordGoodsDetail'}, //入库明细
+      ],
+      tableData: [],         // 库存商品
+      intoDetailData: [],    // 入库明细
+      visGoodsDetailFlag: true,
+      visIntoDetailFlag: false,
+      collectType: 1,
+      searchContent:
+        [
+          {
+            itemCode: '汇总类型-下拉',
+            itemName: 'collectType',
+            valueFormat: {
+              code: 'type',
+              data: [
+                {collectType: 1, collectTypeName: '商品'},
+                {collectType: 2, collectTypeName: '客户'}],
+              valueKey: 'collectType',
+              labelKey: 'collectTypeName',
+              default: 1,
+            },
+            required: true,
+            valueKind: 'S-CHOICE'
+          },
+          {
+            itemCode: 'skuModel',
+          },
+          {
+            itemCode: 'skuName',
+          },
+          {
+            itemCode: 'brandName',
+          },
+          {
+            itemCode: 'skuSpec',
+          },
+          {
+            itemCode: 'seriesName',
+          },
+          {
+            itemCode: 'cusName',
+          },
+          {
+            itemCode: 'cusPhone',
+          },
+          {
+            itemCode: 'nonStdCode',
+          },
+          {
+            itemCode: 'accDate',
+            valueFormat: {
+              code: 'accDate',
+              default: [new Date().addMonths(-1).format('yyyy-MM-dd'), new Date().format('yyyy-MM-dd')]
+            },
+            valueKind: 'DATE_RANGE',
+          },
+        ],
+      // 查询条件
+      searchCond: {}
+    }
+  },
+  methods: {
+    handleChoiceSelect(e) {
+      this.tableData = []
+      this.intoDetailData = []
+      this.collectType = e
+    },
+    /**
+     * @desc   : 查询数据
+     * @author : 姜宁
+     * @date   : 024/7/16 10:42
+     */
+    getData(params) {
+      // 清空数据
+      this.tableData = [];
+      this.intoDetailData = [];
+      this.outDetailData = [];
+      // 自动显示收发存数据
+      this.detailModel = 'ordGoodsSumDetail'
+      this.visGoodsDetailFlag = true
+      this.visIntoDetailFlag = false
+      return this.excute(this.$service.detailReportService, this.$service.detailReportService.getOrderSummary, params);
+      // let excute = this.excute(this.$service.detailReportService, this.$service.detailReportService.detailReportService, params).then(res => {
+      //   if (res && res.code === this.$config.SUCCESS_CODE) {
+      //     this.tableData = res.data.detail;
+      //     this.loading = false;
+      //   }
+      // })
+      // return excute
+    },
+
+    /**
+     * @desc   : 点击Tab进行切换
+     * @author : 姜宁
+     * @date   : 2024/7/16 16:24
+     */
+    detailTabsClick(val) {
+      if (val === 'ordGoodsSumDetail') {
+        this.detailModel = val
+        this.visGoodsDetailFlag = true
+        this.visIntoDetailFlag = false
+      } else if (val === 'ordGoodsDetail' && this.intoDetailData.length > 0) {
+        this.detailModel = val
+        this.visGoodsDetailFlag = false
+        this.visIntoDetailFlag = true
+      }
+    },
+    /**
+     * @desc   : 赋值查询条件
+     * @author : 姜宁
+     * @date   : 2024/7/16 10:44
+     */
+    setSearchParams(params) {
+      // 赋值JSON查询条件
+      let skuquerys = {}
+      if (this.searchCond && this.searchCond._value) {
+        Object.assign(skuquerys, this.searchCond._value)
+      }
+      let skuQuerystr = JSON.stringify(skuquerys);
+      if (skuQuerystr && skuQuerystr != '{}') {
+        params['querys'] = skuQuerystr;
+      }
+      return params;
+    },
+
+    /**
+     * @desc   : 销售汇总点击跳转事件
+     * @author : 姜宁
+     * @date   : 2024/7/16 13:22
+     */
+    currentIntoRights(row) {
+      this.intoDetailData = [];
+      if (!row) {
+        row = [this.$refs['table-select'].getCurrentRow()]
+      }
+      let searchParams = {...this.searchParams};
+      let params = {}
+      if (row != null) {
+        let sku = {
+          skuId: row[0].skuId,
+          skuModel:row[0].skuModel,
+        }
+        params = Object.assign(params,searchParams,sku)
+        // 赋值JSON查询条件
+        let skuQuerystr = JSON.stringify(params);
+        if (skuQuerystr && skuQuerystr != '{}') {
+          params['querys'] = skuQuerystr;
+        }
+      }
+      // 查询入库明细
+      this.excute(this.$service.detailReportService, this.$service.detailReportService.getOrderSummaryItem, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.intoDetailData = res.data.detail;
+          // 显示入库明细信息页面
+          this.detailModel = 'ordGoodsDetail'
+          this.visGoodsDetailFlag = false
+          this.visIntoDetailFlag = true
+        }
+      })
+    },
+
+    /**
+     * @desc   : 销售客户汇总跳转明细
+     * @author : 姜宁
+     * @date   : 2024/7/17 16:38
+     */
+    currentIntoRightsCus(row) {
+      this.intoDetailData = [];
+      if (!row) {
+        row = [this.$refs['table-select-cus'].getCurrentRow()]
+      }
+      let searchParams = {...this.searchParams};
+      let params = {}
+      if (row != null) {
+        let sku = {
+          cusId: row[0].cusId,
+          skuModel:row[0].skuModel,
+        }
+        params = Object.assign(params,searchParams,sku)
+        // 赋值JSON查询条件
+        let skuQuerystr = JSON.stringify(params);
+        if (skuQuerystr && skuQuerystr != '{}') {
+          params['querys'] = skuQuerystr;
+        }
+      }
+      // 查询入库明细
+      this.excute(this.$service.detailReportService, this.$service.detailReportService.getOrderSummaryItem, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.intoDetailData = res.data.detail;
+          // 显示入库明细信息页面
+          this.detailModel = 'ordGoodsDetail'
+          this.visGoodsDetailFlag = false
+          this.visIntoDetailFlag = true
+        }
+      })
+    },
+  },
+  created() {
+    this.primaryKey = 'cusId'  // 设置主键Id
+    this.routeObjName = 'detailReport'  // 设置路由名称
+  }
+}
+</script>
+
+

+ 3 - 3
src/view/sale/order-track-report/index.vue

@@ -84,7 +84,7 @@
     </DkCollapse>
     <!--    出库单-->
     <DkCollapse @on-change="changeCollapse" ref="collapse" v-if="this.tabsModel ==='outbound' ">
-      <DkTabs v-model="tabsModelOut" :options="tabsOptionsOut" @on-click="tabsClickOut"></DkTabs>
+      <DkTabs v-model="tabsModelOut" :options="tabsOptionsOut" @on-click="tabsClickOut" v-if="tabsOptionsOut.length>0"></DkTabs>
       <DkPanel prop="essentialInformation">
         <!--  单据信息  -->
         <DkForm slot="content" ref="formInline" v-model="ordOutboundData"
@@ -174,7 +174,7 @@
     </DkCollapse>
     <!-- 退货单-->
     <DkCollapse @on-change="changeCollapse" ref="collapse" v-if="this.tabsModel ==='ordOutReturn' ">
-      <DkTabs v-model="tabsModelOutReturn" :options="tabsOptionsOutReturn" @on-click="tabsClickOutReturn"></DkTabs>
+      <DkTabs v-model="tabsModelOutReturn" :options="tabsOptionsOutReturn" @on-click="tabsClickOutReturn" v-if="tabsOptionsOutReturn.length>0"></DkTabs>
       <DkPanel prop="essentialInformation">
         <!--  单据信息  -->
         <DkForm slot="content" ref="formInline" v-model="ordOutReturnData"
@@ -255,7 +255,7 @@
     </DkCollapse>
     <!--   订单收款-->
     <DkCollapse @on-change="changeCollapse" ref="collapse" v-if="this.tabsModel ==='ordRecPay' ">
-      <DkTabs v-model="tabsModelRecPay" :options="tabsOptionsRecPay" @on-click="tabsClickRecPay"></DkTabs>
+      <DkTabs v-model="tabsModelRecPay" :options="tabsOptionsRecPay" @on-click="tabsClickRecPay" v-if="tabsOptionsRecPay.length>0"></DkTabs>
       <DkPanel prop="essentialInformation">
         <!--  单据信息  -->
         <DkForm slot="content" ref="formInline" v-model="ordRecPayData"