Compare commits
8 Commits
Author | SHA1 | Date |
---|---|---|
|
8af970ce6d | |
|
b2e3ed094b | |
|
c6b2d3c983 | |
|
dce7d15ab1 | |
|
119d92ea09 | |
|
c6c34c30c6 | |
|
12931ae7d5 | |
|
732db99e9a |
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
|
||||
</project>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptSettings">
|
||||
<option name="languageLevel" value="ES6" />
|
||||
</component>
|
||||
</project>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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 {
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
"quickapp" : {},
|
||||
/* 快应用特有相关 */
|
||||
"mp-weixin" : {
|
||||
/* 小程序特有相关 */
|
||||
"appid" : "wxe27470b2f09a2508",
|
||||
"setting" : {
|
||||
"urlCheck" : false
|
||||
|
|
39
pages.json
|
@ -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": "获取信息为了页面更好的展示,请确认授权"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
//丢弃
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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({
|
||||
|
|
|
@ -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,6 +344,38 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
.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;
|
||||
|
@ -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%;
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
BIN
static/img/1.jpg
Before Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 121 KiB |
BIN
static/img/2.jpg
Before Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 123 KiB |
BIN
static/img/3.jpg
Before Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 1.5 KiB |