店家結帳
+ +diff --git a/backend/main.py b/backend/main.py index 4cbaba6..7b42836 100644 --- a/backend/main.py +++ b/backend/main.py @@ -94,6 +94,18 @@ def get_order(id): return jsonify(ans) +@app.route('/shop/check', methods=['POST']) +def shop_check(): + address = request.get_json()['address'] + db = sqlite3.connect(DATABASE) + cursor = db.cursor() + cursor.execute("SELECT COUNT(*) FROM `shops` WHERE `address`=?", (address, )) + result = cursor.fetchone()[0] + print(result, type(result)) + if result != 0: + return jsonify({'status': True}) + else: + return jsonify({'status': False}) if __name__ == '__main__': initDB() diff --git a/src/components/ClientNav.vue b/src/components/ClientNav.vue index 88c3e59..791f759 100644 --- a/src/components/ClientNav.vue +++ b/src/components/ClientNav.vue @@ -2,14 +2,14 @@ export default { name: 'ClientNav', props: ['path'], - mounted () { - console.log(this.path) - this.navCSS[this.path] += ' is-active' - console.log(this.navCSS) + mounted() { + if (this.path in this.navCSS) { + this.navCSS[this.path] += ' is-active' + } }, - data () { + data() { return { - navCSS: { + navCSS: { main: 'panel-block', pay: 'panel-block', credit: 'panel-block', diff --git a/src/components/PageNavbar.vue b/src/components/PageNavbar.vue index 50212f6..8444b54 100644 --- a/src/components/PageNavbar.vue +++ b/src/components/PageNavbar.vue @@ -44,6 +44,15 @@ export default { this.web3.eth.defaultAccount = clientAddr var returnNumber = await token.methods.getSBTNumber(clientAddr).call({from: clientAddr}) if (returnNumber != 0){ + var result = await fetch(import.meta.env.VITE_BACKEND_PREFIX+"/shop/check", { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({'address': clientAddr}) + }) + var result = await result.json() + this.$cookies.set('isShop', result.status) this.$cookies.set('address', clientAddr) this.$cookies.set('linked', true) this.$cookies.set('SBTNumber', returnNumber) @@ -71,6 +80,7 @@ export default { this.$cookies.remove('linked') this.$cookies.remove('address') this.$cookies.remove('SBTNumber') + this.$cookies.remove('shop') this.$router.push('/') } } diff --git a/src/components/ShopNav.vue b/src/components/ShopNav.vue new file mode 100644 index 0000000..2fb132e --- /dev/null +++ b/src/components/ShopNav.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/router/index.js b/src/router/index.js index c553cb9..cb7925a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,7 @@ import ClientInfoView from '../views/ClientInfoView.vue' import ClientCreditView from '../views/ClientCreditView.vue' import ClientPayView from '../views/ClientPayView.vue' import PaymentView from '../views/PaymentView.vue' +import ShopPayView from '../views/ShopPayView.vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), @@ -57,6 +58,11 @@ const router = createRouter({ name: 'clientpayment', component: PaymentView }, + { + path: '/shop/pay', + name: 'shoppay', + component: ShopPayView + }, ] }) diff --git a/src/views/ClientCreditView.vue b/src/views/ClientCreditView.vue index 03d9e64..356c27b 100644 --- a/src/views/ClientCreditView.vue +++ b/src/views/ClientCreditView.vue @@ -7,6 +7,7 @@ import WarningModal from '../components/WarningModal.vue' import SuccessModal from '../components/SuccessModal.vue' import { useClientStore } from '../stores/Client.js' import ClientNav from '../components/ClientNav.vue' +import ShopNav from '../components/ShopNav.vue' // To use Html5QrcodeScanner (more info below) import { Html5QrcodeScanner } from "html5-qrcode"; @@ -17,7 +18,7 @@ import { Html5Qrcode } from "html5-qrcode"; export default { - components: { PageTitle, WarningModal, SuccessModal, ClientNav }, + components: { PageTitle, WarningModal, SuccessModal, ClientNav, ShopNav }, data() { return { SBTAddress: import.meta.env.VITE_SBT_ADDR, @@ -94,6 +95,10 @@ export default {
店家結帳
+ +店家收款紀錄
+ +店家商品管理
+ +