li.shaoyi преди 2 години
родител
ревизия
2e4933aca3

+ 18 - 0
public/proto/gz.proto

@@ -1302,4 +1302,22 @@ message GZCenterPurchaseOrderRsp {
 		optional uint64 AccountID = 5; // 资金账户ID
 		optional uint64 WRTradeOrderID = 6; // 仓单贸易委托单ID
 		optional string ClientSerialNo = 7; // 客户端流水号
+}
+
+// WMS结算单支付接口请求
+message BSWMSReckonPayReq {
+	optional MessageHead Header = 1;
+		optional uint32 UserID = 2; // 用户ID,必填
+		optional uint64 OrderID = 3; // 单据ID,必填
+			optional string ClientSerialNo = 4; // 客户端流水号
+}
+
+// WMS结算单支付接口响应
+message BSWMSReckonPayRsp {
+	optional MessageHead Header = 1; // 消息头
+	optional int32 RetCode = 2; // 返回码
+	optional string RetDesc = 3; // 描述信息
+		optional uint32 UserID = 4; // 用户ID
+		optional uint64 OrderID = 5; // 单据ID
+			optional string ClientSerialNo = 6; // 客户端流水号
 }

+ 3 - 0
src/constants/funcode.ts

@@ -104,4 +104,7 @@ export enum FunCode {
     GZCenterPurchaseApplyRsp = 1441888, // 广钻集采申请响应
     GZCenterPurchaseOrderReq = 1441891, // 广钻集采认购下单请求
     GZCenterPurchaseOrderRsp = 1441892, // 广钻集采认购下单响应
+
+    BSWMSReckonPayReq = 1114135, // WMS结算单支付接口请求
+    BSWMSReckonPayRsp = 1114136, // WMS结算单支付接口响应
 }

+ 18 - 0
src/mock/router.ts

