Ver código fonte

style(KIP-7551): 选择抬头页面

John-Hong 2 anos atrás
pai
commit
ac0faeaad8

+ 190 - 0
src/pages/parkingFee/components/base/parkingReceipt/parkingChooseHeader.vue

@@ -0,0 +1,190 @@
+<template>
+  <scroll-view class="scroll-Y" scroll-y>
+<!--    <wx-points-commit ref='wxPointsCommit'></wx-points-commit>-->
+
+    <div class="choose-invoice-header" v-if="list.length">
+      <van-radio-group class="radios">
+        <label
+          class="uni-list-cell uni-list-cell-pd radio-label lines"
+          v-for="(item, index) in list"
+          :key="index"
+          :index="item.id"
+        >
+          <div
+            class="invoice-header-info"
+            @click.native="chooseHeader(item, index)"
+          >
+            <!-- <div><radio :value="item.id" :checked="index === current" /></div> -->
+            <div class="invoice-header-text">
+              <div class="invoice-header-name">
+                <div class="invoice-header-name-text">
+                  {{ item.invoiceTitleName
+                  }}<text class="isDefault" v-if="item.setDefault === 1"
+                >默认</text
+                >
+                </div>
+                <div class="invoice-header-name-icon">
+                  <div
+                    class="edit-header"
+                    @click.stop="changeHeader('edit', item.id)"
+                  >
+                    <img
+                      class="invoice-header-arrow"
+                      :src="editwIcon"
+                      mode="widthFix"
+                    />
+                  </div>
+                  <div class="edit-header" @click.stop="delHeader(item.id)">
+                    <img
+                      class="invoice-header-arrow"
+                      :src="delwIcon"
+                      mode="widthFix"
+                    />
+                  </div>
+                </div>
+              </div>
+              <div class="duty-paragraph">
+                税号 {{ item.corporationTax }}
+              </div>
+            </div>
+          </div>
+        </label>
+      </van-radio-group>
+    </div>
+    <div class="choose-invoice-header noData" v-else>
+      <img class="noDataImg" :src="noDataIcon" mode="widthFix" />
+      <div class="">您还没添加发票抬头</div>
+    </div>
+    <div class="footer">
+      <div
+        :class="{
+          'push-again-btn': true,
+          'blue-push-again-btn': custTypeId === 1,
+          'green-push-again-btn': custTypeId === 2,
+        }"
+        @click="changeHeader('add')"
+      >添加抬头</div
+      >
+    </div>
+  </scroll-view>
+</template>
+
+<script>
+import parkingChooseHeaderJs from '../../../mixins/parkingReceipt/parkingChooseHeader';
+
+export default {
+  mixins: [parkingChooseHeaderJs],
+};
+</script>
+
+<style lang="less" scoped>
+//@import '../../../styles/common.less';
+.scroll-Y {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  height: 100vh;
+  background: #f2f2f2;
+  .choose-invoice-header {
+    padding: 20px 30px;
+    .radios {
+      width: 100%;
+      .radio-label {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        border-radius: 10px;
+        background-color: #ffffff;
+        margin-bottom: 20px;
+        .invoice-header-info {
+          flex: 1;
+          display: flex;
+          justify-content: flex-start;
+          align-items: center;
+          .invoice-header-text {
+            width: 100%;
+            padding: 0 20px;
+            .invoice-header-name {
+              color: #333333;
+              padding: 20px 0;
+              border-bottom: 2px solid #f8f8f8;
+              display: flex;
+              justify-content: space-between;
+              align-items: center;
+              .isDefault {
+                color: #8cc63f;
+                border: 2px solid #8cc63f;
+                margin-left: 16px;
+                border-radius: 20px;
+                padding: 0 10px;
+              }
+              .invoice-header-name-icon {
+                width: 100px;
+                display: flex;
+                align-items: center;
+                justify-content: space-around;
+                .invoice-header-arrow {
+                  width: 30px;
+                }
+              }
+            }
+          }
+          .duty-paragraph {
+            color: #6f6f70;
+            padding: 20px 0;
+          }
+        }
+        .invoice-header-icon {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: space-around;
+          .invoice-header-arrow {
+            width: 30px;
+          }
+        }
+      }
+    }
+  }
+  .noData {
+    position: relative;
+    top: 20%;
+    transform: translateY(-50%);
+    color: #cccccc;
+    text-align: center;
+    .noDataImg {
+      width: 200px;
+      margin-bottom: 20px;
+    }
+  }
+  .footer {
+    width: 100%;
+    background-color: #ffffff;
+    position: fixed;
+    bottom: 0;
+    box-shadow: 0 0 10px 0 hsla(0, 6%, 58%, 0.6);
+    -webkit-box-shadow: 0 0 20px 0 hsla(0, 6%, 58%, 0.6);
+    -moz-box-shadow: 0 0 20px 0 hsla(0, 6%, 58%, 0.6);
+    // padding-bottom: constant(safe-area-inset-bottom);
+    // padding-bottom: env(safe-area-inset-bottom);
+    padding-bottom: 20px;
+    .push-again-btn {
+      margin: 20px 60px;
+      color: #ffffff;
+      background-image: linear-gradient(to right, #7d4ea1, #40397c);
+      border-radius: 50px;
+      text-align: center;
+      padding: 20px 0;
+    }
+    .blue-push-again-btn {
+      .color-background-color('blue');
+    }
+    .green-push-again-btn {
+      .color-background-color('green');
+    }
+  }
+  .lines {
+    border-bottom: 2px solid #ececec;
+  }
+}
+</style>

+ 211 - 0
src/pages/parkingFee/components/officeBlue/parkingReceipt/parkingChooseHeader.vue

@@ -0,0 +1,211 @@
+<template>
+  <div>
+    <scroll-view class="scroll-Y" scroll-y>
+      <div>
+        <div class="choose-invoice-header" v-if="list.length">
+          <van-radio-group class="radios">
+            <label
+              class="uni-list-cell uni-list-cell-pd radio-label lines"
+              v-for="(item, index) in list"
+              :key="index"
+              :index="item.id"
+              @click="chooseHeader(item, index)"
+            >
+              <div class="invoice-header-info">
+                <div class="invoice-header-text">
+                  <div class="invoice-header-name">
+                    <div class="invoice-header-name-text">
+                      {{ item.invoiceTitleName
+                      }}<span class="isDefault" v-if="item.setDefault === 1"
+                        >默认</span
+                      >
+                    </div>
+                    <div class="invoice-header-name-icon">
+                      <div
+                        class="edit-header"
+                        @click.stop="changeHeader('edit', item.id)"
+                      >
+                        <img
+                          class="invoice-header-arrow"
+                          :src="editwIcon"
+                          mode="widthFix"
+                        />
+                      </div>
+                      <div class="edit-header" @click.stop="delHeader(item.id)">
+                        <img
+                          class="invoice-header-arrow"
+                          :src="delwIcon"
+                          mode="widthFix"
+                        />
+                      </div>
+                    </div>
+                  </div>
+                  <div class="duty-paragraph">
+                    税号 {{ item.corporationTax }}
+                  </div>
+                </div>
+              </div>
+            </label>
+          </van-radio-group>
+        </div>
+        <div class="choose-invoice-header noData" v-else>
+          <img class="noDataImg" :src="noDataIcon" mode="widthFix" />
+          <div class="">您还没添加发票抬头</div>
+        </div>
+      </div>
+    </scroll-view>
+    <div class="footer">
+      <div
+        :class="{
+          'push-again-btn': true,
+          'blue-push-again-btn': custTypeId === 1,
+          'green-push-again-btn': custTypeId === 2,
+        }"
+        @click="changeHeader('add')"
+      >
+        添加抬头
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import parkingChooseHeaderJs from '../../../mixins/parkingReceipt/parkingChooseHeader';
+
+export default {
+  mixins: [parkingChooseHeaderJs],
+};
+</script>
+
+<style lang="less" scoped>
+//@import '../../../styles/common.less';
+
+.scroll-Y {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  height: 100vh;
+  background: #f4f7ff;
+
+  .choose-invoice-header {
+    padding: 20px 30px;
+
+    .radios {
+      width: 100%;
+
+      .radio-label {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        border-radius: 10px;
+        background-color: #ffffff;
+        margin-bottom: 20px;
+
+        .invoice-header-info {
+          flex: 1;
+          display: flex;
+          justify-content: flex-start;
+          align-items: center;
+
+          .invoice-header-text {
+            width: 100%;
+            padding: 0 20px;
+
+            .invoice-header-name {
+              color: #333333;
+              padding: 20px 0;
+              border-bottom: 2px solid #f8f8f8;
+              display: flex;
+              justify-content: space-between;
+              align-items: center;
+
+              .isDefault {
+                color: #8cc63f;
+                border: 2px solid #8cc63f;
+                margin-left: 16px;
+                border-radius: 20px;
+                padding: 0 10px;
+              }
+
+              .invoice-header-name-icon {
+                width: 100px;
+                display: flex;
+                align-items: center;
+                justify-content: space-around;
+
+                .invoice-header-arrow {
+                  width: 30px;
+                }
+              }
+            }
+          }
+
+          .duty-paragraph {
+            color: #6f6f70;
+            padding: 20px 0;
+          }
+        }
+
+        .invoice-header-icon {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: space-around;
+
+          .invoice-header-arrow {
+            width: 30px;
+          }
+        }
+      }
+    }
+  }
+
+  .noData {
+    position: relative;
+    top: 20%;
+    // transform: translateY(-50%);
+    color: #cccccc;
+    text-align: center;
+
+    .noDataImg {
+      width: 200px;
+      margin-bottom: 20px;
+    }
+  }
+}
+
+.lines {
+  border-bottom: 2px solid #ececec;
+}
+
+.footer {
+  width: 100%;
+  background-color: #ffffff;
+  position: fixed;
+  bottom: 0;
+  box-shadow: 0 0 10px 0 hsla(0, 6%, 58%, 0.6);
+  -webkit-box-shadow: 0 0 20px 0 hsla(0, 6%, 58%, 0.6);
+  -moz-box-shadow: 0 0 20px 0 hsla(0, 6%, 58%, 0.6);
+  // padding-bottom: constant(safe-area-inset-bottom);
+  // padding-bottom: env(safe-area-inset-bottom);
+  padding-bottom: 20px;
+
+  .push-again-btn {
+    margin: 20px 60px;
+    color: #ffffff;
+    // background-image: linear-gradient(to right, #7d4ea1, #40397c);
+    background-color: #064c8a;
+    border-radius: 50px;
+    text-align: center;
+    padding: 20px 0;
+  }
+
+  .blue-push-again-btn {
+    .color-background-color('blue');
+  }
+
+  .green-push-again-btn {
+    .color-background-color('green');
+  }
+}
+</style>

