lilei 2 lat temu
rodzic
commit
07eff964a3

+ 1 - 1
public/version.json

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

+ 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()

+ 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>

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

@@ -100,7 +100,8 @@
       >
         <!-- 关联单号 -->
         <template slot="bizNo" slot-scope="text, record">
-          <span class="table-td-link" @click="handleDetail(record)">{{ record.bizNo }}</span>
+          <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">
@@ -138,11 +139,19 @@
       v-model="openDetailModal"
       v-if="openDetailModal"
       @cancel="handleDetailClose"
-      width="80%">
+      :width="fcBizType=='COST'?'50%':'80%'">
       <div style="max-height: 700px;overflow-y: auto;">
         <!-- 采购入库 -->
-        <salesDetailModal v-if="fcBizType=='SELL'" :outBizSn="orderSn" />
-
+        <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>
@@ -156,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 {
@@ -252,6 +267,15 @@ export default {
       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
     },

+ 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()
     }

+ 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()
     }