Browse Source

修改项目路演

zs 4 tháng trước cách đây
mục cha
commit
bfd4718af5
39 tập tin đã thay đổi với 837 bổ sung71 xóa
  1. 267 0
      components/lin-select/index.vue
  2. 13 29
      components/upload/index.vue
  3. 27 4
      pagesHome/match/active.vue
  4. 30 2
      pagesMy/activity/active.vue
  5. 21 0
      uni_modules/lin-select/changelog.md
  6. 267 0
      uni_modules/lin-select/components/lin-select/lin-select.vue
  7. 83 0
      uni_modules/lin-select/package.json
  8. 93 0
      uni_modules/lin-select/readme.md
  9. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  10. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  11. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  12. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/components/tabs/index.js.map
  13. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/components/upload/index.js.map
  14. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/home/index.js.map
  15. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  16. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/index.js.map
  17. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/login/index.js.map
  18. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/match/index.js.map
  19. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/match/sign.js.map
  20. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/register/index.js.map
  21. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/about/index.js.map
  22. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/basic.js.map
  23. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/index.js.map
  24. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/password.js.map
  25. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/add.js.map
  26. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/detail.js.map
  27. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/index.js.map
  28. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/agree/index.js.map
  29. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/contact/index.js.map
  30. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.js.map
  31. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.js.map
  32. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js.map
  33. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js.map
  34. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js.map
  35. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map
  36. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js.map
  37. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map
  38. 2 2
      unpackage/dist/dev/mp-weixin/common/runtime.js
  39. 5 5
      unpackage/dist/dev/mp-weixin/common/vendor.js

+ 267 - 0
components/lin-select/index.vue