@@ -257,6 +257,24 @@ const appmenu = {
             },
             {
                 authType: 1,
+                sort: 5,
+                title: 'WMS结算单',
+                code: 'wms',
+                url: '/wms',
+                urlType: 1,
+                component: 'views/wms/main/index.vue',
+                icon: 'g-icon--wms-filled',
+                children: [
+                    {
+                        authType: 3,
+                        title: '支付',
+                        code: 'wms_payment',
+                        component: 'views/wms/main/components/payment/index.vue',
+                    },
+                ]
+            },
+            {
+                authType: 1,
                 sort: 4,
                 title: '预售大厅',
                 code: 'presale',

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
src/packages/pc/assets/themes/base/iconfont.less


+ 6 - 1
src/packages/pc/components/base/icon/index.less

@@ -5,7 +5,7 @@
 
 /*钻石搜索*/
 .g-icon--search-filled::before {
-    content: '\e7a2';
+    content: '\e67c';
 }
 
 /*钻石首饰*/
@@ -71,4 +71,9 @@
 /*集采交易*/
 .g-icon--centralize-filled::before {
     content: '\e619';
+}
+
+/*WMS结算单*/
+.g-icon--wms-filled::before {
+    content: '\e8ad';
 }

+ 8 - 6
src/packages/pc/views/mine/bank/components/deposit/index.vue

@@ -1,7 +1,8 @@
 <!-- 会员中心-我的出入金-入金申请 -->
 <template>
-    <app-drawer title="入金申请" :width="800" v-model:show="show" :loading="loading" :refresh="refresh">
-        <el-form ref="formRef" class="el-form--horizontal" label-width="100px" :model="formData" :rules="formRules">
+    <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
+        <el-form ref="formRef" class="el-form--horizontal" label-width="100px" :model="formData" :rules="formRules"
+            v-if="false">
             <el-form-item label="资金账号">
                 <span>{{ accountInfo?.accountid }}</span>
             </el-form-item>
@@ -11,16 +12,17 @@
             <el-form-item label="入金金额" prop="Amount">
                 <el-input type="number" placeholder="请输入" v-model="formData.Amount" />
             </el-form-item>
-            <!-- <el-form-item label="金额大写">
+        <!-- <el-form-item label="金额大写">
                 <span>壹万元</span>
-            </el-form-item> -->
+                                </el-form-item> -->
             <el-form-item class="el-form-item--row" label="备注" prop="Remark">
                 <el-input type="textarea" :rows="3" v-model="formData.Remark" />
             </el-form-item>
         </el-form>
+        <span>请前往浦发银行网银端进行入金操作。</span>
         <template #footer>
-            <el-button @click="onCancel(false)" plain>取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button @click="onCancel(false)" plain>关闭</el-button>
+            <el-button type="primary" @click="onSubmit" v-if="false">提交</el-button>
         </template>
     </app-drawer>
 </template>

+ 2 - 2
src/packages/pc/views/presale/list/components/details/index.vue

@@ -1,6 +1,6 @@
 <!-- 预售大厅-预售大厅-详情 -->
 <template>
-    <app-drawer title="详情" :width="800" v-model:show="show" :loading="loading" :refresh="refresh">
+    <app-drawer title="详情" :width="960" v-model:show="show" :loading="loading" :refresh="refresh">
         <app-table-details title="预售信息" :label-width="140" :data="selectedRow" :cell-props="details1" :column="2">
             <!-- 采购保证金比例 -->
             <template #buymarginvalue="{ value }">
@@ -37,7 +37,7 @@
 
 <script lang="ts" setup>
 import { shallowRef, reactive, PropType, onMounted, defineAsyncComponent } from 'vue'
-import { getFileUrl, parsePercent,handleNumberValue } from '@/filters'
+import { getFileUrl, parsePercent, handleNumberValue } from '@/filters'
 import { getWRPresaleStatusName, getYSProductionModeName } from '@/constants/presale'
 import { performanceStore } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'

+ 1 - 1
src/packages/pc/views/presale/mine/components/apply/details.vue

@@ -1,6 +1,6 @@
 <!-- 预售大厅-我的预售-我的申请-详情 -->
 <template>
-    <app-drawer title="详情" :width="800" v-model:show="show">
+    <app-drawer title="详情" :width="960" v-model:show="show">
         <app-table-details title="预售信息" :label-width="140" :data="selectedRow" :cell-props="details1" :column="2">
             <!-- 采购保证金比例 -->
             <template #buymarginvalue="{ value }">

+ 72 - 0
src/packages/pc/views/wms/main/components/payment/index.vue

@@ -0,0 +1,72 @@
+<!-- WMS结算单-支付 -->
+<template>
+    <app-drawer title="确认支付" v-model:show="show" :loading="loading" :refresh="refresh">
+        <el-form ref="formRef" label-width="100px">
+            <el-form-item label="分拣室服务费">
+                {{ formatDecimal(selectedRow.servicefee) }}
+            </el-form-item>
+            <el-form-item label="仓储费">
+                {{ formatDecimal(selectedRow.storagefee) }}
+            </el-form-item>
+            <el-form-item label="保险费">
+                {{ formatDecimal(selectedRow.premium) }}
+            </el-form-item>
+            <el-form-item label="分拣室电费">
+                {{ formatDecimal(selectedRow.powerfee) }}
+            </el-form-item>
+            <el-form-item label="报关费">
+                {{ formatDecimal(selectedRow.customsfee) }}
+            </el-form-item>
+            <el-form-item label="合计费用">
+                {{ formatDecimal(selectedRow.totalfee) }}
+            </el-form-item>
+        </el-form>
+        <template #footer>
+            <el-button @click="onCancel(false)" plain>取消</el-button>
+            <el-button type="primary" @click="onSubmit">确认</el-button>
+        </template>
+    </app-drawer>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, PropType } from 'vue'
+import { ElMessage, FormInstance } from 'element-plus'
+import { formatDecimal } from '@/filters'
+import { bsWMSReckonPay } from '@/services/api/bonded'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
+
+const props = defineProps({
+    selectedRow: {
+        type: Object as PropType<Ermcp.GzbscreckonorderRsp>,
+        required: true
+    },
+})
+
+const formRef = shallowRef<FormInstance>()
+const show = shallowRef(true)
+const refresh = shallowRef(false)
+const loading = shallowRef(false)
+
+const onCancel = (isRefresh = false) => {
+    show.value = false
+    refresh.value = isRefresh
+}
+
+const onSubmit = () => {
+    formRef.value?.validate((valid) => {
+        if (valid) {
+            loading.value = true
+            bsWMSReckonPay({
+                OrderID: props.selectedRow.orderid
+            }).then(() => {
+                ElMessage.success('提交成功')
+                onCancel(true)
+            }).catch((err) => {
+                ElMessage.error('提交失败:' + err)
+            }).finally(() => {
+                loading.value = false
+            })
+        }
+    })
+}
+</script>

