WIN-20230912WHV\Administrator пре 1 година
родитељ
комит
be30629d79

+ 0 - 127
components/PreviewImage/index.vue

@@ -1,127 +0,0 @@
-<template>
-  <view>
-    <uni-popup ref="popup" type="center">
-      <view class="popup-container" @click="close">
-
-        <swiper
-          class="swiper"
-          :current="current"
-          :duration="500"
-          @change="swiperChange"
-          @click.stop
-        >
-
-          <swiper-item
-            class="imgs-item"
-            v-for="(item, index) in imgs"
-            :key="index"
-          >
-            <movable-area scale-area class="movable-data">
-            <movable-view
-                class="movable-item"
-                direction="all"
-                :inertia="true"
-                :scale="true"
-                scale-min="1"
-                scale-max="4"
-            >
-              <image :src="item.img" mode="aspectFit" class="img"  />
-            </movable-view>
-            </movable-area>
-          </swiper-item>
-
-        </swiper>
-
-        <view class="count">{{ count }}/{{ imgs.length }}</view>
-      </view>
-    </uni-popup>
-  </view>
-</template>
-
-<script>
-export default {
-  name: "PreviewImage",
-  props: {
-    imgs: {
-      type: Array,
-    },
-    current: {
-      type: Number,
-      default: 0,
-    },
-  },
-  data() {
-    return {
-      count: 1,
-    };
-  },
-
-  methods: {
-    swiperChange(e) {
-      this.count = e.detail.current + 1;
-    },
-    open(index) {
-      this.count = index + 1;
-      this.$refs.popup.open();
-    },
-    close() {
-      this.$refs.popup.close();
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.popup-container {
-  position: relative;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  width: 100vw;
-  height: 100vh;
-  background-color: rgba(0, 0, 0, 0.5);
-  color: #fff;
-
-  .count {
-    position: absolute;
-    bottom: 192px;
-    right: 10px;
-    width: 80px;
-    height: 30px;
-    color: #fff;
-    background-color: rgba(0, 0, 0, 0.5);
-    border-radius: 30px;
-    text-align: center;
-    line-height: 30px;
-  }
-}
-.swiper {
-  width: 100%;
-  height: 450px !important;
-}
-.imgs-item {
-  height: 100%;
-  .movable-data{
-    width: 100%;
-    height: 100%;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    .movable-item{
-      height: 100%;
-      width: 100%;
-      position:fixed;
-      overflow: hidden;
-      .img {
-        width: 100%;
-        height: 100%;
-        background-color: rgb(238, 238, 238);
-      }
-    }
-
-
-
-  }
-
-}
-</style>

+ 0 - 174
components/en-from/en-checkbox/en-checkbox.vue

@@ -1,174 +0,0 @@
-<template>
-  <view class="box">
-    <view class="input-box">
-      <view class="input-box-left" :style="{'letter-spacing':labelWidth}">
-        {{ label }}
-      </view>
-      <view class="input-box-right">
-          <checkbox-group class="checkbox-data" @change="checkboxChange">
-            <label class="checkbox-item" v-for="(checkboxItem,index) in checkboxArr">
-              <checkbox  :id="name+index" :value="checkboxItem.id"  />
-              <text  class="iconfont icon-ok" v-if="checkboxItem.isChecked"> &#xe609;</text>
-              <text  class="iconfont icon-no" v-else> &#xe626;</text>
-              {{checkboxItem.name}}
-            </label>
-          </checkbox-group>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'en-checkbox',
-  props: {
-    type: {
-      type: String,
-      default: 'text'
-    },
-    label: {
-      type: String,
-      default: '标题'
-    },
-    checkboxData: {
-      type: Array,
-      default: []
-    },
-    checkboxKey:{
-      type:String,
-      default:'id'
-    },
-    checkboxValue:{
-      type:String,
-      default:'name'
-    },
-    disabled: {
-      default: false
-    },
-    name: {
-      type: String,
-      default: 'text'
-    },
-    valueType: {
-      default: '1'
-    },
-    value: {
-      default: []
-    }
-  },
-  data() {
-    return {
-      inputValue: [],
-      checkboxArr:[],
-      labelWidth:0
-    }
-  },
-  components: {},
-  mounted() {
-    this.setValue()
-    this.setCheckboxData()
-    this.setLabelWidth()
-  },
-  watch: {
-    'value': function () {
-      if (this.inputValue !== this.value) {
-        this.setValue()
-      }
-    },
-    'inputValue': function () {
-      if(this.valueType==='1'){
-        this.$emit('input', this.inputValue.join(','))
-      }else {
-        this.$emit('input', this.inputValue)
-      }
-
-    }
-  },
-  methods: {
-    checkboxChange(e){
-      this.inputValue=e.detail.value
-      console.log(this.inputValue)
-      this.setIsCheckbox()
-    },
-    setCheckboxData(){
-      if(this.checkboxData.length<=0){
-        return ;
-      }
-      this.checkboxData.forEach((item)=>{
-        if(item[this.checkboxKey] && item[this.checkboxValue]){
-          this.checkboxArr.push({
-            'id':item[this.checkboxKey]+'',
-            'name':item[this.checkboxValue],
-            'isChecked':false,
-          })
-        }
-      })
-      this.setIsCheckbox()
-    },
-    setValue(){
-      let newValue=this.value
-      if(typeof newValue ==='string'){
-        newValue=newValue.split(',')
-      }
-      this.inputValue = []
-      newValue.forEach((item)=>{
-        this.inputValue.push(item+'')
-      })
-      this.setIsCheckbox()
-    },
-    setIsCheckbox(){
-      this.checkboxArr.forEach((item)=>{
-        item.isChecked=this.inputValue.indexOf(item.id) >= 0
-      })
-    },
-    setLabelWidth(){
-      let differenceNum=4- this.label.length;
-      if(differenceNum===2){
-        this.labelWidth='2em'
-      }else if(differenceNum===1){
-        this.labelWidth='0.5em'
-      }
-    }
-  }
-
-}
-</script>
-
-<style lang="scss" scoped>
-  @import url("../../static/css/en-common.css");
-  .box{
-    .input-box {
-      display: flex;
-      align-items: center;
-      .input-box-left {
-        width: 210rpx;
-        min-width: 210rpx;
-        color: #333333;
-      }
-      .input-box-right{
-        display: flex;
-        align-items: center;
-        .checkbox-data{
-          display: flex;
-          flex-wrap: wrap;
-          .checkbox-item{
-            margin: 6rpx 20rpx 0 6rpx;
-            .iconfont{
-              padding-right: 6rpx;
-            }
-            .icon-ok{
-              color: var(--selected-color);
-            }
-            .icon-no{
-              color: var(--unselected-color);
-            }
-            checkbox{
-              display: none;
-            }
-          }
-        }
-      }
-    }
-  }
-
-</style>

+ 0 - 101
components/en-from/en-date/en-date.vue

@@ -1,101 +0,0 @@
-<template>
-  <view class="box">
-    <view class="input-box">
-      <view class="input-box-left" :style="{'letter-spacing':labelWidth}">
-        {{ label }}
-      </view>
-      <uni-datetime-picker
-          :type="type"
-          :value="inputValue"
-          :start="startDate"
-          :end="endDate"
-          @change="change"
-      />
-    </view>
-
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'en-date',
-  props: {
-    type: {
-      //date/daterange/datetime/datetimerange
-      type: String,
-      default: 'date'
-    },
-    label: {
-      type: String,
-      default: '标题'
-    },
-    startDate: {
-      type: String,
-      default: '2000-01-01'
-    },
-    endDate: {
-      type: String,
-      default: '2099-12-13'
-    },
-    disabled: {
-      default: false
-    },
-    value: {
-      default: ''
-    }
-  },
-  data() {
-    return {
-      inputValue: '',
-      labelWidth: 0
-    }
-  },
-  components: {},
-  mounted() {
-    this.inputValue = this.value
-    this.setLabelWidth()
-  },
-  watch: {
-    'value': function () {
-      if (this.inputValue !== this.value) {
-        this.inputValue = this.value
-      }
-    },
-    'inputValue': function () {
-      this.$emit('input', this.inputValue)
-    }
-  },
-  methods: {
-    setLabelWidth() {
-      let differenceNum = 4 - this.label.length;
-      if (differenceNum === 2) {
-        this.labelWidth = '2em'
-      } else if (differenceNum === 1) {
-        this.labelWidth = '0.5em'
-      }
-    },
-    change(e){
-      this.inputValue=e
-    }
-  }
-
-}
-</script>
-
-<style lang="scss" scoped>
-@import url("../../static/css/en-common.css");
-
-.box {
-  padding: 20rpx 0 20rpx 0;
-  .input-box {
-    display: flex;
-    align-items: center;
-    .input-box-left {
-      width: 210 rpx;
-      font-size: 32 rpx;
-      color: #333333;
-    }
-  }
-}
-
-</style>

+ 0 - 151
components/en-from/en-head/en-head-img.vue

@@ -1,151 +0,0 @@
-<template>
-	<view>
-		<view class="box" @click="isShowPop(true)">
-			<image class="left" :src="headImg" mode="aspectFill"></image>
-			<view class="right">
-				<text>{{label}}</text>
-        <text class="iconfont">&#xe62b;</text>
-			</view>
-		</view>
-    <uni-popup ref="popup" type="bottom">
-      <view class="popup-block">
-        <view class="popup-row" @click="editImg(1)">拍照</view>
-        <view class="popup-row" @click="editImg(2)">从手机里面选择</view>
-        <view class="popup-row" @click="isShowPop(false)">取消</view>
-      </view>
-    </uni-popup>
-	</view>
-</template>
-
-<script>
-	import { upLoadingFileOss } from "@/service/upLoadingFile";
-	import tools from '@/service/tools.js'
-
-	export default {
-		props:{
-			label: {
-			  type: String,
-			  default: '标题'
-			},
-			value:{
-				type: String,
-				default: ''
-			},
-		},
-		data(){
-			return{
-			  headImg:''
-      }
-		},
-    watch:{
-		  'headImg':function (){
-		    this.$emit('input',this.headImg)
-      }
-    },
-    mounted() {
-		  this.headImg=this.value
-    },
-    methods:{
-			isShowPop(type){
-
-				if(tools.getPlatform()==='H5'){
-					this.editImg(1)
-				}else{
-				  if(type){
-            this.$refs.popup.open("bottom")
-          }else {
-            this.$refs.popup.close()
-          }
-				}
-			},
-			editImg(type){
-				uni.chooseImage({
-					count: 1,
-					sizeType: ["compressed", "camera"],
-					sourceType: [type===1?"album":"camera"],
-					success:(res)=>{
-						if (res.errMsg === "chooseImage:ok"){
-							tools.showLoading()
-							this.upLoadOss(res.tempFiles[0].path)
-						}else{
-							tools.error('头像选择失败')
-						}
-					}
-				})
-			},
-			upLoadOss(path){
-				 upLoadingFileOss(path).then((res)=>{
-					 if(res){
-						 this.headImg = res
-					 }else{
-						 tools.error('头像上传失败')
-					 }
-					 tools.hideLoading()
-				 }).catch(()=>{
-					 tools.hideLoading()
-				 })
-				 this.$refs.popup.close()
-			},
-		},
-	}
-</script>
-
-<style scoped lang="scss">
-@import url("../../static/css/en-common.css");
-.popup-block {
-  border-radius: 20rpx 20rpx 0rpx 0rpx;
-  overflow: hidden;
-  background-color: #f5f5f5;
-  .popup-row {
-    height: 100rpx;
-    background-color: #fff;
-    text-align: center;
-    line-height: 100rpx;
-    border-bottom: 2rpx solid #f5f5f5;
-    &:nth-child(2) {
-      margin-bottom: 20rpx;
-    }
-    &:last-child {
-      height: 112rpx;
-      border: none;
-      line-height: 112rpx;
-    }
-    &:active {
-      background-color: rgb(244, 244, 244);
-    }
-  }
-}
-	.box{
-		width: 100%;
-		height: 152rpx;
-		background-color: #fff;
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-    padding: 0;
-		image{
-			width: 96rpx;
-			height: 96rpx;
-			border-radius: 50%;
-		}
-		.left{
-			font-size: 32rpx;
-		}
-		.right{
-			display: flex;
-			align-items: center;
-			text{
-				font-size: 32rpx;
-				color: #333;
-			}
-
-		}
-	}
-	.pop-box{
-		height: 130rpx;
-		background-color: #fff;
-		text-align: center;
-		line-height: 130rpx;
-		font-size: 30rpx;
-	}
-</style>

+ 0 - 110
components/en-from/en-input/en-input.vue

@@ -1,110 +0,0 @@
-<template>
-  <view class="box">
-    <view class="input-box">
-      <view class="input-box-left" :style="{'letter-spacing':labelWidth}">
-        {{ label }}
-      </view>
-      <input
-          class="input-item"
-          :name="name"
-          :type="type"
-          :maxlength="maxlength"
-          :placeholder="placeholder ? placeholder : ''"
-          :disabled="!!disabled"
-          v-model="inputValue"
-      />
-    </view>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'en-input',
-  props: {
-    type: {
-      type: String,
-      default: 'text'
-    },
-    label: {
-      type: String,
-      default: '标题'
-    },
-    placeholder: {
-      type: String,
-      default: '请输入'
-    },
-    disabled: {
-      default: false
-    },
-    name: {
-      type: String,
-      default: 'text'
-    },
-    value: {
-      default: ''
-    },
-    maxlength:{
-      default:140
-    }
-  },
-  data() {
-    return {
-      inputValue: '',
-      labelWidth:0
-    }
-  },
-  components: {},
-  mounted() {
-    this.inputValue = this.value
-    this.setLabelWidth()
-  },
-  watch: {
-    'value': function () {
-      if (this.inputValue !== this.value) {
-        this.inputValue = this.value
-      }
-    },
-    'inputValue': function () {
-      this.$emit('input', this.inputValue)
-    }
-  },
-  methods: {
-  setLabelWidth(){
-    let differenceNum=4- this.label.length;
-    if(differenceNum===2){
-      this.labelWidth='2em'
-    }else if(differenceNum===1){
-      this.labelWidth='0.5em'
-    }
-  }
-  }
-
-}
-</script>
-
-<style lang="scss" scoped>
-@import url("../../static/css/en-common.css");
-  .box{
-    .input-box {
-      display: flex;
-      align-items: center;
-      .input-box-left {
-        width: 210rpx;
-        font-size: 32rpx;
-        color: #333333;
-      }
-      .input-item{
-        border:none;
-        outline: none;
-        font-size: 32rpx;
-        color: #333333;
-      }
-      .input-item::placeholder{
-        color: #999999;
-        font-size: 32rpx;
-      }
-
-    }
-  }
-
-</style>