+ 184 - 0
src/pages/parkingFee/mixins/parkingReceipt/parkingChooseHeader.js

@@ -0,0 +1,184 @@
+// const app = getApp()
+const app = {};
+import editwIcon from '../../static/images/edit.png';
+import delwIcon from '../../static/images/delete.png';
+import noDataIcon from '../../static/images/nodataicon.png';
+import { mapState } from 'vuex';
+import uni from '@/utils/uniHooks';
+
+export default {
+  data() {
+    return {
+      picUrl: this.$picUrl,
+      editwIcon: editwIcon,
+      delwIcon: delwIcon,
+      noDataIcon: noDataIcon,
+      globalData: app.globalData,
+      current: -1,
+      ids: '',
+      list: [],
+      preUrl: '',
+    };
+  },
+  created() {
+    const options = this.$route.query;
+    if (options.ids) this.ids = options.ids;
+    // 埋点本地化
+    this.preUrl = uni.getStorageSync('previousUrl');
+    uni.setStorageSync(
+      'previousUrl',
+      '/pages/parkingFee/parkingReceipt/parkingChooseHeader.vue'
+    );
+  },
+  mounted() {
+    // console.log('全剧信息', this.globalData);
+    this.getInvoiceTitle();
+  },
+  onBackPress() {
+    console.log('===> 点击返回按钮');
+    const pages = getCurrentPages();
+    const prePage = pages[pages.length - 2];
+    const options = {
+      header: this.list[this.current] || {},
+    };
+    // TODO 开票界面选择了 A,两个列表中如果有当前是 A,删除 A之后,点击返回按钮 开票界面 A 还存在
+    prePage.$vm.pageOptions = options;
+  },
+  computed: {
+    ...mapState({
+      custTypeId: (state) => state.custTypeId,
+      member: (state) => state.member,
+    }),
+  },
+  methods: {
+    changeHeader(type, id) {
+      if (id)
+        this.$router.push({
+          path: 'parkingChangeHeader?type=' + type + '&id=' + id,
+        });
+      else
+        this.$router.push({
+          path: 'parkingChangeHeader?type=' + type,
+        });
+    },
+    // 埋点方法
+    sensorsClick(eventName, params) {
+      let optionsQuery = uni.getStorageSync('options_query');
+      let fixedParams = {
+          cta_itemno: '',
+          cta_name: '',
+          previous_path: this.preUrl || '',
+          $brand_id: uni.getStorageSync('groupId'),
+          $location: uni.getStorageSync('mallid'),
+          $channel: optionsQuery.channel || '',
+          // $utm_lbs: this.optionsQuery.utm_lbs || '',
+          $utm_channel: optionsQuery.utm_channel || '',
+          $utm_method: optionsQuery.utm_method || '',
+          $utm_source: optionsQuery.utm_source || '',
+          $utm_function: optionsQuery.utm_function || '',
+          $utm_user: optionsQuery.utm_user || '',
+        },
+        finalParams = Object.assign(fixedParams, params);
+      this.$sensors.track(eventName, finalParams);
+    },
+    // 删除抬头
+    delHeader(id) {
+      const self = this;
+      self.$md([id]);
+      uni.showModal({
+        content: '确认要删除该发票抬头吗?',
+        success: function (res) {
+          if (res.confirm) {
+            uni.request({
+              url: self.$baseURL + 'api/1.0/invoiceTitle',
+              method: 'delete',
+              data: [id],
+              header: JSON.parse(uni.getStorageSync('handleUser')),
+              success: (res) => {
+                console.log('删除抬头', res.data);
+                if (res.data.code === 0) {
+                  // 删除抬头埋点
+                  self.sensorsClick('$ClickDeleteIcon', {
+                    redirect_path: '',
+                    delete_header_id: id,
+                  });
+                  self.getInvoiceTitle();
+                } else {
+                  uni.showToast({
+                    title: res.data.msg,
+                    duration: 2000,
+                    icon: 'none',
+                  });
+                }
+              },
+              fail: () => {
+                uni.showToast({
+                  title: '服务器开小差了呢,请您稍后再试',
+                  icon: 'none',
+                });
+              },
+            });
+          }
+        },
+      });
+    },
+    // 选择抬头
+    chooseHeader(item, index) {
+      console.log(178, item, index);
+      this.current = index;
+      if (!this.ids || !this.ids.length) return false;
+      // const pages = getCurrentPages();
+      // const prePage = pages[pages.length - 2];
+      // const options = {
+      //   header: this.list[index] || {},
+      // };
+      // prePage.$vm.pageOptions = options;
+      // this.$router.back();
+      this.$router.replace({
+        path:
+          'parkingApplication?ids=' +
+          this.ids +
+          '&header=' +
+          JSON.stringify(item),
+      });
+    },
+    // 查询全部抬头列表信息
+    getInvoiceTitle() {
+      const self = this;
+      const params = {
+        vipcode: this.member?.vipcode,
+      };
+      self.$md(params);
+      uni.request({
+        url: self.$baseURL + 'api/1.0/invoiceTitle/page',
+        method: 'GET',
+        data: params,
+        header: JSON.parse(uni.getStorageSync('handleUser')),
+        success: (res) => {
+          console.log('查询全部抬头列表信息', res.data);
+          if (res.data.code === 0) {
+            this.list = res.data.data;
+            if (this.list.length) {
+              this.list.map((item, index) => {
+                if (item.setDefault === 1) this.current = index;
+              });
+              if (this.current == -1) this.current = 0;
+            }
+          } else {
+            uni.showToast({
+              title: res.data.msg,
+              duration: 2000,
+              icon: 'none',
+            });
+          }
+        },
+        fail: () => {
+          uni.showToast({
+            title: '服务器开小差了呢,请您稍后再试',
+            icon: 'none',
+          });
+        },
+      });
+    },
+  },
+};

