瀏覽代碼

Merge branch 'develop_yh08' of jianguan-web/qpls-md-html into pre-release

李磊 2 年之前
父節點
當前提交
22913e1150

+ 1 - 1
public/version.json

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

+ 1 - 1
src/api/sales.js

@@ -134,7 +134,7 @@ export const supperCodeByVin = (params) => {
 // 销售 详情  打印
 export const salesDetailPrint = params => {
   const data = {
-    url: `/sales/print/${params.sn}/${params.type}/${params.printOrgCode}`,
+    url: `/sales/print/${params.sn}/${params.type}/${params.printOrgCode}/${params.printAllName}`,
     method: 'get'
   }
   // 喷墨打印

+ 6 - 0
src/api/settleExpense.js

@@ -43,6 +43,12 @@ export const findExpenseDetail = (params) => {
     method: 'get'
   })
 }
+export const findExpenseDetailBySn = (params) => {
+  return axios({
+    url: `settle/expense/findBySn/${params.sn}`,
+    method: 'get'
+  })
+}
 
 // 删除
 export const delExpense = (params) => {

+ 6 - 0
src/api/sparePartsPur.js

@@ -73,6 +73,12 @@ export const sparePartsPurDetail = (params) => {
     method: 'get'
   })
 }
+export const sparePartsPurDetailBySn = (params) => {
+  return axios({
+    url: `/sparePartsPur/findBySn/${params.sn}`,
+    method: 'get'
+  })
+}
 //  散件采购(入库)详情列表  分页
 export const sparePartsPurDetailList = (params) => {
   const url = `/sparePartsPur/detail/queryPage/${params.pageNo}/${params.pageSize}`

+ 12 - 6
src/views/allocationManagement/chainTransferIn/detail.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="chainTransferInDetail-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
-      <a-page-header :ghost="false" :backIcon="false" class="chainTransferInDetail-cont" >
+      <a-page-header :ghost="false" :backIcon="false" class="chainTransferInDetail-cont" :style="{ padding: !outBizSn ? '16px 24px' : '0px 24px' }">
         <!-- 自定义的二级文字标题 -->
-        <template slot="subTitle">
+        <template slot="subTitle" v-if="!outBizSn">
           <a id="chainTransferInDetail-back-btn" href="javascript:;" @click="handleBack"><a-icon type="left" /> 返回列表</a>
           <a-button
             v-if="isEdit&&$hasPermissions('B_allocLinkagePutEdit')"
@@ -69,12 +69,18 @@ export default {
   name: 'AllocLinkagePutDetail',
   components: { STable, VSelect, Print },
   mixins: [commonMixin],
+  props: {
+    outBizSn: { //  有值则为弹框,无值则为页面
+      type: [Number, String],
+      default: ''
+    }
+  },
   data () {
     return {
       spinning: false,
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        const params = Object.assign(parameter, { allocationLinkagePutSn: this.$route.params.sn })
+        const params = Object.assign(parameter, { allocationLinkagePutSn: this.outBizSn || this.$route.params.sn })
         this.spinning = true
         return allocLinkagePutDetailList(params).then(res => {
           let data
@@ -129,7 +135,7 @@ export default {
     },
     // 基本信息
     getDetail () {
-      allocLinkagePutDetailSn({ sn: this.$route.params.sn }).then(res => {
+      allocLinkagePutDetailSn({ sn: this.outBizSn || this.$route.params.sn }).then(res => {
         if (res.status == 200) {
           this.basicInfoData = res.data
         } else {
@@ -156,7 +162,7 @@ export default {
       const _this = this
       _this.spinning = true
       const url = allocLinkagePutDetailPrint
-      const params = { sn: this.$route.params.sn, type: printerType, showFlag: this.$hasPermissions('M_ShowAllCost') ? 1 : 0 }
+      const params = { sn: this.outBizSn || this.$route.params.sn, type: printerType, showFlag: this.$hasPermissions('M_ShowAllCost') ? 1 : 0 }
       // 打印或导出
       hdPrint(printerType, type, url, params, '连锁调入单', function () {
         _this.spinning = false
@@ -164,7 +170,7 @@ export default {
     }
   },
   mounted () {
-    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+    if (!this.$store.state.app.isNewTab || this.outBizSn) { // 页签刷新时调用
       this.$refs.table.refresh(true)
       this.getDetail()
     }

+ 15 - 9
src/views/bulkManagement/bulkWarehousingOrder/detail.vue

@@ -1,12 +1,12 @@
 <template>
   <div class="bulkWarehousingOrderDetail-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
-      <a-page-header :ghost="false" :backIcon="false" class="bulkWarehousingOrderDetail-cont" >
+      <a-page-header :ghost="false" :backIcon="false" class="bulkWarehousingOrderDetail-cont" :style="{ padding: !outBizSn ? '16px 24px' : '0px 24px' }">
         <!-- 自定义的二级文字标题 -->
         <template slot="subTitle">
-          <a id="bulkWarehousingOrderDetail-back-btn" href="javascript:;" @click="handleBack"><a-icon type="left" /> 返回列表</a>
+          <a id="bulkWarehousingOrderDetail-back-btn" href="javascript:;" @click="handleBack" v-if="!outBizSn"><a-icon type="left" /> 返回列表</a>
           <a-button
-            v-if="isEdit"
+            v-if="isEdit&&!outBizSn"
             type="primary"
             size="small"
             style="background-color: #1890ff;margin-left: 20px;border: #1890ff;"
@@ -99,13 +99,19 @@
 import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
 import { getOperationalPrecision } from '@/libs/tools.js'
-import { sparePartsPurDetail, sparePartsPurDetailList, sparePartsPurDetailCount, sparePartsPurDetailPrint } from '@/api/sparePartsPur'
+import { sparePartsPurDetailBySn, sparePartsPurDetailList, sparePartsPurDetailCount, sparePartsPurDetailPrint } from '@/api/sparePartsPur'
 import Print from '@/views/common/print.vue'
 import { hdPrint } from '@/libs/JGPrint'
 export default {
   name: 'BulkWarehousingDetail',
   components: { STable, VSelect, Print },
   mixins: [commonMixin],
+  props: {
+    outBizSn: { //  有值则为弹框,无值则为页面
+      type: [Number, String],
+      default: ''
+    }
+  },
   data () {
     return {
       spinning: false,
@@ -125,7 +131,7 @@ export default {
       loadData: parameter => {
         this.disabled = true
         this.spinning = true
-        return sparePartsPurDetailList(Object.assign(parameter, { sparePartsPurchaseSn: this.$route.params.sn })).then(res => {
+        return sparePartsPurDetailList(Object.assign(parameter, { sparePartsPurchaseSn: this.outBizSn || this.$route.params.sn })).then(res => {
           let data
           if (res.status == 200) {
             data = res.data
@@ -162,7 +168,7 @@ export default {
       const _this = this
       _this.spinning = true
       const url = sparePartsPurDetailPrint
-      const params = { sn: this.$route.params.sn, type: printerType }
+      const params = { sn: this.outBizSn || this.$route.params.sn, type: printerType }
       // 打印或导出
       hdPrint(printerType, type, url, params, '散件入库单', function () {
         _this.spinning = false
@@ -170,7 +176,7 @@ export default {
     },
     // 基本信息
     getDetail () {
-      sparePartsPurDetail({ id: this.$route.params.id }).then(res => {
+      sparePartsPurDetailBySn({ sn: this.outBizSn || this.$route.params.sn }).then(res => {
         if (res.status == 200) {
           this.basicInfoData = res.data
         } else {
@@ -180,7 +186,7 @@ export default {
     },
     // 合计
     getDetailCount () {
-      sparePartsPurDetailCount({ sparePartsPurchaseSn: this.$route.params.sn }).then(res => {
+      sparePartsPurDetailCount({ sparePartsPurchaseSn: this.outBizSn || this.$route.params.sn }).then(res => {
         if (res.status == 200) {
           this.productTotal = res.data
         } else {
@@ -194,7 +200,7 @@ export default {
     }
   },
   mounted () {
-    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+    if (!this.$store.state.app.isNewTab || this.outBizSn) { // 页签刷新时调用
       this.$refs.table.refresh(true)
       this.getDetail()
       this.getDetailCount()

+ 17 - 3
src/views/financialManagement/financialCollection/list.vue

@@ -45,6 +45,11 @@
                   <rangeDate ref="rangeDate" @change="dateChange" />
                 </a-form-item>
               </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-item label="收款时间">
+                  <rangeDate ref="settleDate" @change="settleChange" />
+                </a-form-item>
+              </a-col>
             </template>
             <a-col :md="6" :sm="24">
               <span class="table-page-search-submitButtons">
@@ -96,7 +101,7 @@
       >
         <!-- 关联单号 -->
         <template slot="bizNo" slot-scope="text, record">
-          <span class="table-td-link" v-if="$hasPermissions('B_salesDetail')" @click="handleDetail(record)">{{ record.bizNo }}</span>
+          <span class="table-td-link" @click="handleDetail(record)">{{ record.bizNo }}</span>
         </template>
         <!-- 操作 -->
         <template slot="action" slot-scope="text, record">
@@ -196,7 +201,9 @@ export default {
         settleClientName: '',
         billState: '',
         auditBeginDate: '',
-        auditEndDate: ''
+        auditEndDate: '',
+        settleBeginDate: '',
+        settleEndDate: ''
       },
       // 总计
       totalData: {
@@ -290,6 +297,10 @@ export default {
       this.queryParam.beginDate = date[0]
       this.queryParam.endDate = date[1]
     },
+    settleChange (date) {
+      this.queryParam.settleBeginDate = date[0]
+      this.queryParam.settleEndDate = date[1]
+    },
     // 总计
     settleReceiptQuerySum (params) {
       settleReceiptQuerySum(params).then(res => {
@@ -408,6 +419,7 @@ export default {
       if (this.advanced) {
         this.$refs.rangeDate.resetDate()
         this.$refs.createDate.resetDate()
+        this.$refs.settleDate.resetDate()
       }
       this.$refs.table.clearSelected() // 清空表格选中项
       this.queryParam = {
@@ -419,7 +431,9 @@ export default {
         beginDate: '',
         endDate: '',
         auditBeginDate: '',
-        auditEndDate: ''
+        auditEndDate: '',
+        settleBeginDate: '',
+        settleEndDate: ''
       }
     },
     pageInit () {

+ 67 - 0
src/views/financialManagement/financialPayment/expenseDetail.vue

@@ -0,0 +1,67 @@
+<template>
+  <!-- 详情 -->
+  <div class="expenseDetail">
+    <a-descriptions :column="1" size="default">
+      <a-descriptions-item label="费用单号">{{ detailsData&&detailsData.accountExpensesNo || '--' }}</a-descriptions-item>
+      <a-descriptions-item label="费用类型">
+        <div v-if="detailsData&&(detailsData.expensesTypeName1 || detailsData.expensesTypeName2 || detailsData.expensesTypeName3)">
+          {{ detailsData&&detailsData.expensesTypeName1 ? detailsData.expensesTypeName1 : '' }}
+          <span v-if="(detailsData&&detailsData.expensesTypeName1) && (detailsData&&detailsData.expensesTypeName2)"> > </span>
+          {{ detailsData&&detailsData.expensesTypeName2 ? detailsData.expensesTypeName2 : '' }}
+          <span v-if="(detailsData&&detailsData.expensesTypeName2) && (detailsData&&detailsData.expensesTypeName3)"> > </span>
+          {{ detailsData&&detailsData.expensesTypeName3 ? detailsData.expensesTypeName3 : '' }}
+        </div>
+        <span v-else>--</span>
+      </a-descriptions-item>
+      <a-descriptions-item label="费用金额">¥{{ detailsData&&detailsData.settleAmount || '--' }}</a-descriptions-item>
+      <a-descriptions-item label="单据状态">{{ detailsData&&detailsData.stateDictValue || '--' }}</a-descriptions-item>
+      <a-descriptions-item label="备注">{{ detailsData&&detailsData.remark || '--' }}</a-descriptions-item>
+    </a-descriptions>
+  </div>
+</template>
+
+<script>
+import { findExpenseDetailBySn } from '@/api/settleExpense'
+export default {
+  name: 'ExpenseManagementDetail',
+  props: {
+    outBizSn: {
+      type: [Number, String],
+      default: ''
+    }
+  },
+  data () {
+    return {
+      isShow: this.openModal, //  是否打开弹框
+      detailsData: null
+    }
+  },
+  mounted () {
+    if (this.outBizSn) {
+      this.getDetail()
+    }
+  },
+  methods: {
+    //  获取详情
+    getDetail () {
+      findExpenseDetailBySn({ sn: this.outBizSn }).then(res => {
+        if (res.status == 200) {
+          this.detailsData = res.data
+        } else {
+          this.detailsData = null
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .expenseDetail{
+    padding: 40px 30px;
+    .btn-cont {
+      text-align: center;
+      margin: 35px 0 10px;
+    }
+  }
+</style>

+ 82 - 5
src/views/financialManagement/financialPayment/list.vue

@@ -15,7 +15,7 @@
               <a-form-item label="付款单号"><a-input id="finacialPay-settleNo" v-model.trim="queryParam.settleNo" allowClear placeholder="请输入付款单号" /></a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
-              <a-form-item label="发货单号"><a-input id="finacialPay-bizNo" v-model.trim="queryParam.bizNo" allowClear placeholder="请输入发货单号" /></a-form-item>
+              <a-form-item label="关联单号"><a-input id="finacialPay-bizNo" v-model.trim="queryParam.bizNo" allowClear placeholder="请输入关联单号" /></a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
               <a-form-item label="商户名称">
@@ -44,6 +44,11 @@
                   <rangeDate ref="rangeDate" @change="dateChange" />
                 </a-form-item>
               </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-item label="付款时间">
+                  <rangeDate ref="settleDate" @change="settleChange" />
+                </a-form-item>
+              </a-col>
             </template>
             <a-col :md="6" :sm="24">
               <span class="table-page-search-submitButtons">
@@ -93,6 +98,11 @@
         :defaultLoadData="false"
         bordered
       >
+        <!-- 关联单号 -->
+        <template slot="bizNo" slot-scope="text, record">
+          <span v-if="$hasPermissions('B_purchaseDetail')||$hasPermissions('B_salesReturnDetail')||$hasPermissions('B_bulkWarehousingOrder_detail')||$hasPermissions('B_allocLinkagePutDetail')||$hasPermissions('B_expenseDetail')" class="table-td-link" @click="handleDetail(record)">{{ record.bizNo }}</span>
+          <span v-else>{{ record.bizNo }}</span>
+        </template>
         <!-- 操作 -->
         <template slot="action" slot-scope="text, record">
           <a-button
@@ -118,6 +128,32 @@
     <detail-modal :openModal="openModal" ref="detailModal" @close="openModal = false" />
     <!-- 收付款弹框 -->
     <settleModal ref="settleModal" @ok="settleAcountPay" :openModal="openSettleModal" @close="openSettleModal=false"></settleModal>
+    <!-- 关联单号详情 -->
+    <a-modal
+      centered
+      class="bizOrderDetail-modal"
+      :footer="null"
+      :maskClosable="false"
+      :bodyStyle="{padding:'12px'}"
+      :title="curBizTitle"
+      v-model="openDetailModal"
+      v-if="openDetailModal"
+      @cancel="handleDetailClose"
+      :width="fcBizType=='COST'?'50%':'80%'">
+      <div style="max-height: 700px;overflow-y: auto;">
+        <!-- 采购入库 -->
+        <purchasDetail v-if="fcBizType=='PURCHASE'" :outBizSn="orderSn" />
+        <stockOrderDetail v-if="fcBizType=='PURCHASE-FH'" :outBizSn="orderSn" />
+        <!-- 销售退货 -->
+        <salesReturnDetail v-if="fcBizType=='SELL_REFUND'" :outBizSn="orderSn" />
+        <!-- 连锁调入 -->
+        <chainTransInDetail v-if="fcBizType=='LINKAGE_CALL_IN'" :outBizSn="orderSn" />
+        <!-- 散件入库 -->
+        <bulkWareDetail v-if="fcBizType=='PARTS_INPUT'" :outBizSn="orderSn" />
+        <!-- 费用 -->
+        <expenseDetail v-if="fcBizType=='COST'" :outBizSn="orderSn" ></expenseDetail>
+      </div>
+    </a-modal>
   </a-card>
 </template>
 
@@ -129,9 +165,15 @@ import detailModal from './detailModal.vue'
 import settleModal from '../settleModal/settleModal.vue'
 import { settlePayQuery, queryByTypeSum, settlePayMoney, settlePayQuerySum } from '@/api/settlePay.js'
 import rangeDate from '@/views/common/rangeDate.vue'
+import purchasDetail from '@/views/purchasingManagement/purchaseOrder/detail'
+import stockOrderDetail from '@/views/purchasingManagement/signWarehousing/stockOrderDetail'
+import salesReturnDetail from '@/views/salesManagement/salesReturn/detail'
+import chainTransInDetail from '@/views/allocationManagement/chainTransferIn/detail'
+import bulkWareDetail from '@/views/bulkManagement/bulkWarehousingOrder/detail'
+import expenseDetail from './expenseDetail'
 export default {
   name: 'FinancialPaymentList',
-  components: { STable, VSelect, detailModal, rangeDate, settleModal },
+  components: { STable, VSelect, detailModal, rangeDate, settleModal, salesReturnDetail, chainTransInDetail, bulkWareDetail, expenseDetail, purchasDetail, stockOrderDetail },
   mixins: [commonMixin],
   data () {
     return {
@@ -143,6 +185,10 @@ export default {
       enableFundAccount: false, // 是否开启资金账户管理
       tableHeight: 0,
       curBizType: 'ALL',
+      openDetailModal: false, // 关联单详情
+      curBizTitle: '',
+      fcBizType: '',
+      orderSn: null,
       // 查询参数
       queryParam: {
         bizType: 'ALL',
@@ -151,7 +197,9 @@ export default {
         settleClientName: '',
         billState: '',
         auditBeginDate: '',
-        auditEndDate: ''
+        auditEndDate: '',
+        settleBeginDate: '',
+        settleEndDate: ''
       },
       // 总计
       totalData: {
@@ -164,7 +212,7 @@ export default {
       columns: [
         { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
         { title: '付款单号', dataIndex: 'settleNo', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '发货单号', dataIndex: 'bizNo', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '关联单号', dataIndex: 'bizNo', scopedSlots: { customRender: 'bizNo' }, width: '14%', align: 'center' },
         { title: '商户名称', dataIndex: 'settleClientName', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '应付金额', dataIndex: 'totalAmount', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? ('¥' + text) : '--') } },
         { title: '已付金额', dataIndex: 'settledAmount', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? ('¥' + text) : '--') } },
@@ -214,6 +262,28 @@ export default {
     }
   },
   methods: {
+    // 查看关联单号
+    handleDetail (row) {
+      console.log(row)
+      this.orderSn = row.bizSn
+      this.fcBizType = row.bizType
+      // 采购但
+      if (row.bizType == 'PURCHASE') {
+        if (row.bizNo.indexOf('FH') >= 0) {
+          this.fcBizType = this.fcBizType + '-FH'
+        }
+        if (row.bizNo.indexOf('SH') >= 0) {
+          this.fcBizType = this.fcBizType + '-FH'
+        }
+      }
+      this.curBizTitle = row.bizTypeDictValue + '详情'
+      this.openDetailModal = true
+    },
+    handleDetailClose () {
+      this.openDetailModal = false
+      this.fcBizType = null
+      this.orderSn = null
+    },
     ...mapActions(['GetSettleAccountState']),
     // 表格选中项
     rowSelectionFun (obj) {
@@ -229,6 +299,10 @@ export default {
       this.queryParam.beginDate = date[0]
       this.queryParam.endDate = date[1]
     },
+    settleChange (date) {
+      this.queryParam.settleBeginDate = date[0]
+      this.queryParam.settleEndDate = date[1]
+    },
     // 总计
     settlePayQuerySum (params) {
       settlePayQuerySum(params).then(res => {
@@ -348,6 +422,7 @@ export default {
       if (this.advanced) {
         this.$refs.rangeDate.resetDate()
         this.$refs.createDate.resetDate()
+        this.$refs.settleDate.resetDate()
       }
       this.$refs.table.clearSelected() // 清空表格选中项
       this.queryParam = {
@@ -359,7 +434,9 @@ export default {
         beginDate: '',
         endDate: '',
         auditBeginDate: '',
-        auditEndDate: ''
+        auditEndDate: '',
+        settleBeginDate: '',
+        settleEndDate: ''
       }
     },
     pageInit () {

+ 13 - 5
src/views/inventoryManagement/inventoryChecking/detailModal.vue

@@ -32,7 +32,7 @@
             class="button-warning"
             id="inventoryCheckingDetail-export-btn"
             :disabled="localDataSource.length==0"
-            @click="handlePrint('export')">导出Excel</a-button>
+            @click="handleExport('export')">导出Excel</a-button>
         </div>
         <a-descriptions size="small" :column="2">
           <a-descriptions-item label="盘点单号" :span="2">
@@ -152,6 +152,8 @@
     <print-modal :openModal="openPrintModal" :itemData="basicInfoData" :nowType="nowType" @ok="handleOk" @close="openPrintModal=false" />
     <!-- 打印 -->
     <div id="print"></div>
+    <!-- 导出选择弹框 -->
+    <exportModal :openModal="exportShow" :itemData="basicInfoData" :nowType="nowType" @ok="handlePrint" @close="exportShow=false" />
   </a-modal>
 </template>
 
@@ -160,12 +162,13 @@ import { commonMixin } from '@/utils/mixin'
 import { hdPrint } from '@/libs/JGPrint.js'
 import { STable } from '@/components'
 import printModal from './printModal.vue'
+import exportModal from './exportModal.vue'
 import ProductType from '@/views/common/productType.js'
 import { formatDecimal } from '@/libs/tools'
 import { checkWarehouseDetailList, checkWarehouseDetail, checkWarehouseDetailCount, checkWarehouseDetailExport, checkWarehouseDetailPrint, checkWarehouseWarehouse } from '@/api/checkWarehouse'
 export default {
   name: 'InventoryCheckingDetailModal',
-  components: { STable, ProductType, printModal },
+  components: { STable, ProductType, printModal, exportModal },
   mixins: [commonMixin],
   props: {
     openModal: { //  弹框显示状态
@@ -183,6 +186,7 @@ export default {
       isShow: this.openModal, //  是否打开弹框
       disabled: false,
       advanced: false,
+      exportShow: false,
       queryParam: {
         productName: '',
         productCode: '',
@@ -302,11 +306,15 @@ export default {
         }
       })
     },
+    handleExport () {
+      this.exportShow = true
+    },
     // 打印导出
-    handlePrint (type) {
+    handlePrint (type, data) {
       if (type == 'export') {
+        this.exportShow = false
         this.nowType = type
-        this.handleOk()
+        this.handleOk(data)
       } else {
         this.nowType = type
         this.openPrintModal = true
@@ -318,7 +326,7 @@ export default {
       let url = checkWarehouseDetailPrint //  打印
       if (this.nowType == 'export') { //  导出
         url = checkWarehouseDetailExport
-        params = { checkWarehouseSn: this.itemSn }
+        params = { checkWarehouseSn: this.itemSn, ...objs }
         type = 'export'
       } else { //  打印
         params = JSON.parse(JSON.stringify(objs))

+ 88 - 0
src/views/inventoryManagement/inventoryChecking/exportModal.vue

@@ -0,0 +1,88 @@
+<template>
+  <a-modal
+    v-model="isShow"
+    :footer="null"
+    class="inventoryChecking-print-type-modal"
+    :maskClosable="false"
+    centered
+    title="导出excel"
+    @cancel="isShow=false"
+  >
+    <div style="line-height: 48px;padding: 0 30px;">
+      <div>盘点单号:{{ itemData&&itemData.checkWarehouseNo }}</div>
+      <div>盘点类型:{{ (itemData&&itemData.checkTypeDictValue) || '--' }}
+        <span v-if="itemData&&itemData.checkType=='SELECT'">({{ (itemData&&itemData.warehouseFlagDictValue) || '--' }})</span>
+      </div>
+      <div>产品范围:
+        <a-radio-group v-model="productScopeFlag">
+          <a-radio :value="true">
+            所有盘点产品
+          </a-radio>
+          <a-radio :value="false">
+            有盈亏的产品
+          </a-radio>
+        </a-radio-group>
+      </div>
+      <div class="btn-cont" style="text-align: center;padding-top: 20px;">
+        <a-button id="inventoryChecking-export-save" @click="isShow=false">取消</a-button>
+        <a-button type="primary" id="inventoryChecking-export-back" @click="handleSave()" style="margin-left: 15px;">确定导出</a-button>
+      </div>
+    </div>
+  </a-modal>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+export default {
+  mixins: [commonMixin],
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    itemData: {
+      type: Object,
+      default: () => {
+        return null
+      }
+    },
+    nowType: {
+      type: String,
+      default: ''
+    }
+  },
+  data () {
+    return {
+      isShow: this.openModal, //  是否打开弹框
+      productScopeFlag: true
+    }
+  },
+  methods: {
+    // 确认
+    handleSave () {
+      this.$emit('ok', 'export', { productScopeFlag: this.productScopeFlag })
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .inventoryChecking-print-type-modal{
+    .btn-cont {
+      text-align: center;
+      margin: 15px 0 10px;
+    }
+  }
+</style>

+ 7 - 36
src/views/inventoryManagement/inventoryChecking/makeInventory.vue

@@ -167,35 +167,7 @@
     <!-- 打印 -->
     <div id="print"></div>
     <!-- 导出选择弹框 -->
-    <a-modal
-      v-model="exportShow"
-      :footer="null"
-      :maskClosable="false"
-      centered
-      title="导出excel"
-      @cancel="exportShow=false"
-    >
-      <div style="line-height: 48px;padding: 0 30px;">
-        <div>盘点单号:{{ basicInfoData&&basicInfoData.checkWarehouseNo }}</div>
-        <div>盘点类型:{{ (basicInfoData&&basicInfoData.checkTypeDictValue) || '--' }}
-          <span v-if="basicInfoData&&basicInfoData.checkType=='SELECT'">({{ (basicInfoData&&basicInfoData.warehouseFlagDictValue) || '--' }})</span>
-        </div>
-        <div>产品范围:
-          <a-radio-group v-model="productScopeFlag">
-            <a-radio :value="true">
-              所有盘点产品
-            </a-radio>
-            <a-radio :value="false">
-              有盈亏的产品
-            </a-radio>
-          </a-radio-group>
-        </div>
-        <div class="btn-cont" style="text-align: center;padding-top: 40px;">
-          <a-button id="inventoryChecking-export-save" @click="exportShow=false">取消</a-button>
-          <a-button type="primary" id="inventoryChecking-export-back" @click="handlePrint('export')" style="margin-left: 15px;">确定导出</a-button>
-        </div>
-      </div>
-    </a-modal>
+    <exportModal :openModal="exportShow" :itemData="basicInfoData" :nowType="nowType" @ok="handlePrint" @close="exportShow=false" />
   </div>
 </template>
 
@@ -204,11 +176,12 @@ import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
 import ProductType from '@/views/common/productType.js'
 import printModal from './printModal.vue'
+import exportModal from './exportModal.vue'
 import { hdPrint } from '@/libs/JGPrint.js'
 import { checkWarehouseDetailList, checkWarehouseDetailCount, checkWarehouseInventory, checkWarehouseDetail, checkWarehouseDetailSave, checkWarehouseCheckZero, checkWarehouseWarehouse, checkWarehouseDetailExport, checkWarehouseDetailPrint } from '@/api/checkWarehouse'
 export default {
   name: 'MakeInventory',
-  components: { STable, VSelect, ProductType, printModal },
+  components: { STable, VSelect, ProductType, printModal, exportModal },
   mixins: [commonMixin],
   props: {},
   data () {
@@ -253,8 +226,7 @@ export default {
       localDataSource: [],
       openPrintModal: false,
       nowType: null,
-      printerType: 'NEEDLE', //  打印机类型
-      productScopeFlag: true
+      printerType: 'NEEDLE' //  打印机类型
     }
   },
   computed: {
@@ -278,7 +250,6 @@ export default {
   methods: {
     //  重置
     resetSearchForm () {
-      this.productScopeFlag = true
       this.queryParam.productName = ''
       this.queryParam.productCode = ''
       this.queryParam.warehouseSn = undefined
@@ -412,11 +383,11 @@ export default {
       this.exportShow = true
     },
     // 打印导出
-    handlePrint (type) {
+    handlePrint (type, data) {
       if (type == 'export') {
         this.exportShow = false
         this.nowType = type
-        this.handleOk()
+        this.handleOk(data)
       } else {
         this.nowType = type
         this.openPrintModal = true
@@ -429,7 +400,7 @@ export default {
       if (this.nowType == 'export') { //  导出
         url = checkWarehouseDetailExport
         type = 'export'
-        params = { checkWarehouseSn: this.$route.params.sn, productScopeFlag: this.productScopeFlag }
+        params = { checkWarehouseSn: this.$route.params.sn, ...objs }
       } else { //  打印
         params = JSON.parse(JSON.stringify(objs))
         params.printType = this.printerType

+ 24 - 3
src/views/inventoryManagement/inventoryQuery/list.vue

@@ -26,7 +26,7 @@
                   <ProductBrand id="inventoryQueryList-productBrandSn" placeholder="请选择产品品牌" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-form-model-item>
               </a-col>
-              <a-col :md="6" :sm="24">
+              <a-col :md="4" :sm="24">
                 <a-form-model-item label="产品分类">
                   <ProductType id="inventoryQueryList-productType" placeholder="请选择产品分类" :isDealer="true" @change="changeType" v-model="productTypeSn"></ProductType>
                 </a-form-model-item>
@@ -60,8 +60,24 @@
                   </a-input-group>
                 </a-form-model-item>
               </a-col>
+              <a-col :md="4" :sm="24">
+                <a-form-item label="产品来源">
+                  <a-select
+                    allowClear
+                    placeholder="请选择产品来源"
+                    v-model="queryParam.productSysFlag"
+                  >
+                    <a-select-option value="1">
+                      箭冠
+                    </a-select-option>
+                    <a-select-option value="0">
+                      自建
+                    </a-select-option>
+                  </a-select>
+                </a-form-item>
+              </a-col>
             </template>
-            <a-col :md="12" :sm="24">
+            <a-col :md="10" :sm="24">
               <a-checkbox v-model="queryParam.zeroQtyFlag" id="inventoryQueryList-zeroQtyFlag">只查看有库存</a-checkbox>
               <a-checkbox v-model="queryParam.enableFlag" :checked="queryParam.enableFlag" id="inventoryQueryList-enableFlag">包括禁用产品</a-checkbox>
               <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="inventoryQueryList-refresh">查询</a-button>
@@ -167,7 +183,8 @@ export default {
         zeroQtyFlag: false, //  库存情况
         enableFlag: true, // 显示禁用产品
         minUnsalableDays: undefined, // 滞销天数最小值
-        maxUnsalableDays: undefined // 滞销天数最大值
+        maxUnsalableDays: undefined, // 滞销天数最大值
+        productSysFlag: undefined
       },
       productTypeSn: [],
       exportLoading: false, // 导出loading
@@ -199,6 +216,9 @@ export default {
           const params = Object.assign(parameter, this.queryParam)
           params.zeroQtyFlag = params.zeroQtyFlag ? '0' : ''
           params.enableFlag = params.enableFlag ? '' : '1'
+          params.product = {
+            sysFlag: params.productSysFlag || undefined
+          }
           return stockList(params).then(res => {
             let data
             if (res.status == 200) {
@@ -314,6 +334,7 @@ export default {
       this.productTypeSn = []
       this.queryParam.minUnsalableDays = undefined // 滞销天数最小值
       this.queryParam.maxUnsalableDays = undefined // 滞销天数最大值
+      this.queryParam.productSysFlag = undefined
       this.$refs.table.refresh(true)
     },
     // 合计

+ 14 - 8
src/views/purchasingManagement/purchaseOrder/detail.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="purchaseOrderDetail-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
-      <a-page-header :ghost="false" :backIcon="false" @back="handleBack" class="purchaseOrderDetail-cont" >
+      <a-page-header :ghost="false" :backIcon="false" @back="handleBack" class="purchaseOrderDetail-cont" :style="{ padding: !outBizSn ? '16px 24px' : '0px 24px' }">
         <!-- 自定义的二级文字标题 -->
         <template slot="subTitle">
-          <a id="purchaseOrderDetail-back-btn" href="javascript:;" @click="handleBack"><a-icon type="left" /> 返回列表</a>
+          <a id="purchaseOrderDetail-back-btn" href="javascript:;" @click="handleBack" v-if="!outBizSn"><a-icon type="left" /> 返回列表</a>
           <span class="billno">单号:{{ detail&&detail.purchaseBillNo }}</span>
           <a-tag color="blue" v-if="detail&&detail.billStatusDictValue">{{ detail&&detail.billStatusDictValue }}</a-tag>
           <a-tag color="orange" v-if="detail&&detail.financialStatusDictValue">{{ detail&&detail.financialStatusDictValue }}</a-tag>
@@ -152,13 +152,19 @@ export default {
   name: 'PurchaseDetail',
   components: { STable, VSelect, Print },
   mixins: [commonMixin],
+  props: {
+    outBizSn: { //  有值则为弹框,无值则为页面
+      type: [Number, String],
+      default: ''
+    }
+  },
   data () {
     return {
       spinning: false,
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        return purchaseDetailList(Object.assign(parameter, { purchaseBillSn: this.$route.params.sn, orderBy: 'product_type.FIRST_CHAR,dealer_product.CODE' })).then(res => {
+        return purchaseDetailList(Object.assign(parameter, { purchaseBillSn: this.outBizSn || this.$route.params.sn, orderBy: 'product_type.FIRST_CHAR,dealer_product.CODE' })).then(res => {
           let data
           if (res.status == 200) {
             data = res.data
@@ -211,7 +217,7 @@ export default {
     },
     //  详情
     getDetail () {
-      purchaseDetailBySn({ sn: this.$route.params.sn }).then(res => {
+      purchaseDetailBySn({ sn: this.outBizSn || this.$route.params.sn }).then(res => {
         if (res.status == 200) {
           this.detail = res.data
         } else {
@@ -224,10 +230,10 @@ export default {
       const _this = this
       _this.spinning = true
       let url = purchaseDetailPrint
-      let params = { sn: this.$route.params.sn, type: printerType }
+      let params = { sn: this.outBizSn || this.$route.params.sn, type: printerType }
       if (type == 'export') { //  导出
         url = purchaseDetailExport
-        params = { sn: this.$route.params.sn }
+        params = { sn: this.outBizSn || this.$route.params.sn }
       }
       // 打印或导出
       hdPrint(printerType, type, url, params, '采购单', function () {
@@ -238,7 +244,7 @@ export default {
     handleExportProduct () {
       const _this = this
       _this.spinning = true
-      purchaseExportDetail({ sn: this.$route.params.sn }).then(res => {
+      purchaseExportDetail({ sn: this.outBizSn || this.$route.params.sn }).then(res => {
         _this.spinning = false
         if (res.type == 'application/json') {
           var reader = new FileReader()
@@ -257,7 +263,7 @@ export default {
     }
   },
   mounted () {
-    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+    if (!this.$store.state.app.isNewTab || this.outBizSn) { // 页签刷新时调用
       this.$refs.table.refresh(true)
       this.getDetail()
     }

+ 14 - 8
src/views/purchasingManagement/signWarehousing/stockOrderDetail.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="signWarehousingDetail-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
-      <a-page-header :ghost="false" :backIcon="false" @back="handleBack" class="signWarehousingDetail-cont" >
+      <a-page-header :ghost="false" :backIcon="false" @back="handleBack" class="signWarehousingDetail-cont" :style="{ padding: !outBizSn ? '16px 24px' : '0px 24px' }">
         <!-- 自定义的二级文字标题 -->
         <template slot="subTitle">
-          <a id="signWarehousingDetail-back-btn" href="javascript:;" @click="handleBack"><a-icon type="left" /> 返回列表</a>
+          <a id="signWarehousingDetail-back-btn" href="javascript:;" @click="handleBack" v-if="!outBizSn"><a-icon type="left" /> 返回列表</a>
           <span class="billno">
             单号:{{ detail&&detail.purchaseBillNo }}
             <span v-if="detail&&detail.sendBillNo">(发货单号:{{ detail&&detail.sendBillNo || '--' }})</span>
@@ -89,13 +89,19 @@ export default {
   name: 'SignWareHousingStockOrderDetail',
   components: { STable, VSelect, Print },
   mixins: [commonMixin],
+  props: {
+    outBizSn: { //  有值则为弹框,无值则为页面
+      type: [Number, String],
+      default: ''
+    }
+  },
   data () {
     return {
       spinning: false,
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        return receivingDetailList(Object.assign(parameter, { receivingBillSn: this.$route.params.sn })).then(res => {
+        return receivingDetailList(Object.assign(parameter, { receivingBillSn: this.outBizSn || this.$route.params.sn })).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
           for (var i = 0; i < data.list.length; i++) {
@@ -140,7 +146,7 @@ export default {
     },
     //  详情
     getDetail () {
-      receivingDetailSn({ sn: this.$route.params.sn }).then(res => {
+      receivingDetailSn({ sn: this.outBizSn || this.$route.params.sn }).then(res => {
         if (res.status == 200) {
           this.detail = res.data
         } else {
@@ -153,10 +159,10 @@ export default {
       const _this = this
       _this.spinning = true
       let url = purchaseDetailPrint
-      let params = { sn: this.$route.params.sn, type: printerType }
+      let params = { sn: this.outBizSn || this.$route.params.sn, type: printerType }
       if (type == 'export') { //  导出
         url = purchaseExportDetail
-        params = { sn: this.$route.params.sn }
+        params = { sn: this.outBizSn || this.$route.params.sn }
       }
       // 打印或导出
       hdPrint(printerType, type, url, params, '备货单', function () {
@@ -168,13 +174,13 @@ export default {
       const _this = this
       _this.spinning = true
       // 打印或导出
-      hdPrint('', 'export', receivingExport, { receivingBillSn: this.$route.params.sn }, '备货单', function () {
+      hdPrint('', 'export', receivingExport, { receivingBillSn: this.outBizSn || this.$route.params.sn }, '备货单', function () {
         _this.spinning = false
       })
     }
   },
   mounted () {
-    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+    if (!this.$store.state.app.isNewTab || this.outBizSn) { // 页签刷新时调用
       this.$refs.table.refresh(true)
       this.getDetail()
     }

+ 7 - 5
src/views/salesManagement/salesQuery/detail.vue

@@ -13,6 +13,7 @@
             @click.stop="handleEdit">编辑</a-button>
         </template>
         <template slot="extra" v-if="outBizSn ? $hasPermissions('B_outboundOrderDetail') : $hasPermissions('B_salesPrint')">
+          <a-checkbox v-model="printAllName" :checked="printAllName" id="salesQuery-printAllName">打印完整产品名称</a-checkbox>
           <a-checkbox v-model="printOrgCode" :checked="printOrgCode" id="salesQuery-printOrgCode">打印原厂编码</a-checkbox>
           <Print :disabled="localDataSource.length==0" @handlePrint="handlePrint"></Print>
         </template>
@@ -147,6 +148,7 @@ export default {
       disabled: false,
       showCost: false,
       printOrgCode: false, // 打印原创编码
+      printAllName: false, // 打印全部名称
       showOutInModal: false,
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -230,7 +232,7 @@ export default {
       const _this = this
       _this.spinning = true
       let url = salesDetailPrint
-      const params = { sn: this.outBizSn || this.$route.params.sn, printOrgCode: this.printOrgCode ? 1 : 0 }
+      const params = { sn: this.outBizSn || this.$route.params.sn, printOrgCode: this.printOrgCode ? 1 : 0, printAllName: this.printAllName ? 1 : 0 }
       if (type == 'export') { //  导出
         url = salesDetailExport
       }
@@ -270,6 +272,7 @@ export default {
         vm.disabled = false
         // 是否默认打印原厂编码
         vm.printOrgCode = localStorage.getItem('printOrgCode-' + this.$store.state.user.info.orgId) == 'true'
+        vm.printAllName = localStorage.getItem('printAllName-' + this.$store.state.user.info.orgId) == 'true'
         vm.$refs.table.refresh(true)
         vm.getDetail()
       })
@@ -278,6 +281,9 @@ export default {
   watch: {
     printOrgCode (newValue, oldValue) {
       localStorage.setItem('printOrgCode-' + this.$store.state.user.info.orgId, newValue)
+    },
+    printAllName (newValue, oldValue) {
+      localStorage.setItem('printAllName-' + this.$store.state.user.info.orgId, newValue)
     }
   },
   mounted () {
@@ -293,10 +299,6 @@ export default {
       this.pageInit()
     }
   },
-  deactivated () {
-    // this.localDataSource = []
-    // this.showPage = false
-  },
   beforeRouteEnter (to, from, next) {
     next(vm => {})
   }

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

@@ -17,6 +17,7 @@
         </template>
         <!-- 操作区,位于 title 行的行尾 -->
         <template slot="extra" v-if="$hasPermissions('B_salesPrint')">
+          <a-checkbox v-model="printAllName" :checked="printAllName" id="salesQuery-printAllName">打印完整产品名称</a-checkbox>
           <a-checkbox v-model="printOrgCode" :checked="printOrgCode" id="salesQuery-printOrgCode">打印原厂编码</a-checkbox>
           <Print :disabled="dataSource.length==0" @handlePrint="handlePrint"></Print>
         </template>
@@ -245,6 +246,7 @@ export default {
       },
       tbForm: [], // 同步操作
       printOrgCode: false, // 打印原创编码
+      printAllName: false, // 打印全部名称
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
@@ -315,7 +317,7 @@ export default {
       const _this = this
       _this.spinning = true
       let url = salesDetailPrint
-      const params = { sn: this.outBizSn || this.$route.params.sn, printOrgCode: this.printOrgCode ? 1 : 0 }
+      const params = { sn: this.outBizSn || this.$route.params.sn, printOrgCode: this.printOrgCode ? 1 : 0, printAllName: this.printAllName ? 1 : 0 }
       if (type == 'export') { //  导出
         url = salesDetailExport
       }
@@ -706,6 +708,7 @@ export default {
         vm.salesBillSn = vm.$route.params.sn
         // 是否默认打印原厂编码
         vm.printOrgCode = localStorage.getItem('printOrgCode-' + this.$store.state.user.info.orgId) == 'true'
+        vm.printAllName = localStorage.getItem('printAllName-' + this.$store.state.user.info.orgId) == 'true'
         vm.getOrderDetail(true)
         vm.$refs.table.refresh(true)
       })
@@ -714,6 +717,9 @@ export default {
   watch: {
     printOrgCode (newValue, oldValue) {
       localStorage.setItem('printOrgCode-' + this.$store.state.user.info.orgId, newValue)
+    },
+    printAllName (newValue, oldValue) {
+      localStorage.setItem('printAllName-' + this.$store.state.user.info.orgId, newValue)
     }
   },
   mounted () {

+ 12 - 6
src/views/salesManagement/salesReturn/detail.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="salesReturnDetail-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
-      <a-page-header :ghost="false" :backIcon="false" class="salesReturnDetail-cont">
-        <template slot="subTitle">
+      <a-page-header :ghost="false" :backIcon="false" class="salesReturnDetail-cont" :style="{ padding: !outBizSn ? '16px 24px' : '0px 24px' }">
+        <template slot="subTitle" v-if="!outBizSn">
           <a href="javascript:;" @click="handleBack"><a-icon type="left"></a-icon> 返回列表</a>
         </template>
         <template slot="extra" v-if="$hasPermissions('B_salesReturnPrint')">
@@ -73,6 +73,12 @@ export default {
   name: 'SalesReturnDetail',
   components: { STable, VSelect, Print },
   mixins: [commonMixin],
+  props: {
+    outBizSn: { //  有值则为弹框,无值则为页面
+      type: [Number, String],
+      default: ''
+    }
+  },
   data () {
     return {
       spinning: false,
@@ -96,7 +102,7 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        const params = Object.assign(parameter, { salesReturnBillSn: this.$route.params.sn })
+        const params = Object.assign(parameter, { salesReturnBillSn: this.outBizSn || this.$route.params.sn })
         this.getQueryCount(params)
         return salesReturnDetailList(params).then(res => {
           let data
@@ -139,7 +145,7 @@ export default {
     },
     //  详情
     getDetail () {
-      salesReturnDetail({ sn: this.$route.params.sn }).then(res => {
+      salesReturnDetail({ sn: this.outBizSn || this.$route.params.sn }).then(res => {
         if (res.status == 200) {
           this.detailData = res.data
           if (res.data.grabFlag == '1') {
@@ -155,7 +161,7 @@ export default {
       const _this = this
       _this.spinning = true
       let url = salesReturnDetailPrint
-      const params = { sn: this.$route.params.sn }
+      const params = { sn: this.outBizSn || this.$route.params.sn }
       if (type == 'export') { //  导出
         url = salesDetailExport
       }
@@ -166,7 +172,7 @@ export default {
     }
   },
   mounted () {
-    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+    if (!this.$store.state.app.isNewTab || this.outBizSn) { // 页签刷新时调用
       this.$refs.table.refresh(true)
       this.getDetail()
     }

+ 1 - 1
vue.config.js

@@ -211,7 +211,7 @@ const vueConfig = {
     // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        // target: 'http://192.168.0.182:8503/qpls-md',
+        // target: 'http://192.168.0.215:8503/qpls-md',
         target: 'http://p.iscm.360arrow.com/qpls-md',
         // ws: false,
         ws: true,