+ 68 - 0
components/en-from/en-input/index.vue

@@ -0,0 +1,68 @@
+<template>
+  <view class="en-box">
+    <input type="number" class="en-input sys-size-32 " placeholder="请输入手机号" maxlength="11" placeholder-class="sys-size-28 " v-model="loginData.phone"></input>
+  </view>
+</template>
+
+<script>
+export default {
+  name:'en-input',
+  props: {
+    type: {
+      type: String,
+      default: 'text'
+    },
+    placeholder: {
+      type: String,
+      default: '请输入'
+    },
+    disabled: {
+      default: false
+    },
+    name: {
+      type: String,
+      default: 'text'
+    },
+    value: {
+      default: ''
+    },
+    maxlength:{
+      default:140
+    }
+  },
+  data() {
+    return {
+      inputValue: '',
+    };
+  },
+  watch: {
+    'value': function () {
+      if (this.inputValue !== this.value) {
+        this.inputValue = this.value
+      }
+    },
+    'inputValue': function () {
+      this.$emit('input', this.inputValue)
+    }
+  },
+  mounted() {
+    this.inputValue = this.value
+  },
+  methods: {
+
+  }
+}
+</script>
+
+<style lang="scss">
+.en-input{
+  .en-input{
+    width: 100%;
+  }
+  .en-input-placeholder{
+    color: #999999;
+    font-size: 28rpx;
+  }
+}
+
+</style>

