Browse Source

Merge branch 'dev' into sit

戴艳蓉 3 years ago
parent
commit
93c9dcff73
2 changed files with 55 additions and 36 deletions
  1. 24 17
      src/components/PeriodDatePicker.vue
  2. 31 19
      src/views/search/standBook/index.vue

+ 24 - 17
src/components/PeriodDatePicker.vue

@@ -39,7 +39,7 @@
 // timeReturned 返回值{startTime: Number,endTime: Number}
 export default {
   name: "PeriodDatePicker",
-  props: ["start", "end", "disabled", "size", "width"],
+  props: ["start", "end", "disabled", "size", "width", "type"],
   data() {
     return {
       startTime: this.start,
@@ -81,24 +81,16 @@ export default {
         this.endTime !== "" &&
         this.endTime !== null
       ) {
-        if (
-          this.endTime &&
-          new Date(this.endTime).valueOf() -
-            new Date(this.startTime).valueOf() >
-            24 * 3600 * 365 * 1000
-        ) {
-          this.$message.error("时间跨度不能超过一年");
-          this.startTime = "";
-          this.endTime = "";
-          this.timeReturned();
+        if (this.type + "" === "1" && !this.setType(365)) {
+          this.showMessage("时间跨度不能超过一年!");
+          return;
+        } else if (this.type + "" === "2" && !this.setType(90)) {
+          this.showMessage("时间跨度不能超过90天!");
           return;
         } else if (
           new Date(this.endTime).valueOf() < new Date(this.startTime).valueOf()
         ) {
-          this.$message.error("结束时间不大于开始时间!");
-          this.startTime = "";
-          this.endTime = "";
-          this.timeReturned();
+          this.showMessage("结束时间不大于开始时间!");
           return;
         } else {
           this.timeReturned();
@@ -119,14 +111,29 @@ export default {
     },
 
     transformTime(tTime) {
-      console.log(tTime);
       let time = new Date(tTime);
-      console.log(time);
       let y = time.getFullYear();
       let M = time.getMonth() + 1;
       let d = time.getDate();
       return y + "-" + (M < 10 ? "0" + M : M) + "-" + (d < 10 ? "0" + d : d);
     },
+    showMessage(message) {
+      this.$message.error(message);
+      this.startTime = "";
+      this.endTime = "";
+      this.timeReturned();
+    },
+    setType(days) {
+      let step = 24 * 3600 * 1000;
+      let sDay = new Date(this.startTime).valueOf();
+      let eDay = new Date(this.endTime).valueOf();
+      let isok = true;
+      if (eDay - sDay > step * days) {
+        isok = false;
+      }
+
+      return isok;
+    },
   },
 };
 </script>

+ 31 - 19
src/views/search/standBook/index.vue

@@ -21,17 +21,15 @@
             </el-option>
           </el-select>
         </el-col>
-        <el-col :span="6" style="width: 150px">
-          <el-date-picker
+        <el-col :span="6" style="width: 292px">
+            <period-date-picker
+            :start="parmValue.start"
+            :end="parmValue.end"
+            :type="2"
+            :width="'135px'"
             :size="searchSize"
-            style="width: 100%"
-            value-format="yyyy-MM"
-            :clearable="true"
-            v-model="parmValue.month"
-            type="month"
-            placeholder="选择月"
-          >
-          </el-date-picker>
+            @timeReturned="timeReturned($event)"
+          />
         </el-col>
         <el-col
           :span="4"
@@ -72,14 +70,14 @@
 <script>
 import resToken from "@/mixins/resToken";
 import urlConfig from "@/apis/url-config";
+import PeriodDatePicker from "@/components/PeriodDatePicker";
 import { mapGetters } from "vuex";
-// import PeriodDatePicker from "@/components/PeriodDatePicker";
 export default {
   name: "standBook",
   mixins: [resToken],
-  // components: {
-  //   PeriodDatePicker,
-  // },
+  components: {
+    PeriodDatePicker,
+  },
   computed: {
     //组件SIZE设置
     ...mapGetters(["tablebtnSize", "searchSize", "size"]),
@@ -127,7 +125,8 @@ export default {
 
       fileUrl: urlConfig.baseURL + "Admin/",
       parmValue: {
-        month: "",
+        start:"",
+        end:"",
       },
       // 表格 - 数据
       tableData: [],
@@ -136,7 +135,7 @@ export default {
   mounted() {},
   methods: {
     restSearch() {
-      console.log("123456789");
+      // console.log("123456789");
       this.value = "1";
       this.parmValue = {
         starttime: "",
@@ -144,14 +143,27 @@ export default {
       };
     },
 
+     async timeReturned(e) {
+      if (e.startTime !== "") {
+        this.parmValue.start = e.startTime;
+      } else {
+        this.parmValue.start = "";
+      }
+      if (e.endTime !== "") {
+        this.parmValue.end = e.endTime;
+      } else {
+        this.parmValue.end = "";
+      }
+    },
+
     /**
      * 批量导出开票信息
      * * @param {Array} selection //选中的对账编码
      */
     async batchExport() {
       if (!this.loading) {
-        if (this.parmValue.month === "") {
-          this.$message.warning("请选择月份!");
+        if (this.parmValue.start === "" || this.parmValue.end === "") {
+          this.$message.warning("请选择时间区间!");
           return;
         }
         this.loading = true;
@@ -193,7 +205,7 @@ export default {
               aLink.href = url;
               aLink.setAttribute(
                 "download",
-                `${this.parmValue.month}月${title}.zip`
+                `${this.parmValue.start}至${this.parmValue.end}${title}.zip`
               );
               document.body.appendChild(aLink);
               aLink.click();