Bladeren bron

订单导入列表样式修改,扩展组件

lucky-lzx 2 jaren geleden
bovenliggende
commit
82c6c1727e

+ 34 - 22
src/views/orderEntry/orderEnter/index.vue

@@ -1,12 +1,14 @@
 <template>
-  <div class="box">
-    <div class="tableBox">
+  <div class="box"
+    
+  >
+    <div class="tableBox" v-if="
+          powers && powers.length > 0 && powers.some((item) => item == '001')
+        ">
       <ex-table
         ref="multipleTable"
         v-loading="loading"
-        v-if="
-          powers && powers.length > 0 && powers.some((item) => item == '001')
-        "
+        
         :table="table"
         :data="tableData"
         :columns="columns"
@@ -41,20 +43,20 @@
               size="medium "
               class="form"
             >
-              <el-row :gutter="20">
-                <el-col :span="8"  style="width: 313px">
+              <el-row :gutter="10">
+                <el-col :span="8"  style="width: 373px">
                   <el-form-item>
-                    <period-date-picker
+                    <periodDatePickerActive
                       :start="parmValue.platform_time_start"
                       :end="parmValue.platform_time_end"
                       :placeholder="'下单'"
-                      :width="'135px'"
+                      :width="'165px'"
                       :size="searchSize"
                       @timeReturned="platformTime"
                     />
                   </el-form-item>
                 </el-col>
-                <el-col :span="4">
+                <el-col :span="4" style="width:160px">
                   <el-form-item
                     
                     prop="status"
@@ -80,7 +82,7 @@
                     </el-select>
                   </el-form-item>
                 </el-col>
-                <el-col :span="6">
+                <el-col :span="6" style="width:160px">
                   <el-form-item
                     
                     prop="platform_code"
@@ -98,7 +100,7 @@
                   </el-form-item>
                 </el-col>
                 
-                <el-col :span="3"  class="fr" style="width:140px">
+                <el-col :span="3"  class="fr" style="width:140px;margin-left: auto;">
                   <el-button
                     size="mini"
                     type="primary"
@@ -127,20 +129,21 @@
               size="medium "
               class="form"
             >
-              <el-row justify="space-around" :gutter="20">
-                <el-col :span="8"  style="width: 313px">
+              <el-row :gutter="10">
+                <el-col :span="8"  style="width: 373px">
                   <el-form-item >
-                    <period-date-picker
+                   <periodDatePickerActive
+
                       :start="parmValue.addtime_start"
                       :end="parmValue.addtime_end"
                       :placeholder="'导入'"
-                      :width="'135px'"
+                      :width="'165px'"
                       :size="searchSize"
                       @timeReturned="addtime"
                     />
                   </el-form-item>
                 </el-col>
-                <el-col :span="4">
+                <el-col :span="4"  style="width:160px">
                   <el-form-item
                     
                     prop="po_code"
@@ -157,7 +160,7 @@
                     ></el-input>
                   </el-form-item>
                 </el-col>
-                <el-col :span="6">
+                <el-col :span="6"  style="width:160px">
                   <el-form-item
                    
                     prop="plat_code"
@@ -175,7 +178,7 @@
                   </el-form-item>
                 </el-col>
                 
-                <el-col :span="3" class="fr" style="width:140px">
+                <el-col :span="3" class="fr" style="width:140px;margin-left: auto;">
                   <el-button
                     type="primary"
                     icon="el-icon-download"
@@ -228,6 +231,9 @@
         <span>等待数据返回</span>
       </el-dialog> -->
     </div>
+    <div v-else>
+      <no-auth></no-auth>
+    </div>
   </div>
 </template>
 