+ 0 - 150
components/en-from/en-radio/en-radio.vue

@@ -1,150 +0,0 @@
-<template>
-  <view class="box">
-    <view class="input-box">
-      <view class="input-box-left" :style="{'letter-spacing':labelWidth}">
-        {{ label }}
-      </view>
-      <view class="input-box-right">
-          <radio-group class="radio-data" @change="radioChange">
-            <label class="radio-item" v-for="(radioItem,index) in radioArr">
-              <radio  :id="name+index" :value="radioItem.id"  />
-              <text  class="iconfont icon-ok" v-if="inputValue===radioItem.id">&#xe608;</text>
-              <text  class="iconfont" v-else> &#xead9;</text>
-              {{radioItem.name}}
-            </label>
-          </radio-group>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'en-radio',
-  props: {
-    type: {
-      type: String,
-      default: 'text'
-    },
-    label: {
-      type: String,
-      default: '标题'
-    },
-    radioData: {
-      type: Array,
-      default: []
-    },
-    radioKey:{
-      type:String,
-      default:'id'
-    },
-    radioValue:{
-      type:String,
-      default:'name'
-    },
-    disabled: {
-      default: false
-    },
-    name: {
-      type: String,
-      default: 'text'
-    },
-    value: {
-      default: '1'
-    }
-  },
-  data() {
-    return {
-      inputValue: [],
-      radioArr:[],
-      labelWidth:0
-    }
-  },
-  components: {},
-  mounted() {
-    this.setValue()
-    this.setRadioData()
-    this.setLabelWidth()
-  },
-  watch: {
-    'value': function () {
-      if (this.inputValue !== this.value) {
-        this.setValue()
-      }
-    },
-    'inputValue': function () {
-      this.$emit('input', this.inputValue)
-    }
-  },
-  methods: {
-    radioChange(e){
-      this.inputValue=e.detail.value
-      console.log(this.inputValue)
-    },
-    setRadioData(){
-      if(this.radioData.length<=0){
-        return ;
-      }
-      this.radioData.forEach((item)=>{
-        if(item[this.radioKey] && item[this.radioValue]){
-          this.radioArr.push({
-            'id':item[this.radioKey]+'',
-            'name':item[this.radioValue]
-          })
-        }
-      })
-    },
-    setValue(){
-      this.inputValue = this.value+''
-    },
-    setLabelWidth(){
-      let differenceNum=4- this.label.length;
-      if(differenceNum===2){
-        this.labelWidth='2em'
-      }else if(differenceNum===1){
-        this.labelWidth='0.5em'
-      }
-    }
-  }
-
-}
-</script>
-
-<style lang="scss" scoped>
-  @import url("../../static/css/en-common.css");
-  .box{
-    .input-box {
-      display: flex;
-      align-items: center;
-      .input-box-left {
-        width: 210rpx;
-        min-width: 210rpx;
-        color: #333333;
-      }
-      .input-box-right{
-        display: flex;
-        align-items: center;
-        .radio-data{
-          display: flex;
-          flex-wrap: wrap;
-          .radio-item{
-            margin: 6rpx 20rpx 0 6rpx;
-            .iconfont{
-              padding-right: 6rpx;
-            }
-            .icon-ok{
-              color: var(--selected-color);
-            }
-            .icon-no{
-              color: var(--unselected-color);
-            }
-            radio{
-              display: none;
-            }
-          }
-        }
-      }
-    }
-  }
-
-</style>

+ 0 - 175
components/en-from/en-select/en-select.vue

