liyongli 2 роки тому
батько
коміт
f3dde5d815

+ 1 - 0
package.json

@@ -10,6 +10,7 @@
   },
   },
   "dependencies": {
   "dependencies": {
     "core-js": "^3.6.5",
     "core-js": "^3.6.5",
+    "dayjs": "^1.11.2",
     "echarts": "^5.3.2",
     "echarts": "^5.3.2",
     "element-ui": "^2.15.6",
     "element-ui": "^2.15.6",
     "sha256": "^0.2.0",
     "sha256": "^0.2.0",

+ 235 - 0
src/api/dist/index.dev.js

@@ -0,0 +1,235 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.goodsList = goodsList;
+exports.orderList = orderList;
+exports.apply = apply;
+exports.applyreal = applyreal;
+exports.cancel = cancel;
+exports.advance = advance;
+exports.skip = skip;
+exports.nextone = nextone;
+exports.applyrang = applyrang;
+exports.getAPPUser = getAPPUser;
+exports.getAPPToken = getAPPToken;
+exports.getAPPUserDetail = getAPPUserDetail;
+exports.getRule = getRule;
+exports.upRule = upRule;
+exports.menulist = menulist;
+exports.jsonDataRanking = jsonDataRanking;
+exports.infoDate = infoDate;
+
+var _request = _interopRequireDefault(require("../utils/request.js"));
+
+var _requestOrther = _interopRequireDefault(require("../utils/requestOrther.js"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+
+/**
+ * 商品列表
+ * @returns {AjaxPromise}
+ */
+function goodsList(data) {
+  return (0, _request["default"])({
+    url: "/goods/list",
+    method: "get",
+    data: data
+  });
+}
+/**
+ * 排队列表
+ * @returns {AjaxPromise}
+ */
+
+
+function orderList(data) {
+  return (0, _request["default"])({
+    url: "/orders/queue",
+    method: "get",
+    data: data
+  });
+}
+/**
+ * 预约
+ * @returns {AjaxPromise}
+ */
+
+
+function apply(data) {
+  return (0, _request["default"])({
+    url: "/orders/add-app",
+    method: "post",
+    data: data
+  });
+}
+
+function applyreal(data) {
+  return (0, _request["default"])({
+    url: "/orders/add-house",
+    method: "post",
+    data: data
+  });
+}
+/**
+ * 取消预约
+ * @returns {AjaxPromise}
+ */
+
+
+function cancel(data) {
+  return (0, _request["default"])({
+    url: "/orders/cancel",
+    method: "get",
+    data: data
+  });
+}
+/**
+ * 取消预约
+ * @returns {AjaxPromise}
+ */
+
+
+function advance(data) {
+  return (0, _request["default"])({
+    url: "/orders/to-house",
+    method: "get",
+    data: data
+  });
+}
+/**
+ * 跳过
+ * @returns {AjaxPromise}
+ */
+
+
+function skip(data) {
+  return (0, _request["default"])({
+    url: "/orders/skip",
+    method: "GET",
+    data: data
+  });
+}
+/**
+ * 下一个
+ * @returns {AjaxPromise}
+ */
+
+
+function nextone(data) {
+  return (0, _request["default"])({
+    url: "/orders/finish",
+    method: "GET",
+    data: data
+  });
+}
+/**
+ * 预约时段
+ * @returns {AjaxPromise}
+ */
+
+
+function applyrang(data) {
+  return (0, _request["default"])({
+    url: "/time-segment/list",
+    method: "GET",
+    data: data
+  });
+}
+/**
+ * 获取app用户名
+ * @returns {AjaxPromise}
+ */
+
+
+function getAPPUser(data, header) {
+  return (0, _requestOrther["default"])({
+    url: "/seeyon/thirdpartyController.do",
+    method: "GET",
+    header: header,
+    data: data
+  });
+}
+/**
+ * 获取apptoken
+ * @returns {AjaxPromise}
+ */
+
+
+function getAPPToken(urldata) {
+  return (0, _requestOrther["default"])({
+    url: "/seeyon/rest/token/" + urldata,
+    method: "GET"
+  });
+}
+/**
+ * 获取app登录人员信息
+ * @returns {AjaxPromise}
+ */
+
+
+function getAPPUserDetail(data) {
+  return (0, _requestOrther["default"])({
+    url: "/seeyon/rest/orgMember",
+    method: "GET",
+    data: data
+  });
+}
+/**
+ * 获取当前打烊规则
+ * @returns {AjaxPromise}
+ */
+
+
+function getRule(data) {
+  return (0, _request["default"])({
+    url: "/stop-rule/list",
+    method: "POST",
+    data: data
+  });
+}
+/**
+ * 更新当前打烊规则
+ * @returns {AjaxPromise}
+ */
+
+
+function upRule(data) {
+  return (0, _request["default"])({
+    url: "/stop-rule/edit",
+    method: "POST",
+    data: data
+  });
+}
+/**
+ * 菜单列表
+ * @returns {AjaxPromise}
+ */
+
+
+function menulist(data) {
+  return (0, _request["default"])({
+    urlType: "menuURL",
+    url: "/menu/recently",
+    method: "GET",
+    data: data
+  });
+}
+
+function jsonDataRanking(data) {
+  return (0, _request["default"])({
+    urlType: "dataJSON",
+    url: "/data/oa-rank/".concat(data.url, ".json"),
+    method: "GET",
+    data: data.data || undefined
+  });
+}
+
+function infoDate() {
+  return (0, _request["default"])({
+    urlType: "dataJSON",
+    url: "/data/oa-rank/info.json",
+    method: "GET"
+  });
+}

+ 8 - 0
src/api/index.js

@@ -183,3 +183,11 @@ export function jsonDataRanking(data) {
     data: data.data || undefined,
     data: data.data || undefined,
   });
   });
 }
 }