+ 83 - 0
src/packages/pc/views/wms/main/index.vue

@@ -0,0 +1,83 @@
+<!-- WMS结算单 -->
+<template>
+    <app-view>
+        <template #header>
+            <app-filter :options="filterOptons" />
+        </template>
+        <!-- 表格数据 -->
+        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+            <!-- 操作 -->
+            <template #operate="{ row }">
+                <app-auth-operation type="dropdown" :options="{ selectedRow: row }" @closed="onRefresh" />
+            </template>
+            <template #footer>
+                <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex"
+                    @change="onRefresh" />
+            </template>
+        </app-table>
+    </app-view>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef } from 'vue'
+import { ElMessage } from 'element-plus'
+import { useDataFilter } from '@/hooks/datatable'
+import { useRequest } from '@/hooks/request'
+import { queryGzbscreckonorder } from '@/services/api/bonded'
+import AppTable from '@pc/components/base/table/index.vue'
+import AppPagination from '@pc/components/base/pagination/index.vue'
+import AppFilter from '@pc/components/base/table-filter/index.vue'
+import AppAuthOperation from '@pc/components/modules/auth-operation/index.vue'
+
+const { filterOptons, getQueryParams } = useDataFilter<Ermcp.GzbscreckonorderReq>()
+const { loading, dataList, total, pageIndex, pageSize, run } = useRequest(queryGzbscreckonorder, {
+    params: {
+        paystatus: 2
+    },
+    onError: (err) => {
+        ElMessage.error(err)
+    }
+})
+
+const tableColumns = shallowRef<Ermcp.TableColumn[]>([
+    { prop: 'reckonmonth', label: '结算月份' },
+    { prop: 'totalfee', label: '总费用', decimal: 2 },
+    { prop: 'servicefee', label: '分拣室服务费', decimal: 2 },
+    { prop: 'storagefee', label: '仓储费', decimal: 2 },
+    { prop: 'premium', label: '保险费', decimal: 2 },
+    { prop: 'powerfee', label: '分拣室电费', decimal: 2 },
+    { prop: 'customsfee', label: '报关费', decimal: 2 },
+    { prop: 'applicanttime', label: '申请时间' },
+    { prop: 'paystatus', label: '状态' },
+    { prop: 'paytime', label: '支付时间' },
+    { prop: 'operate', label: '操作', fixed: 'right' },
+])
+
+filterOptons.selectList = [
+    {
+        label: '支付状态',
+        key: 'paystatus',
+        locked: true,
+        selectedValue: 2,
+        options: [
+            { label: '待支付', value: 2 },
+            { label: '已支付', value: 3 },
+        ],
+    },
+]
+
+filterOptons.buttonList = [
+    { lable: '查询', className: 'el-button--primary', onClick: () => onSearch() }
+]
+
+const onSearch = (clear = false) => {
+    getQueryParams((qs) => {
+        pageIndex.value = 1
+        run(qs)
+    }, clear)
+}
+
+const onRefresh = () => {
+    getQueryParams((qs) => run(qs))
+}
+</script>

+ 33 - 0
src/services/api/bonded/index.ts

@@ -1,6 +1,10 @@
+import { v4 } from 'uuid'
+import { loginStore } from '@/stores'
 import http from '@/services/http'
 import tradeServer from '@/services/socket/trade'
 
+const { userId } = loginStore.$mapGetters()
+
 /**
  * 获取保税商品表
  */