@@ -1,175 +0,0 @@
-<template>
-  <view class="box">
-    <view class="input-box">
-      <view class="input-box-left" :style="{'letter-spacing':labelWidth}">
-        {{ label }}
-      </view>
-      <view class="input-box-right" @click="showPickerObj">
-        <text :class="{'no-option':!optionName}">{{ optionName ? optionName : placeholder }}</text>
-        <text class="iconfont">&#xe62b;</text>
-      </view>
-    </view>
-    <uni-data-picker :popup-title="'选择'+label" :localdata="localData" ref="pickerObj" v-show="showPicker"
-                     @change="pickerChange" :border="false" :clear-icon="false" @popupclosed="setPopupClosed">
-    </uni-data-picker>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'en-select',
-  props: {
-    localData: {
-      type: Array,
-      default: []
-    },
-    label: {
-      type: String,
-      default: '标题'
-    },
-    placeholder: {
-      type: String,
-      default: '请选择'
-    },
-    disabled: {
-      type: Boolean,
-      default: false
-    },
-    name: {
-      type: String,
-      default: 'text'
-    },
-    valueType: {
-      type: String,
-      default: '1'
-    },
-    value: {
-      default: ''
-    }
-  },
-  data() {
-    return {
-      inputValue: [],
-      optionName: '',
-      labelWidth: 0,
-      showPicker:false
-    }
-  },
-  components: {},
-  mounted() {
-    this.setValue()
-    this.setLabelWidth()
-  },
-  watch: {
-    'value': function () {
-      this.setValue()
-    },
-    'inputValue': function () {
-      console.log(this.inputValue)
-      if(this.valueType==='1'){
-        this.$emit('input', this.inputValue.join(','))
-      }else {
-        this.$emit('input', this.inputValue)
-      }
-    }
-  },
-  methods: {
-    setValue(){
-      let value=this.value
-      if(!value){
-        value=[]
-      }else if(typeof value==='string'){
-        value=value.split(',')
-      }
-      if(this.inputValue!==value){
-        this.inputValue=value
-        this.optionName = "";
-        this.localData.forEach((one)=>{
-          if(one.value+''===this.inputValue[0]+''){
-            this.optionName += one.text + " ";
-            if(one.children){
-              one.children.forEach((two)=>{
-                if(two.value+''===this.inputValue[1]+''){
-                  this.optionName += two.text + " ";
-                  if(two.children){
-                    two.children.forEach((three)=>{
-                      if(three.value+''===this.inputValue[2]+''){
-                        this.optionName += three.text + " ";
-                      }
-                    })
-                  }
-                }
-              })
-            }
-          }
-        })
-      }
-
-    },
-    setPopupClosed() {
-      this.showPicker = false;
-    },
-    showPickerObj() {
-      this.$refs.pickerObj.show();
-      this.showPicker = true;
-    },
-    pickerChange(data) {
-      this.optionName = "";
-      this.inputValue = [];
-      data.detail.value.forEach((item) => {
-        this.optionName += item.text + " ";
-        this.inputValue.push(item.value)
-      });
-      this.showPicker = false;
-    },
-    setLabelWidth() {
-      let differenceNum = 4 - this.label.length;
-      if (differenceNum === 2) {
-        this.labelWidth = '2em'
-      } else if (differenceNum === 1) {
-        this.labelWidth = '0.5em'
-      }
-    }
-  }
-
-}
-</script>
-
-<style lang="scss" scoped>
-@import url("../../static/css/en-common.css");
-::v-deep .selected-item-active{
-  border-bottom: 2px solid #FF0000 !important;
-}
-.box {
-  .input-box {
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-
-    .input-box-left {
-      width: 210rpx;
-      font-size: 32rpx;
-      color: #333333;
-    }
-
-    .input-box-right {
-      width: 100%;
-
-      text {
-        font-size: 32rpx;
-        color: #333;
-      }
-
-      .iconfont {
-        float: right;
-      }
-
-      .no-option {
-        color: #999999;
-      }
-
-    }
-  }
-}
-
-</style>

+ 0 - 131
components/en-from/en-send/en-send.vue

@@ -1,131 +0,0 @@
-<template>
-  <view class="box">
-    <view class="input-box">
-      <view class="input-box-left" :style="{'letter-spacing':labelWidth}">
-        {{ label }}
-      </view>
-      <input
-          :name="name"
-          :type="type"
-          :placeholder="placeholder ? placeholder : ''"
-          :disabled="!!disabled"
-          v-model="inputValue"
-      />
-      <view class="input-box-right" v-if="timeNum<=0" @click="getCode()">
-        发送
-      </view>
-      <view class="input-box-right" v-else >
-        {{timeNum}} s
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'en-send',
-  props: {
-    type: {
-      type: String,
-      default: 'text'
-    },
-    label: {
-      type: String,
-      default: '手机号'
-    },
-    placeholder: {
-      type: String,
-      default: '请输入手机号码'
-    },
-    disabled: {
-      default: false
-    },
-    name: {
-      type: String,
-      default: 'number'
-    },
-    value: {
-      default: ''
-    },
-    timeNumMax:{
-      type:Number,
-      default:90
-    }
-  },
-  data() {
-    return {
-      inputValue: '',
-      timer: '',
-      timeNum:0,
-      labelWidth:0
-    }
-  },
-  components: {},
-  mounted() {
-    this.inputValue = this.value
-    this.setLabelWidth()
-  },
-  watch: {
-    'value': function () {
-      if (this.inputValue !== this.value) {
-        this.inputValue = this.value
-      }
-    },
-    'inputValue': function () {
-      this.$emit('input', this.inputValue)
-    }
-  },
-  methods: {
-    getCode(){
-      if (this.inputValue === '') {
-        uni.showToast({
-          'title': "请输入"+this.label,
-          'icon': 'error',
-          'mask': true,
-          'duration': 1500
-        })
-        return;
-      }
-      this.$emit('getCode')
-    },
-    setCodeNum(){
-      this.timeNum = this.timeNumMax
-      this.timer = setInterval(() => {
-        this.timeNum--;
-        if (this.timeNum <= 0) {
-          clearInterval(this.timer);
-        }
-      }, 1000);
-    },
-    setLabelWidth(){
-      let differenceNum=4- this.label.length;
-      if(differenceNum===2){
-        this.labelWidth='2em'
-      }else if(differenceNum===1){
-        this.labelWidth='0.5em'
-      }
-    }
-  }
-
-}
-</script>
-
-<style lang="scss" scoped>
-@import url("../../static/css/en-common.css");
-  .box{
-    .input-box {
-      display: flex;
-      align-items: center;
-      font-size: 32rpx;
-      .input-box-left {
-        color: #333333;
-        width: 210rpx;
-      }
-      .input-box-right{
-        width: 80rpx;
-        color: #3169FA;
-      }
-    }
-  }
-
-</style>

+ 0 - 92
components/en-from/en-switch/en-switch.vue

@@ -1,92 +0,0 @@
-<template>
-  <view class="box">
-    <view class="input-box">
-      <view class="input-box-left" :style="{'letter-spacing':labelWidth}">
-        {{ label }}
-      </view>
-      <switch  color="#3169FA" style="transform:scale(0.7)" :checked="true" @change="switchChange" />
-    </view>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'en-switch',
-  props: {
-    type: {
-      type: String,
-      default: 'text'
-    },
-    label: {
-      type: String,
-      default: '状态'
-    },
-    value: {
-      default: ''
-    },
-    trueValue: {
-      default: 1
-    },
-    falseValue: {
-      default: '0'
-    }
-  },
-  data() {
-    return {
-      inputValue: false,
-      labelWidth:0
-    }
-  },
-  components: {},
-  mounted() {
-    this.setLabelWidth()
-    this.setValue()
-  },
-  watch: {
-    'value': function () {
-      this.inputValue = this.value
-    }
-  },
-  methods: {
-    setValue(){
-      this.inputValue =this.value===this.trueValue
-    },
-    switchChange(e){
-        if(e.detail.value){
-          this.$emit('input', this.trueValue)
-        }else {
-          this.$emit('input', this.falseValue)
-        }
-    },
-    setLabelWidth(){
-      let differenceNum=4- this.label.length;
-      if(differenceNum===2){
-        this.labelWidth='2em'
-      }else if(differenceNum===1){
-        this.labelWidth='0.5em'
-      }
-    }
-
-  }
-
-}
-</script>
-
-<style lang="scss" scoped>
-@import url("../../static/css/en-common.css");
-  .box{
-    padding: 26rpx 0 24rpx 0;
-    .input-box {
-      display: flex;
-      align-items: center;
-      font-size: 32rpx;
-      .input-box-left {
-        color: #333333;
-        width: 210rpx;
-        //letter-spacing:1em;
-      }
-
-    }
-  }
-
-</style>

+ 0 - 107
components/en-from/en-textarea/en-textarea.vue

@@ -1,107 +0,0 @@
-<template>
-  <view class="box">
-    <view class="input-box">
-      <view class="input-box-left" :style="{'letter-spacing':labelWidth}">
-        {{ label }}
-      </view>
-      <view class="input-textarea">
-         <textarea
-             class="textarea-data"
-                   :placeholder="placeholder ? placeholder : ''"
-                   :disabled="!!disabled"
-                   :value="inputValue"
-                   @blur="bindTextAreaBlur"
-                   :auto-height="true"
-         />
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'en-textarea',
-  props: {
-
-    label: {
-      type: String,
-      default: '标题'
-    },
-    placeholder: {
-      type: String,
-      default: '请输入'
-    },
-    disabled: {
-      default: false
-    },
-    value: {
-      default: ''
-    }
-  },
-  data() {
-    return {
-      inputValue: '',
-      labelWidth: 0
-    }
-  },
-  components: {},
-  mounted() {
-    this.inputValue = this.value
-    this.setLabelWidth()
-  },
-  watch: {
-    'value': function () {
-      if (this.inputValue !== this.value) {
-        this.inputValue = this.value
-      }
-    },
-    'inputValue': function () {
-      this.$emit('input', this.inputValue)
-    }
-  },
-  methods: {
-    setLabelWidth() {
-      let differenceNum = 4 - this.label.length;
-      if (differenceNum === 2) {
-        this.labelWidth = '2em'
-      } else if (differenceNum === 1) {
-        this.labelWidth = '0.5em'
-      }
-    },
-    bindTextAreaBlur(e){
-      this.inputValue=e.detail.value
-    }
-  }
-
-}
-</script>
-
-<style lang="scss" scoped>
-@import url("../../static/css/en-common.css");
-
-.box {
-  .input-box {
-    display: flex;
-    align-items: center;
-
-    .input-box-left {
-      width: 210rpx;
-      min-width: 210rpx;
-      font-size: 32rpx;
-      color: #333333;
-    }
-    .input-textarea{
-      height: 170rpx;
-      padding: 6rpx;
-      border-radius: 10rpx;
-      border: 2rpx solid #F0F0F0;
-      overflow: auto;
-      .textarea-data{
-        height: 170rpx;
-        width: 400rpx;
-      }
-    }
-  }
-}
-
-</style>

+ 0 - 592
components/en-from/en-upload/en-upload.vue

