Compare commits

...

8 Commits

Author SHA1 Message Date
shijing 8af970ce6d limitedNum 2022-06-24 08:36:15 +08:00
shijing b2e3ed094b 首页加载显示 2022-03-02 09:54:57 +08:00
shijing c6b2d3c983 totalMoneyShouw 2022-02-11 10:19:56 +08:00
shijing dce7d15ab1 bugList 2022-02-10 09:20:43 +08:00
shijing 119d92ea09 增加隐私协议订单页面购物车页面等多个调整 2022-01-19 14:07:52 +08:00
shijing c6c34c30c6 address 2021-11-17 15:27:08 +08:00
shijing 12931ae7d5 wechartRegister 2021-10-20 09:30:42 +08:00
shijing 732db99e9a banner 2021-09-18 13:34:03 +08:00
34 changed files with 1208 additions and 184 deletions

4
.idea/encodings.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
</project>

6
.idea/misc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/shuinishop.iml" filepath="$PROJECT_DIR$/.idea/shuinishop.iml" />
</modules>
</component>
</project>

12
.idea/shuinishop.iml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

292
.idea/workspace.xml Normal file
View File

@ -0,0 +1,292 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="d92a373b-a34b-42e4-9751-2d18d522a715" name="默认更改列表" comment="">
<change beforePath="$PROJECT_DIR$/App.vue" beforeDir="false" afterPath="$PROJECT_DIR$/App.vue" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
<ignored path="$PROJECT_DIR$/tmp/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/App.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="12" column="37" selection-start-line="12" selection-start-column="37" selection-end-line="12" selection-end-column="37" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/info.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="-1963" />
<second_editor />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/manifest.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1078" />
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pages.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-10348" />
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/common/http.api.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="3" lean-forward="true" selection-start-line="3" selection-end-line="3" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pages/user/setting/setting.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3210">
<caret line="107" column="42" selection-start-line="107" selection-start-column="42" selection-end-line="107" selection-end-column="42" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pages/tabBar/user/user.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="190">
<caret line="184" column="10" selection-start-line="184" selection-start-column="10" selection-end-line="184" selection-end-column="10" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>vuex_user</find>
<find>appSecret</find>
</findStrings>
<replaceStrings>
<replace />
</replaceStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/pages/tabBar/user/user.vue" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-2204" />
<option name="y" value="163" />
<option name="width" value="1550" />
<option name="height" value="838" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="shuinishop" type="b2602c69:ProjectViewProjectNode" />
<item name="shuinishop" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="shuinishop" type="b2602c69:ProjectViewProjectNode" />
<item name="shuinishop" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="shuinishop" type="b2602c69:ProjectViewProjectNode" />
<item name="shuinishop" type="462c0819:PsiDirectoryNode" />
<item name="pages" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="shuinishop" type="b2602c69:ProjectViewProjectNode" />
<item name="shuinishop" type="462c0819:PsiDirectoryNode" />
<item name="static" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="shuinishop" type="b2602c69:ProjectViewProjectNode" />
<item name="shuinishop" type="462c0819:PsiDirectoryNode" />
<item name="unpackage" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="shuinishop" type="b2602c69:ProjectViewProjectNode" />
<item name="shuinishop" type="462c0819:PsiDirectoryNode" />
<item name="unpackage" type="462c0819:PsiDirectoryNode" />
<item name="dist" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="shuinishop" type="b2602c69:ProjectViewProjectNode" />
<item name="shuinishop" type="462c0819:PsiDirectoryNode" />
<item name="uview-ui" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="d92a373b-a34b-42e4-9751-2d18d522a715" name="默认更改列表" comment="" />
<created>1639965828906</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1639965828906</updated>
<workItem from="1639965830415" duration="2224000" />
<workItem from="1650788678780" duration="698000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="2922000" />
</component>
<component name="ToolWindowManager">
<frame x="-2568" y="-8" width="2576" height="1416" extended-state="6" />
<editor active="true" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24980299" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" />
<window_info anchor="bottom" id="Terminal" order="9" />
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/pages/user/setting/setting.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3210">
<caret line="107" column="42" selection-start-line="107" selection-start-column="42" selection-end-line="107" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pages/tabBar/user/user.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="190">
<caret line="184" column="10" selection-start-line="184" selection-start-column="10" selection-end-line="184" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/App.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="12" column="37" selection-start-line="12" selection-start-column="37" selection-end-line="12" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/info.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="-1963" />
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/manifest.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1078" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pages.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-10348" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/vue-i18n.min.js">
<provider selected="true" editor-type-id="text-editor">
<state>
<folding>
<element signature="n#!!doc" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/richTextUtil.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-88">
<folding>
<element signature="n#style#0;n#td#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/http.interceptor.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1318">
<folding>
<element signature="n#!!doc" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/http.api.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="3" lean-forward="true" selection-start-line="3" selection-end-line="3" />
</state>
</provider>
</entry>
</component>
</project>

File diff suppressed because one or more lines are too long

View File

