wangguoyu hace 1 mes
padre
commit
62ff0d2eca

+ 11 - 0
api/jiazheng.js

@@ -369,4 +369,15 @@ export function jiazhengKcDelete(data = {}) {
 		data,
 		timeout: 20000
 	})
+}
+export function getAdminClassify(data = {}) {
+  return request({
+    url: '/app/kecheng/guanliyuan/classify',
+    headers: {
+      isToken: true
+    },
+    method: 'post',
+    data,
+    timeout: 20000
+  })
 }

+ 104 - 0
pages/admin/Jiazheng/common/kechengLeixing.vue

@@ -0,0 +1,104 @@
+<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-radio" v-for="item in data.list">
+						<label class="radio-name-box"
+							:class="{radioActive: activeSelect && activeSelect.id==item.id}">
+							<radio :value="`${item.id}`" :checked="item.checked" activeBackgroundColor="#3fd2a1" style="transform:scale(0.8)"/>
+							{{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')
+		popupKechengLeixingRef.value.close();
+	}
+
+	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>

+ 39 - 3
pages/admin/Jiazheng/kechengBind.vue

@@ -6,7 +6,12 @@
 		</view>
 		<v-tabs v-model="current" :tabs="tabs" :scroll="false" @change="changeTab" field="name"
 			class="admin-tab-box"></v-tabs>
+			
 		<uni-list v-if="current ==0" class="jz-scroll-view">
+			<view @click.stop="clickAlltype" class="select-item-box">
+				<text>{{leixing}}</text>
+				<icon class="select-jt-default" />
+			</view>
 			<uni-list-item v-for="item in list" class="jz-list-item-box">
 				<template v-slot:body>
 					<view class="card-head-row">
@@ -51,6 +56,7 @@
 		</uni-list>
 		<common-dialog ref="commonDialogRef" :title="deleteTitle" :content="deleteConcent"
 			@confirm-btn="deleteQuerenBtn"></common-dialog>
+				<kechengLeixingVue ref="kclxRef" @select="handleSelectLeixing" @reset="handleResetLeixing"></kechengLeixingVue>
 	</view>
 </template>
 
@@ -62,13 +68,17 @@
 		kcSelectList,
 		jiazhengKcList,
 		jiazhengKcAdd,
-		jiazhengKcDelete
+		jiazhengKcDelete,
+		getAdminClassify
 	} from "@/api/jiazheng.js";
 	import commonDialog from '@/components/dialog/commonDialog.vue';
-
+	import kechengLeixingVue from "./common/kechengLeixing.vue";
 	export default {
 		data() {
 			return {
+				leixing: '全部类型',
+				leixingList: [],
+				selectClassify:null,
 				kcClassifyId: 0,
 				id: '',
 				current: 0,
@@ -92,12 +102,38 @@
 		},
 		components: {
 			commonDialog,
+			kechengLeixingVue
 		},
 		onLoad(options) {
 			this.id = options.id
 			this.getList()
+			this.getKechengClassify()
 		},
 		methods: {
+			
+			 handleResetLeixing() {
+				this.selectClassify = null;
+				this.leixing = '全部类型';
+				this.getList()
+			},
+			 handleSelectLeixing(item) {
+				this.leixing = item.lable;
+				this.selectClassify = item;
+				this.getList()
+			},
+			clickAlltype(){
+				this.$refs.kclxRef.showPopup({
+					data: this.leixingList 
+				})
+			},
+			getKechengClassify(){
+				getAdminClassify().then(res => {
+					res.data.children.forEach(item => {
+						item.checked = false;
+					})
+					this.leixingList = res.data.children || [];
+				})
+			},
 			toAdd(data) {
 				let req = {
 					kcIds: [data.kcId],
@@ -162,7 +198,7 @@
 			getList() {
 				let req = {
 					id: this.id,
-					"kcClassifyId": this.kcClassifyId,
+					"kcClassifyId": this.selectClassify && this.selectClassify.id || 0,
 				}
 				kcSelectList(req).then(res => {
 					if (res.code == 0) {