@@ -0,0 +1,267 @@
+<template>
+	<view>
+		<!--  兼容vue2-->
+		<view class="lin-fixed" v-show="showComboxSelect" @click="gclick"></view>
+		<view class="lin-combox">
+			<uni-easyinput ref="uni-easyinput" v-model="checkValue" :placeholder="placeholder" type="text"
+				@input="oninput" />
+			<view class="lin-combox-select" v-show="showComboxSelect">
+				<view class="lin-popper__arrow"></view>
+				<scroll-view scroll-y="true" :style="'max-height:' + maxHeight + 'px;'">
+					<view v-if="loading" class="fedback-popper_loading">{{ loadingText }}</view>
+					<template v-else>
+						<view v-if="!list.length" class="fedback-popper_nodata">暂无数据</view>
+						<view v-else class="items" v-for="item, key in list" :key="key" :id="key"
+							@click="comboxCheckHandel(item)">
+							{{ item[nameKey] }}
+						</view>
+					</template>
+				</scroll-view>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+	export default {
+		emits: ['update:modelValue', 'input', 'confirm'],
+		props: {
+			loading: {
+				type: Boolean,
+				default: false
+			},
+			maxHeight: {
+				type: String || Number,
+				default: 125
+			},
+			valueKey: {
+				type: String,
+				default: 'value'
+			},
+			nameKey: {
+				type: String,
+				default: 'name'
+			},
+			placeholder: {
+				type: String,
+				default: '请输入'
+			},
+			loadingText: {
+				type: String,
+				default: '加载中'
+			},
+			modelValue: [Number, String],
+			value: [Number, String],
+			list: {
+				type: Array,
+				default: () => []
+			}
+		},
+		data() {
+			return {
+				showComboxSelect: false,
+				checkValue: ''
+			}
+		},
+
+		created() {
+
+		},
+
+		mounted() {
+			if (!this.$refs['uni-easyinput']) {
+				console.error('请先导入uni-easyinput插件')
+				return
+			}
+			this.watchInitialValue()
+		},
+
+		watch: {
+			// #ifdef VUE2
+			value(val) {
+
+				this.checkValue = val
+				this.getInitText()
+
+			},
+			// #endif
+			// #ifdef VUE3
+			modelValue(val) {
+				this.checkValue = val
+				this.getInitText()
+			},
+			// #endif
+			checkValue(val) {},
+			list: {
+				handler(val) {
+					// console.log(val, 'watch')
+				}
+			}
+		},
+		methods: {
+			gclick() {
+				this.showComboxSelect = false
+				this.reset()
+			},
+
+			/*
+			 * 判断如果数据源有数据直接获取,没有数据就进行监听
+			 */
+			watchInitialValue() {
+				if (this.list.length) {
+					this.getInitText()
+					return
+				}
+				const unwatchList = this.$watch('list', (val) => {
+					this.getInitText()
+					unwatchList()
+				})
+			},
+
+			getInitText() {
+
+				this.checkValue = this.modelValue === null ? this.value : this.modelValue
+
+				if (!this.list.length) return
+				if (this.checkValue === '' || this.checkValue === undefined || this.checkValue === null) return
+				if (this.showComboxSelect) return
+
+				const _item = this.list.find((item) => {
+					return item[this.valueKey] === +this.checkValue
+				})
+				if (this.nameKey) this.$refs['uni-easyinput'].val = _item[this.nameKey]
+			},
+
+			/**
+			 * 重置
+			 */
+			reset() {
+
+				// #ifdef VUE3
+				this.$emit('update:modelValue', '')
+				// #endif
+				// #ifdef VUE2
+				this.$emit('input', '')
+				// #endif
+				this.$nextTick(() => {
+					this.$refs['uni-easyinput'].val = ''
+				})
+			},
+
+			/**
+			 * 选中事件
+			 */
+			comboxCheckHandel(item) {
+				const text = item[this.nameKey]
+				const value = item[this.valueKey]
+				this.checkValue = ''
+				this.checkValue = value
+				this.showComboxSelect = false
+				// #ifdef VUE3
+				this.$emit('update:modelValue', value)
+				// #endif
+				// #ifdef VUE2
+				this.$emit('input', value)
+				// #endif
+				this.$nextTick(() => {
+					this.$refs['uni-easyinput'].val = text
+				})
+				this.$emit('confirm', value)
+			},
+
+			/**
+			 * 输入事件
+			 */
+			oninput(val) {
+				this.$emit('update:modelValue', val);
+				this.$emit('input', val)
+				if (!val) {
+					this.showComboxSelect = false
+					return
+				}
+				this.showComboxSelect = true
+			}
+		}
+	}
+</script>
+<style lang="less">
+	.lin-fixed {
+		position: fixed;
+		top: 0;
+		left: 0;
+		bottom: 0;
+		right: 0;
+		z-index: 1;
+	}
+
+	.lin-combox {
+		position: relative;
+
+		.lin-combox-select {
+			position: absolute;
+			top: 45px;
+			left: 0;
+			right: 0;
+			background-color: #fff;
+			z-index: 2;
+			border-radius: 3px;
+			padding: 3px 0;
+			z-index: 8;
+			background-color: #fff;
+			border: 1px solid #ebeef5;
+			border-radius: 6px;
+			box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
+
+			.fedback-popper_nodata {
+				font-size: 13px;
+				padding: 5px;
+				color: #5d5959;
+				text-align: center;
+			}
+
+			.lin-popper__arrow {
+				position: absolute;
+				top: -13px;
+				left: 32px;
+				z-index: 3;
+				content: '';
+				width: 0;
+				height: 0;
+				display: block;
+				border-color: transparent;
+				border-style: solid;
+				border-width: 6px;
+				border-bottom-color: #ebeef5;
+
+				&::before {
+					content: '';
+					position: absolute;
+					display: block;
+					width: 0;
+					height: 0;
+					border-color: transparent;
+					border-style: solid;
+					border-width: 6px;
+					top: 1px;
+					margin-left: -6px;
+					border-top-width: 0;
+					border-bottom-color: #fff;
+				}
+			}
+
+			.items {
+				height: 35px;
+				line-height: 35px;
+				padding: 0 10px;
+				font-size: 15px;
+			}
+
+			.fedback-popper_loading {
+				text-align: center;
+				font-size: 13px;
+				padding: 5px;
+				color: #5d5959;
+			}
+		}
+
+	}
+</style>

+ 13 - 29
components/upload/index.vue