@@ -237,8 +243,12 @@ import { mapGetters } from "vuex";
 import asyncRequest from "@/apis/service/orderEntry/orderEnter";
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
+import periodDatePickerActive from "./period-date-picker/main.vue"
 export default {
   mixins: [mixinPage, resToken],
+  components:{
+    periodDatePickerActive
+  },
   data() {
     return {
       // centerDialogVisible: false,
@@ -461,7 +471,7 @@ export default {
 }
 .searchBox {
   width: 100%;
-  padding-right: 12px;
+  padding-right: 17px;
 
   box-sizing: border-box;
   // padding-top: 15px;
@@ -475,7 +485,8 @@ export default {
   box-sizing: border-box;
 }
 .el-row {
-  // display: flex;
+  display: flex;
+  // justify-content: space-between;
 }
 /deep/ .el-input__inner {
   height: 36px;
@@ -486,7 +497,8 @@ export default {
   margin-left: 0px;
   display: flex;
   align-items: center;
-  float: right;
+  // float: right;
+  
 }
 .tableBox {
   width: 100%;

+ 2 - 0
src/views/orderEntry/orderEnter/period-date-picker/index.js

@@ -0,0 +1,2 @@
+import Main from './main.vue'
+export default Main

+ 144 - 0
src/views/orderEntry/orderEnter/period-date-picker/main.vue

@@ -0,0 +1,144 @@
+<template>
+  <div class="fl time">
+    <el-date-picker
+      v-model="startTime"
+      style="margin: 0"
+      class="date-picker"
+      type="date"
+      :size="size"
+      :style="{ width: width }"
+      :placeholder="(placeholder||'') + '开始日期'"
+      value-format="yyyy-MM-dd"
+      :picker-options="pickerOptions1"
+      :editable="false"
+      :clearable="true"
+      :disabled="isEdit"
+      @change="timeChange"
+    />
+    <samp style="padding: 0 3px; margin: 0">至</samp>
+    <el-date-picker
+      style="margin: 0"
+      :size="size"
+      v-model="endTime"
+      class="date-picker"
+      :style="{ width: width }"
+      type="date"
+      :placeholder="(placeholder||'') + '结束日期'"
+      :disabled="isEdit"
+      :picker-options="pickerOptions2"
+      :editable="false"
+      value-format="yyyy-MM-dd"
+      :clearable="true"
+      @change="timeChange"
+    />
+  </div>
+</template>
+
+<script>
+// 选择时间段(只有日期)组件
+// timeReturned 返回值{startTime: Number,endTime: Number}
+export default {
+  name: "PeriodDatePicker",
+  props: ["start", "end", "disabled", "size", "width", "type", "placeholder"],
+  data() {
+    return {
+      startTime: this.start,
+      endTime: this.end,
+      isEdit: this.disabled,
+      pickerOptions1: {
+        disabledDate: (time) => {
+          if (this.endTime != null && this.endTime != "" && time) {
+            return time.getTime() > new Date(this.endTime).valueOf();
+          }
+        },
+      },
+      pickerOptions2: {
+        disabledDate: (time) => {
+          if (this.startTime != null && this.startTime != "" && time) {
+            return time.getTime() < new Date(this.startTime).valueOf();
+          }
+        },
+      },
+    };
+  },
+  watch: {
+    disabled: function (val) {
+      this.isEdit = val;
+    },
+    start(val) {
+      this.startTime = val;
+    },
+    end(val) {
+      this.endTime = val;
+    },
+  },
+  mounted() {},
+  methods: {
+    timeChange() {
+      if (
+        this.startTime !== "" &&
+        this.startTime !== null &&
+        this.endTime !== "" &&
+        this.endTime !== null
+      ) {
+        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.showMessage("结束时间不大于开始时间!");
+          return;
+        } else {
+          this.timeReturned();
+        }
+      } else {
+        this.timeReturned();
+      }
+    },
+    timeReturned() {
+      let s = this.startTime == null ? "" : this.startTime;
+      let e = this.endTime == null ? "" : this.endTime;
+      let model = {
+        startTime: s == "" ? "" : this.transformTime(s),
+        endTime: e == "" ? "" : this.transformTime(e),
+      };
+
+      this.$emit("timeReturned", model);
+    },
+
+    transformTime(tTime) {
+      let time = new Date(tTime);
+      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>
+<style lang="scss">
+.date-picker.el-input {
+  // width: 150px !important;
+}
+</style>

+ 0 - 0
src/views/orderEntry/orderEnter/period-date-picker/日期选择区间