+ 8 - 378
src/pages/parkingFee/parkingReceipt/parkingChooseHeader.vue

@@ -1,388 +1,18 @@
 <template>
   <div>
-    <scroll-view class="scroll-Y" scroll-y>
-      <div>
-        <div class="choose-invoice-header" v-if="list.length">
-          <van-radio-group class="radios">
-            <label
-              class="uni-list-cell uni-list-cell-pd radio-label lines"
-              v-for="(item, index) in list"
-              :key="index"
-              :index="item.id"
-              @click="chooseHeader(item, index)"
-            >
-              <div class="invoice-header-info">
-                <div class="invoice-header-text">
-                  <div class="invoice-header-name">
-                    <div class="invoice-header-name-text">
-                      {{ item.invoiceTitleName
-                      }}<span class="isDefault" v-if="item.setDefault === 1"
-                        >默认</span
-                      >
-                    </div>
-                    <div class="invoice-header-name-icon">
-                      <div
-                        class="edit-header"
-                        @click.stop="changeHeader('edit', item.id)"
-                      >
-                        <img
-                          class="invoice-header-arrow"
-                          :src="editwIcon"
-                          mode="widthFix"
-                        />
-                      </div>
-                      <div class="edit-header" @click.stop="delHeader(item.id)">
-                        <img
-                          class="invoice-header-arrow"
-                          :src="delwIcon"
-                          mode="widthFix"
-                        />
-                      </div>
-                    </div>
-                  </div>
-                  <div class="duty-paragraph">
-                    税号 {{ item.corporationTax }}
-                  </div>
-                </div>
-              </div>
-            </label>
-          </van-radio-group>
-        </div>
-        <div class="choose-invoice-header noData" v-else>
-          <img class="noDataImg" :src="noDataIcon" mode="widthFix" />
-          <div class="">您还没添加发票抬头</div>
-        </div>
-      </div>
-    </scroll-view>
-    <div class="footer">
-      <div
-        :class="{
-          'push-again-btn': true,
-          'blue-push-again-btn': custTypeId === 1,
-          'green-push-again-btn': custTypeId === 2,
-        }"
-        @click="changeHeader('add')"
-      >
-        添加抬头
-      </div>
-    </div>
+    <component :is="componentName"></component>
   </div>
 </template>
 
 <script>
-// const app = getApp()
-const app = {};
-import editwIcon from '../static/images/edit.png';
-import delwIcon from '../static/images/delete.png';
-import noDataIcon from '../static/images/nodataicon.png';
-import { mapState } from 'vuex';
-import uni from '@/utils/uniHooks';
-
+import officeBlueCom from '../components/officeBlue/parkingReceipt/parkingChooseHeader.vue';
+import baseParkingFeeCom from '../components/base/parkingReceipt/parkingChooseHeader.vue';
+import baseMixins from '../mixins/base'
 export default {
-  data() {
-    return {
-      picUrl: this.$picUrl,
-      editwIcon: editwIcon,
-      delwIcon: delwIcon,
-      noDataIcon: noDataIcon,
-      globalData: app.globalData,
-      current: -1,
-      ids: '',
-      list: [],
-      preUrl: '',
-    };
-  },
-  created() {
-    const options = this.$route.query;
-    if (options.ids) this.ids = options.ids;
-    // 埋点本地化
-    this.preUrl = uni.getStorageSync('previousUrl');
-    uni.setStorageSync(
-      'previousUrl',
-      '/pages/parkingFee/parkingReceipt/parkingChooseHeader.vue'
-    );
-  },
-  mounted() {
-    // console.log('全剧信息', this.globalData);
-    this.getInvoiceTitle();
-  },
-  onBackPress() {
-    console.log('===> 点击返回按钮');
-    const pages = getCurrentPages();
-    const prePage = pages[pages.length - 2];
-    const options = {
-      header: this.list[this.current] || {},
-    };
-    // TODO 开票界面选择了 A,两个列表中如果有当前是 A,删除 A之后,点击返回按钮 开票界面 A 还存在
-    prePage.$vm.pageOptions = options;
-  },
-  computed: {
-    ...mapState({
-      custTypeId: (state) => state.custTypeId,
-      member: (state) => state.member,
-    }),
-  },
-  methods: {
-    changeHeader(type, id) {
-      if (id)
-        this.$router.push({
-          path: 'parkingChangeHeader?type=' + type + '&id=' + id,
-        });
-      else
-        this.$router.push({
-          path: 'parkingChangeHeader?type=' + type,
-        });
-    },
-    // 埋点方法
-    sensorsClick(eventName, params) {
-      let optionsQuery = uni.getStorageSync('options_query');
-      let fixedParams = {
-          cta_itemno: '',
-          cta_name: '',
-          previous_path: this.preUrl || '',
-          $brand_id: uni.getStorageSync('groupId'),
-          $location: uni.getStorageSync('mallid'),
-          $channel: optionsQuery.channel || '',
-          // $utm_lbs: this.optionsQuery.utm_lbs || '',
-          $utm_channel: optionsQuery.utm_channel || '',
-          $utm_method: optionsQuery.utm_method || '',
-          $utm_source: optionsQuery.utm_source || '',
-          $utm_function: optionsQuery.utm_function || '',
-          $utm_user: optionsQuery.utm_user || '',
-        },
-        finalParams = Object.assign(fixedParams, params);
-      this.$sensors.track(eventName, finalParams);
-    },
-    // 删除抬头
-    delHeader(id) {
-      const self = this;
-      self.$md([id]);
-      uni.showModal({
-        content: '确认要删除该发票抬头吗?',
-        success: function (res) {
-          if (res.confirm) {
-            uni.request({
-              url: self.$baseURL + 'api/1.0/invoiceTitle',
-              method: 'delete',
-              data: [id],
-              header: JSON.parse(uni.getStorageSync('handleUser')),
-              success: (res) => {
-                console.log('删除抬头', res.data);
-                if (res.data.code === 0) {
-                  // 删除抬头埋点
-                  self.sensorsClick('$ClickDeleteIcon', {
-                    redirect_path: '',
-                    delete_header_id: id,
-                  });
-                  self.getInvoiceTitle();
-                } else {
-                  uni.showToast({
-                    title: res.data.msg,
-                    duration: 2000,
-                    icon: 'none',
-                  });
-                }
-              },
-              fail: () => {
-                uni.showToast({
-                  title: '服务器开小差了呢,请您稍后再试',
-                  icon: 'none',
-                });
-              },
-            });
-          }
-        },
-      });
-    },
-    // 选择抬头
-    chooseHeader(item, index) {
-      console.log(178, item, index);
-      this.current = index;
-      if (!this.ids || !this.ids.length) return false;
-      // const pages = getCurrentPages();
-      // const prePage = pages[pages.length - 2];
-      // const options = {
-      //   header: this.list[index] || {},
-      // };
-      // prePage.$vm.pageOptions = options;
-      // this.$router.back();
-      this.$router.replace({
-        path:
-          'parkingApplication?ids=' +
-          this.ids +
-          '&header=' +
-          JSON.stringify(item),
-      });
-    },
-    // 查询全部抬头列表信息
-    getInvoiceTitle() {
-      const self = this;
-      const params = {
-        vipcode: this.member?.vipcode,
-      };
-      self.$md(params);
-      uni.request({
-        url: self.$baseURL + 'api/1.0/invoiceTitle/page',
-        method: 'GET',
-        data: params,
-        header: JSON.parse(uni.getStorageSync('handleUser')),
-        success: (res) => {
-          console.log('查询全部抬头列表信息', res.data);
-          if (res.data.code === 0) {
-            this.list = res.data.data;
-            if (this.list.length) {
-              this.list.map((item, index) => {
-                if (item.setDefault === 1) this.current = index;
-              });
-              if (this.current == -1) this.current = 0;
-            }
-          } else {
-            uni.showToast({
-              title: res.data.msg,
-              duration: 2000,
-              icon: 'none',
-            });
-          }
-        },
-        fail: () => {
-          uni.showToast({
-            title: '服务器开小差了呢,请您稍后再试',
-            icon: 'none',
-          });
-        },
-      });
-    },
+  mixins:[baseMixins],
+  components: {
+    officeBlueCom,
+    baseParkingFeeCom,
   },
 };
 </script>
-
-<style lang="less" scoped>
-@import '../../../styles/common.less';
-
-.scroll-Y {
-  width: 100%;
-  display: flex;
-  flex-direction: column;
-  height: 100vh;
-  background: #f4f7ff;
-
-  .choose-invoice-header {
-    padding: 20px 30px;
-
-    .radios {
-      width: 100%;
-
-      .radio-label {
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        border-radius: 10px;
-        background-color: #ffffff;
-        margin-bottom: 20px;
-
-        .invoice-header-info {
-          flex: 1;
-          display: flex;
-          justify-content: flex-start;
-          align-items: center;
-
-          .invoice-header-text {
-            width: 100%;
-            padding: 0 20px;
-
-            .invoice-header-name {
-              color: #333333;
-              padding: 20px 0;
-              border-bottom: 2px solid #f8f8f8;
-              display: flex;
-              justify-content: space-between;
-              align-items: center;
-
-              .isDefault {
-                color: #8cc63f;
-                border: 2px solid #8cc63f;
-                margin-left: 16px;
-                border-radius: 20px;
-                padding: 0 10px;
-              }
-
-              .invoice-header-name-icon {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: space-around;
-
-                .invoice-header-arrow {
-                  width: 30px;
-                }
-              }
-            }
-          }
-
-          .duty-paragraph {
-            color: #6f6f70;
-            padding: 20px 0;
-          }
-        }
-
-        .invoice-header-icon {
-          width: 100px;
-          display: flex;
-          align-items: center;
-          justify-content: space-around;
-
-          .invoice-header-arrow {
-            width: 30px;
-          }
-        }
-      }
-    }
-  }
-
-  .noData {
-    position: relative;
-    top: 20%;
-    // transform: translateY(-50%);
-    color: #cccccc;
-    text-align: center;
-
-    .noDataImg {
-      width: 200px;
-      margin-bottom: 20px;
-    }
-  }
-}
-.lines {
-  border-bottom: 2px solid #ececec;
-}
-.footer {
-  width: 100%;
-  background-color: #ffffff;
-  position: fixed;
-  bottom: 0;
-  box-shadow: 0 0 10px 0 hsla(0, 6%, 58%, 0.6);
-  -webkit-box-shadow: 0 0 20px 0 hsla(0, 6%, 58%, 0.6);
-  -moz-box-shadow: 0 0 20px 0 hsla(0, 6%, 58%, 0.6);
-  // padding-bottom: constant(safe-area-inset-bottom);
-  // padding-bottom: env(safe-area-inset-bottom);
-  padding-bottom: 20px;
-
-  .push-again-btn {
-    margin: 20px 60px;
-    color: #ffffff;
-    // background-image: linear-gradient(to right, #7d4ea1, #40397c);
-    background-color: #064c8a;
-    border-radius: 50px;
-    text-align: center;
-    padding: 20px 0;
-  }
-
-  .blue-push-again-btn {
-    .color-background-color('blue');
-  }
-
-  .green-push-again-btn {
-    .color-background-color('green');
-  }
-}
-</style>