瀏覽代碼

Adding price

Emixa 4 年之前
父節點
當前提交
1bdee88735
共有 4 個文件被更改,包括 15 次插入4 次删除
  1. 2 2
      app.py
  2. 4 0
      static/js/app.js
  3. 6 0
      static/js/round.js
  4. 3 2
      templates/async_list.html

+ 2 - 2
app.py

@@ -15,7 +15,7 @@ session = Session()
 def result50(date=datetime.now()):
     result = []
     for x in session.query(CoinMarketPosition,Coin).filter(func.Date(CoinMarketPosition.date) == date.date()).distinct(Coin.id).join(Coin).order_by(CoinMarketPosition.market_caps.desc()).limit(50).all():
-        result.append((x[1].symbol, x[0].market_caps))
+        result.append((x[1].symbol, x[0].market_caps, x[0].prices))
     return result
     
 @app.route("/")
@@ -27,7 +27,7 @@ def top50async(date="2020-01-12"):
 def top50json(date):
     d = datetime.strptime(date, "%d-%m-%Y")
     results = result50(d)
-    arr = [{'name':x[0],'marketCap':x[1]} for x in results]
+    arr = [{'name':x[0],'marketCap':x[1], 'prices':x[2]} for x in results]
     return jsonify(arr)
 
 @app.route('/coin/<id>/')

+ 4 - 0
static/js/app.js

@@ -35,6 +35,10 @@ const coinTop50 = {
       },
       handleJsonUpdate(response){
         this.items = response.data
+      },
+      displayRoundedPrice(price){
+        var precision = -Math.floor( Math.log10(price) + 1);
+        return Math.round(item.prices.toFixed(precision)).toLocaleString();
       }
     }
   }

+ 6 - 0
static/js/round.js

@@ -0,0 +1,6 @@
+
+function myFunction(x) {
+    /*var x = 0.00195;*/
+    var m = -Math.floor( Math.log10(x) + 1);
+    return m; // outputs 2
+}

+ 3 - 2
templates/async_list.html

@@ -59,9 +59,9 @@
         <transition-group name="flip-list" tag="div" class="row">
           <div class=" col xl2 l3 m4 s6" v-for="item,k in items" :key="item.name">
             <div class="card-panel blue-grey">
-              <div class="white-text currency">{{k+1}}. {{ item.name }}</div>
+              <div class="white-text currency">{{k+1}}. {{ item.name }} : ${{ displayRoundedPrice(item.prices) }}</div>
               <div class="white-text amount">{{ Math.round(item.marketCap).toLocaleString() }}</div>
-             </div>
+            </div>
           </div>
         </transition-group>
         {% endraw %}
@@ -74,5 +74,6 @@
     <script src="https://unpkg.com/dayjs@1.8.21/dayjs.min.js"></script>
     <script src="https://unpkg.com/vue@next"></script>
     <script src="{{ url_for('static', filename='js/app.js')}}"></script>
+    <script src="{{ url_for('static', filename='js/round.js')}}"></script>
   </body>
 </html>