From f8401274f4ddc34cb83fb54967c6d1e4071ed2e0 Mon Sep 17 00:00:00 2001 From: wanghongjun <1445693971@qq,com> Date: Thu, 28 Mar 2024 17:17:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=BD=A6=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E8=AE=A2=E5=8D=95=E6=8F=90=E4=BA=A4=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E6=96=87=E5=8C=96=E6=95=B0=E6=8D=AE=E4=BA=A4=E6=98=93?= =?UTF-8?q?=E5=8D=8F=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/goods.js | 28 ++ api/user.js | 41 ++ components/empty-cart/index.vue | 79 +++ pages.json | 28 +- pages/goods/detail.vue | 8 +- pages/goods/payment/orderPayment.vue | 678 +++++++++++++++++++------- pages/goods/payment/verifyPayment.vue | 263 ++++++++++ pages/help/purchase.vue | 167 +++++++ pages/login/components/WhPopup.vue | 4 + pages/user/index.vue | 35 +- pages/user/mycertinfo/mycertinfo.vue | 4 +- pages/user/mycertinfo/orgverify.vue | 2 +- pages/user/shopcart/index.vue | 543 +++++++++++++++++++++ static/tabbar/cart_empty.jpg | Bin 0 -> 10853 bytes 14 files changed, 1679 insertions(+), 201 deletions(-) create mode 100644 components/empty-cart/index.vue create mode 100644 pages/goods/payment/verifyPayment.vue create mode 100644 pages/help/purchase.vue create mode 100644 pages/user/shopcart/index.vue create mode 100644 static/tabbar/cart_empty.jpg diff --git a/api/goods.js b/api/goods.js index f1fadbf..b1754c3 100644 --- a/api/goods.js +++ b/api/goods.js @@ -15,6 +15,11 @@ const api = { paymentListUrl: "Paymentlist/certiaudit/listIndet", certificationPay: "PayCallBack/order/certificationPay", rankingList: "AgencyAddress/ranking/queryList", + orderPaymentList: "AgencyAddress/order/queryRrder", + userOrderpay: "slb/pay/order/userOrderpay", + marketleader: "AgencyAddress/ranking/insertCount", + addClient: "AgencyAddress/signInfo/insertEntrustingPartyInfo", + addClickmarket: "AgencyAddress/signInfo/insertEntrustingPartyInfo", } // 商品列表 @@ -93,3 +98,26 @@ export const getRankingList = (param) => { return request.get(api.rankingList + paramStr,{}) } +// 缴费订单列表 +export const orderPaymentList = (data) => { + return request.post(api.orderPaymentList,data) +} + +// 订单确认支付 +export const userOrderpay = (data) => { + return request.post(api.userOrderpay,data) +} +// 排行榜销售量 +export const marketleader = (data) => { + return request.post(api.marketleader,data) +} +// 添加委托方统计数据 +export const addClient = (data) => { + return request.post(api.addClient,data) +} +// 交易信息数据统计销售量 +export const addClickmarket = (data) => { + return request.post(api.addClickmarket,data) +} + + diff --git a/api/user.js b/api/user.js index ecaab10..4cc6510 100644 --- a/api/user.js +++ b/api/user.js @@ -10,6 +10,14 @@ const api = { oplogs: "slb/userself/v1/account/operation", //重置密码 resetpwd:'slb/userself/v1/account/reset-pwd', + // 购物车 + shop_cart: "tes/api/goods/getShoppingCar", + // 购物车 + del_shop_cart: "AgencyAddress/order/delShoppingCa", + // 去结算 + create_order: "AgencyAddress/order/createOrder", + // 发票管理 + bill_manage: "AgencyAddress/order/getTicket", } // 当前登录的用户信息 @@ -45,4 +53,37 @@ export const oplogs = (param, option) => { // 重置用户密码 export const resetpass = (data,option) =>{ return request.post(api.resetpwd,data,option) +} + +// 获取购物车列表 +export function getShopCart(data){ + return request.post(api.shop_cart,data) +} + +// 删除购物车 +export function delShopCart(param){ + let paramArr = []; + for (let key in param) { + paramArr.push(key + '=' + param[key]) + } + let paramStr = '?' + paramArr.join('&') + return request.post(api.del_shop_cart + paramStr) +} + +// 删除购物车 +export function createOrder(param){ + let paramArr = []; + for (let key in param) { + paramArr.push(key + '=' + param[key]) + } + let paramStr = '?' + paramArr.join('&') + return request.post(api.create_order + paramStr) +} + +// 发票管理 +export function getBillManage(data){ + let option={header:{ + "Content-Type":"application/x-www-form-urlencoded;charset=UTF-8" + }} + return request.post(api.bill_manage,data,option) } \ No newline at end of file diff --git a/components/empty-cart/index.vue b/components/empty-cart/index.vue new file mode 100644 index 0000000..c44fe14 --- /dev/null +++ b/components/empty-cart/index.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/pages.json b/pages.json index 18d9235..ef59b57 100644 --- a/pages.json +++ b/pages.json @@ -55,12 +55,6 @@ "enablePullDownRefresh" : false } }, - { - "path": "pages/cart/index", - "style": { - "navigationBarTitleText": "购物车" - } - }, { "path": "pages/user/index", "style": { @@ -350,7 +344,7 @@ "navigationBarTitleText" : "公共数据专区", "navigationBarTextStyle": "white", "navigationBarBackgroundColor": "#1c223b", - "enablePullDownRefresh" : false + "enablePullDownRefresh" : true } }, { @@ -360,7 +354,7 @@ "navigationBarTitleText" : "数据超市", "navigationBarTextStyle": "white", "navigationBarBackgroundColor": "#1c223b", - "enablePullDownRefresh" : false + "enablePullDownRefresh" : true } }, { @@ -370,7 +364,7 @@ "navigationBarTitleText" : "文化资源数据", "navigationBarTextStyle": "white", "navigationBarBackgroundColor": "#1c223b", - "enablePullDownRefresh" : false + "enablePullDownRefresh" : true } }, { @@ -380,7 +374,7 @@ "navigationBarTitleText" : "文化数字内容", "navigationBarTextStyle": "white", "navigationBarBackgroundColor": "#1c223b", - "enablePullDownRefresh" : false + "enablePullDownRefresh" : true } }, { @@ -388,7 +382,17 @@ "style" : { "navigationBarTitleText" : "购物车", - "enablePullDownRefresh" : false + "enablePullDownRefresh" : true, + "navigationBarTextStyle": "white", + "navigationBarBackgroundColor": "#1c223b" + } + }, + { + "path" : "pages/goods/payment/verifyPayment", + "style" : + { + "navigationBarTitleText" : "认证订单结算", + "enablePullDownRefresh" : true } }, { @@ -396,7 +400,7 @@ "style" : { "navigationBarTitleText" : "订单结算", - "enablePullDownRefresh" : false + "enablePullDownRefresh" : true } }, { diff --git a/pages/goods/detail.vue b/pages/goods/detail.vue index 57210df..8b764b2 100644 --- a/pages/goods/detail.vue +++ b/pages/goods/detail.vue @@ -250,7 +250,6 @@ shopyear_show: false, // 输入购买年限显示 talprice_show: false, // 合计显示 purchase_show: false, // 立即购买显示 - shopyear_num: '', // 立即购买显示 shopcart_str: '加入购物车', new_total: 0, // 标的数量 addprice: 0, // 合计金额 @@ -378,7 +377,7 @@ } else { if (app.ears_of === 2) { - let shopyear_num = app.shopyear_num + let shopyear_num = app.use_years if (shopyear_num === 0 || shopyear_num === '') { app.$error('购买年限只能输入整数') } else { @@ -409,7 +408,7 @@ let param = { goods_isli : app.goods.goods_islicode, user_isli : uni.getStorageSync("isliCode"), - use_years : 0, + use_years : app.use_years, } if (app.ears_of === 3) { param.use_years = 1 @@ -482,8 +481,7 @@ if (res.resultCode === "00000000") { // 跳转至付款界面 - - this.$navTo('pages/goods/payment', { batchcode:res.data.batchcode, img: app.goods.img, time: new Date().getTime() }) + this.$navTo('pages/goods/payment/orderPayment', { batchcode:res.data.batchcode, img: app.goods.img, time: new Date().getTime() }) } else { app.$error(res.errMsg); } diff --git a/pages/goods/payment/orderPayment.vue b/pages/goods/payment/orderPayment.vue index 2d518e2..a1b080d 100644 --- a/pages/goods/payment/orderPayment.vue +++ b/pages/goods/payment/orderPayment.vue @@ -8,256 +8,582 @@ - 认证缴费订单 + 标的清单 - 订单号 - 姓名 - 订单金额 + 缩略图 + 标的名称 + 委托关联编码 + 付费类型 + 交易方式 + 委托方 + 单价 + 购买年限 + 小计 + 交易佣金 + 合计 - {{ item.pay_no }} - - 认证缴费订单 + + - {{ item.address }} + {{ item.buy_username }} + {{ item.buy_islicode }} + {{ item.price_type}} + {{ item.goods_entrust }} + {{ item.order_detail[0].entrust_name }} + {{ item.price }} + {{ item.transaction_count }} + {{ item.small_count }} + ¥{{ item.order_detail[0].service_charge }} + {{ item.money }} + + + + + 我已阅读并同意 《文化数据交易协议》 + + + + + + + - 请扫码支付! - + + 温馨提示 请使用 网银、支付宝 App扫码支付 + + 支付成功! + 支付失败! + + \ No newline at end of file diff --git a/pages/goods/payment/verifyPayment.vue b/pages/goods/payment/verifyPayment.vue new file mode 100644 index 0000000..2d518e2 --- /dev/null +++ b/pages/goods/payment/verifyPayment.vue @@ -0,0 +1,263 @@ + + + + + \ No newline at end of file diff --git a/pages/help/purchase.vue b/pages/help/purchase.vue new file mode 100644 index 0000000..baaacab --- /dev/null +++ b/pages/help/purchase.vue @@ -0,0 +1,167 @@ + + + + + \ No newline at end of file diff --git a/pages/login/components/WhPopup.vue b/pages/login/components/WhPopup.vue index daa4680..ed5048d 100644 --- a/pages/login/components/WhPopup.vue +++ b/pages/login/components/WhPopup.vue @@ -17,6 +17,8 @@ + + @@ -36,6 +38,7 @@ import commission from '@/pages/help/commission' import business from '@/pages/help/business' import escapeclause from '@/pages/help/escapeclause' + import purchase from '@/pages/help/purchase' export default { components: { @@ -45,6 +48,7 @@ commission, business, escapeclause, + purchase, }, props: { diff --git a/pages/user/index.vue b/pages/user/index.vue index c511112..01c9dfe 100644 --- a/pages/user/index.vue +++ b/pages/user/index.vue @@ -10,12 +10,12 @@ - {{ userInfo.username }} + {{ userInfo.cellPhone }} ({{ userInfo.username }}) - - {{userInfo.userType}} + + {{userInfo.userType}} @@ -68,10 +68,17 @@ - + 发票管理 + + + + + + 购物车 + @@ -109,11 +116,13 @@ import * as UserApi from '@/api/user' import * as OrderApi from '@/api/order' import { checkLogin } from '@/core/app' + import uniIcons from '../../uni_modules/uni-icons/components/uni-icons/uni-icons' export default { components: { - AvatarImage + AvatarImage, + uniIcons, }, data() { return { @@ -254,6 +263,22 @@ } return true }, + // 买入订单 + shopCart(){ + if (this.validateVerify()) { + this.$navTo('pages/user/shopcart/index') + } else { + this.$error('未完成机构认证,请前往认证后查看') + } + }, + // 发票管理 + billManage(){ + if (this.validateVerify()) { + this.$navTo('pages/user/billManage/index') + } else { + this.$error('未完成机构认证,请前往认证后查看') + } + }, // 跳转到登录页 handleLogin() { diff --git a/pages/user/mycertinfo/mycertinfo.vue b/pages/user/mycertinfo/mycertinfo.vue index 63bc7cb..2c24a1d 100644 --- a/pages/user/mycertinfo/mycertinfo.vue +++ b/pages/user/mycertinfo/mycertinfo.vue @@ -64,7 +64,7 @@ //机构认证 orgverify(){ if (this.institutionsStr === '待缴费') { - this.$navTo("/pages/goods/payment/orderPayment") + this.$navTo("/pages/goods/payment/verifyPayment") } else { this.$navTo("pages/user/mycertinfo/orgverify") } @@ -72,7 +72,7 @@ //个人认证 personverify(){ if (this.peopleStr === '待缴费') { - this.$navTo("/pages/goods/payment/orderPayment") + this.$navTo("/pages/goods/payment/verifyPayment") } else { this.$navTo("pages/user/mycertinfo/personverify") } diff --git a/pages/user/mycertinfo/orgverify.vue b/pages/user/mycertinfo/orgverify.vue index fcab039..591b043 100644 --- a/pages/user/mycertinfo/orgverify.vue +++ b/pages/user/mycertinfo/orgverify.vue @@ -1161,7 +1161,7 @@ export default { }, jumpUrl() { if (this.fee > 0) { - uni.reLaunch({url: "/pages/goods/payment/orderPayment"}) + uni.reLaunch({url: "/pages/goods/payment/verifyPayment"}) } else { uni.reLaunch({url: "/pages/user/index"}) } diff --git a/pages/user/shopcart/index.vue b/pages/user/shopcart/index.vue new file mode 100644 index 0000000..be758d9 --- /dev/null +++ b/pages/user/shopcart/index.vue @@ -0,0 +1,543 @@ + + + + + + diff --git a/static/tabbar/cart_empty.jpg b/static/tabbar/cart_empty.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c46d3875ae16b0c4ed5a05108886d9ec3705e7c GIT binary patch literal 10853 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 literal 0 HcmV?d00001