wangxy 6 kuukautta sitten
vanhempi
commit
befd81fa62

+ 103 - 0
pages/admin/Kecheng/components/kechengLeixing.vue

@@ -0,0 +1,103 @@
+<template>
+	<uni-popup ref="popupKechengLeixingRef" type="top" :animation="false" :is-mask-click="false"
+		mask-background-color="rgba(0, 0, 0, 0.4)">
+		<view class="phone-filter-page">
+			<view class="icon-title-navBar-box">
+				<view @click="goUpPage" class="nav-bar-icon"></view>
+				<text class="nav-bar-title">筛选</text>
+			</view>
+			<view class="filter-body-box">
+				<radio-group @change="handleChange">
+					<!-- 报证机构 -->
+					<view class="filter-body-name" v-for="item in data.list">
+						<label class="phone-radio-item"
+							:class="{radioActive: activeSelect && activeSelect.id==item.id}">
+							<radio :value="`${item.id}`" :checked="item.checked" />
+							{{item.lable}}
+						</label>
+						<view class="phone-radio-group filter-radio-group">
+							<view class="phone-radio-item" v-for="citem in item.children"
+								:class="{radioActive: activeSelect && activeSelect.id == citem.id}"
+								@click.stop="handleSelect(citem,item)">
+								{{citem.lable}}
+							</view>
+						</view>
+					</view>
+				</radio-group>
+			</view>
+			<view class="filter-btn-box">
+				<button type="default" class="phone-white-btn filter-btn" @click="handleReset">重置</button>
+				<button type="default" class="phone-green-btn filter-btn" @click="handleConfirm">筛选</button>
+			</view>
+		</view>
+	</uni-popup>
+
+
+</template>
+
+<script setup>
+	import {
+		reactive,
+		ref
+	} from "vue";
+
+	const emits = defineEmits(['select', 'reset']);
+	const data = reactive({
+		list: []
+	})
+	const activeSelect = ref(null);
+
+	const popupKechengLeixingRef = ref(null);
+
+	function goUpPage() {
+		popupKechengLeixingRef.value.close();
+	}
+
+	function handleConfirm() {
+		emits('select', activeSelect.value)
+		popupKechengLeixingRef.value.close();
+	}
+
+	function handleReset() {
+		activeSelect.value = null;
+		emits('reset')
+	}
+
+	function handleChange(myData) {
+		const activeD = myData.detail.value;
+		data.list.forEach(item => {
+			if (item.id != activeD) {
+				item.checked = false
+			} else {
+				item.checked = true;
+				activeSelect.value = item;
+			}
+
+		})
+	}
+
+	function handleSelect(myData) {
+		data.list.forEach(item => {
+			item.checked = false
+		})
+		activeSelect.value = myData;
+	}
+
+	function showPopup({
+		data: myData
+	}) {
+		data.list = myData;
+		popupKechengLeixingRef.value.open('top')
+	}
+
+
+	defineExpose({
+		showPopup
+	})
+</script>
+
+<style lang="scss">
+	.active {
+		color: red
+	}
+</style>

+ 42 - 0
pages/admin/Kecheng/components/search.vue

@@ -0,0 +1,42 @@
+<template>
+	<uni-popup ref="searchPopup" type="top" :animation="false" :is-mask-click="true"
+	 mask-background-color="rgba(0, 0, 0, 0.4)">
+	   <view class="select-search-row">
+		   <view class="select-search-body">
+			  <input type="text" class="search-input" v-model="searchInput" placeholder="请输入课程名称" />
+			  <view class="search-icon" @click="handleSearch">
+			  	<uni-icons type="search" size="24" color="#fff"></uni-icons>
+			  </view>	
+			</view>
+		</view>
+  </uni-popup>
+</template>
+
+<script setup>
+import { ref } from 'vue';
+const $emit = defineEmits(['search-btn'])
+const searchPopup = ref(null); // 索引
+
+const searchInput= ref('');
+ 
+// 打开弹窗
+function handleShow() {
+	searchPopup.value.open();
+}
+// 取消
+function handleClose() {
+	searchInput.value = '';
+	searchPopup.value.close();
+}
+// 确认
+function handleSearch(){
+	$emit('search-btn',searchInput);
+	searchPopup.value.close();
+}
+
+defineExpose({
+	handleShow,
+	handleClose
+})
+</script>
+