From 3d1e8016516b1b27def77871c8644be363d4fb88 Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期五, 26 七月 2024 18:38:59 +0800 Subject: [PATCH] 1 --- /dev/null | 41 - environments/index.js | 3 sub_pages/customer/self/collect.vue | 286 +++++---- pages.json | 12 mixin/mixin.js | 723 +++++++----------------- main.js | 20 sub_pages/customer/trade/detail.vue | 640 +++++++++++---------- 7 files changed, 711 insertions(+), 1,014 deletions(-) diff --git a/common/airport.js b/common/airport.js deleted file mode 100644 index 445b6aa..0000000 --- a/common/airport.js +++ /dev/null @@ -1,262 +0,0 @@ -export default { - "list": [{ - "letter": "A", - "data": [ - "阿克苏机场", - "阿拉山口机场", - "阿勒泰机场", - "阿里昆莎机场", - "安庆天柱山机场", - "澳门国际机场" - ] - }, { - "letter": "B", - "data": [ - "保山机场", - "包头机场", - "北海福成机场", - "北京南苑机场", - "北京首都国际机场" - ] - }, { - "letter": "C", - "data": [ - "长白山机场", - "长春龙嘉国际机场", - "常德桃花源机场", - "昌都邦达机场", - "长沙黄花国际机场", - "长治王村机场", - "常州奔牛机场", - "成都双流国际机场", - "赤峰机场" - ] - }, { - "letter": "D", - "data": [ - "大理机场", - "大连周水子国际机场", - "大庆萨尔图机场", - "大同东王庄机场", - "达州河市机场", - "丹东浪头机场", - "德宏芒市机场", - "迪庆香格里拉机场", - "东营机场", - "敦煌机场" - ] - }, { - "letter": "E", - "data": [ - "鄂尔多斯机场", - "恩施许家坪机场", - "二连浩特赛乌苏国际机场" - ] - }, { - "letter": "F", - "data": [ - "阜阳西关机场", - "福州长乐国际机场" - ] - }, { - "letter": "G", - "data": [ - "赣州黄金机场", - "格尔木机场", - "固原六盘山机场", - "广元盘龙机场", - "广州白云国际机场", - "桂林两江国际机场", - "贵阳龙洞堡国际机场" - ] - }, { - "letter": "H", - "data": [ - "哈尔滨太平国际机场", - "哈密机场", - "海口美兰国际机场", - "海拉尔东山国际机场", - "邯郸机场", - "汉中机场", - "杭州萧山国际机场", - "合肥骆岗国际机场", - "和田机场", - "黑河机场", - "呼和浩特白塔国际机场", - "淮安涟水机场", - "黄山屯溪国际机场" - ] - }, { - "letter": "I", - "data": [] - }, { - "letter": "J", - "data": [ - "济南遥墙国际机场", - "济宁曲阜机场", - "鸡西兴凯湖机场", - "佳木斯东郊机场", - "嘉峪关机场", - "锦州小岭子机场", - "景德镇机场", - "井冈山机场", - "九江庐山机场", - "九寨黄龙机场" - ] - }, { - "letter": "K", - "data": [ - "喀什机场", - "克拉玛依机场", - "库车龟兹机场", - "库尔勒机场", - "昆明巫家坝国际机场" - ] - }, { - "letter": "L", - "data": [ - "拉萨贡嘎机场", - "兰州中川机场", - "丽江三义机场", - "黎平机场", - "连云港白塔埠机场", - "临沧机场", - "临沂机场", - "林芝米林机场", - "柳州白莲机场", - "龙岩冠豸山机场", - "泸州蓝田机场", - "洛阳北郊机场" - ] - }, { - "letter": "M", - "data": [ - "满洲里西郊机场", - "绵阳南郊机场", - "漠河古莲机场", - "牡丹江海浪机场" - ] - }, { - "letter": "N", - "data": [ - "南昌昌北国际机场", - "南充高坪机场", - "南京禄口国际机场", - "南宁吴圩机场", - "南通兴东机场", - "南阳姜营机场", - "宁波栎社国际机场" - ] - }, { - "letter": "O", - "data": [] - }, { - "letter": "P", - "data": [ - "普洱思茅机场" - ] - }, { - "letter": "Q", - "data": [ - "齐齐哈尔三家子机场", - "秦皇岛山海关机场", - "青岛流亭国际机场", - "衢州机场", - "泉州晋江机场" - ] - }, { - "letter": "R", - "data": [ - "日喀则和平机场" - ] - }, { - "letter": "S", - "data": [ - "三亚凤凰国际机场", - "汕头外砂机场", - "上海虹桥国际机场", - "上海浦东国际机场", - "深圳宝安国际机场", - "沈阳桃仙国际机场", - "石家庄正定国际机场", - "苏南硕放国际机场" - ] - }, { - "letter": "T", - "data": [ - "塔城机场", - "太原武宿国际机场", - "台州路桥机场 (黄岩机场)", - "唐山三女河机场", - "腾冲驼峰机场", - "天津滨海国际机场", - "通辽机场", - "铜仁凤凰机场" - ] - }, { - "letter": "U", - "data": [] - }, { - "letter": "V", - "data": [] - }, { - "letter": "W", - "data": [ - "万州五桥机场", - "潍坊机场", - "威海大水泊机场", - "文山普者黑机场", - "温州永强国际机场", - "乌海机场", - "武汉天河国际机场", - "乌兰浩特机场", - "乌鲁木齐地窝堡国际机场", - "武夷山机场", - "梧州长洲岛机场" - ] - }, { - "letter": "X", - "data": [ - "西安咸阳国际机场", - "西昌青山机场", - "锡林浩特机场", - "西宁曹家堡机场", - "西双版纳嘎洒机场", - "厦门高崎国际机场", - "香港国际机场", - "襄阳刘集机场", - "兴义机场", - "徐州观音机场" - ] - }, { - "letter": "Y", - "data": [ - "延安二十里堡机场", - "盐城机场", - "延吉朝阳川机场", - "烟台莱山国际机场", - "宜宾菜坝机场", - "宜昌三峡机场", - "伊春林都机场", - "伊宁机场", - "义乌机场", - "银川河东机场", - "永州零陵机场", - "榆林榆阳机场", - "玉树巴塘机场", - "运城张孝机场" - ] - }, { - "letter": "Z", - "data": [ - "湛江机场", - "昭通机场", - "郑州新郑国际机场", - "芷江机场", - "重庆江北国际机场", - "中卫香山机场", - "舟山朱家尖机场", - "珠海三灶机场" - ] - }] -} diff --git a/common/html-parser.js b/common/html-parser.js deleted file mode 100644 index 20a89b2..0000000 --- a/common/html-parser.js +++ /dev/null @@ -1,352 +0,0 @@ -/* - * HTML5 Parser By Sam Blowes - * - * Designed for HTML5 documents - * - * Original code by John Resig (ejohn.org) - * http://ejohn.org/blog/pure-javascript-html-parser/ - * Original code by Erik Arvidsson, Mozilla Public License - * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js - * - * ---------------------------------------------------------------------------- - * License - * ---------------------------------------------------------------------------- - * - * This code is triple licensed using Apache Software License 2.0, - * Mozilla Public License or GNU Public License - * - * //////////////////////////////////////////////////////////////////////////// - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy - * of the License at http://www.apache.org/licenses/LICENSE-2.0 - * - * //////////////////////////////////////////////////////////////////////////// - * - * The contents of this file are subject to the Mozilla Public License - * Version 1.1 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" - * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the - * License for the specific language governing rights and limitations - * under the License. - * - * The Original Code is Simple HTML Parser. - * - * The Initial Developer of the Original Code is Erik Arvidsson. - * Portions created by Erik Arvidssson are Copyright (C) 2004. All Rights - * Reserved. - * - * //////////////////////////////////////////////////////////////////////////// - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * ---------------------------------------------------------------------------- - * Usage - * ---------------------------------------------------------------------------- - * - * // Use like so: - * HTMLParser(htmlString, { - * start: function(tag, attrs, unary) {}, - * end: function(tag) {}, - * chars: function(text) {}, - * comment: function(text) {} - * }); - * - * // or to get an XML string: - * HTMLtoXML(htmlString); - * - * // or to get an XML DOM Document - * HTMLtoDOM(htmlString); - * - * // or to inject into an existing document/DOM node - * HTMLtoDOM(htmlString, document); - * HTMLtoDOM(htmlString, document.body); - * - */ -// Regular Expressions for parsing tags and attributes -var startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/; -var endTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/; -var attr = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g; // Empty Elements - HTML 5 - -var empty = makeMap('area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr'); // Block Elements - HTML 5 -// fixed by xxx 将 ins 标签从块级名单中移除 - -var block = makeMap('a,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video'); // Inline Elements - HTML 5 - -var inline = makeMap('abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var'); // Elements that you can, intentionally, leave open -// (and which close themselves) - -var closeSelf = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr'); // Attributes that have their values filled in disabled="disabled" - -var fillAttrs = makeMap('checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected'); // Special Elements (can contain anything) - -var special = makeMap('script,style'); -function HTMLParser(html, handler) { - var index; - var chars; - var match; - var stack = []; - var last = html; - - stack.last = function () { - return this[this.length - 1]; - }; - - while (html) { - chars = true; // Make sure we're not in a script or style element - - if (!stack.last() || !special[stack.last()]) { - // Comment - if (html.indexOf('<!--') == 0) { - index = html.indexOf('-->'); - - if (index >= 0) { - if (handler.comment) { - handler.comment(html.substring(4, index)); - } - - html = html.substring(index + 3); - chars = false; - } // end tag - - } else if (html.indexOf('</') == 0) { - match = html.match(endTag); - - if (match) { - html = html.substring(match[0].length); - match[0].replace(endTag, parseEndTag); - chars = false; - } // start tag - - } else if (html.indexOf('<') == 0) { - match = html.match(startTag); - - if (match) { - html = html.substring(match[0].length); - match[0].replace(startTag, parseStartTag); - chars = false; - } - } - - if (chars) { - index = html.indexOf('<'); - var text = index < 0 ? html : html.substring(0, index); - html = index < 0 ? '' : html.substring(index); - - if (handler.chars) { - handler.chars(text); - } - } - } else { - html = html.replace(new RegExp('([\\s\\S]*?)<\/' + stack.last() + '[^>]*>'), function (all, text) { - text = text.replace(/<!--([\s\S]*?)-->|<!\[CDATA\[([\s\S]*?)]]>/g, '$1$2'); - - if (handler.chars) { - handler.chars(text); - } - - return ''; - }); - parseEndTag('', stack.last()); - } - - if (html == last) { - throw 'Parse Error: ' + html; - } - - last = html; - } // Clean up any remaining tags - - - parseEndTag(); - - function parseStartTag(tag, tagName, rest, unary) { - tagName = tagName.toLowerCase(); - - if (block[tagName]) { - while (stack.last() && inline[stack.last()]) { - parseEndTag('', stack.last()); - } - } - - if (closeSelf[tagName] && stack.last() == tagName) { - parseEndTag('', tagName); - } - - unary = empty[tagName] || !!unary; - - if (!unary) { - stack.push(tagName); - } - - if (handler.start) { - var attrs = []; - rest.replace(attr, function (match, name) { - var value = arguments[2] ? arguments[2] : arguments[3] ? arguments[3] : arguments[4] ? arguments[4] : fillAttrs[name] ? name : ''; - attrs.push({ - name: name, - value: value, - escaped: value.replace(/(^|[^\\])"/g, '$1\\\"') // " - - }); - }); - - if (handler.start) { - handler.start(tagName, attrs, unary); - } - } - } - - function parseEndTag(tag, tagName) { - // If no tag name is provided, clean shop - if (!tagName) { - var pos = 0; - } // Find the closest opened tag of the same type - else { - for (var pos = stack.length - 1; pos >= 0; pos--) { - if (stack[pos] == tagName) { - break; - } - } - } - - if (pos >= 0) { - // Close all the open elements, up the stack - for (var i = stack.length - 1; i >= pos; i--) { - if (handler.end) { - handler.end(stack[i]); - } - } // Remove the open elements from the stack - - - stack.length = pos; - } - } -} - -function makeMap(str) { - var obj = {}; - var items = str.split(','); - - for (var i = 0; i < items.length; i++) { - obj[items[i]] = true; - } - - return obj; -} - -function removeDOCTYPE(html) { - return html.replace(/<\?xml.*\?>\n/, '').replace(/<!doctype.*>\n/, '').replace(/<!DOCTYPE.*>\n/, ''); -} - -function parseAttrs(attrs) { - return attrs.reduce(function (pre, attr) { - var value = attr.value; - var name = attr.name; - - if (pre[name]) { - pre[name] = pre[name] + " " + value; - } else { - pre[name] = value; - } - - return pre; - }, {}); -} - -function parseHtml(html) { - html = removeDOCTYPE(html); - var stacks = []; - var results = { - node: 'root', - children: [] - }; - HTMLParser(html, { - start: function start(tag, attrs, unary) { - var node = { - name: tag - }; - - if (attrs.length !== 0) { - node.attrs = parseAttrs(attrs); - } - - if (unary) { - var parent = stacks[0] || results; - - if (!parent.children) { - parent.children = []; - } - - parent.children.push(node); - } else { - stacks.unshift(node); - } - }, - end: function end(tag) { - var node = stacks.shift(); - if (node.name !== tag) console.error('invalid state: mismatch end tag'); - - if (stacks.length === 0) { - results.children.push(node); - } else { - var parent = stacks[0]; - - if (!parent.children) { - parent.children = []; - } - - parent.children.push(node); - } - }, - chars: function chars(text) { - var node = { - type: 'text', - text: text - }; - - if (stacks.length === 0) { - results.children.push(node); - } else { - var parent = stacks[0]; - - if (!parent.children) { - parent.children = []; - } - - parent.children.push(node); - } - }, - comment: function comment(text) { - var node = { - node: 'comment', - text: text - }; - var parent = stacks[0]; - - if (!parent.children) { - parent.children = []; - } - - parent.children.push(node); - } - }); - return results.children; -} - -export default parseHtml; diff --git a/common/self_base.js b/common/self_base.js deleted file mode 100644 index d4d4ee1..0000000 --- a/common/self_base.js +++ /dev/null @@ -1,53 +0,0 @@ -import store from '../store/index.js' -import message from '../plugins/message.js' - -exports.install = function(Vue, options) { - Vue.prototype.isCurrent = function(current, arr) { - if (!!arr) { - for (let url of arr) { - if (current == url) { - return true - } - } - } - return false - }; - Vue.prototype.goto = function(current_path,url) { - console.log('current_path:',current_path,' url:',url) - console.log('store') - // console.log(store.state.hasLogin) - - if (current_path == url) { - - } else { - //判断有没有登录 - // if(url.con) - if(url.includes('/center')&&!store.state.hasLogin&&!store.state.isDebug){ - //跳转到不同页面 - console.log('goto no登录') - // store.state.hasLogin = true - // // #ifdef H5 - // uni.navigateTo({ - // url: '/views/pc/login' - // }); - // // #endif - // // #ifndef H5 - // uni.navigateTo({ - // url: '/views/app/login' - // }); - // // #endif - message.showToast('请先登录') - // uni.navigateTo({ - // url: '/views/home/home?select=self' - // }); - }else{ - console.log('goto ok登录') - uni.navigateTo({ - url: url - }); - } - - } - - }; -}; diff --git a/environments/index.js b/environments/index.js index 35e6a7b..199d56d 100644 --- a/environments/index.js +++ b/environments/index.js @@ -3,12 +3,9 @@ httpBaseUri: 'https://www.hmyxianhua.com/flower', // httpBaseUri: 'http://47.99.58.211/flower', // httpBaseUri: 'http://localhost:8080/flower', - clientId: '', secret: '', tenantId: '', - appDownloadUri: 'http://xxx/app/', - websocketUrl: '', type: 'dev' } diff --git a/main.js b/main.js index 9cdb3b5..0f77c8f 100644 --- a/main.js +++ b/main.js @@ -1,4 +1,4 @@ -// #ifndef VUE3 + import Vue from 'vue' import App from './App' import store from './store' @@ -13,8 +13,8 @@ Vue.prototype.$storage = storage import util from './plugins/util' Vue.prototype.$util = util -import self_base from './common/self_base.js' -Vue.use(self_base); +// import self_base from './common/self_base.js' +// Vue.use(self_base); import mixinsCommon from './mixin/mixin.js' Vue.mixin(mixinsCommon) @@ -92,17 +92,3 @@ ...App }) app.$mount() -// #endif - -// #ifdef VUE3 -import { - createSSRApp -} from 'vue' -import App from './App.vue' -export function createApp() { - const app = createSSRApp(App) - return { - app - } -} -// #endif \ No newline at end of file diff --git a/mixin/mixin.js b/mixin/mixin.js index c119261..f81204d 100644 --- a/mixin/mixin.js +++ b/mixin/mixin.js @@ -1,515 +1,250 @@ import { - mapState + mapState } from 'vuex' import store from "../store"; -import environments from '@/environments' +// import environments from '@/environments' const mixinsCommon = { - computed: { - ...mapState({ - hasLogin: state => { - // console.log('computed hasLogin',state.hasLogin,state) - return state.hasLogin || false - }, - selftype: state => { - return (state.currentInfo || {}).type || '' - }, - currentInfo: state => { - return state.currentInfo || {} - }, - cache_address: state => { - return state.cache_address || {} - }, - cache_user: state => { - return state.currentInfo || {} - }, - sign: state => { - return state.sign || {} - }, - // currentEnId: state=>{ - // // console.log('currentEnId',state.currentInfo.enId,state.currentInfo) - // return state.currentInfo.enId || '' - // } - }), - }, - data() { - return { - list: [], - query: {}, - page: { - size: 10, - current: 1, - total: 0, - }, - style: { - 'color': '#fff' - }, - listApi: '', - regUserName: '用户-' + this.getRandomName(Math.floor(Math.random() * (6 - 2) + 3)), - regAvatarUrl: 'https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png', - - } - }, - methods: { - onChooseavatar(e) { - let self = this; - let { - avatarUrl - } = e.detail; - this.regAvatarUrl = avatarUrl - console.log('avatarUrl', this.regAvatarUrl) - }, - onBindblur(e) { - this.regUserName = e.detail.value; // 获取微信昵称 - }, - onBindinput(e) { - this.regUserName = e.detail.value; // 获取微信昵称 - }, - randomAccess(min, max) { - return Math.floor(Math.random() * (min - max) + max) - }, - getRandomName(NameLength) { - let name = "" - for (let i = 0; i < NameLength; i++) { - let unicodeNum = "" - unicodeNum = this.randomAccess(0x4e00, 0x9fa5).toString(16) - name += this.decodeUnicode(unicodeNum) - } - return name - }, - decodeUnicode(str) { - //Unicode显示方式是\u4e00 - str = "\\u" + str - str = str.replace(/\\/g, "%"); - //转换中文 - str = unescape(str); - //将其他受影响的转换回原来 - str = str.replace(/%/g, "\\"); - return str; - }, - async onWxCheckSubmit() { - if (this.regUserName == '微信用户') { - this.$message.showToast('昵称不合规,不可以叫做:微信用户哈~') - return - } - //保存一下 - //先上传图片 - if (this.regAvatarUrl === - 'https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png') { - var picture = this.regAvatarUrl - //更新接口 - this.$message.showLoading() - const { - code - } = await this.$http.request('post', "/api/current/user/update", { - data: { - ...this.dto, - nickName: this.regUserName, - picture: picture - } - }) - - this.$message.hideLoading() - this.$forceUpdate() - if (code == 0) { - this.$refs.popup_info.close() - this.$message.showToast('设置成功') - this.currentInfo.picture = picture - this.currentInfo.nickName = this.regUserName - } else { - - } - } else { - this.$http.upload(this.regAvatarUrl).then(async res => { - var picture = res.data && res.data.length > 0 && res.data[0].url || '' - //更新接口 - this.$message.showLoading() - const { - code - } = await this.$http.request('post', "/api/current/user/update", { - data: { - ...this.currentInfo, - nickName: this.regUserName, - picture: picture - } - }) - - this.$message.hideLoading() - this.$forceUpdate() - if (code == 0) { - this.$refs.popup_info.close() - this.$message.showToast('设置成功') - this.currentInfo.picture = picture - this.currentInfo.nickName = this.regUserName - } else { - - } - }) - } - }, + computed: { + ...mapState({ + hasLogin: state => { + // console.log('computed hasLogin',state.hasLogin,state) + return state.hasLogin || false + }, + selftype: state => { + return (state.currentInfo || {}).type || '' + }, + currentInfo: state => { + return state.currentInfo || {} + }, + cache_address: state => { + return state.cache_address || {} + }, + cache_user: state => { + return state.currentInfo || {} + }, + sign: state => { + return state.sign || {} + }, + // currentEnId: state=>{ + // // console.log('currentEnId',state.currentInfo.enId,state.currentInfo) + // return state.currentInfo.enId || '' + // } + }), + }, + data() { + return { + list: [], + query: {}, + page: { + size: 10, + current: 1, + total: 0, + }, + style: { + 'color': '#fff' + }, + listApi: '', + // regUserName: '用户-' + this.getRandomName(Math.floor(Math.random() * (6 - 2) + 3)), + // regAvatarUrl: 'https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png', + regUserName: '', + regAvatarUrl: '', + } + }, + methods: { + onChooseavatar(e) { + let self = this; + let { + avatarUrl + } = e.detail; + this.regAvatarUrl = avatarUrl + console.log('avatarUrl', this.regAvatarUrl) + }, + onBindblur(e) { + this.regUserName = e.detail.value; // 获取微信昵称 + }, + onBindinput(e) { + this.regUserName = e.detail.value; // 获取微信昵称 + }, - async getUserProfile(e) { - this.$message.showLoading() - const res = await wx.getUserProfile({ - desc: '用于完善会员资料', - }); - console.log(res); - this.$message.hideLoading() - this.login_Wx(res.userInfo.avatarUrl, res.userInfo.nickName) - }, - login_Wx(imgurl, nickname) { - //获取openId - // /wx/jscode2session - let inviter = this.$storage.getItem('inviter') || '' - let inviterName = this.$storage.getItem('inviterName') || '' - //有效24小时 - if (inviter) { - var inviterTime = this.$storage.getItem('inviterTime') - if (new Date().getTime() > parseInt(inviterTime) + 1000 * 3600 * 24) { - inviter = '' - inviterName = '' - this.$storage.removeItem('inviter') - this.$storage.removeItem('inviterTime') - this.$storage.removeItem('inviterName') - } - } - const tmp = this; - this.$message.showLoading() - this.openid = this.$storage.getItem('openid'); - this.tel = this.$storage.getItem('tel'); - console.log('info,info,info,info,info,info', this.openid, this.tel); - if (!!this.openid && !!this.tel) { - // this.login = true; - } else { - // this.login = false; - console.log('wx.login'); - wx.login({ - success: async res => { - if (res.code) { - //微信登录成功 已拿到code - // tmp.login = true; - // tmp.jsCode = res.code; //保存获取到的code - console.log('abcd', res.code); - // this.$http.request('post',`/api/login/wechat`,{data:{code:tmp.jsCode}}) - this.$storage.setItem('jsCode', res.code); - const res2 = await wx.getUserInfo(); - console.log('res', res2); - this.tcode = res.code || '' - // if (nickname == '微信用户' || true) { - // //跳出弹出框,获取具体用户信息 - // tmp.$message.hideLoading() + previewImg(url) { + if (url) { + uni.previewImage({ + urls: [url] + }) + } + }, + checkFormValues(dto, keys) { + if (keys) { + for (var key of keys) { + if (!dto[key]) { + return false + } + } + } + return true + }, + async refreshList(type = 'get') { + this.page.current = 1 + await this.getList(type) + }, + async getList(type = 'get') { + if (this.listApi) { + this.$message.showLoading() + const { + data + } = await this.$http.request(type, this.listApi, { + params: { + ...this.query, + ...this.page + }, + data: { + ...this.query, + ...this.page + } + }) + if (data) { + if (data && Array.isArray(data)) { + this.list = data || [] + this.page.total = data.length || 0 + } else { + if (this.page.current === 1) { + this.list = data.records || [] + } else { + //根据id去重正常 + var ids = [] + for (var item of this.list) { + ids.push(item.id) + } + for (var item of data.records) { + if (ids.indexOf(item.id) < 0) { + this.list.push(item) + } + } - // this.$refs.popup_info.open() + } + this.page.total = data.total || 0 + } - // } else { - await this.$store.dispatch('loginwx', { - code: res.code, - imgurl: imgurl, - nickname: nickname, - inviter: inviter - }); - tmp.$message.hideLoading() - this.$forceUpdate() - //延迟,如果用户昵称是微信用户的话? + if (this.getList_after) { + this.getList_after() + } + } + this.$message.hideLoading() + } - setTimeout(() => { - if (tmp.currentInfo && tmp.currentInfo.id) { - if (tmp.currentInfo.nickName == '微信用户') { - tmp.$refs.popup_info && tmp.$refs.popup_info.open() - } - } - }, 500) - // } + }, + async getMore(type = 'get') { + if (this.page.total > this.page.current * this.page.size) { + this.page.current += 1 + await this.getList(type) + } + }, + backHome() { + uni.reLaunch({ + url: '/pages/home/home' + }) + }, + goto(url, check = false) { + if (check) { + console.log('currentInfo', this.currentInfo) + if (!this.currentInfo.id) { + this.$message.showToast('请先登陆') + return + } - } else { - tmp.$message.hideLoading() - tmp.$message.showToast('微信登录失败'); + } + uni.navigateTo({ + url + }) + }, + backpage() { + // this.$router.go(-1) + uni.navigateBack() + } + // #ifdef APP || H5 + , + async appdownload(url, name = '') { + await this.$message.confirm('确定下载此文件吗') + let _this = this + if (url) { + // var url2 = environments.httpBaseUri + `/api/download/file?fileName=${name}&filePath=` + url + // uni.downloadFile({ + // url: url2, + // success: (res) => { + // if (res.statusCode === 200) { + // _this.$message.showToast('下载成功') + // } else { + // console.log(res) + // _this.$message.showToast('下载失败') + // } + // }, + // fail: (res) => { + // console.log(res) + // _this.$message.showToast('下载失败') + // } + // }); + _this.$message.showLoading() - } - }, - error: res => { - console.log('wx.login error', res); - tmp.$message.hideLoading() + uni.downloadFile({ + url: url, //下载地址接口返回 + success: (data) => { + _this.$message.hideLoading() + console.log('success', data) + if (data.statusCode === 200) { + //文件保存到本地 + uni.saveFile({ + tempFilePath: data.tempFilePath, //临时路径 + success: function(res) { + uni.showToast({ + icon: 'none', + mask: true, + title: '文件已保存:' + res + .savedFilePath, //保存路径 + duration: 2000, + }); + setTimeout(() => { + //打开文档查看 + uni.openDocument({ + filePath: res.savedFilePath, + success: function(res) { + // console.log('打开文档成功'); + } + }); + }, 2000) + }, + fail: (err) => { - tmp.$message.showToast('微信授权失败'); - } - }); - } - }, + console.log(err); + uni.showToast({ + icon: 'none', + mask: true, + title: '下载成功保存失败', + }); + }, + }); + } + }, + fail: (err) => { + _this.$message.hideLoading() - previewImg(url) { - if (url) { - uni.previewImage({ - urls: [url] - }) - } - }, - checkFormValues(dto, keys) { - if (keys) { - for (var key of keys) { - if (!dto[key]) { - return false - } - } - } - return true - }, - async refreshList(type = 'get') { - this.page.current = 1 - await this.getList(type) - }, - async getList(type = 'get') { - if (this.listApi) { - this.$message.showLoading() - const { - data - } = await this.$http.request(type, this.listApi, { - params: { - ...this.query, - ...this.page - }, - data: { - ...this.query, - ...this.page - } - }) - if (data) { - if (data && Array.isArray(data)) { - this.list = data || [] - this.page.total = data.length || 0 - } else { - if (this.page.current === 1) { - this.list = data.records || [] - } else { - //根据id去重正常 - var ids = [] - for (var item of this.list) { - ids.push(item.id) - } - for (var item of data.records) { - if (ids.indexOf(item.id) < 0) { - this.list.push(item) - } - } + console.log(err); + uni.showToast({ + icon: 'none', + mask: true, + title: '失败请重新下载', + }); + }, + }); + } + } + // #endif - } - this.page.total = data.total || 0 - } - if (this.getList_after) { - this.getList_after() - } - } - this.$message.hideLoading() - } - - }, - async getMore(type = 'get') { - if (this.page.total > this.page.current * this.page.size) { - this.page.current += 1 - await this.getList(type) - } - }, - backHome() { - uni.reLaunch({ - url: '/pages/home/home' - }) - }, - goto(url, check = false) { - if (check) { - console.log('currentInfo', this.currentInfo) - if (!this.currentInfo.id) { - this.$message.showToast('请先登陆') - return - } - - } - uni.navigateTo({ - url - }) - }, - backpage() { - // this.$router.go(-1) - uni.navigateBack() - } - // #ifdef APP || H5 - , - async appdownload(url, name = '') { - await this.$message.confirm('确定下载此文件吗') - let _this = this - if (url) { - // var url2 = environments.httpBaseUri + `/api/download/file?fileName=${name}&filePath=` + url - // uni.downloadFile({ - // url: url2, - // success: (res) => { - // if (res.statusCode === 200) { - // _this.$message.showToast('下载成功') - // } else { - // console.log(res) - // _this.$message.showToast('下载失败') - // } - // }, - // fail: (res) => { - // console.log(res) - // _this.$message.showToast('下载失败') - // } - // }); - _this.$message.showLoading() - - uni.downloadFile({ - url: url, //下载地址接口返回 - success: (data) => { - _this.$message.hideLoading() - console.log('success', data) - if (data.statusCode === 200) { - //文件保存到本地 - uni.saveFile({ - tempFilePath: data.tempFilePath, //临时路径 - success: function (res) { - uni.showToast({ - icon: 'none', - mask: true, - title: '文件已保存:' + res - .savedFilePath, //保存路径 - duration: 2000, - }); - setTimeout(() => { - //打开文档查看 - uni.openDocument({ - filePath: res.savedFilePath, - success: function (res) { - // console.log('打开文档成功'); - } - }); - }, 2000) - }, - fail: (err) => { - - console.log(err); - uni.showToast({ - icon: 'none', - mask: true, - title: '下载成功保存失败', - }); - }, - }); - } - }, - fail: (err) => { - _this.$message.hideLoading() - - console.log(err); - uni.showToast({ - icon: 'none', - mask: true, - title: '失败请重新下载', - }); - }, - }); - } - } - // #endif - // #ifdef MP - , - async wxdownload(url, name = '') { - await this.$message.confirm('是否要下载此文件') - var url2 = environments.httpBaseUri + `/api/download/file?fileName=${name}&filePath=` + url - - let that = this - that.$message.showLoading() - // wx.sa - // wx.downloadFile({ - // url: url2, - // success: res => { - // that.$message.showToast('下载成功') - - // }, - // fail: res => { - // that.$message.showToast('下载失败') - - // }, - // complete: res => { - // that.$message.hideLoading() - // } - // }) - wx.downloadFile({ - url: url, - timeout: 120000, - success(res) { - that.$message.hideLoading() - console.log('res', res) - if (res.statusCode === 200) { - const filePath = res.tempFilePath - if (filePath.endsWith('.jpg') || - filePath.endsWith('.jpeg') || - filePath.endsWith('.png') || - filePath.endsWith('.jpg')) { - wx.saveImageToPhotosAlbum({ - filePath: filePath, - success: function (res) { - that.$message.showToast('保存图片成功') - }, - fail: function (res) { - that.$message.showToast('打开文档失败,非支持的类型') - } - }) - - } else if (filePath.endsWith('.mp4') || - filePath.endsWith('.flv') || - filePath.endsWith('.avi') || - filePath.endsWith('.wmv') || - filePath.endsWith('.mpeg')) { - wx.saveVideoToPhotosAlbum({ - filePath: filePath, - success: function (res) { - that.$message.showToast('保存视频成功') - }, - fail: function (res) { - that.$message.showToast('打开文档失败,非支持的类型') - } - }) - - } else { - wx.openDocument({ - filePath: filePath, - showMenu: true, //关键点 - success: function (res) { - console.log('打开文档成功') - }, - fail: function (res) { - that.$message.showToast('打开文档失败,非支持的类型') - } - }) - } - } else { - that.$message.showToast('下载失败,服务器内部错误') - - } - }, - fail: res => { - that.$message.hideLoading() - that.$message.showToast('下载失败') - }, - complete: res => { - - } - }) - } - // #endif - - // #ifdef PUB_CUSTOMER - , - async submitShopping(dto) { - //提交到购物车中 - this.$message.showLoading() - await this.$store.dispatch('submitShopping', dto); - this.$message.hideLoading() - } - // #endif - } + } } export default mixinsCommon \ No newline at end of file diff --git a/modifyManifest.js b/modifyManifest.js deleted file mode 100644 index d50ec8b..0000000 --- a/modifyManifest.js +++ /dev/null @@ -1,41 +0,0 @@ -const fs = require('fs') -//此处如果是用HBuilderX创建的项目manifest.json文件在项目跟目录,如果是 cli 创建的则在 src 下,这里要注意 -//process.env.UNI_INPUT_DIR为项目所在的绝对路径,经测试,相对路径会找不到文件 -const manifestPath = process.env.UNI_INPUT_DIR + '/manifest.json' -let Manifest = fs.readFileSync(manifestPath, { encoding: 'utf-8' }) -function replaceManifest(path, value) { - const arr = path.split('.') - const len = arr.length - const lastItem = arr[len - 1] - - let i = 0 - let ManifestArr = Manifest.split(/\n/) - - for (let index = 0; index < ManifestArr.length; index++) { - const item = ManifestArr[index] - if (new RegExp(`"${arr[i]}"`).test(item)) ++i; - if (i === len) { - const hasComma = /,/.test(item) - ManifestArr[index] = item.replace(new RegExp(`"${lastItem}"[\\s\\S]*:[\\s\\S]*`), `"${lastItem}": ${value}${hasComma ? ',' : ''}`) - break; - } - } - - Manifest = ManifestArr.join('\n') -} -//动态配置 h5.router.base ,这部分的代码可根据自己的需要写,需要改什么,按照manifest.json对应的路径写好即可 -if (process.env.NODE_ENV === 'production') { -replaceManifest('h5.router.base', '"/game"') -} -else if (process.env.NODE_ENV === 'test') { -replaceManifest('h5.router.base', '"/test/game"') -} -else if (process.env.NODE_ENV === 'development') { -replaceManifest('h5.router.base', '"/dev/game"') -} - - - -fs.writeFileSync(manifestPath, Manifest, { - "flag": "w" -}) \ No newline at end of file diff --git a/pages.json b/pages.json index 82e365e..4900a51 100644 --- a/pages.json +++ b/pages.json @@ -99,7 +99,9 @@ "navigationBarTitleText": "订单详情", "enablePullDownRefresh": false } - }, + } + // #ifdef PUB_PARTNER + , { "path": "sub_pages/partner/delivery/delivery", "style": { @@ -113,7 +115,8 @@ "navigationBarTitleText": "质检详情", "enablePullDownRefresh": true } - } + } + // #endif ], "subPackages": [ { @@ -141,7 +144,7 @@ "enablePullDownRefresh": false } }, - // #endif + { "path": "order-settlement/order-settlement", "style": { @@ -163,7 +166,8 @@ "enablePullDownRefresh": true, "navigationBarBackgroundColor": "#E6F2EB" } - }, + }, + // #endif { "path": "protocol", "style": { diff --git a/sub_pages/customer/self/collect.vue b/sub_pages/customer/self/collect.vue index eec6161..81d4612 100644 --- a/sub_pages/customer/self/collect.vue +++ b/sub_pages/customer/self/collect.vue @@ -1,158 +1,166 @@ <template> - <view class="page-collect p20"> - <view class="search-container bg-white flex"> - <view class="flex1 input"> - <u-input placeholder="请输入花名" v-model="query.name"> - <template slot="suffix"> - <uni-icons color="#20613D" type="search" size="24" @tap="refreshList"></uni-icons> - </template> - </u-input> - </view> - </view> - <view class="component-filter-container p10 bg-white"> - <view class="flex1" @click.stop="order_show=true"> - {{ this.query.columnStr || '排序' }} - <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> - </view> - <view class="flex1" @click.stop="level_show=true"> - {{ this.query.levelStr || '级别' }} - <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down" - ></image> - </view> - </view> - <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data> + <view class="page-collect p20"> + <view class="search-container bg-white flex"> + <view class="flex1 input"> + <u-input placeholder="请输入花名" v-model="query.name"> + <template slot="suffix"> + <uni-icons color="#20613D" type="search" size="24" @tap="refreshList"></uni-icons> + </template> + </u-input> + </view> + </view> + <view class="component-filter-container p10 bg-white"> + <view class="flex1" @click.stop="order_show=true"> + {{ this.query.columnStr || '排序' }} + <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> + </view> + <view class="flex1" @click.stop="level_show=true"> + {{ this.query.levelStr || '级别' }} + <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> + </view> + </view> + <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data> - <u-picker :show="level_show" @confirm="select_level" keyName="label" :columns="level_columns" - @cancel="level_show=false"></u-picker> - <u-picker :show="order_show" @confirm="select_order" keyName="label" :columns="order_columns" - @cancel="order_show=false"></u-picker> + <u-picker :show="level_show" @confirm="select_level" keyName="label" :columns="level_columns" + @cancel="level_show=false"></u-picker> + <u-picker :show="order_show" @confirm="select_order" keyName="label" :columns="order_columns" + @cancel="order_show=false"></u-picker> - <view class="trade-list-container"> - <view class="trade-info-container" v-for="(dto,index) of list" :key="index"> - <view class="title"> - <view class="level m-r-15">{{ dto.levelStr || '-' }}级</view> - <view class=""> - {{ dto.name || '-' }} - </view> - </view> - <view class="desc m-t-12"> - <view class="m-r-15">已售:{{ dto.sales || 0 }}</view> - <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view> - <view class=" ">{{ dto.unit || '-' }}支/扎</view> - </view> - <view class="flex m-t-12"> - <view class="price m-r-a"> - <span class="num">{{ dto.price || '-' }}</span> - 元/扎 - </view> - <view class="m-l-a m-r-15"> - <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> + <view class="trade-list-container"> + <view class="trade-info-container" v-for="(dto,index) of list" :key="index"> + <view class="title"> + <view class="level m-r-15">{{ dto.levelStr || '-' }}级</view> + <view class=""> + {{ dto.name || '-' }} + </view> + </view> + <view class="desc m-t-12"> + <view class="m-r-15">已售:{{ dto.sales || 0 }}</view> + <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view> + <view class=" ">{{ dto.unit || '-' }}支/扎</view> + </view> + <view class="flex m-t-12"> + <view class="price m-r-a"> + <span class="num">{{ dto.price || '-' }}</span> + 元/扎 + </view> + <view class="m-l-a m-r-15"> + <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> - </view> - <view class="m-r-0 gwc" @click="submitShopping(dto)"> - + 购物车 - </view> - </view> - </view> + </view> + <view class="m-r-0 gwc" @click="submitShopping(dto)"> + + 购物车 + </view> + </view> + </view> - </view> - </view> + </view> + </view> </template> <script> -export default { - async onPullDownRefresh() { - await this.refreshList() - uni.stopPullDownRefresh() - }, - data() { - return { - query: { - name: '', - levelStr: '', - level: '', - column: '', - columnStr: '', - }, - level_show: false, - level_columns: [[]], + export default { + async onPullDownRefresh() { + await this.refreshList() + uni.stopPullDownRefresh() + }, + data() { + return { + query: { + name: '', + levelStr: '', + level: '', + column: '', + columnStr: '', + }, + level_show: false, + level_columns: [ + [] + ], - order_show: false, - order_columns: [[]] - } - }, - onLoad() { - this.listApi = '/api/collect/list' - this.getList() + order_show: false, + order_columns: [ + [] + ] + } + }, + onLoad() { + this.listApi = '/api/collect/list' + this.getList() - this.$http.request('get', '/api/code/value', { - params: { - type: 'FLOWER_LEVEL' - } - }).then(res => { - var data = res.data - this.level_columns = [data || []] - this.columns_levels[0].unshift({ - label: '全部', - value: '' - }) - }) + this.$http.request('get', '/api/code/value', { + params: { + type: 'FLOWER_LEVEL' + } + }).then(res => { + var data = res.data + this.level_columns = [data || []] + this.columns_levels[0].unshift({ + label: '全部', + value: '' + }) + }) - this.$http.request('get', '/api/code/value', { - params: { - type: 'FLOWER_ORDER_BY' - } - }).then(res => { - var data = res.data - this.order_columns = [data || []] - this.order_columns[0].unshift({ - label: '默认', - value: '' - }) - }) - }, - methods: { - select_level(e) { - this.level_show = false - this.query.levelStr = e.value[0].label - this.query.level = e.value[0].value - this.refreshList() + this.$http.request('get', '/api/code/value', { + params: { + type: 'FLOWER_ORDER_BY' + } + }).then(res => { + var data = res.data + this.order_columns = [data || []] + this.order_columns[0].unshift({ + label: '默认', + value: '' + }) + }) + }, + methods: { + async submitShopping(dto) { + //提交到购物车中 + this.$message.showLoading() + await this.$store.dispatch('submitShopping', dto); + this.$message.hideLoading() + }, + select_level(e) { + this.level_show = false + this.query.levelStr = e.value[0].label + this.query.level = e.value[0].value + this.refreshList() - }, - select_order(e) { - this.order_show = false - this.query.columnStr = e.value[0].label - this.query.column = e.value[0].value - this.refreshList() + }, + select_order(e) { + this.order_show = false + this.query.columnStr = e.value[0].label + this.query.column = e.value[0].value + this.refreshList() - }, - } -} + }, + } + } </script> <style lang="scss" scoped> -.page-collect { - .search-container { - display: flex; - margin: 12rpx 0rpx 20rpx 0rpx; - position: relative; - z-index: 1; + .page-collect { + .search-container { + display: flex; + margin: 12rpx 0rpx 20rpx 0rpx; + position: relative; + z-index: 1; - .input { - background-color: #fff !important; - border-radius: 8rpx; - } + .input { + background-color: #fff !important; + border-radius: 8rpx; + } - .button { - min-width: 120rpx; - max-width: 120rpx; - margin-left: auto; - margin-right: 0rpx; - text-align: right; - line-height: 70rpx !important; - } - } -} - -</style> + .button { + min-width: 120rpx; + max-width: 120rpx; + margin-left: auto; + margin-right: 0rpx; + text-align: right; + line-height: 70rpx !important; + } + } + } +</style> \ No newline at end of file diff --git a/sub_pages/customer/trade/detail.vue b/sub_pages/customer/trade/detail.vue index 6ff1636..b25c7c0 100644 --- a/sub_pages/customer/trade/detail.vue +++ b/sub_pages/customer/trade/detail.vue @@ -1,371 +1,379 @@ <template> - <view class="trade-detail"> - <view class="top-img-container"> - <image :src="dto.cover" class="top-img" mode="aspectFill"></image> - <view class="icon-container"> - <image src="../../../static/common/icon-sc.png" class="icon-sc"></image> -<!-- <view class="num">12</view>--> - </view> - <view class="icon-container"> - <image src="../../../static/common/icon-shop.png" @click="submitShopping(dto)" class="icon-shop"></image> + <view class="trade-detail"> + <view class="top-img-container"> + <image :src="dto.cover" class="top-img" mode="aspectFill"></image> + <view class="icon-container"> + <image src="../../../static/common/icon-sc.png" class="icon-sc"></image> + <!-- <view class="num">12</view>--> + </view> + <view class="icon-container"> + <image src="../../../static/common/icon-shop.png" @click="submitShopping(dto)" class="icon-shop"> + </image> - </view> - </view> - <view class="trade-info-container"> - <view class="title flex"> - <view class="level m-r-15">{{ dto.levelStr || '-' }}级</view> - <view class=""> - {{ dto.name || '-' }} - </view> - </view> - <view class="desc m-t-12"> - <view class="m-r-15">已售:{{ dto.sales || 0 }}</view> - <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view> - <view class=" ">{{ dto.unit || '-' }}</view> - </view> - <view class="flex m-t-12"> - <view class="price m-r-a"> - <span class="num">{{ dto.price || '-' }}</span> - 元/扎 - </view> - <view class="m-l-a m-r-15"> - <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> + </view> + </view> + <view class="trade-info-container"> + <view class="title flex"> + <view class="level m-r-15">{{ dto.levelStr || '-' }}级</view> + <view class=""> + {{ dto.name || '-' }} + </view> + </view> + <view class="desc m-t-12"> + <view class="m-r-15">已售:{{ dto.sales || 0 }}</view> + <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view> + <view class=" ">{{ dto.unit || '-' }}</view> + </view> + <view class="flex m-t-12"> + <view class="price m-r-a"> + <span class="num">{{ dto.price || '-' }}</span> + 元/扎 + </view> + <view class="m-l-a m-r-15"> + <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> - </view> - <view class="m-r-0 gwc" @click="submitShopping(dto)"> - + 购物车 - </view> - </view> - </view> - <view class="line"> + </view> + <view class="m-r-0 gwc" @click="submitShopping(dto)"> + + 购物车 + </view> + </view> + </view> + <view class="line"> - </view> - <view class="info-detail" v-if="dto.params"> - <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">详情</view> - <view class="flex m-t-8" v-for="(param,index) of dto.params" :key="index"> - <view class="label">{{ param.name}}:</view> - <view class="value">{{ param.value || '-'}}</view> - </view> -<!-- <view class="flex m-t-8">--> -<!-- <view class="label">枝粗:</view>--> -<!-- <view class="value">中等粗细</view>--> -<!-- </view>--> -<!-- <view class="flex m-t-8">--> -<!-- <view class="label">均匀度:</view>--> -<!-- <view class="value">1-2支不均匀</view>--> -<!-- </view>--> - </view> - <view class="line"> + </view> + <view class="info-detail" v-if="dto.params"> + <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">详情</view> + <view class="flex m-t-8" v-for="(param,index) of dto.params" :key="index"> + <view class="label">{{ param.name}}:</view> + <view class="value">{{ param.value || '-'}}</view> + </view> + <!-- <view class="flex m-t-8">--> + <!-- <view class="label">枝粗:</view>--> + <!-- <view class="value">中等粗细</view>--> + <!-- </view>--> + <!-- <view class="flex m-t-8">--> + <!-- <view class="label">均匀度:</view>--> + <!-- <view class="value">1-2支不均匀</view>--> + <!-- </view>--> + </view> + <view class="line"> - </view> + </view> - <view class="info-brand m-t-12" @click.stop="openbrand"> - <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">店铺</view> - <view class="flex m-t-12"> - <image class="store-logo"></image> - <view> - <view class="store-name">{{dto.supplierName||'-'}}</view> - <view class="store-address">{{dto.supplierStation||'-'}}</view> - </view> - <view class="store-to m-l-a m-r-0">进入店铺</view> - </view> - </view> - <view class="m-t-20 shop-recommend-container" v-if="false"> - <view class="shop-recommend-title">店铺推荐</view> - <view class="flex"> - <view v-for="i in 3" :key="i" class="shop-recommend"> - <image src="" class="shop-recommend-image"></image> - <view class="shop-recommend-title m-t-8"> - <view class="level m-r-15">B级</view> - <view class=""> - {{ dto.name || '-' }} - </view> - </view> - <view class="shop-recommend-price m-t-8"> - ¥23.01/扎 - </view> - </view> - </view> - </view> - <view class="line"> + <view class="info-brand m-t-12" @click.stop="openbrand"> + <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">店铺</view> + <view class="flex m-t-12"> + <image class="store-logo"></image> + <view> + <view class="store-name">{{dto.supplierName||'-'}}</view> + <view class="store-address">{{dto.supplierStation||'-'}}</view> + </view> + <view class="store-to m-l-a m-r-0">进入店铺</view> + </view> + </view> + <view class="m-t-20 shop-recommend-container" v-if="false"> + <view class="shop-recommend-title">店铺推荐</view> + <view class="flex"> + <view v-for="i in 3" :key="i" class="shop-recommend"> + <image src="" class="shop-recommend-image"></image> + <view class="shop-recommend-title m-t-8"> + <view class="level m-r-15">B级</view> + <view class=""> + {{ dto.name || '-' }} + </view> + </view> + <view class="shop-recommend-price m-t-8"> + ¥23.01/扎 + </view> + </view> + </view> + </view> + <view class="line"> - </view> - <view class="comment-container m-t-12" v-if="false"> - <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;"> - <view>评价</view> - <view class="desc"> - 7条评论 - <uni-icons type="right" size="18" color="#B3B3B3"></uni-icons> + </view> + <view class="comment-container m-t-12" v-if="false"> + <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;"> + <view>评价</view> + <view class="desc"> + 7条评论 + <uni-icons type="right" size="18" color="#B3B3B3"></uni-icons> - </view> - </view> - <view v-for="i in 3" :key="i" class="m-t-20 flex user-item"> - <image class="user-icon m-r-10"></image> - <view> - <view class="name">用户名3370</view> - <view class="comment">非常棒,会回购</view> - </view> - <view class="stars"> + </view> + </view> + <view v-for="i in 3" :key="i" class="m-t-20 flex user-item"> + <image class="user-icon m-r-10"></image> + <view> + <view class="name">用户名3370</view> + <view class="comment">非常棒,会回购</view> + </view> + <view class="stars"> - </view> - <view class="date"> - 04-07 08:00 - </view> - </view> - </view> + </view> + <view class="date"> + 04-07 08:00 + </view> + </view> + </view> - </view> + </view> </template> <script> -export default { - data() { - return { - id: '', - dto: {} - } - }, - onLoad(options) { - this.id = options.id || '' - if (this.id) { - this.getDetail() - } - }, - methods: { - async getDetail() { - this.$message.showLoading() - const { - code, - data - } = await this.$http.request('get', '/api/customer/flower/list/view', { - params: { - id: this.id - } - }) - if (code === 0) { - this.dto = { - ...data, - } - } + export default { + data() { + return { + id: '', + dto: {} + } + }, + onLoad(options) { + this.id = options.id || '' + if (this.id) { + this.getDetail() + } + }, + methods: { + async submitShopping(dto) { + //提交到购物车中 + this.$message.showLoading() + await this.$store.dispatch('submitShopping', dto); + this.$message.hideLoading() + }, + async getDetail() { + this.$message.showLoading() + const { + code, + data + } = await this.$http.request('get', '/api/customer/flower/list/view', { + params: { + id: this.id + } + }) + if (code === 0) { + this.dto = { + ...data, + } + } - this.$message.hideLoading() + this.$message.hideLoading() - }, - openbrand() { - uni.navigateTo({ - url: '/sub_pages/customer/shop/shop?id=' + (this.dto.id || '') - }) - } - } -} + }, + openbrand() { + uni.navigateTo({ + url: '/sub_pages/customer/shop/shop?id=' + (this.dto.id || '') + }) + } + } + } </script> <style lang="scss" scoped> -.trade-detail { - background-color: #FFFFFF; + .trade-detail { + background-color: #FFFFFF; - .trade-info-container { - padding: 46rpx 30rpx; - border-radius: 40rpx 40rpx 0rpx 0rpx; + .trade-info-container { + padding: 46rpx 30rpx; + border-radius: 40rpx 40rpx 0rpx 0rpx; - .title { - font-weight: 600; - font-size: 36rpx; - color: #000000; - line-height: 50rpx; + .title { + font-weight: 600; + font-size: 36rpx; + color: #000000; + line-height: 50rpx; - .level { - color: #20613D; - } - } + .level { + color: #20613D; + } + } - .desc { - font-weight: 400; - font-size: 28rpx; - color: #666666; - line-height: 40rpx; - } + .desc { + font-weight: 400; + font-size: 28rpx; + color: #666666; + line-height: 40rpx; + } - .price { - font-weight: 600; - font-size: 28rpx; - color: #CF0000; - line-height: 40rpx; + .price { + font-weight: 600; + font-size: 28rpx; + color: #CF0000; + line-height: 40rpx; - .num { - font-size: 48rpx; - line-height: 66rpx; - } - } + .num { + font-size: 48rpx; + line-height: 66rpx; + } + } - .icon-kf { - width: 44rpx; - height: 44rpx; - } + .icon-kf { + width: 44rpx; + height: 44rpx; + } - .gwc { - width: 168rpx; - height: 48rpx; - border-radius: 30rpx; - border: 2rpx solid #20613D; - font-size: 24rpx; - color: #20613D; - line-height: 48rpx; - text-align: center; - } + .gwc { + width: 168rpx; + height: 48rpx; + border-radius: 30rpx; + border: 2rpx solid #20613D; + font-size: 24rpx; + color: #20613D; + line-height: 48rpx; + text-align: center; + } - } + } - .line { - min-height: 20rpx; - background: #F7F7F7; - } + .line { + min-height: 20rpx; + background: #F7F7F7; + } - .info-detail { - padding: 18rpx 30rpx; + .info-detail { + padding: 18rpx 30rpx; - .label { - font-weight: 400; - font-size: 28rpx; - color: #666666; - line-height: 40rpx; - min-width: 160rpx; - margin-right: 20rpx; - } + .label { + font-weight: 400; + font-size: 28rpx; + color: #666666; + line-height: 40rpx; + min-width: 160rpx; + margin-right: 20rpx; + } - .value { - font-weight: 400; - font-size: 28rpx; - color: #666666; - line-height: 40rpx; - } - } + .value { + font-weight: 400; + font-size: 28rpx; + color: #666666; + line-height: 40rpx; + } + } - .shop-recommend-title { - font-weight: 400; - font-size: 24rpx; - color: #666666; - line-height: 34rpx; - } + .shop-recommend-title { + font-weight: 400; + font-size: 24rpx; + color: #666666; + line-height: 34rpx; + } - .shop-recommend-container { - padding: 24rpx 30rpx; + .shop-recommend-container { + padding: 24rpx 30rpx; - .shop-recommend { - .shop-recommend-image { - width: 214rpx; - height: 214rpx; - background-size: 100% 100%; - border-radius: 8rpx; - } + .shop-recommend { + .shop-recommend-image { + width: 214rpx; + height: 214rpx; + background-size: 100% 100%; + border-radius: 8rpx; + } - .shop-recommend-title { - font-weight: 600; - font-size: 28rpx; - color: #000000; - line-height: 40rpx; + .shop-recommend-title { + font-weight: 600; + font-size: 28rpx; + color: #000000; + line-height: 40rpx; - .level { - color: #20613D;; - } - } - } - } + .level { + color: #20613D; + ; + } + } + } + } - .comment-container { - padding: 18rpx 30rpx; + .comment-container { + padding: 18rpx 30rpx; - .desc { - font-weight: 400; - font-size: 24rpx; - color: #666666; - line-height: 34rpx; - } + .desc { + font-weight: 400; + font-size: 24rpx; + color: #666666; + line-height: 34rpx; + } - .user-item { - .user-icon { - width: 72rpx; - height: 72rpx; - background-size: 100% 100%; - border-radius: 50%; - } + .user-item { + .user-icon { + width: 72rpx; + height: 72rpx; + background-size: 100% 100%; + border-radius: 50%; + } - .name { - font-weight: 600; - font-size: 24rpx; - color: #000000; - line-height: 34rpx; - } + .name { + font-weight: 600; + font-size: 24rpx; + color: #000000; + line-height: 34rpx; + } - .comment { - font-weight: 400; - font-size: 24rpx; - color: #666666; - line-height: 34rpx; - } + .comment { + font-weight: 400; + font-size: 24rpx; + color: #666666; + line-height: 34rpx; + } - .date { - font-weight: 400; - font-size: 24rpx; - color: #666666; - line-height: 72rpx; - } - } - } + .date { + font-weight: 400; + font-size: 24rpx; + color: #666666; + line-height: 72rpx; + } + } + } - .top-img-container { - position: relative; + .top-img-container { + position: relative; - .top-img { - width: 750rpx; - height: 764rpx; - } + .top-img { + width: 750rpx; + height: 764rpx; + } - .icon-container { - position: absolute; - top: 20rpx; - width: 80rpx; - height: 80rpx; - background: rgba(0, 0, 0, 0); + .icon-container { + position: absolute; + top: 20rpx; + width: 80rpx; + height: 80rpx; + background: rgba(0, 0, 0, 0); - .icon-sc { - width: 54rpx; - height: 54rpx; - margin: 0 auto; - margin-top: 12rpx; - display: inline-block; - } + .icon-sc { + width: 54rpx; + height: 54rpx; + margin: 0 auto; + margin-top: 12rpx; + display: inline-block; + } - .icon-shop { - width: 54rpx; - height: 54rpx; - margin: 0 auto; - margin-top: 12rpx; - display: inline-block; + .icon-shop { + width: 54rpx; + height: 54rpx; + margin: 0 auto; + margin-top: 12rpx; + display: inline-block; - } + } - .num { - font-weight: 400; - font-size: 20rpx; - color: #FFFFFF; - line-height: 28rpx; - position: absolute; - top: 6prx; - right: 16rpx; - } - } + .num { + font-weight: 400; + font-size: 20rpx; + color: #FFFFFF; + line-height: 28rpx; + position: absolute; + top: 6prx; + right: 16rpx; + } + } - .icon-container:last-child { - left: 140rpx; - } + .icon-container:last-child { + left: 140rpx; + } - .icon-container:first-child { - left: 40rpx; - } + .icon-container:first-child { + left: 40rpx; + } - } -} + } + } </style> \ No newline at end of file -- Gitblit v1.9.3