+
+export function infoDate() {
+  return ajax({
+    urlType: "dataJSON",
+    url: `/data/oa-rank/info.json`,
+    method: "GET",
+  });
+}

+ 5 - 6
src/views/ranking/components/moveClient.vue

@@ -66,25 +66,24 @@ export default {
     };
     };
   },
   },
   props: {
   props: {
-    active: Boolean,
+    valDay: String,
   },
   },
   watch: {
   watch: {
-    active(n) {
-      if (!n || this.setact) return;
+    valDay() {
       this.init();
       this.init();
     },
     },
   },
   },
   mounted() {
   mounted() {
-    if (this.setact) return;
     this.init();
     this.init();
   },
   },
   computed: {},
   computed: {},
   methods: {
   methods: {
     init() {
     init() {
       //   初始
       //   初始
+      if (!this.valDay) return;
       this.setact = true;
       this.setact = true;
       jsonDataRanking({
       jsonDataRanking({
-        url: ["platform", this.$route.query.date].join("-"),
+        url: ["platform", this.valDay].join("-"),
       })
       })
         .then(res => {
         .then(res => {
           this.platfrom = res || [];
           this.platfrom = res || [];
@@ -107,7 +106,7 @@ export default {
     },
     },
     getData() {
     getData() {
       jsonDataRanking({
       jsonDataRanking({
-        url: [this.platfrom[this.select].platform, this.$route.query.date].join(
+        url: [this.platfrom[this.select].platform, this.valDay].join(
           "_"
           "_"
         ),
         ),
       })
       })

+ 12 - 8
src/views/ranking/components/tvList.vue

@@ -37,7 +37,11 @@
       v-model="show"
       v-model="show"
     >
     >
       <div class="main">
       <div class="main">
-        <van-cell title-style="flex: 3" :title="ratios.schedulename"  :label="ratios.channelname">
+        <van-cell
+          title-style="flex: 3"
+          :title="ratios.schedulename"
+          :label="ratios.channelname"
+        >
           <div @click="show = false" style="color: #5470c6">
           <div @click="show = false" style="color: #5470c6">
             返回
             返回
             <van-icon name="share-o" />
             <van-icon name="share-o" />
@@ -89,22 +93,21 @@ export default {
     };
     };
   },
   },
   props: {
   props: {
-    active: Boolean,
+    valDay: String,
   },
   },
   watch: {
   watch: {
-    active(n) {
-      if (!n || this.setact) return;
+    valDay() {
       this.init();
       this.init();
     },
     },
   },
   },
   mounted() {
   mounted() {
-    if (this.setact) return;
     this.init();
     this.init();
   },
   },
   computed: {},
   computed: {},
   methods: {
   methods: {
     init() {
     init() {
       //   初始
       //   初始
+      if (!this.valDay) return;
       this.setact = true;
       this.setact = true;
       this.getData();
       this.getData();
     },
     },
@@ -160,8 +163,9 @@ export default {
           center: ["50%", "50%"],
           center: ["50%", "50%"],
           radius: 100,
           radius: 100,
           indicator: key.map((v, i) => {
           indicator: key.map((v, i) => {
-            let m = value[i] / max, val = max;
-            m <= 0.5 ? val = 0.5*max: '';
+            let m = value[i] / max,
+              val = max;
+            m <= 0.5 ? (val = 0.5 * max) : "";
             return {
             return {
               name: v,
               name: v,
               max: val,
               max: val,
@@ -194,7 +198,7 @@ export default {
     },
     },
     getData() {
     getData() {
       jsonDataRanking({
       jsonDataRanking({
-        url: ["tv", this.$route.query.date].join("-"),
+        url: ["tv", this.valDay].join("-"),
       })
       })
         .then(res => {
         .then(res => {
           this.platfromData = res || [];
           this.platfromData = res || [];

+ 39 - 6
src/views/ranking/index.vue

@@ -2,8 +2,11 @@
   <div class="ranking">
   <div class="ranking">
     <van-sticky offset-top="0">
     <van-sticky offset-top="0">
       <van-nav-bar>
       <van-nav-bar>
-        <div slot="title">
-          <span class="body">{{ day }} </span>
+        <div slot="title" @click="showCalendar = true">
+          <span class="body" v-if="day">
+            {{ day }}
+            <van-icon name="arrow-down" color="#333" />
+          </span>
           <div class="tip">数据来源于集团大数据平台</div>
           <div class="tip">数据来源于集团大数据平台</div>
         </div>
         </div>
       </van-nav-bar>
       </van-nav-bar>
@@ -11,6 +14,7 @@
     <div v-show="errorInformation.text === ''">
     <div v-show="errorInformation.text === ''">
       <keep-alive>
       <keep-alive>
         <component
         <component
+          :valDay="valDay"
           :active="errorInformation.text === '' && active === 1"
           :active="errorInformation.text === '' && active === 1"
           @start="comError"
           @start="comError"
           :is="tabs[active].com"
           :is="tabs[active].com"
@@ -30,6 +34,13 @@
         >{{ item.name }}</van-tabbar-item
         >{{ item.name }}</van-tabbar-item
       >
       >
     </van-tabbar>
     </van-tabbar>
+    <van-calendar
+      :max-date="maxDay"
+      :min-date="minDay"
+      :default-date="maxDay"
+      v-model="showCalendar"
+      @confirm="onConfirm"
+    />
   </div>
   </div>
 </template>
 </template>
 
 
@@ -41,13 +52,20 @@ import {
   Empty as vanEmpty,
   Empty as vanEmpty,
   NavBar as vanNavBar,
   NavBar as vanNavBar,
   Sticky as vanSticky,
   Sticky as vanSticky,
+  Calendar as vanCalendar,
+  Icon as vanIcon,
 } from "vant";
 } from "vant";
+import "vant/lib/icon/style/index";
+import "vant/lib/calendar/style/index";
 import "vant/lib/sticky/style/index";
 import "vant/lib/sticky/style/index";
 import "vant/lib/empty/style/index";
 import "vant/lib/empty/style/index";
 import "vant/lib/empty/style/index";
 import "vant/lib/empty/style/index";
 import "vant/lib/tabbar/style/index";
 import "vant/lib/tabbar/style/index";
 import "vant/lib/nav-bar/style/index";
 import "vant/lib/nav-bar/style/index";
 
 
+import dayJS from "dayjs";
+import { infoDate } from "../../api/index";
+
 import tvList from "./components/tvList.vue";
 import tvList from "./components/tvList.vue";
 import moveClient from "./components/moveClient.vue";
 import moveClient from "./components/moveClient.vue";
 
 
@@ -58,7 +76,11 @@ export default {
 
 
   data() {
   data() {
     return {
     return {
+      showCalendar: false,
       day: "",
       day: "",
+      valDay: "",
+      maxDay: new Date(),
+      minDay: new Date(),
       active: window.sessionStorage
       active: window.sessionStorage
         ? sessionStorage.getItem("active") - 0 || 0
         ? sessionStorage.getItem("active") - 0 || 0
         : 0,
         : 0,
@@ -81,16 +103,25 @@ export default {
     };
     };
   },
   },
   mounted() {
   mounted() {
-    const d = this.$route.query.date.split("");
-    d.splice(4, 0, "-");
-    d.splice(7, 0, "-");
-    this.day = d.join("");
+    infoDate().then(r => {
+      this.maxDay = new Date(r.end);
+      this.minDay = new Date(r.start);
+      let d = new dayJS(this.maxDay);
+      this.valDay = d.format("YYYYMMDD");
+      this.day = d.format("YYYY-MM-DD");
+    });
   },
   },
   computed: {},
   computed: {},
   methods: {
   methods: {
     change() {
     change() {
       if (window.sessionStorage) sessionStorage.setItem("active", this.active);
       if (window.sessionStorage) sessionStorage.setItem("active", this.active);
     },
     },
+    onConfirm(e) {
+      let d = new dayJS(e);
+      this.valDay = d.format("YYYYMMDD");
+      this.day = d.format("YYYY-MM-DD");
+      this.showCalendar = false;
+    },
     comError(data) {
     comError(data) {
       let p = {
       let p = {
         text: "",
         text: "",
@@ -112,6 +143,8 @@ export default {
     vanEmpty,
     vanEmpty,
     vanNavBar,
     vanNavBar,
     vanSticky,
     vanSticky,
+    vanCalendar,
+    vanIcon,
     tvList,
     tvList,
     moveClient,
     moveClient,
   },
   },

+ 5 - 0
yarn.lock

@@ -3045,6 +3045,11 @@ dashdash@^1.12.0:
   dependencies:
   dependencies:
     assert-plus "^1.0.0"
     assert-plus "^1.0.0"
 
 
+dayjs@^1.11.2:
+  version "1.11.2"
+  resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.2.tgz#fa0f5223ef0d6724b3d8327134890cfe3d72fbe5"
+  integrity sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw==
+
 de-indent@^1.0.2:
 de-indent@^1.0.2:
   version "1.0.2"
   version "1.0.2"
   resolved "https://registry.nlark.com/de-indent/download/de-indent-1.0.2.tgz"
   resolved "https://registry.nlark.com/de-indent/download/de-indent-1.0.2.tgz"