@@ -1,12 +1,12 @@
 <template>
 	<view class="upload">
 		<view class="upload_1">
-			<view class="list" v-for="(item,index) in list" :key="index">
-				<image class="image" :src="getUrl(item.url)" @click="toView(index,item)"></image>
-				<uni-icons class="del" type="close" size="30" color="#007AFF" @click="uplDel(index,item)"></uni-icons>
+			<view class="button" v-if="list&&list.length<count" @tap="uplSuc()">
+				<button style="background-color:#007AFF" type="primary" size="mini">选择文件</button>
 			</view>
-			<view class="list" v-if="list&&list.length<count" @tap="uplSuc()">
-				<uni-icons class="add" type="plusempty" size="55" color="#007AFF"></uni-icons>
+			<view class="list" v-for="(item,index) in list" :key="index">
+				<text class="name" @click="toView(index,item)">{{item.name}} </text>
+				<uni-icons class="del" type="close" size="20" color="#007AFF" @click="uplDel(index,item)"></uni-icons>
 			</view>
 		</view>
 	</view>
@@ -95,31 +95,15 @@
 		padding: 0 2vw;
 
 		.upload_1 {
-			display: flex;
-			flex-wrap: wrap;
-
 			.list {
-				position: relative;
-				width: 25vw;
-				height: 25vw;
-				text-align: center;
-				margin: 1vw;
-				border: 1px solid var(--f99Color);
-
-				.image {
-					width: 100%;
-					height: 100%;
-				}
-
-				.add {
-					position: relative;
-					top: 20px;
-				}
-
-				.del {
-					position: absolute;
-					right: 0;
-					top: 0;
+				display: flex;
+				align-items: center;
+				.name {
+					font-size: 14px;
+					color: #666;
+					margin-right: 5px;
+					word-break: break-all;
+					word-wrap: break-word;
 				}
 			}
 		}

+ 27 - 4
pagesHome/match/active.vue

@@ -53,8 +53,10 @@
 					</view>
 					<view class="value other">
 						<view class="title">公司</view>
-						<view class="label">
-							<input name="company" class="input" :value="form.company" placeholder="请输入公司名称" />
+						<view class="label" style="width: 250px;">
+							<linSelect :list="companyList" :loading="loading" loading-text="数据加载中" value-key="name"
+								name-key="name" max-height="180" placeholder="请输入公司名称" @input="toCompany"
+								v-model="form.company" />
 							<span v-if="errors.company" class="error-message">{{ errors.company }}</span>
 						</view>
 					</view>
@@ -93,10 +95,12 @@
 
 <script>
 	import upload from '../../components/upload/index.vue';
+	import linSelect from '../../components/lin-select/index.vue';
 	import moment from 'moment';
 	export default {
 		components: {
-			upload
+			upload,
+			linSelect
 		},
 		data() {
 			return {
@@ -115,6 +119,7 @@
 				signTypeList: [],
 				typeList: [],
 				statusList: [],
+				companyList: [],
 				errors: {}
 			}
 		},
@@ -246,11 +251,29 @@
 				// 如果没有错误,返回null或undefined
 				return null;
 			},
+			// 远程加载数据
+			toCompany(name) {
+				const that = this;
+				setTimeout(async () => {
+					const res = await that.$api(`/company`, 'GET', {
+						status: '1',
+						name
+					})
+					if (res.errcode == '0') {
+						if (res.total > 0) that.$set(that, `companyList`, res.data)
+						else that.$set(that, `companyList`, [{
+							value: name,
+							name
+						}])
+					}
+				}, 1000)
+			},
 			async formSubmit(e) {
 				const that = this;
 				var formdata = e.detail.value
-				formdata.type == that.form.type
+				formdata.type = that.form.type
 				formdata.project_file = that.form.project_file
+				formdata.company = that.form.company
 				const errorsInfo = await that.validateObject(formdata);
 				// 检查是否有错误
 				if (errorsInfo) {

+ 30 - 2
pagesMy/activity/active.vue

@@ -12,7 +12,9 @@
 					<uni-data-checkbox v-model="form.type" :localdata="signList" :map="{text:'label',value:'value'}" />
 				</uni-forms-item>
 				<uni-forms-item label="公司名称" required name="company">
-					<uni-easyinput v-model="form.company" placeholder="请输入公司名称" />
+					<linSelect style="width: 273px;" :list="companyList" :loading="loading" loading-text="数据加载中"
+						value-key="name" name-key="name" max-height="180" placeholder="请输入公司名称" @input="toCompany"
+						v-model="form.company" />
 				</uni-forms-item>
 				<uni-forms-item label="路演名称" required name="project_name" v-if="form.type=='1'">
 					<uni-easyinput v-model="form.project_name" placeholder="请输入路演名称" />
@@ -36,10 +38,12 @@
 
 <script>
 	import upload from '../../components/upload/index.vue';
+	import linSelect from '../../components/lin-select/index.vue';
 	import moment from 'moment';
 	export default {
 		components: {
-			upload
+			upload,
+			linSelect
 		},
 		data() {
 			return {
@@ -56,6 +60,7 @@
 				},
 				typeList: [],
 				signList: [],
+				companyList: [],
 				// 校验规则
 				rules: {
 					name: {
@@ -135,6 +140,23 @@
 				let arr = data.filter((i, index) => index != e.data.index);
 				that.$set(that.form, `${e.name}`, arr)
 			},
+			// 远程加载数据
+			toCompany(name) {
+				const that = this;
+				setTimeout(async () => {
+					const res = await that.$api(`/company`, 'GET', {
+						status: '1',
+						name
+					})
+					if (res.errcode == '0') {
+						if (res.total > 0) that.$set(that, `companyList`, res.data)
+						else that.$set(that, `companyList`, [{
+							value: name,
+							name
+						}])
+					}
+				}, 1000)
+			},
 			// 保存
 			submit(ref) {
 				const that = this;
@@ -143,6 +165,7 @@
 					const data = {
 						id: that.id,
 						project_file: that.form.project_file,
+						company: that.form.company,
 						time: moment().format('YYYY-MM-DD HH:mm:ss'),
 						status: '0'
 					}
@@ -188,6 +211,11 @@
 				font-size: var(--font12Size);
 			}
 
+			/deep/ .uni-forms-item__content {
+				display: flex;
+				align-items: center;
+			}
+
 			.button {
 				margin: 2vw 0 0 0;
 

+ 21 - 0
uni_modules/lin-select/changelog.md

@@ -0,0 +1,21 @@
+## 1.2.9(2024-07-03)
+修复初始化无法绑定值的bug
+## 1.2.8(2024-07-03)
+修复无法回显的bug
+## 1.2.6(2024-03-11)
+1.增加了value-key绑定字段;
+2.修复选中值无法绑定的问题;
+## 1.2.5(2024-01-18)
+修复v-model无法响应的问题
+## 1.2.4(2023-10-17)
+修复了vue2版本,点击选项后无法更新value的问题
+## 1.2.3(2023-09-21)
+修复了vue2版本的v-model 无法初始化绑定值的bug
+## 1.2.2(2023-08-11)
+修复了选中值未变化的bug
+## 1.2.1(2023-07-22)
+修复了一直加载中,不消失的bug
+## 1.2.0(2023-07-22)
+兼容vue2,添加了远程加载数据样式
+## 1.0.0(2023-07-06)
+先更新1.0.0版本,如有别的需求再提

+ 267 - 0
uni_modules/lin-select/components/lin-select/lin-select.vue

@@ -0,0 +1,267 @@
+<template>
+	<view>
+		<!--  兼容vue2-->
+		<view class="lin-fixed" v-show="showComboxSelect" @click="gclick"></view>
+		<view class="lin-combox">
+			<uni-easyinput ref="uni-easyinput" v-model="checkValue" :placeholder="placeholder" type="text"
+				@input="oninput" />
+			<view class="lin-combox-select" v-show="showComboxSelect">
+				<view class="lin-popper__arrow"></view>
+				<scroll-view scroll-y="true" :style="'max-height:' + maxHeight + 'px;'">
+					<view v-if="loading" class="fedback-popper_loading">{{ loadingText }}</view>
+					<template v-else>
+						<view v-if="!list.length" class="fedback-popper_nodata">暂无数据</view>
+						<view v-else class="items" v-for="item, key in list" :key="key" :id="key"
+							@click="comboxCheckHandel(item)">
+							{{ item[nameKey] }}
+						</view>
+					</template>
+				</scroll-view>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+	export default {
+		emits: ['update:modelValue', 'input', 'confirm'],
+		props: {
+			loading: {
+				type: Boolean,
+				default: false
+			},
+			maxHeight: {
+				type: String || Number,
+				default: 125
+			},
+			valueKey: {
+				type: String,
+				default: 'value'
+			},
+			nameKey: {
+				type: String,
+				default: 'name'
+			},
+			placeholder: {
+				type: String,
+				default: '请输入'
+			},
+			loadingText: {
+				type: String,
+				default: '加载中'
+			},
+			modelValue: [Number, String],
+			value: [Number, String],
+			list: {
+				type: Array,
+				default: () => []
+			}
+		},
+		data() {
+			return {
+				showComboxSelect: false,
+				checkValue: ''
+			}
+		},
+
+		created() {
+
+		},
+
+		mounted() {
+			if (!this.$refs['uni-easyinput']) {
+				console.error('请先导入uni-easyinput插件')
+				return
+			}
+			this.watchInitialValue()
+		},
+
+		watch: {
+			// #ifdef VUE2
+			value(val) {
+
+				this.checkValue = val
+				this.getInitText()
+
+			},
+			// #endif
+			// #ifdef VUE3
+			modelValue(val) {
+				this.checkValue = val
+				this.getInitText()
+			},
+			// #endif
+			checkValue(val) {},
+			list: {
+				handler(val) {
+					// console.log(val, 'watch')
+				}
+			}
+		},
+		methods: {
+			gclick() {
+				this.showComboxSelect = false
+				this.reset()
+			},
+
+			/*
+			 * 判断如果数据源有数据直接获取,没有数据就进行监听
+			 */
+			watchInitialValue() {
+				if (this.list.length) {
+					this.getInitText()
+					return
+				}
+				const unwatchList = this.$watch('list', (val) => {
+					this.getInitText()
+					unwatchList()
+				})
+			},
+
+			getInitText() {
+
+				this.checkValue = this.modelValue === null ? this.value : this.modelValue
+
+				if (!this.list.length) return
+				if (this.checkValue === '' || this.checkValue === undefined || this.checkValue === null) return
+				if (this.showComboxSelect) return
+
+				const _item = this.list.find((item) => {
+					return item[this.valueKey] === +this.checkValue
+				})
+				this.$refs['uni-easyinput'].val = _item[this.nameKey]
+			},
+
+			/**
+			 * 重置
+			 */
+			reset() {
+
+				// #ifdef VUE3
+				this.$emit('update:modelValue', '')
+				// #endif
+				// #ifdef VUE2
+				this.$emit('input', '')
+				// #endif
+				this.$nextTick(() => {
+					this.$refs['uni-easyinput'].val = ''
+				})
+			},
+
+			/**
+			 * 选中事件
+			 */
+			comboxCheckHandel(item) {
+				const text = item[this.nameKey]
+				const value = item[this.valueKey]
+				this.checkValue = ''
+				this.checkValue = value
+				this.showComboxSelect = false
+				// #ifdef VUE3
+				this.$emit('update:modelValue', value)
+				// #endif
+				// #ifdef VUE2
+				this.$emit('input', value)
+				// #endif
+				this.$nextTick(() => {
+					this.$refs['uni-easyinput'].val = text
+				})
+				this.$emit('confirm', value)
+			},
+
+			/**
+			 * 输入事件
+			 */
+			oninput(val) {
+				this.$emit('update:modelValue', val);
+				this.$emit('input', val)
+				if (!val) {
+					this.showComboxSelect = false
+					return
+				}
+				this.showComboxSelect = true
+			}
+		}
+	}
+</script>
+<style lang="less">
+	.lin-fixed {
+		position: fixed;
+		top: 0;
+		left: 0;
+		bottom: 0;
+		right: 0;
+		z-index: 1;
+	}
+
+	.lin-combox {
+		position: relative;
+
+		.lin-combox-select {
+			position: absolute;
+			top: 45px;
+			left: 0;
+			right: 0;
+			background-color: #fff;
+			z-index: 2;
+			border-radius: 3px;
+			padding: 3px 0;
+			z-index: 8;
+			background-color: #fff;
+			border: 1px solid #ebeef5;
+			border-radius: 6px;
+			box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
+
+			.fedback-popper_nodata {
+				font-size: 13px;
+				padding: 5px;
+				color: #5d5959;
+				text-align: center;
+			}
+
+			.lin-popper__arrow {
+				position: absolute;
+				top: -13px;
+				left: 32px;
+				z-index: 3;
+				content: '';
+				width: 0;
+				height: 0;
+				display: block;
+				border-color: transparent;
+				border-style: solid;
+				border-width: 6px;
+				border-bottom-color: #ebeef5;
+
+				&::before {
+					content: '';
+					position: absolute;
+					display: block;
+					width: 0;
+					height: 0;
+					border-color: transparent;
+					border-style: solid;
+					border-width: 6px;
+					top: 1px;
+					margin-left: -6px;
+					border-top-width: 0;
+					border-bottom-color: #fff;
+				}
+			}
+
+			.items {
+				height: 35px;
+				line-height: 35px;
+				padding: 0 10px;
+				font-size: 15px;
+			}
+
+			.fedback-popper_loading {
+				text-align: center;
+				font-size: 13px;
+				padding: 5px;
+				color: #5d5959;
+			}
+		}
+
+	}
+</style>

+ 83 - 0
uni_modules/lin-select/package.json

@@ -0,0 +1,83 @@
+{
+  "id": "lin-select",
+  "displayName": "lin-select",
+  "version": "1.2.9",
+  "description": "Select 下拉选择器,支持远程搜索,输入搜索",
+  "keywords": [
+    "lin-select,",
+    "select"
+],
+  "repository": "",
+  "engines": {
+    "HBuilderX": "^3.8.1"
+  },
+  "dcloudext": {
+    "type": "component-vue",
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "插件不采集任何数据",
+      "permissions": "无"
+    },
+    "npmurl": ""
+  },
+  "uni_modules": {
+    "dependencies": [],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y",
+        "alipay": "n"
+      },
+      "client": {
+        "Vue": {
+          "vue2": "y",
+          "vue3": "y"
+        },
+        "App": {
+          "app-vue": "u",
+          "app-nvue": "u"
+        },
+        "H5-mobile": {
+          "Safari": "u",
+          "Android Browser": "u",
+          "微信浏览器(Android)": "u",
+          "QQ浏览器(Android)": "u"
+        },
+        "H5-pc": {
+          "Chrome": "u",
+          "IE": "u",
+          "Edge": "u",
+          "Firefox": "u",
+          "Safari": "u"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "u",
+          "百度": "u",
+          "字节跳动": "u",
+          "QQ": "u",
+          "钉钉": "u",
+          "快手": "u",
+          "飞书": "u",
+          "京东": "u"
+        },
+        "快应用": {
+          "华为": "u",
+          "联盟": "u"
+        }
+      }
+    }
+  }
+}

+ 93 - 0
uni_modules/lin-select/readme.md

@@ -0,0 +1,93 @@
+# lin-select
+
+## **使用说明**
+
+### **==注意:需要依赖 [uni-easyinput](https://ext.dcloud.net.cn/plugin?name=uni-easyinput) ,请先导入[uni-easyinput](https://ext.dcloud.net.cn/plugin?name=uni-easyinput)后再使用;==**
+
+```html
+//将插件导入到Hubilder之后,直接通过标签使用<lin-select />
+<template>
+  <!-- 普通用法 -->
+
+  <lin-select
+    :list="productList1"
+    value-key="value"
+    name-key="name"
+    max-height="180"
+    placeholder="请输入商品名称"
+    @input="input2"
+    v-model="mytext1"
+    @confirm="confirm"
+  />
+
+  <!-- 远程加载数据 -->
+  <lin-select
+    :list="productList2"
+    :loading="loading"
+    loading-text="数据加载中"
+    value-key="value"
+    name-key="name"
+    max-height="180"
+    placeholder="请输入商品名称"
+    @input="input2"
+    v-model="mytext2"
+  />
+</template>
+```
+
+```javascript
+<script>
+export default {
+  data() {
+    return {
+      mytext1: 1,
+      mytext2: '',
+      productList1: [{ "name": "特选痩肉", value: 0 }, { "name": "特选键子肉", value: 1 }, { "name": "特选梅肉", value: 2 }],
+      productList2: [],
+    }
+  },
+  onLoad() {
+
+  },
+  methods: {
+
+    confirm(val) {
+      console.log(val, 'confirm')
+    },
+
+    input1(val) {
+      console.log(val, 666)
+    },
+
+    // 远程加载数据
+    input2(val) {
+      setTimeout(() => {
+        this.productList2 = [
+          { "name": "远程加载分割猪肉及附件", value: 0 },
+          { "name": "远程加载良种白条猪肉", value: 1 },
+          { "name": "远程加载土猪白条猪肉", value: 2 }
+        ]
+      }, 1000)
+    }
+  }
+}
+</script>
+```
+
+# **Props**
+
+| 参数         | 说明              | 类型             | 是否必填 |
+| :----------- | :---------------- | :--------------- | :------- |
+| list         | 数据源数组        | Array            | 必填     |
+| value-key    | 取值的 key        | string           | 必填     |
+| name-key     | 显示的 key        | string           | 必填     |
+| max-height   | 列表最大高度      | string \| number | 否       |
+| @input       | 输入框 input 事件 | function         | 否       |
+| @confirm     | 点击选项事件      | function         | 否       |
+| v-model      | 绑定的字段        | -                | 否       |
+| loading      | 是否正在加载      | Boolean          | 否       |
+| loading-text | 远程加载中的文案  | string           | 否       |
+
+## **联系作者**
+
+如使用上有问题可以留言或者联系我哈,我会一直更新的;

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/components/tabs/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/components/upload/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/home/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/login/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/match/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/match/sign.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/register/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/about/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/basic.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/password.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/add.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/detail.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/agree/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/contact/index.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 2
unpackage/dist/dev/mp-weixin/common/runtime.js


+ 5 - 5
unpackage/dist/dev/mp-weixin/common/vendor.js

@@ -1557,7 +1557,7 @@ function initData(vueOptions, context) {
     try {
       data = data.call(context); // 支持 Vue.prototype 上挂的数据
     } catch (e) {
-      if (Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"cxyy-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
+      if (Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"cxyy-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
         console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);
       }
     }
@@ -8934,7 +8934,7 @@ function type(obj) {
 
 function flushCallbacks$1(vm) {
     if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {
-        if (Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"cxyy-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
+        if (Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"cxyy-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
             var mpInstance = vm.$scope;
             console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
                 ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');
@@ -8955,14 +8955,14 @@ function nextTick$1(vm, cb) {
     //1.nextTick 之前 已 setData 且 setData 还未回调完成
     //2.nextTick 之前存在 render watcher
     if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {
-        if(Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"cxyy-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){
+        if(Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"cxyy-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG){
             var mpInstance = vm.$scope;
             console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
                 ']:nextVueTick');
         }
         return nextTick(cb, vm)
     }else{
-        if(Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"cxyy-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){
+        if(Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"cxyy-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG){
             var mpInstance$1 = vm.$scope;
             console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +
                 ']:nextMPTick');
@@ -9058,7 +9058,7 @@ var patch = function(oldVnode, vnode) {
     });
     var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);
     if (Object.keys(diffData).length) {
-      if (Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"cxyy-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
+      if (Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"cxyy-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
         console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +
           ']差量更新',
           JSON.stringify(diffData));