@@ -81,6 +85,19 @@ export function queryBscinoutorder(params: Ermcp.BscinoutorderReq) {
 }
 
 /**
+ * 保税仓结算单表查询
+ */
+export function queryGzbscreckonorder(params: Ermcp.GzbscreckonorderReq) {
+    return http.commonRequest<Ermcp.GzbscreckonorderRsp[]>({
+        url: '/Guangzuan/QueryGzbscreckonorder',
+        params: {
+            userid: userId.value,
+            ...params
+        },
+    })
+}
+
+/**
  * 保税仓进出仓申请
  */
 export function bscInAndOutWareHouseApply(params: Proto.BSCInAndOutWareHouseApplyReq) {
@@ -114,4 +131,20 @@ export function bscConfirmPay(params: Proto.BSCConfirmPayReq) {
         rspName: 'BSCConfirmPayRsp',
         marketId: 66201
     })
+}
+
+/**
+ * WMS结算单支付
+ */
+export function bsWMSReckonPay(params: Partial<Proto.BSWMSReckonPayReq>) {
+    return tradeServer.sendMessage<Proto.BSWMSReckonPayRsp>({
+        params: {
+            UserID: userId.value,
+            ClientSerialNo: v4(),
+            ...params
+        },
+        reqName: 'BSWMSReckonPayReq',
+        rspName: 'BSWMSReckonPayRsp',
+        marketId: 66201
+    })
 }

+ 34 - 0
src/types/ermcp/bonded.d.ts

@@ -262,4 +262,38 @@ declare namespace Ermcp {
         userid: number; // 申请用户ID
         username: string; // 申请方名称
     }
+
+    /** 保税仓结算单表查询 请求 */
+    interface GzbscreckonorderReq {
+        userid?: number; // 用户ID
+        paystatus?: number; // 支付状态 - 2:待支付 3:已支付(枚举:GZBSCPayStatus)
+        page?: number; // 页码
+        pagesize?: number; // 每页大小
+    }
+
+    /** 保税仓结算单表查询 响应 */
+    interface GzbscreckonorderRsp {
+        accountid: number; // 资金账户ID
+        applicant: string; // 申请人
+        applicanttime: string; // 申请时间
+        confirmtime: string; // 确认时间
+        contractno: string; // 合同编号
+        customsfee: string; // 报关费
+        handlestatus: number; // 处理状态
+        importfile: string; // 导入文件名
+        importtime: string; // 导入时间
+        orderid: number; // 单据ID(SEQ_GZ_BSCRECKONORDER)
+        paystatus: number; // 支付状态 - 2:待支付 3:已支付(枚举:GZBSCPayStatus)
+        paytime: string; // 支付时间
+        paytradedate: string; // 支付交易日(yyyyMMdd)
+        powerfee: string; // 分拣室电费
+        premium: string; // 保险费
+        reckonmonth: string; // 结算月份(yyyyMM)
+        servicefee: string; // 分拣室服务费
+        storagefee: string; // 仓储费
+        totalfee: string; // 合计费用
+        userid: number; // 用户ID
+        userkey: string; // 用户唯一标识
+        wmsorderid: string; // WMS结算单流水号
+    }
 }

+ 18 - 0
src/types/proto/bonded.d.ts

@@ -99,5 +99,23 @@ declare global {
             UserID: number; // 用户ID,必填
             ClientSerialNo: string; // 客户端流水号
         }
+
+        // WMS结算单支付接口请求
+        interface BSWMSReckonPayReq {
+            Header?: IMessageHead;
+            UserID: number; // 用户ID,必填
+            OrderID: number; // 单据ID,必填
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        // WMS结算单支付接口响应
+        interface BSWMSReckonPayRsp {
+            Header?: IMessageHead;
+            RetCode: number; // 返回码
+            RetDesc: string; // 描述信息
+            UserID: number; // 用户ID
+            OrderID: number; // 单据ID
+            ClientSerialNo: string; // 客户端流水号
+        }
     }
 }

Някои файлове не бяха показани, защото твърде много файлове са промени