@@ -1,592 +0,0 @@
-<template>
-  <view class="con">
-    <movable-area class="area" :style="{ height: areaHeight }" @mouseenter="mouseenter" @mouseleave="mouseleave">
-      <block v-for="(item, index) in imageList" :key="item.id">
-        <movable-view class="view" :x="item.x" :y="item.y" direction="all" :damping="40" :disabled="item.disable"
-                      @change="onChange($event, item)" @touchstart="touchstart(item)" @mousedown="touchstart(item)"
-                      @touchend="touchend(item)" @mouseup="touchend(item)"
-                      :style="{ width: viewWidth + 'px', height: viewWidth + 'px', 'z-index': item.zIndex, opacity: item.opacity }">
-          <view class="area-con" @click.stop="examineImgOne(index)"
-                :style="{ width: childWidth, height: childWidth, transform: 'scale(' + item.scale + ')' }">
-            <image  class="pre-image" :src="item.src+(imgType===1?'':'?x-oss-process=video/snapshot,t_7000,f_jpg,w_600,h_0,m_fast')" mode="aspectFill"></image>
-            <text v-if="imgType===2" class="bf-img iconfont"> &#xea82;</text>
-            <view class="del-con" @click.stop="delImage(item, index)" @touchstart.stop="delImageMp(item, index)"
-                  @touchend.stop="nothing()" @mousedown.stop="nothing()" @mouseup.stop="nothing()">
-              <view class="del-wrap">
-<!--                <image class="del-image"-->
-<!--                       src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAhCAYAAABX5MJvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAhdEVYdENyZWF0aW9uIFRpbWUAMjAyMDowNzoyNSAyMTo1NDoyOU4TkJAAAADcSURBVFhH7ZfRCoMwDEXLvkjwwVf/bH/emmAyN6glTW9WBjsgwm28OeCLpj81Sil7zvlJ90UiONS/yY5VogsO6XrBg3IEQ5a/s8vRSWUAKmLqp2w5jz5BiNQEGMo3GbloDLtFXJ1IkaEuhAiiY6gEIqB4yqACSk9piIBiKQ8VUFpLviKg3C2rESKgWERCBZSWiEfgIfffYvrrsAgoISJ3Apy3zuTxcSxLQkV6ykNEPKVQkZEyiAiiZKgDIaC4upACSlcn5fM/+WuDCAHF1E/Z/N9AhkMZnPNDPI+UDjPIXgAQIGjNAAAAAElFTkSuQmCC">-->
-<!--                </image>-->
-                <text  class="del-image iconfont"> &#xe603;</text>
-              </view>
-            </view>
-          </view>
-        </movable-view>
-      </block>
-      <view class="add" v-if="imageList.length < number"
-            :style="{ top: add.y, left: add.x, width: viewWidth + 'px', height: viewWidth + 'px' }" @click="selectMultimedia">
-        <view class="add-wrap" :style="{ width: childWidth, height: childWidth }">
-          <view class="video-data">
-            <text class="video-img iconfont" >&#xe658;</text>
-          </view>
-        </view>
-      </view>
-    </movable-area>
-  </view>
-</template>
-
-<script>
-import tools from "@/service/tools";
-import {upLoadingFileOss} from "@/service/upLoadingFile";
-
-export default {
-  components:{
-
-  },
-  data() {
-    return {
-      imageList: [],
-      previewList:[],
-      width: 0,
-      add: {
-        x: 0,
-        y: 0
-      },
-      current: 0,
-      colsValue: 0,
-      viewWidth: 0,
-      tempItem: null,
-      timer: null,
-      changeStatus: true,
-      preStatus: true,
-      ossClient:null
-    }
-  },
-  props: {
-    // 返回排序后图片
-    list: {
-      type: Array,
-      default: function() {
-        return []
-      }
-    },
-    imgType: {
-      type: Number,
-      default: 1
-    },
-    fileNum: {
-      type: Number,
-      default: 9
-    },
-    // 选择图片数量限制
-    number: {
-      type: Number,
-      default: 100
-    },
-    // 图片父容器宽度(实际显示的图片宽度为 imageWidth / 1.1 ),单位 rpx
-    imageWidth: {
-      type: Number,
-      default: 230
-    },
-    // 图片列数(cols > 0 则 imageWidth 无效)
-    cols: {
-      type: Number,
-      default: 0
-    },
-    // 图片周围空白填充,单位 rpx
-    padding: {
-      type: Number,
-      default: 10
-    },
-    // 拖动图片时放大倍数 [0, ∞)
-    scale: {
-      type: Number,
-      default: 1.1
-    },
-    // 拖动图片时不透明度
-    opacity: {
-      type: Number,
-      default: 0.7
-    },
-    // 自定义添加(需配合 @aaddImage 事件使用)
-    custom: {
-      type: Boolean,
-      default: false
-    }
-  },
-  computed: {
-    areaHeight() {
-      if (this.imageList.length < this.number) {
-        return Math.ceil((this.imageList.length + 1) / this.colsValue) * this.viewWidth + 'px'
-      } else {
-        return Math.ceil(this.imageList.length / this.colsValue) * this.viewWidth + 'px'
-      }
-    },
-    childWidth() {
-      return this.viewWidth - this.rpx2px(this.padding) * 2 + 'px'
-    },
-  },
-  created() {
-    this.width = uni.getSystemInfoSync().windowWidth
-    this.viewWidth = this.rpx2px(this.imageWidth)
-  },
-  mounted() {
-    const query = uni.createSelectorQuery().in(this)
-    query.select('.area').boundingClientRect(data => {
-      this.colsValue = Math.floor(data.width / this.viewWidth)
-      if (this.cols > 0) {
-        this.colsValue = this.cols
-        this.viewWidth = data.width / this.cols
-      }
-      for (let item of this.list) {
-        this.addProperties(item)
-      }
-    })
-    query.exec()
-  },
-  methods: {
-    examineImgOne( index) {
-      // this.$emit('examineImgOne',index)
-      // this.previewList = this.list
-      // this.current = index
-      // this.$refs.previewImage.open(index);
-      let imgList = []
-      this.imageList.forEach((item)=>{
-        console.log(item)
-        imgList.push(item.src)
-      })
-      uni.previewImage({
-        urls: imgList,
-        current: index,
-        success: () => {
-
-        }
-      })
-    },
-    startList(imgList){
-      if(imgList.length<=0){
-        let maxImageNum=this.imageList.length
-        if(maxImageNum>0){
-          for (let i=maxImageNum;i>0;--i){
-            let keyNum=i-1;
-            this.delImage(this.imageList[keyNum],keyNum)
-          }
-        }
-      }else {
-        imgList.forEach((item)=>{
-          this.addProperties(item)
-        })
-      }
-
-    },
-    onChange(e, item) {
-      if (!item) return
-      item.oldX = e.detail.x
-      item.oldY = e.detail.y
-      if (e.detail.source === 'touch') {
-        if (item.moveEnd) {
-          item.offset = Math.sqrt(Math.pow(item.oldX - item.absX * this.viewWidth, 2) + Math.pow(item.oldY - item
-              .absY * this.viewWidth, 2))
-        }
-        let x = Math.floor((e.detail.x + this.viewWidth / 2) / this.viewWidth)
-        if (x >= this.colsValue) return
-        let y = Math.floor((e.detail.y + this.viewWidth / 2) / this.viewWidth)
-        let index = this.colsValue * y + x
-        if (item.index != index && index < this.imageList.length) {
-          this.changeStatus = false
-          for (let obj of this.imageList) {
-            if (item.index > index && obj.index >= index && obj.index < item.index) {
-              this.change(obj, 1)
-            } else if (item.index < index && obj.index <= index && obj.index > item.index) {
-              this.change(obj, -1)
-            } else if (obj.id != item.id) {
-              obj.offset = 0
-              obj.x = obj.oldX
-              obj.y = obj.oldY
-              setTimeout(() => {
-                this.$nextTick(() => {
-                  obj.x = obj.absX * this.viewWidth
-                  obj.y = obj.absY * this.viewWidth
-                })
-              }, 0)
-            }
-          }
-          item.index = index
-          item.absX = x
-          item.absY = y
-          this.sortList()
-        }
-      }
-    },
-    change(obj, i) {
-      obj.index += i
-      obj.offset = 0
-      obj.x = obj.oldX
-      obj.y = obj.oldY
-      obj.absX = obj.index % this.colsValue
-      obj.absY = Math.floor(obj.index / this.colsValue)
-      setTimeout(() => {
-        this.$nextTick(() => {
-          obj.x = obj.absX * this.viewWidth
-          obj.y = obj.absY * this.viewWidth
-        })
-      }, 0)
-    },
-    touchstart(item) {
-      this.imageList.forEach(v => {
-        v.zIndex = v.index + 9
-      })
-      item.zIndex = 99
-      item.moveEnd = true
-      this.tempItem = item
-      this.timer = setTimeout(() => {
-        item.scale = this.scale
-        item.opacity = this.opacity
-        clearTimeout(this.timer)
-        this.timer = null
-      }, 200)
-    },
-    touchend(item) {
-      this.previewImage(item)
-      item.scale = 1
-      item.opacity = 1
-      item.x = item.oldX
-      item.y = item.oldY
-      item.offset = 0
-      item.moveEnd = false
-      setTimeout(() => {
-        this.$nextTick(() => {
-          item.x = item.absX * this.viewWidth
-          item.y = item.absY * this.viewWidth
-          this.tempItem = null
-          this.changeStatus = true
-        })
-      }, 0)
-    },
-    previewImage(item) {
-      console.log(item)
-      if (this.timer && this.preStatus && this.changeStatus && item.offset < 28.28) {
-        clearTimeout(this.timer)
-        this.timer = null
-        let src = this.list.findIndex(v => v === item.src)
-        uni.previewImage({
-          urls: this.list,
-          current: src,
-          success: () => {
-            this.preStatus = false
-            setTimeout(() => {
-              this.preStatus = true
-            }, 600)
-          }
-        })
-      } else if (this.timer) {
-        clearTimeout(this.timer)
-        this.timer = null
-      }
-    },
-    mouseenter() {
-      //#ifdef H5
-      this.imageList.forEach(v => {
-        v.disable = false
-      })
-      //#endif
-
-    },
-    mouseleave() {
-      //#ifdef H5
-      if (this.tempItem) {
-        this.imageList.forEach(v => {
-          v.disable = true
-          v.zIndex = v.index + 1
-          v.offset = 0
-          v.moveEnd = false
-          if (v.id == this.tempItem.id) {
-            if (this.timer) {
-              clearTimeout(this.timer)
-              this.timer = null
-            }
-            v.scale = 1
-            v.opacity = 1
-            v.x = v.oldX
-            v.y = v.oldY
-            this.$nextTick(() => {
-              v.x = v.absX * this.viewWidth
-              v.y = v.absY * this.viewWidth
-              this.tempItem = null
-            })
-          }
-        })
-        this.changeStatus = true
-      }
-      //#endif
-    },
-    selectMultimedia() {
-      if (this.imgType === 1) {
-        //图片选择
-        this.uploadingImg();
-      } else {
-        //视频选择
-        this.uploadingVideo();
-      }
-    },
-    uploadingImg() {
-      if (this.list.length > 100) {
-        tools.error('最多上传100张')
-        return;
-      }
-      uni.chooseImage({
-        count: this.fileNum, //默认9
-        sizeType: 'original', //可以指定是原图还是压缩图,默认二者都有 'camera' : 'album'
-        sourceType: ['album'],
-        success: (res) => {
-          console.log(res.tempFiles)
-          if (res.tempFiles !== undefined) {
-            console.log(res.tempFiles)
-            console.log('--------------------')
-            res.tempFiles.forEach((file) => {
-              if (file.size > (1048576 * 3)) {
-                // tools.error('上传的图片最大3MB')
-              } else {
-                if (this.list.length > 100) {
-                  tools.error('最多上传100张')
-                } else {
-                  console.log('--aaaaaaaaaa------------------')
-                  if(tools.getPlatform()==='H5'){
-                    this.uploadingFile(file);
-                  }else {
-                    this.uploadingFile(file.path);
-                  }
-                }
-              }
-            })
-          }
-        },
-        fail: (e) => {
-          console.log(e)
-        }
-      });
-    },
-    uploadingVideo() {
-      uni.chooseVideo({
-        sourceType: ['album'],
-        maxDuration: 60,
-        success: (res) => {
-          console.log(res)
-          this.uploadingFile(res.tempFile);
-        }
-      });
-    },
-    uploadingFile(file) {
-      //图片上传
-      tools.showLoading();
-      console.log('----------------asdsa')
-      upLoadingFileOss(file).then((res) => {
-        console.log('----------------------上传成功')
-        console.log(res)
-        if (res) {
-          console.log(res)
-          console.log('------------url')
-          this.addProperties(res)
-          tools.hideLoading();
-        }else {
-          tools.hideLoading();
-          tools.error('上传失败')
-        }
-      }).catch((err) => {
-        tools.hideLoading();
-      })
-    },
-    addImages() {
-      if (this.custom) {
-        this.$emit('addImage')
-      } else {
-        let checkNumber = this.number - this.imageList.length
-        uni.chooseImage({
-          count: checkNumber,
-          sourceType: ['album', 'camera'],
-          success: res => {
-            let count = checkNumber <= res.tempFilePaths.length ? checkNumber : res.tempFilePaths.length
-            for (let i = 0; i < count; i++) {
-              this.addProperties(res.tempFilePaths[i])
-            }
-          }
-        })
-      }
-    },
-    addImage(image) {
-      this.addProperties(image)
-    },
-    delImage(item, index) {
-      this.imageList.splice(index, 1)
-      for (let obj of this.imageList) {
-        if (obj.index > item.index) {
-          obj.index -= 1
-          obj.x = obj.oldX
-          obj.y = obj.oldY
-          obj.absX = obj.index % this.colsValue
-          obj.absY = Math.floor(obj.index / this.colsValue)
-          this.$nextTick(() => {
-            obj.x = obj.absX * this.viewWidth
-            obj.y = obj.absY * this.viewWidth
-          })
-        }
-      }
-      this.add.x = (this.imageList.length % this.colsValue) * this.viewWidth + 'px'
-      this.add.y = Math.floor(this.imageList.length / this.colsValue) * this.viewWidth + 'px'
-      this.sortList()
-    },
-    delImageMp(item, index) {
-      //#ifdef MP
-      this.delImage(item, index)
-      //#endif
-    },
-    sortList() {
-      let list = this.imageList.slice()
-      list.sort((a, b) => {
-        return a.index - b.index
-      })
-      for (let i = 0; i < list.length; i++) {
-        list[i] = list[i].src
-      }
-      // this.$emit('update:list', list)
-      this.$emit('input', list)
-    },
-    addProperties(item) {
-      console.log('------------------addProperties')
-      console.log(item)
-      let absX = this.imageList.length % this.colsValue
-      let absY = Math.floor(this.imageList.length / this.colsValue)
-      let x = absX * this.viewWidth
-      let y = absY * this.viewWidth
-      this.imageList.push({
-        src: item,
-        x,
-        y,
-        oldX: x,
-        oldY: y,
-        absX,
-        absY,
-        scale: 1,
-        zIndex: 9,
-        opacity: 1,
-        index: this.imageList.length,
-        id: this.guid(),
-        disable: false,
-        offset: 0,
-        moveEnd: false
-      })
-      this.add.x = (this.imageList.length % this.colsValue) * this.viewWidth + 'px'
-      this.add.y = Math.floor(this.imageList.length / this.colsValue) * this.viewWidth + 'px'
-      this.sortList()
-    },
-    nothing() {},
-    rpx2px(v) {
-      return this.width * v / 750
-    },
-    guid() {
-      function S4() {
-        return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
-      }
-      return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-@import url("../../static/css/en-common.css");
-.con {
-  padding: 30rpx;
-
-  .area {
-    width: 100%;
-
-    .view {
-      display: flex;
-      justify-content: center;
-      align-items: center;
-
-      .area-con {
-        position: relative;
-
-        .pre-image {
-          width: 100%;
-          height: 100%;
-          border-radius: 10rpx;
-        }
-
-        .bf-img {
-          width: 40rpx;
-          height: 40rpx;
-          position: absolute;
-          left: 50%;
-          top: 50%;
-          //margin: -20rpx 0 0 -20rpx;
-          z-index: 2;
-        }
-
-        .del-con {
-          position: absolute;
-          top: 5rpx;
-          right: 5rpx;
-          //padding: 0 0 20rpx 20rpx;
-
-          .del-wrap {
-            width: 36rpx;
-            height: 36rpx;
-            //background-color: rgba(0, 0, 0, 0.4);
-            border-radius: 0 0 0 10rpx;
-            display: flex;
-            justify-content: center;
-            align-items: center;
-
-            .del-image {
-              //width: 20rpx;
-              //height: 20rpx;
-            }
-          }
-        }
-      }
-    }
-
-    .add {
-      position: absolute;
-      display: flex;
-      justify-content: center;
-      align-items: center;
-
-      .add-wrap {
-        // display: flex;
-        // justify-content: center;
-        // align-items: center;
-        background: #F7F7F7;
-        border-radius: 10rpx;
-
-        .add-img {
-          width: 80rpx;
-          height: 80rpx;
-          margin: 0 auto;
-          padding-top: 44rpx;
-        }
-
-        .names {
-          color: #6F6F6F;
-          font-size: 28rpx;
-          text-align: center;
-        }
-        .video-data{
-          width: 212rpx;
-          height: 212rpx;
-          //background-color: #fff;
-          text-align: center;
-          line-height: 212rpx;
-          .video-img {
-            font-size: 100rpx;
-            color: #333333;
-          }
-        }
-
-      }
-    }
-  }
-}
-</style>

+ 0 - 129
components/en-list/en-list.vue

@@ -1,129 +0,0 @@
-<template>
-  <view class="list">
-    <Blank v-if="list.length<=0"></Blank>
-    <view class="scroll-view" v-else>
-      <scroll-view class="scroll-list" scroll-y="true" :style="listStyle" @scrolltolower="onReachScollBottom"
-                   :scroll-top="scrollTop" @scroll="scroll">
-        <slot name="listInfo" v-bind:pagingData="list"></slot>
-        <view class="toMore" v-show="isAjax">加载中...</view>
-      </scroll-view>
-    </view>
-
-  </view>
-</template>
-
-<script>
-import Blank from 'components/en-utils/en-blank/en-blank'
-
-export default {
-  components: {Blank},
-  props:{
-    'height':{
-      default:''
-    },
-    'isAll':{
-      type:Boolean,
-      default:false
-    }
-  },
-  data() {
-    return {
-      list: [],
-      scrollTop: 0,
-      page: 1,
-      total: null,
-      isAjax: false,
-      listStyle:{
-        'height':'calc(100vh - env(safe-area-inset-bottom))'
-      }
-    }
-  },
-  watch: {
-    'height':function (){
-      this.setHeight()
-    },
-    'isAll':function () {
-      this.setHeight()
-    }
-  },
-  mounted() {
-    this.getList()
-    this.setHeight()
-  },
-  methods: {
-    setHeight(){
-      if(this.isAll){
-        this.listStyle.height='100vh'
-      }else {
-        if(this.height){
-          if(this.height>0){
-            this.listStyle.height='calc(100vh - env(safe-area-inset-bottom) - '+this.height+'rpx)'
-          }else if(this.height<0){
-            this.listStyle.height='calc(100vh - env(safe-area-inset-bottom) + '+(this.height*-1)+'rpx)'
-          }
-        }
-      }
-    },
-    scroll: function (e) {
-      this.scrollTop = e.detail.scrollTop
-    },
-    onReachScollBottom() {
-      if (this.isAjax || this.list.length === this.total) {
-        return
-      }
-      this.getList()
-    },
-    getList() {
-      this.isAjax = true
-      this.$emit('getList', this.page)
-    },
-    startList() {
-      this.list = []
-      this.page = 1
-      this.scrollTop = 0
-      this.isAjax = false
-    },
-    setList(list, total) {
-      list.forEach((item) => {
-        this.list.push(item)
-      })
-      this.total = total
-      this.isAjax = false
-      ++this.page
-    }
-
-  },
-}
-</script>
-
-<style scoped lang="scss">
-.list {
-  height: 100%;
-
-  .scroll-view {
-    flex: 1;
-    overflow: auto;
-
-    .scroll-list {
-      width: 100%;
-      max-height: 100vh;
-    }
-  }
-
-  .toMore {
-    color: #999;
-    font-size: 20rpx;
-    margin: 25rpx 0;
-    text-align: center;
-  }
-
-  ::-webkit-scrollbar {
-    display: none;
-    width: 0;
-    height: 0;
-    background-color: transparent;
-  }
-
-
-}
-</style>

+ 0 - 60
components/en-utils/en-price/en-price.vue

@@ -1,60 +0,0 @@
-<template>
-  <view>
-    <view class="item-price">
-      <text class="item-current-price">¥<text class="price-integer">{{ integer }}</text>.<text>{{ decimal }}</text></text>
-      <text class="item-original-price" v-show="originalPrice!==''">{{ originalPrice }}</text>
-    </view>
-  </view>
-</template>
-
-<script>
-export default {
-  name: "en-price",
-  props: {
-    'currentPrice': {
-      default: ''
-    },
-    'originalPrice': {
-      default: ''
-    }
-  },
-  data() {
-    return {
-      integer: 0,
-      decimal: 0,
-    }
-  },
-  mounted() {
-    if (this.currentPrice !== '') {
-      let currentPrice = this.currentPrice * 1
-      this.integer = Math.trunc(currentPrice)
-      currentPrice = (currentPrice.toFixed(2)) + ''
-      this.decimal = currentPrice.substring((currentPrice.length) - 2)
-    }
-  },
-  methods: {}
-}
-</script>
-
-<style scoped lang="scss">
-.item-price {
-  .item-current-price {
-    color: #ED301D;
-    font-size: 24rpx;
-    text{
-      color: #ED301D;
-      font-size: 24rpx;
-    }
-    .price-integer{
-      font-size: 40rpx;
-    }
-  }
-
-  .item-original-price {
-    margin-left: 12rpx;
-    color: #999999;
-    font-size: 24rpx;
-    text-decoration: line-through;
-  }
-}
-</style>

+ 0 - 26
components/static/css/en-common.css

@@ -1,26 +0,0 @@
-@import "en-iconfont.css";
-
-:root {
-    /*所有字体颜色*/
-    --font-color:#333333;
-    /*所有未选中颜色*/
-    --unselected-color:#333333;
-    /*所有选中颜色*/
-    --selected-color:#3169FA;
-}
-
-.iconfont {
-    font-size: 36rpx;
-    color: #333333;
-}
-.box{
-    background-color: #ffffff;
-    border-bottom: 2rpx solid #F0F0F0;
-    padding: 34rpx 0 32rpx 0;
-    font-size: 32rpx;
-}
-.input-box-left {
-    width: 210rpx;
-    min-width: 210rpx;
-    color: var(--font-color);
-}

+ 0 - 10
components/static/css/en-iconfont.css

@@ -1,10 +0,0 @@
-@font-face {
-    font-family: 'iconfont';
-    src:  url('/components/static/icon/iconfont.ttf') format('truetype');
-}
-.iconfont {
-    font-family: "iconfont" !important;
-    font-style: normal;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-}

BIN
components/static/icon/iconfont.ttf


+ 8 - 0
pages.json

@@ -13,6 +13,14 @@
       }
     }
 
+    ,
+    {
+  "path": "pages/login/register",
+  "style": {
+    "navigationBarTitleText": "",
+    "enablePullDownRefresh": true
+  }
+}
   ],
   "globalStyle": {
     "navigationBarTextStyle": "black",

+ 5 - 2
pages/login/index.vue

@@ -1,6 +1,6 @@
 <template>
   <view class="page-box login-box">
-      <view class="login-form sys-radius-50 " >
+      <view class="login-form sys-radius-50  " >
         <view class="from-title">
           <view class="title-list">
             <view class="title-text  sys-size-28 text-center sys-weight-600" :class="{'default-text':type===1}" @click="setType(1)">验证码登录</view>
@@ -25,8 +25,9 @@
             <view class="input-item  sys-from-background-color sys-radius-30 " :class="{'apply-shake':phoneShake}">
               <input type="number" class="login-input" placeholder="请输入手机号"  v-model="loginData.phone" maxlength="11"></input>
             </view>
-            <view class="input-item   sys-from-background-color sys-radius-30" :class="{'apply-shake':passwordShake}">
+            <view class="input-item input-send  sys-from-background-color sys-radius-30" :class="{'apply-shake':passwordShake}">
               <input type="password" class="login-input" placeholder="请输入密码" v-model="loginData.password"></input>
+              <view class="login-send text-color-dominant sys-size-28 sys-weight-400" >忘记密码?</view>
             </view>
           </view>
 
@@ -321,9 +322,11 @@
       }
       .one-from{
         border-radius: 0 50rpx 50rpx 50rpx;
+        transition: 0.85s ease;
       }
       .two-from{
         border-radius:  50rpx 0 50rpx 50rpx;
+        transition: 0.85s ease;
       }
     }
     .register-box{

+ 28 - 0
pages/login/register.vue

@@ -0,0 +1,28 @@
+<template>
+  <view class="page-box login-box">
+    <view class="login-form sys-radius-50">
+
+    </view>
+
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  }
+}
+</script>
+
+<style lang="scss">
+.page-box{
+  .login-form{
+    margin: 0 30rpx;
+    border-radius: 50rpx;
+    background-color: rgba(255,255,255,0.5);
+  }
+}
+
+
+</style>

+ 3 - 0
static/css/default-color.scss

@@ -36,4 +36,7 @@
   color: #7C7C7C;;
 }
 
+.page-box .text-color-13{
+  color: #131313;;
+}