@ -34,8 +34,9 @@ const install = (Vue, vm) => {
let removeFromCart = (id) => vm.$u.get(`/index.php/api/car/delete_one/id/${id}/`);//
let addtoCart =(id, num)=> vm.$u.get(`index.php/api/car/add/id/${id}/num/${num}`);//加入购物车
let addOrder = (params={})=>vm.$u.post('/index.php/api/car/submit', params);
let getFreight = (id)=>vm.$u.get(`/index.php/api/car/get_freight/shop_uid/${id}`);//获取商家免运费价格
let getFreight = (params={})=>vm.$u.post(`/index.php/api/car/get_freight/shop_uid`,params);//获取商家免运费价格
let getOrders = (params={})=>vm.$u.get('index.php/api/order/index', params);//我的订单
let orderDetail = (id)=>vm.$u.get(`/index.php/api/order/show/id/${id}`);//我的订单详情
let qxdd = (id)=>vm.$u.get(`index.php/api/order/cancel_order/id/${id}`);//取消订单
let qrsh = (id)=>vm.$u.get(`/index.php/api/order/confirm/id/${id}`);//收货确认
let qrfp = (id)=>vm.$u.get(`/index.php/api/order/invoice_confirm/id/${id}`);//发票确认
@ -47,6 +48,7 @@ const install = (Vue, vm) => {
let checkUserName = (params={})=>vm.$u.get(`/index.php/api/login/check_username`, params);//注册时检查用户名是否
let getCodeRepass = (id,params)=>vm.$u.get(`/index.php/api/login/getpwdnum/type/mobphone/to/${id}`,params);//获取验证码
let changepwd = ( params)=>vm.$u.post(`/index.php/api/login/changepwd`, params);//修改密码
let wxReg = ( params)=>vm.$u.post(`/index.php/api/login/one_key_reg`, params);//微信一键注册
vm.$u.api = {
getSearch,
@ -74,6 +76,7 @@ const install = (Vue, vm) => {
addOrder,
getFreight,
getOrders,
orderDetail,
qrsh,
qrfp,
tjkp,
@ -84,7 +87,8 @@ const install = (Vue, vm) => {
getCodeRepass,
changepwd,
checkUserName,
register};
register,
wxReg};
}
export default {

View File

@ -61,7 +61,6 @@
"quickapp" : {},
/* */
"mp-weixin" : {
/* */
"appid" : "wxe27470b2f09a2508",
"setting" : {
"urlCheck" : false

View File

@ -9,7 +9,7 @@
"onReachBottomDistance":50,
"app-plus": {
"titleNView": false ,//
"softinputNavBar":"none",
// "softinputNavBar":"none",
"subNVues":[{
"id": "homeTitleNvue", //
"path": "pages/tabBar/home/subNvue/homeTitleNvue", //
@ -104,7 +104,7 @@
"path": "pages/login/login",
"style": {
"navigationBarTitleText": "登录",
"navigationBarBackgroundColor":"#f06c7a",
"navigationBarBackgroundColor":"#01a5e4",
"navigationBarTextStyle":"white",
"app-plus": {
"bounce": "none" ,//
@ -116,7 +116,7 @@
"path": "pages/login/register",
"style": {
"navigationBarTitleText": "注册账号",
"navigationBarBackgroundColor":"#f06c7a",
"navigationBarBackgroundColor":"#01a5e4",
"navigationBarTextStyle":"white",
"app-plus": {
"bounce": "none" ,//
@ -128,7 +128,7 @@
"path": "pages/login/resetpasswd",
"style": {
"navigationBarTitleText": "重置密码",
"navigationBarBackgroundColor":"#f06c7a",
"navigationBarBackgroundColor":"#01a5e4",
"navigationBarTextStyle":"white",
"app-plus": {
"bounce": "none" ,//
@ -185,7 +185,7 @@
"style" : {
"enablePullDownRefresh": true,
"navigationBarTitleText": "消息列表",
"navigationBarBackgroundColor":"#f06c7a",
"navigationBarBackgroundColor":"#01a5e4",
"navigationBarTextStyle":"white"
}
}
@ -205,7 +205,7 @@
"path" : "pages/user/coupon/coupon",
"style" : {
"navigationBarTitleText": "优惠券",
"navigationBarBackgroundColor":"#f06c7a",
"navigationBarBackgroundColor":"#01a5e4",
"navigationBarTextStyle":"white",
"app-plus":{
"bounce":"none"
@ -216,7 +216,7 @@
"path" : "pages/user/keep/keep",
"style" : {
"navigationBarTitleText": "我的收藏",
"navigationBarBackgroundColor":"#f06c7a",
"navigationBarBackgroundColor":"#01a5e4",
"navigationBarTextStyle":"white",
"app-plus":{
"bounce":"none"
@ -313,6 +313,24 @@
"enablePullDownRefresh": false
}
},{
"path" : "pages/protocol/index",
"style" : {
"enablePullDownRefresh": true,
"navigationBarTitleText":"用户服务协议",
"navigationBarBackgroundColor":"#f8f8f8",
"backgroundColorTop":"#f3f3f3",
"backgroundColorBottom":"#ffffff"
}
},{
"path" : "pages/protocol/Privacy",
"style" : {
"enablePullDownRefresh": true,
"navigationBarTitleText":"隐私政策",
"navigationBarBackgroundColor":"#f8f8f8",
"backgroundColorTop":"#f3f3f3",
"backgroundColorBottom":"#ffffff"
}
}
],
"globalStyle": {
@ -353,5 +371,10 @@
"text": "我的"
}
]
}
},
"permission": {
"scope.userLocation": {
"desc": "获取信息为了页面更好的展示,请确认授权"
}
}
}

View File

@ -46,7 +46,8 @@
</view>
<view class="btn">
<view class="joinCart" @tap="joinCart">加入购物车</view>
<view class="buy" @tap="buy">立即购买</view>
<view v-if="good.num>0" class="buy" @tap="buy">立即购买</view>
<view v-else class="buy">库存不足</view>
</view>
</view>
<!-- share弹窗 -->
@ -102,16 +103,12 @@
</view>
</view>
</view>
<!-- 规格-模态层弹窗 -->
<!-- 立即购买-模态层弹窗 -->
<view class="popup spec" :class="specClass" @touchmove.stop.prevent="discard" @tap="hideSpec">
<!-- 遮罩层 -->
<view class="mask"></view>
<view class="layer" @tap.stop="discard">
<view class="content">
<!-- <view class="title">选择规格</view>
<view class="sp">
<view v-for="(item,index) in goodsData.spec" :class="[index==selectSpec?'on':'']" @tap="setSelectSpec(index)" :key="index">{{item}}</view>
</view> -->
<view class="length">
<view class="text">数量</view>
<view class="number">
@ -119,7 +116,7 @@
<view class="icon jian"></view>
</view>
<view class="input" @tap.stop="discard">
<input type="number" v-model="good._num" />
<input @input="numInput" type="number" v-model="good._num" />
</view>
<view class="add" @tap.stop="add">
<view class="icon jia"></view>
@ -336,12 +333,11 @@
methods: {
getGood(id) {
this.$u.api.getGood(id).then(res => {
let good = res.data
let good = res.data;
good._num = 1;//
if (good.content) {
good.content = richTextUtil.formatRichText(good.content);
good._num = 1;//
}
// console.log(good)
this.good = good
})
},
@ -399,13 +395,6 @@
buy() {
this.action = 'buy';
this.specClass = 'show'
// this.showSpec()
// if(this.selectSpec==null){
// return this.showSpec(()=>{
// this.toConfirmation();
// });
// }
// this.toConfirmation();
},
//
toRatings() {
@ -458,7 +447,19 @@
},
//
add() {
this.good._num++;
if(this.good._num>499){
return;
}else{
this.good._num++;
}
},
numInput() {
setTimeout(() => {
if(this.good._num>500){
this.good._num = 500;
}
}, 0)
},
//
toAnchor(index) {
@ -524,28 +525,29 @@
},
//
confirm() {
this.specClass = 'none';
//
// this.selectSpec&&this.specCallback&&this.specCallback();
// this.specCallback = false;
// setTimeout(() => {
// this.specClass = 'none';
// }, 200);
if (this.action == 'buy') {
this.toConfirmation()
} else {
this.$u.api.addtoCart(this.good.id, this.good._num).then(res => {
uni.showToast({
title: "已加入购物车"
});
})
debugger;
let num = parseInt(this.good._num);
if(num>this.good.num){
uni.showToast({
icon:'error',
title: "库存不足!"
});
}else{
this.specClass = 'none';
if (this.action == 'buy') {
this.toConfirmation()
} else {
this.$u.api.addtoCart(this.good.id, this.good._num).then(res => {
uni.showToast({
title: "已加入购物车"
});
})
}
}
},
discard() {
//
}
}
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -152,7 +152,7 @@
int: 1200, //
deduction: 0, //
recinfo:{
id:0,
id:null
},
if_invoice:2,
freights:{},
@ -162,7 +162,7 @@
};
},
async onLoad(){
onLoad(){
//
try {
const value = uni.getStorageSync('buylist');
@ -179,32 +179,24 @@
}
this.freights['shop'+this.buylist[i].shopId].total = this.freights['shop'+this.buylist[i].shopId].total + thisprice;
}
let ret = await this.getFreights(); //
// this.deduction = this.int / 100;
//console.log(this.freights)
this.calFreight() //
// let ret = await this.getFreights(); //
// this.calFreight() //
this.getFreights(); //2021/12/20
this.sumPrice = this.goodsPrice - this.deduction + parseFloat(this.freight);
}
} catch (e) {
// error
}
},
onShow() {
// uni.getStorage({
// key: 'buylist',
// success: (ret) => {
// }
// });
var that = this;
uni.getStorage({
key: 'selectAddress',
success: (e) => {
this.recinfo = e.data;
// uni.removeStorage({
// key: 'selectAddress'
// })
// debugger;
console.log(this.recinfo)
}
})
uni.getStorage({
@ -229,24 +221,35 @@
methods: {
calFreight(){
for(let key in this.freights){
var base_l = this.freights[key].base.split('|')
/* var base_l = this.freights[key].base.split('|')
if(this.freights[key].total>=base_l[0]){
this.freights[key].freight = 0
}else{
this.freights[key].freight=base_l[1]
}
this.freight = this.freight + this.freights[key].freight
} */
debugger;
this.freight = this.freight + this.freights[key].freight;
}
},
async getFreights() {
var that = this
for(let key in that.freights){
let shopId = key.replace('shop','')
let ret = await that.$u.api.getFreight(shopId);
that.freights[key].base = ret.data
}
var that = this;
/*// that.calFreight() */
let goods = []
for(let i=0;i<that.buylist.length;i++){
goods.push({
shopid: that.buylist[i].id,
num: that.buylist[i]._num
})
}
let datas = {
uid: that.vuex_user.uid,
data:goods
}
debugger;
await that.$u.api.getFreight(datas).then(res=>{
that.freight = res.data;
that.sumPrice = that.goodsPrice - that.deduction + parseFloat(that.freight);
});
},
clearOrder() {
uni.removeStorage({
@ -258,24 +261,52 @@
});
},
toPay() {
//
// let paymentOrder = [];
// let goodsid = [];
// let len = this.buylist.length;
// for (let i = 0; i < len; i++) {
// paymentOrder.push(this.buylist[i]);
// goodsid.push(this.buylist[i].id);
// }
// if (paymentOrder.length == 0) {
// uni.showToast({
// title: '',
// icon: 'none'
// });
// return;
// }
let that = this;
if(!this.recinfo.id){
debugger;
uni.showToast({
title: '请选择收货地址',
icon: 'none'
});
return;
}else{
let time = false;
that.$u.api.getAddress({prePage:50}).then(res=>{
for(let key in res.data){
if(res.data[key].id==that.recinfo.id){
time = true;
} else{
}
}
if(time){}else{
uni.showToast({
title: '请选择有效的收货地址',
icon: 'none'
});
that.recinfo = {};
return;
}
})
}
if(this.if_invoice==1 || this.if_invoice==2){
if(this.invoiceinfo.id){
let time1 = false;
that.$u.api.getInvoice({prePage:50}).then(res=>{
for(let key in res.data){
if(res.data[key].id==that.invoiceinfo.id){
time1 = true;
} else{
}
}
if(time){}else{
uni.showToast({
title: '请选择有效的发票地址',
icon: 'none'
});
that.invoiceinfo = {};
return;
}
})
}else{
uni.showToast({
title:'请选择发票信息',
@ -291,13 +322,7 @@
});
return;
}
if(this.recinfo.id==0){
uni.showToast({
title: '请选择收货地址',
icon: 'none'
});
return;
}
let goods = []
for(let i=0;i<this.buylist.length;i++){
goods.push({

View File

@ -29,7 +29,7 @@
<view class="nominal">汇款信息:</view>
<view class="nominal">请通过电汇的方式支付货款将汇款凭证拍照上传</view>
<view class="text">
账户名称: 中国建材检验认证集团股份有限公司
账户名称: 中国国检测试控股集团股份有限公司
</view>
<view class="text">
开户行: 工商银行北京管庄支行
@ -49,9 +49,28 @@
:limit="5" ref="files" :auto-upload="false" @select="select" />
</view>
</view>
<view class="pay">
<view class="btn" @tap="upImg()">提交</view>
<view class="protocol">
<view class="checkbox-box">
<view class="checkbox" @tap="selected">
<view :class="[portocol?'on':'']"></view>
</view>
<view class="text">我已阅读并同意<view class="linkText" @tap="protocolIndex">用户服务协议</view><view class="linkText" @tap="protocolPrivacy">隐私政策</view>
</view>
</view>
<!-- <checkbox v-model="portocol"></checkbox> -->
</view>
<view class="pay">
<view v-if="portocol" class="btn on" @tap="upImg()">
提交
</view>
<view v-else class="btn">
提交
</view>
</view>
<!-- <view class="pay">
<view class="btn" @tap="upImg()">提交</view>
</view> -->
</view>
</template>
@ -68,7 +87,8 @@
name: 'file',
url: '',
filepath: [],
rpath:[]
rpath:[],
portocol:false
};
},
onLoad(e) {
@ -89,6 +109,19 @@
})
},
methods: {
selected(){
this.portocol = !this.portocol;
},
protocolIndex(){
uni.navigateTo({
url:"../../protocol/index"
})
},
protocolPrivacy(){
uni.navigateTo({
url:"../../protocol/Privacy"
})
},
doDeposit() {
///
uni.showLoading({
@ -311,7 +344,39 @@
}
}
}
.protocol{
font-size: 26upx;
.checkbox-box{
display: flex;
align-items: center;
padding-bottom: 20upx;
justify-content: center;
.checkbox{
width: 35upx;
height: 35upx;
border-radius: 100%;
border: solid 2upx #f06c7a;
display: flex;
justify-content: center;
align-items: center;
.on{
width: 25upx;
height: 25upx;
border-radius: 100%;
background-color: #f06c7a;
}
}
.text{
display: flex;
margin-left: 10upx;
.linkText{
color: #007AFF;
}
}
}
}
.pay {
margin-top: 20upx;
width: 100%;
@ -327,10 +392,12 @@
justify-content: center;
align-items: center;
color: #fff;
background-color: #f06c7a;
background-color: #CCCCCC;
box-shadow: 0upx 5upx 10upx rgba(0, 0, 0, 0.2);
}
.on{
background-color: #f06c7a;
}
.tis {
margin-top: 10upx;
width: 100%;

View File

@ -0,0 +1,58 @@
<template>
<view class="protocolWrap">
<view>本指引是小程序开发者以下简称开发者为处理你的个人信息而制定</view>
<view class="firstLevel">
<view class="levelTitle">开发者处理的信息</view>
<view>根据法律规定开发者仅处理实现小程序功能所必要的信息</view>
<view>为了注册登录小程序以及页面的展示开发者收集你的用户信息微信昵称头像性别地区</view>
<view>开发者收集你的上传的图片用于核实对应订单流程</view>
<view>开发者收集你的发票相关信息用于提供发票回执</view>
</view>
<view class="firstLevel">
<view class="levelTitle">你的权益</view>
<view>开发者承诺除法律法规另有规定外开发者对你的信息的保存期限应当为实现处理目的所必要的最短时间</view>
<view>关于授权问题你可以通过以下路径小程序主页右上角设置点击特定信息点击不允许撤回对开发者的授权</view>
<view>关于你的个人信息你可以通过以下方式与开发者联系行使查阅复制更正删除等法定权利</view>
</view>
<view class="firstLevel">
<view class="levelTitle">开发者对信息的存储</view>
<view>开发者承诺除法律法规另有规定外开发者对你的信息的保存期限应当为实现处理目的所必要的最短时间</view>
</view>
<view class="firstLevel">
<view class="levelTitle">信息的使用规则</view>
<view>开发者将会在本指引所明示的用途内使用收集的信息</view>
<view>如开发者使用你的信息超出本指引目的或合理范围开发者必须在变更使用目的或范围前再次以微信方式告知并征得你的明示同意</view>
</view>
<view class="firstLevel">
<view class="levelTitle">信息对外提供</view>
<view>开发者承诺不会主动共享或转让你的信息至任何第三方如存在确需共享或转让时开发者应当直接征得或确认第三方征得你的单独同意</view>
<view>开发者承诺不会对外公开披露你的信息如必须公开披露时开发者应当向你告知公开披露的目的披露信息的类型及可能涉及的信息并征得你的单独同意</view>
<view>你认为开发者未遵守上述约定或有其他的投诉建议或未成年人个人信息保护相关问题可通过以下方式与开发者联系或者向微信进行投诉</view>
<view>微信号 wcharles_6003</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss">
.protocolWrap{
color: #333333;
padding: 20upx 30upx;
font-size: 32upx;
line-height: 46upx;
.firstLevel{
margin-top: 20upx;
.levelTitle{
font-weight: bold;
text-indent: 0em;
}
view{
text-indent: 2em;
}
}
}
</style>

50
pages/protocol/index.vue Normal file
View File

@ -0,0 +1,50 @@
<template>
<view class="protocolWrap">
<view class="firstLevel">
1用户在本小程序注册后用户应当妥善保存其账户信息和密码由于用户泄密所导致如用户发现他人冒用或盗用其账户或密码或其账户存在其他未经合法授权使用之情形应立即以有效方式通知本公司用户理解并同意本公司有权根据用户的通知请求或依据判断采取相应的行动或措施包括但不限于冻结账户限制账户功能等本公司对采取上述行动所导致的损失不承担除法律有明确规定外的责任
</view>
<view class="firstLevel">
2用户在使用本服务时须遵守法律法规不得利用本服务从事违法违规行为包括但不限于
<view>
1发布传送传播储存危害国家安全统一破坏社会稳定违反公序良俗侮辱诽谤淫秽暴力以及任何违反国家法律法规的内容
</view>
<view>
2发布传送传播储存侵害他人知识产权商业秘密等合法权利的内容
</view>
<view>
3恶意虚构事实隐瞒真相以误导欺骗他人
</view>
<view>
4发布传送传播广告信息及垃圾信息
</view>
<view>
5其他法律法规禁止的行为
</view>
</view>
<view class="firstLevel">
3用户不得利用本服务进行任何有损本公司及其关联企业之权利利益及商誉或其他用户合法权利之行为
</view>
<view class="firstLevel">
4用户不得从事任何利用本公司平台系统漏洞进行有损其他用户本公司或互联网安全的行为
</view>
</view>
</template>
<script>
</script>
<style lang="scss">
.protocolWrap{
padding: 20upx 30upx;
font-size: 32upx;
line-height: 46upx;
.firstLevel{
color: #333333;
margin-bottom: 20upx;
}
}
</style>

View File

@ -19,7 +19,7 @@
<view style=" width: 100%; padding: 20rpx 0 20rpx 150rpx;">
{{row.username}}
</view>
<view style=" display: flex;">
<view style="display: flex;width:100%">
<!-- checkbox -->
<view class="checkbox-box" @tap="selected(index)">
<view class="checkbox">
@ -36,18 +36,20 @@
<!-- <view class="spec">{{row.spec}}</view> -->
<view class="price-number">
<view class="price">{{row._price}}</view>
<view class="number">
<view class="sub" @tap.stop="sub(index)">
<view class="icon jian"></view>
<!-- <view style="display: flex;flex-shrink:0"> -->
<view class="number">
<view class="sub" @tap.stop="sub(index)">
<view class="icon jian"></view>
</view>
<view class="input" @tap.stop="discard">
<input type="number" v-model="row._num" @input="numInput(index)" />
</view>
<view class="add" @tap.stop="add(index)">
<view class="icon jia"></view>
</view>
</view>
<view class="input" @tap.stop="discard">
<input type="number" v-model="row._num" @input="sum($event,index)" />
</view>
<view class="add" @tap.stop="add(index)">
<view class="icon jia"></view>
</view>
</view>
<icon type="cancel" size="26" @tap.stop="deleteGood(row.id, index)"/>
<icon type="cancel" size="26" @tap.stop="deleteGood(row.id, index)"/>
<!-- </view> -->
</view>
</view>
</view>
@ -65,7 +67,7 @@
</view>
<!-- <view class="delBtn" @tap="deleteList" v-if="selectedList.length>0">删除</view> -->
<view class="settlement">
<view class="sum">合计:<view class="money">{{sumPrice}}</view></view>
<view class="sum">总计(不含运费):<view class="money">{{sumPrice}}</view></view>
<view class="btn" @tap="toConfirmation">结算
<!-- ({{selectedList.length}}) -->
</view>
@ -328,11 +330,25 @@
},
//
add(index){
this.goodsList[index]._num++;
this.sum();
if(this.goodsList[index]._num>499){
// this.sum();
}else{
this.goodsList[index]._num++;
this.sum();
}
},
numInput(index) {
setTimeout(() => {
if(this.goodsList[index]._num>500){
this.goodsList[index]._num=500;
}
this.sum();
}, 0)
},
//
sum(e,index){
this.sumPrice=0;
let len = this.goodsList.length;
for(let i=0;i<len;i++){
@ -544,6 +560,7 @@
display: flex;
justify-content: center;
align-items: flex-end;
margin-right: 10upx;
.input{
width: 60upx;
height: 60upx;
@ -604,12 +621,12 @@
align-items: center;
}
.settlement{
width: 60%;
width: 75%;
display: flex;
justify-content: flex-end;
align-items: center;
.sum{
width: 60%;
width: 75%;
font-size: 28upx;
margin-right: 10upx;
display: flex;

View File

@ -104,7 +104,7 @@
<view class="name">{{ product.title }}</view>
<view class="info">
<view class="price">{{ product.price }}</view>
<view class="slogan">{{ product.pay_num }}人已付款</view>
<!-- <view class="slogan">{{ product.pay_num }}人已付款</view> -->
</view>
</view>
</view>
@ -116,7 +116,7 @@
<script>
var ttt = 0;
//SDK
import amap from '@/common/SDK/amap-wx.js';
// import amap from '@/common/SDK/amap-wx.js';
export default {
data() {
return {
@ -130,25 +130,25 @@ export default {
currentSwiper: 0,
//
swiperList: [
{ id: 1, src: 'url1', img: '/static/img/1.jpg' },
{ id: 2, src: 'url2', img: '/static/img/2.jpg' },
{ id: 3, src: 'url3', img: '/static/img/3.jpg' }
// { id: 0, src: 'url1', img: '/static/img/1.png' },
// { id: 1, src: 'url2', img: '/static/img/2.png' },
// { id: 2, src: 'url3', img: '/static/img/3.png' }
],
//
categoryList: [
{ id: 1, name: '办公', img: '/static/img/category/1.png' },
/* { id: 1, name: '', img: '/static/img/category/1.png' },
{ id: 2, name: '家电', img: '/static/img/category/2.png' },
{ id: 3, name: '服饰', img: '/static/img/category/3.png' },
{ id: 4, name: '日用', img: '/static/img/category/4.png' },
{ id: 5, name: '蔬果', img: '/static/img/category/5.png' },
{ id: 6, name: '运动', img: '/static/img/category/6.png' },
{ id: 7, name: '书籍', img: '/static/img/category/7.png' },
{ id: 8, name: '文具', img: '/static/img/category/8.png' }
{ id: 8, name: '文具', img: '/static/img/category/8.png' } */
],
Promotion: [],
//
goodsList: [
{
/* {
goods_id: 0,
img: '/static/img/goods/p1.jpg',
name: '商品名称商品名称商品名称商品名称商品名称',
@ -218,6 +218,7 @@ export default {
price: '¥168',
slogan: '1235人付款'
}
*/
],
loadingText: '正在加载...',
page:1
@ -303,7 +304,11 @@ export default {
getbanners(){
this.$u.api.getBanners().then(res=>{
for(var i=0;i<res.data.length;i++){
res.data[i].img = this.vuex_host + '/' + res.data[i].img
let timestamp=new Date().getTime();
res.data[i].img = this.vuex_host + '/' + res.data[i].img+"?timer="+timestamp
console.log(i)
console.log(res.data[i].img)
// debugger;
}
this.swiperList = res.data;
console.log(this.swiperList)
@ -448,6 +453,8 @@ export default {
},
//
toSwiper(e) {
// debugger;
console.log(e)
// uni.showToast({ title: e.src, icon: 'none' });
},
//
@ -472,6 +479,7 @@ export default {
//
swiperChange(event) {
this.currentSwiper = event.detail.current;
}
}
};
@ -796,6 +804,8 @@ page{position: relative;background-color: #fff;}
border-radius: 20upx;
background-color: #fff;
margin: 0 0 15upx 0;
position: relative;
padding-bottom: 50upx;
box-shadow: 0upx 5upx 25upx rgba(0, 0, 0, 0.1);
image {
width: 100%;
@ -818,7 +828,8 @@ page{position: relative;background-color: #fff;}
align-items: flex-end;
width: 92%;
padding: 10upx 4% 10upx 4%;
position: absolute;
bottom: 0;
.price {
color: #e65339;
font-size: 30upx;

View File

@ -48,8 +48,20 @@
</view>
</view>
</view>
<view class="save" @tap="save">
<view class="btn">
<view class="protocol">
<view class="checkbox-box">
<view class="checkbox" @tap="selected">
<view :class="[portocol?'on':'']"></view>
</view>
<view class="text">我已阅读并同意<view class="linkText" @tap="protocolIndex">用户服务协议</view><view class="linkText" @tap="protocolPrivacy">隐私政策</view>
</view>
</view>
</view>
<view class="save">
<view v-if="portocol" class="btn on" @tap="save">
保存地址
</view>
<view v-else class="btn">
保存地址
</view>
</view>
@ -74,10 +86,24 @@
often: false,
cityPickerValue: [0, 0, 1],
themeColor: '#007AFF',
portocol:false
// region:{label:"",value:[],cityCode:""}
};
},
methods: {
selected(){
this.portocol = !this.portocol;
},
protocolIndex(){
uni.navigateTo({
url:"../../../protocol/index"
})
},
protocolPrivacy(){
uni.navigateTo({
url:"../../../protocol/Privacy"
})
},
onCancel(e) {
console.log(e)
},
@ -236,6 +262,39 @@
};
</script>
<style lang="scss">
.protocol{
font-size: 26upx;
.checkbox-box{
display: flex;
align-items: center;
padding-bottom: 120upx;
justify-content: center;
.checkbox{
width: 35upx;
height: 35upx;
border-radius: 100%;
border: solid 2upx #f06c7a;
display: flex;
justify-content: center;
align-items: center;
.on{
width: 25upx;
height: 25upx;
border-radius: 100%;
background-color: #f06c7a;
}
}
.text{
display: flex;
margin-left: 10upx;
.linkText{
color: #007AFF;
}
}
}
}
.save {
view {
display: flex;
@ -254,7 +313,7 @@
width: 70%;
height: 80upx;
border-radius: 80upx;
background-color: #f06c7a;
background-color: #cccccc;
color: #fff;
justify-content: center;
align-items: center;
@ -269,6 +328,9 @@
font-size: 30upx;
}
.on{
background-color: #f06c7a;
}
}
.content {

View File

@ -6,7 +6,7 @@
发票抬头
</view>
<view class="input">
<input placeholder="请输入" type="text" v-model="name" />
<input placeholder="请输入发票抬头" type="text" v-model="name" />
</view>
</view>
<view class="row">
@ -14,7 +14,7 @@
单位税号
</view>
<view class="input">
<input placeholder="请输入" type="text" v-model="duty_paragraph" />
<input placeholder="请输入单位税号" type="text" v-model="duty_paragraph" />
</view>
</view>
<view class="row">
@ -22,7 +22,7 @@
注册地址
</view>
<view class="input">
<input placeholder="请输入" type="text" v-model="address" />
<input placeholder="请输入注册地址" type="text" v-model="address" />
</view>
</view>
<view class="row">
@ -30,7 +30,7 @@
注册电话
</view>
<view class="input">
<input placeholder="请输入" type="text" v-model="telphone" />
<input placeholder="请输入注册电话" type="text" v-model="telphone" />
</view>
</view>
<view class="row">
@ -38,7 +38,7 @@
开户银行
</view>
<view class="input">
<input placeholder="请输入" type="text" v-model="bank" />
<input placeholder="请输入开户银行" type="text" v-model="bank" />
</view>
</view>
<view class="row">
@ -46,7 +46,7 @@
账号
</view>
<view class="input">
<input placeholder="请输入" type="text" v-model="account" />
<input placeholder="请输入开户银行" type="text" v-model="account" />
</view>
</view>
<view class="row">
@ -96,8 +96,22 @@
</view>
</view>
</view>
<view class="save" @tap="save">
<view class="btn">
<view class="protocol">
<view class="checkbox-box">
<view class="checkbox" @tap="selected">
<view :class="[portocol?'on':'']"></view>
</view>
<view class="text">我已阅读并同意<view class="linkText" @tap="protocolIndex">用户服务协议</view><view class="linkText" @tap="protocolPrivacy">隐私政策</view>
</view>
</view>
<!-- <checkbox v-model="portocol"></checkbox> -->
</view>
<view class="save">
<view v-if="portocol" class="btn on" @tap="save">
保存
</view>
<view v-else class="btn">
保存
</view>
</view>
@ -128,10 +142,24 @@
user:'',
invoice_tel:'',
invoice_addr:'',
portocol:false,
// region:{label:"",value:[],cityCode:""}
};
},
methods: {
selected(){
this.portocol = !this.portocol;
},
protocolIndex(){
uni.navigateTo({
url:"../../../protocol/index"
})
},
protocolPrivacy(){
uni.navigateTo({
url:"../../../protocol/Privacy"
})
},
onCancel(e) {
console.log(e)
},
@ -256,6 +284,39 @@
};
</script>
<style lang="scss">
.protocol{
font-size: 26upx;
.checkbox-box{
display: flex;
align-items: center;
padding-bottom: 120upx;
justify-content: center;
.checkbox{
width: 35upx;
height: 35upx;
border-radius: 100%;
border: solid 2upx #f06c7a;
display: flex;
justify-content: center;
align-items: center;
.on{
width: 25upx;
height: 25upx;
border-radius: 100%;
background-color: #f06c7a;
}
}
.text{
display: flex;
margin-left: 10upx;
.linkText{
color: #007AFF;
}
}
}
}
.save {
view {
display: flex;
@ -274,7 +335,7 @@
width: 70%;
height: 80upx;
border-radius: 80upx;
background-color: #f06c7a;
background-color: #CCCCCC;
color: #fff;
justify-content: center;
align-items: center;
@ -289,12 +350,15 @@
font-size: 30upx;
}
.on{
background-color: #f06c7a;
}
}
.content {
display: flex;
flex-wrap: wrap;
padding-bottom: 120upx;
// padding-bottom: 120upx;
view {
display: flex;

View File

@ -34,7 +34,9 @@
</view>
<view class="block">
<view class="marginBottom20"><view class="grayColor">订单编号:</view>{{row.order_sn}}</view>
<view><view class="grayColor">下单时间:</view>{{row.create_time}}</view>
<view class="marginBottom20"><view class="grayColor">下单时间:</view>{{row.create_time}}</view>
<view v-if="row.shipping_name!==''" class="marginBottom20"><view class="grayColor">物流公司:</view>{{row.shipping_name}}</view>
<view v-if="row.shipping_code!==''"><view class="grayColor">物流单号:</view>{{row.shipping_code}}</view>
</view>
<view class="block">
<view :class="[row.if_invoice!==0?'marginBottom20':'']"><view class="grayColor">发票类型:</view> <text v-if="row.if_invoice==0"></text> <text v-else-if="row.if_invoice==1">普票</text> <text v-else>专票</text></view>
@ -71,23 +73,42 @@
name: 'file',
url: '',
filepath: [],
rpath:[]
rpath:[],
logistics:'lalalala',
hasLogs:false,
};
},
onLoad(e) {
uni.getStorage({
key: 'orderDetail',
success: (res) => {
// debugger;
let row = JSON.parse(res.data);
this.row = row;
this.goodMoney = (row.totalmoney-row.real_freight).toFixed(2)
this.url = this.vuex_host +
'index.php/index/attachment/upload?dir=images&from=base64&module=index'
}
})
onLoad(option) {
debugger
console.log("option: "+ option.orderId)
this.orderId = parseInt(option.orderId);
//H5
// #ifdef H5
let Timer = setInterval(()=>{
let uniHead = document.getElementsByTagName('uni-page-head');
if(uniHead.length>0){
this.headerTop = uniHead[0].offsetHeight+'px';
clearInterval(Timer);//
}
},1);
// #endif
},
onShow(){
this.getOrderDetail()
},
methods: {
getOrderDetail(){
debugger;
var that = this;
that.$u.api.orderDetail(that.orderId).then(res=>{
that.row = res.data;
that.goodMoney = (that.row.totalmoney-that.row.real_freight).toFixed(2)
that.url = that.vuex_host +
'index.php/index/attachment/upload?dir=images&from=base64&module=index'
})
},
toGoods(row) {
uni.navigateTo({
url: '../../goods/goods?id='+row.id
@ -110,6 +131,22 @@
}, 300);
}, 700)
},
//
viewLogistic(){
var that = this;
that.hasLogs = true;
/* that.$u.api(that.row.id).then(res=>{
if(res.data){
that.hasLogs = true;
uni.showToast({
title: '查询成功',
icon:'none'
});
}else{}
}) */
},
cancelOrder(){
var that = this;
uni.showModal({
@ -232,7 +269,16 @@
width: 100%;
font-size: 34upx;
}
.viewLogistics{
height: 50upx;
padding: 0 20upx;
border-radius: 30upx;
font-size: 26upx;
display: inline-block;
line-height: 50upx;
color: #0055ff;
border: 1upx solid #0055ff;
}
.content {
.nominal {
color: gray;

View File

@ -40,18 +40,18 @@
</view>
</view>
<view>{{row.shop_db[0].username}}</view>
<view class="order-info" v-for="row in row.shop_db" v-bind:key="row.id" @click="orderDetail(row,index)">
<view class="order-info" v-for="item in row.shop_db" v-bind:key="item.id" @click="orderDetail(row,index)">
<view class="left">
<image :src="row.picurl"></image>
<image :src="item.picurl"></image>
</view>
<view class="right">
<view class="name">
{{row.full_title}}
{{item.full_title}}
</view>
<!-- <view class="spec">{{row.spec}}</view> -->
<view class="price-number">
<view class="price">{{row._price}}</view>
x<view class="number">{{row._num}}</view>
<view class="price">{{item._price}}</view>
x<view class="number">{{item._num}}</view>
</view>
</view>
@ -61,11 +61,12 @@
<view class="number" style="font-size: 24upx;">收货人:{{row.linkman}} {{row.telphone}}</view>
<!-- <view class="number" style="font-size: 24upx;">订单号:{{row.order_sn}}<span style="color:red">|{{row.create_time}}</span></view> -->
</view>
<!-- <view class="detail">
<view class="number">{{row.shop_db.length}}件商品</view><view class="sum">合计<view class="price">{{row.totalmoney}}</view></view><view class="nominal">(含运费 {{row.real_freight}})</view>
</view> -->
<view class="detail">
<!-- <view class="number">{{row.shop_db.length}}件商品</view> -->
<view class="sum">合计<view class="price">{{row.totalmoney}}</view></view><view class="nominal">(含运费 {{row.real_freight}})</view>
</view>
<view class="btns">
<view class="default" @tap="cancelOrder(row.id, index)" v-if="row.pay_status!=0&&row.shipping_status==0">取消订单</view>
<view class="default" @tap="cancelOrder(row.id, index)" v-if="row.shipping_status==0">取消订单</view>
<view class="pay" @tap="toUppay(row)" v-if="row.pay_status==0||row.pay_status==2">上传付款凭证</view></block>
<!-- <block v-if="row.type=='back'"><view class="default" @tap="remindDeliver(row)">提醒发货</view></block> -->
<!-- <view class="default" @tap="showLogistics(row)">查看物流</view> -->
@ -332,8 +333,12 @@
uni.showLoading({
title:'正在获取订单...'
})
debugger;
console.log(row)
setTimeout(()=>{
uni.setStorage({
uni.setStorageSync('orderId',row.id);
uni.navigateTo({url:'./orderDetail?orderId='+row.id})
/* uni.setStorage({
key:'orderDetail',
data:JSON.stringify(this.list[index]),
success: () => {
@ -342,8 +347,8 @@
url:'./orderDetail'
})
}
})
},500)
}) */
},100)
}
}
}
@ -484,6 +489,7 @@ page{
display: flex;
align-items: flex-end;
.price{
color:#ec652f;
font-size: 30upx;
}
}

View File

@ -24,6 +24,10 @@
<view class="title">发票信息</view>
<view class="right"><view class="tis"></view><view class="icon xiangyou"></view></view>
</view>
<!-- <view class="row" @click="unBindWeixin()">
<view class="title">微信解绑</view>
<view class="right"><view class="tis"></view><view class="icon xiangyou"></view></view>
</view> -->
</view>
<!-- <view class="list">
<view class="row">
@ -97,7 +101,7 @@
url:'/pages/user/invoice/invoice'
})
},
logout(){
unBindWeixin(){
var that = this
that.$u.api.logout().then(res=>{
if(res.code==0){
@ -108,6 +112,14 @@
})
}
})
},
logout(){
var that = this
that.$u.vuex('vuex_user', {nickname: '游客', icon:'/static/img/face.jpg'})
that.$u.vuex('vuex_token', '')
uni.reLaunch({
url:'/pages/login/login'
})
}
}
}

View File

@ -1,5 +1,5 @@
page {
background: linear-gradient(to bottom, #f06c7a 0%, #f06c7a 100%);
background: linear-gradient(to bottom, #01a5e4 0%, #01a5e4 100%);
height: 100%;
}
.icon {
@ -18,6 +18,9 @@ page {
image {
width: 100%;
border-radius: 100%;
padding: 10rpx;
// box-sizing: border-box;
background: #ffffff;
}
}
}
@ -45,7 +48,7 @@ page {
}
.btn {
color: #f06c7a;
color: #01a5e4;
width: 100%;
height: 90upx;
display: flex;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

BIN
static/img/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

BIN
static/img/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

BIN
static/img/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
static/img/cycLogoImg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB